OSDN Git Service

* cppmacro.c (funlike_invocation_p): Don't step back over CPP_EOF.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2
3         * cppmacro.c (funlike_invocation_p): Don't step back
4         over CPP_EOF.
5
6 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
7
8         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
9         labelno.
10
11 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
12
13         * doc/invoke.texi: Remove Chill references.
14         * doc/gcc.texi: Update last modified date.
15
16 2002-04-20  Kazu Hirata  <kazu@hxi.com>
17
18         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
19         push and pop.  Replace add.l with add.w.
20
21 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
22
23         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
24         multiply instructions for H8/300H case.
25
26 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
27
28         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
29         Bum three instructions from each routine.
30
31 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
32
33         * Makefile.in: Update.
34         * decl.c (push_c_function_context, pop_c_function_context,
35         mark_c_function_context): Rename for consistency.
36         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
37         * c-tree.h (push_c_function_context, pop_c_function_context,
38         mark_c_function_context): Rename for consistency.
39         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
40         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
41         * function.c (init_lang_status, save_lang_status,
42         restore_lang_status, mark_lang_status, free_lang_status):
43         Move to langhooks.h.
44         (push_function_context_to, pop_function_context_from,
45         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
46         Update.
47         * function.h (init_lang_status, save_lang_status,
48         restore_lang_status, mark_lang_status, free_lang_status):
49         Move to langhooks.h.
50         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
51         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
52         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
53         LANG_HOOKS_FUNCTION_INITIALIZER): New.
54         (LANG_HOOKS_INITIALIZER): Update.
55         (lhd_do_nothing_f): New.
56         * langhooks.h (struct lang_hooks_for_functions): New.
57         (struct lang_hooks): New hooks.
58         * langhooks.c (lhd_do_nothing_f): New.
59 objc:
60         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
61         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
62
63 2002-04-19  David S. Miller  <davem@redhat.com>
64
65         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
66         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
67
68 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
69
70         PR optimization/3756
71         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
72         x = ((int) y < 0) ? cst1 : cst2.
73
74 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
75
76         PR c/6358
77         * function.c: Reapply patch for c/6358.
78         (expand_function_end): Copy decl_rtl's mode, not
79         current_function_return_rtx mode.
80
81 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
82
83         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
84         targets.
85
86 2002-04-19  Tom Tromey  <tromey@redhat.com>
87
88         * doc/install.texi (Specific): Update status of Solaris 2.8.
89         For PR libgcj/6158.
90
91 2002-04-19  Andreas Schwab  <schwab@suse.de>
92
93         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
94         (PUT_REAL): Restore old definition.
95
96 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
97             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
98
99         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
100         binutils 2.11.2 and higher generate smaller binaries than Sun's
101         native tools.
102
103 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
104
105         PR c++/6352
106         * toplev.c (rest_of_compilation): Do not defer functions for which
107         TREE_SYMBOL_REFERENCED has already been set.
108
109 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
110
111         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
112         alternative.
113
114 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
115
116         * builtins.c: Include langhooks.h.
117         (lang_type_promotes_to): Remove.
118         (expand_builtin_va_arg): Use new hook.
119         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
120         (simple_type_promotes_to): Move to c-typeck.c.
121         * c-common.h (simple_type_promotes_to): Remove.
122         * c-decl.c (duplicate_decls, grokdeclarator): Update.
123         * c-format.c: Include langhooks.h.
124         (check_format_types): Update.
125         * c-tree.h (c_type_promotes_to): New.
126         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
127         (type_lists_compatible_p): Update.
128         * langhooks-def.h (lhd_type_promotes_to): New.
129         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
130         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
131         * langhooks.c (lhd_type_promotes_to): New.
132         * langhooks.h (struct lang_hooks_for_types): New hook.
133         * tree.h (lang_type_promotes_to): Remove.
134 objc:
135         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
136
137 2002-04-18  Richard Henderson  <rth@redhat.com>
138
139         * function.c: Revert patch for c/6358.
140
141 2002-04-18  Richard Henderson  <rth@redhat.com>
142
143         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
144         blocks.  Handle multiple references to the TRAP block.  Handle
145         non-adjacent THEN and OTHER blocks.
146
147 2002-04-18  Richard Henderson  <rth@redhat.com>
148
149         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
150         crash with no type for by-mode libcalls.
151
152         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
153
154 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
155
156         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
157         __xtensa_nonlocal_goto): Use a syscall instructions to flush
158         the register windows.
159
160 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
161
162         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
163         appropriate.  Document need for extended precision even when
164         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
165         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
166         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
167         instead of relying on later syntax error when REAL_WIDTH > 5.
168         * real.c: Define NE based only on whether or not we have a
169         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
170         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
171         define GET_REAL and PUT_REAL as simple memcpy operations; no
172         need to byteswap or round.
173         Use #error instead of #ifdef-ing out the entire file, for
174         prompt error detection.
175
176         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
177
178 2002-04-18  David S. Miller  <davem@redhat.com>
179
180         * config/sparc/sparc.h (BRANCH_COST): Define.
181
182         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
183         does it.
184
185 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
186
187         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
188         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
189         propagate_block calls after relaxation loop using new variable
190         stabilized_prop_flags.
191
192 2002-04-18  Richard Henderson  <rth@redhat.com>
193
194         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
195         (ia64_va_arg): Expect variable sized types by reference.
196         * config/ia64/ia64-protos.h: Update.
197         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
198         ia64_function_arg_pass_by_reference.
199
200 2002-04-18  Richard Henderson  <rth@redhat.com>
201
202         * ifcvt.c: Include except.h.
203         (block_has_only_trap): Break out from find_cond_trap.
204         (find_cond_trap): Use it.  Always delete the trap block.
205         (merge_if_block): Allow then block null.  Be less simplistic about
206         what insns can end a block.
207         * Makefile.in (ifcvt.o): Depend on except.h.
208
209         * config/ia64/ia64.md (trap, conditional_trap): New.
210
211 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
212
213         PR c/6358
214         * function.c (assign_parms): Assign hard current_function_return_rtx
215         register here...
216         (expand_function_end): ...not here.
217
218 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
219
220         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
221         * c-tree.h (c_incomplete_type_error): New.
222         * c-typeck.c (require_complete_type, build_component_ref): Update.
223         (incomplete_type_error): Rename.
224         * langhooks-def.h (lhd_incomplete_type_error): New.
225         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
226         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
227         * langhooks.c (lhd_incomplete_type_error): New.
228         * langhooks.h (struct lang_hooks_for_types): New hook.
229         * tree.c (size_in_bytes): Use new hook.
230         * tree.h (incomplete_type_error): Remove.
231 objc:
232         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
233
234 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
235
236         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
237         TARGET_FLOAT_FORMAT blocks.
238
239 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
240
241         * doc/install.texi (Downloading the source): Do not mention Chill
242         any longer, but mention Ada.
243         (Configuration): Do not mention Chill any longer.
244
245 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
246
247         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
248
249 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
250
251         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
252         in last patch.
253
254 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
255
256         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
257         instead of unsigned_type.
258
259 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
260
261         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
262         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
263         later.
264
265 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
266
267         * attribs.c (vector_type_node_list): New static variable.
268         (handle_vector_size_attribute): Use it to avoid generating a
269         new type node each time we are called.
270
271         * combine.c (subst): Avoid trying to make a vector mode subreg of
272         an integer constant.
273         (gen_lowpart_for_combine): Likewise.
274
275 2002-04-18  Roger Sayle  <roger@eyesopen.com>
276             Jakub Jelinek  <jakub@redhat.com>
277
278         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
279         for integer constant c (if x has unsigned type or sign bit is not
280         set in c).  This folds the zero/sign extension into the bit-wise and
281         operation.
282
283 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
284
285         PR middle-end/6205
286         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
287         otherwise xorps.
288
289 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
290
291         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
292
293 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
294
295         * gcc.c (read_specs): Detect and fail if an attempt is made to
296         rename a spec string to an already existing string.
297
298 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
299
300         * config/s390/s390.c (legitimize_pic_address): Do not generate
301         illegal address constant without CONST.
302
303 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
304
305         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
306         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
307
308 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
309
310         PR optimization/6305
311         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
312         to make sure previous reloads are taken into account.  Generate
313         better code if one operand is an in-range immediate constant.
314
315 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
316
317         * doc/install.texi (Building): libgcj requires GNU make.
318
319 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
320
321         PR bootstrap/6315
322         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
323         even if hard quad and register is not floating.
324         (movtf reg<-mem split): Disallow splitting if hard quad and
325         register is floating.
326         (movtf mem<-reg split): Likewise.
327         * config/sparc/sparc.c (fp_register_operand): New predicate.
328         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
329
330 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
331
332         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
333         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
334         (unprotoize.o): Ditto.  Build from protoize.c.  Define
335         UNPROTOIZE on command line.
336         * protoize.c: Include cppdefault.h.  Delete include_defaults.
337         (in_system_include_dir): Use cpp_include_defaults (defined in
338         cppdefault.o).
339         * unprotoize.c: Delete file.
340
341 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
342
343         * config/rs6000/altivec.h (vec_ld): Add array variants.
344         (vec_lde): Same.
345         (vec_ldl): Same.
346
347 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
348             Aldy Hernandez <aldyh@redhat.com>
349
350         * config/rs6000/altivec.h: Define __ALTIVEC__.
351         (bool): New.
352         (__pixel): New.
353         (pixel): New.
354         (vec_cfux): New.
355         (vec_vmaddfp): New.
356         (vec_vsldoi): New.
357         Add parentheses to all macro arguments.
358
359 2002-04-16  Richard Henderson  <rth@redhat.com>
360
361         PR c++/6320
362         * except.c (remove_eh_handler): Insert inner regions at beginning
363         of sibling chain.  Refactor expressions.
364
365 2002-04-16  Richard Henderson  <rth@redhat.com>
366
367         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
368         * config/sparc/sol2-gas-bi.h: New file.
369         * config.gcc (sparc*-solaris): Add it as needed.
370         * configure.in (AS_SPARC64_FLAG): Remove check.
371         * config.in, configure: Regenerate.
372
373         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
374
375 2002-04-16  Richard Henderson  <rth@redhat.com>
376
377         * config/mips/mips.c (override_options): Don't override N32 for
378         a 64-bit ISA.
379
380         PR 6202
381         * config/mips/mips.md (can_delay): Split out of existing define_delays.
382         (HILO_delay): Set can_delay false.
383
384 2002-04-16  Dale Johannesen <dalej@apple.com>
385
386         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
387         instruction addresses.
388         (rs6000_output_function_epilogue): Likewise.
389
390 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
391
392         * c-parse.in (poplevel, compstmt_start,
393         compstmt_primary_start): Add ending ';', in accordance
394         with POSIX.
395
396 2002-04-16  Richard Henderson  <rth@redhat.com>
397
398         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
399         Adjust tm_file order to get TARGET_DEFAULT set properly.
400         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
401         * doc/install.texi (sparc-solaris): Update.
402
403 2002-04-16  Dale Johannesen <dalej@apple.com>
404
405         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
406         comparison operands do not match each other or if modes of
407         conditions do not match result.
408
409 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
410
411         PR target/6305
412         * config/s390/s390.md (mulsidi3): Set both subregs of the
413         multiword register.
414
415 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
416
417         * config/rs6000/altivec.h (vec_addc): Type check.
418
419 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
420
421         PR middle-end/6279
422         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
423
424         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
425
426 2002-04-15  Richard Henderson  <rth@redhat.com>
427
428         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
429         call_really_used_regs too.
430
431 2002-04-15  Richard Henderson  <rth@redhat.com>
432
433         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
434
435 2002-04-15  David S. Miller  <davem@redhat.com>
436
437         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
438         as being CLOBBERed.
439
440 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
441
442         PR c/6290
443         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
444         CONST_VECTOR is { 0, ... 0 }.
445
446 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
447
448         * doc/install.texi (Installing GCC: Configuration): Clarify
449         the only supported ways to configure gcc.
450
451 2002-04-15  Roland McGrath  <roland@frob.com>
452
453         * config.gcc (alpha*-*-gnu*): New target configuration.
454         * config/alpha/gnu.h: New file for it.
455         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
456
457 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
458
459         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
460         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
461         * tree.h (expand_start_stmt_expr): Update prototype.
462         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
463         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
464         on the STMT_EXPR created for the inline function.
465
466 2002-04-15  Richard Henderson  <rth@redhat.com>
467
468         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
469         config/i386/linux-aout.h, config/i386/linux-oldld.h,
470         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
471         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
472         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
473         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
474         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
475         Define __gnu_linux__, not gnu_linux.
476         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
477
478 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
479
480         Remove Chill front end.
481         * gcc.c (default_compilers): Remove Chill entries.
482         * ch: Remove directory.
483         * doc/frontends.texi: Remove information about Chill.
484         * doc/sourcebuild.texi: Likewise.
485         * doc/standards.texi: Likewise.
486
487 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
488
489         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
490         (LONGLONG_STANDALONE): Define.
491
492 2002-04-15  David S. Miller  <davem@redhat.com>
493
494         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
495         Call emit_library_call with LCT_NORMAL.
496         (sparc_initialize_trampoline): Use LCT_foo instead of
497         magic constant in emit_library_call invocations.
498         (sparc64_initialize_trampoline): Likewise.
499         (sparc_profile_hook): Likewise.
500         * config/sparc/sparc.md: Likewise.
501
502         * config/sparc/sparc.c (sparc_extra_constraint_check):
503         Fix type of argument 'c'.
504         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
505         Likewise.
506
507 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
508
509         * diagnostic.h (output_buffer_state): Redefine.
510         (output_format_decoder): New macro.
511         (output_prefixing_rule): Likewise.
512         (output_line_cutoff): Likewise.
513         (diagnostic_format_decoder): Adjust.
514         (diagnostic_prefixing_rule): Likewise.
515         (diagnostic_line_cutoff): Likewise.
516         (diagnostic_state): Likewise.
517         (diagnostic_kind_count): Likewise.
518         (diagnostic_buffer): Now a macro.
519
520         * diagnostic.c (diagnostic_buffer): Remove definition.
521         (output_is_line_wrapping): Adjust.
522         (set_real_maximum_length): Likewise.
523         (output_set_maximum_length): Likewise.
524         (init_output_buffer): Likewise.
525         (lhd_print_error_function): Likewise.
526         (output_do_verbatim): Likewise.
527
528 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
529
530         * cpperror.c (print_location): Don't print include chain
531         if line == 0.
532         (cpp_begin_message): Update to use DL_ macros.
533         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
534         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
535         cpp_notice, cpp_notice_from_errno): Remove.
536         (cpp_error, cpp_error_with_line): Update to take a diagnostic
537         level.
538         (cpp_errno): New.
539         * cppexp.c (CPP_ICE): Remove.
540         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
541         lex, integer_overflow, _cpp_parse_expr): Update.
542         * cppfiles.c (read_include_file, find_include_file,
543         handle_missing_header, _cpp_read_file, remap_filename): Update.
544         * cpphash.h (enum error_type): Remove.
545         (_cpp_begin_message): Update.
546         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
547         cpp_handle_option, cpp_post_options): Update.
548         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
549         skip_whitespace, parse_identifier, parse_slow, parse_string,
550         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
551         cpp_interpret_charconst): Update.
552         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
553         lex_macro_node, do_undef, glue_header_name, parse_include,
554         do_include_common, read_flag, do_line, do_linemarker, do_ident,
555         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
556         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
557         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
558         _cpp_pop_buffer, do_diagnostic): Update.
559         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
560         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
561         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
562         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
563         cpp_notice, cpp_notice_from_errno): Remove.
564         (cpp_error, cpp_error_with_line): Update to take a diagnostic
565         level.
566         (cpp_errno): New.
567         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
568         collect_args, enter_macro_context, save_parameter, parse_params,
569         _cpp_create_definition, check_trad_stringification,
570         cpp_macro_definition): Update.
571         * cppmain.c (cpp_preprocess_file): Update.
572         * fix-header.c (read_scan_file): Update.
573
574 2002-04-14  Andreas Schwab  <schwab@suse.de>
575
576         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
577
578 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
579
580         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
581
582 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
583
584         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
585         not gnu_hurd.
586
587 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
588
589         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
590
591 2002-04-13      Joel Sherrill <joel@OARcorp.com>
592
593         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
594         sparc-elf and sparc-rtems targets.
595
596 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
597
598         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
599         defined, and __gnu_hurd__ wherever __GNU__ is defined.
600         * arm/linux-elf.h: Likewise.
601         * cris/aout.h: Likewise.
602         * cris/linux.h: Likewise.
603         * i370/linux.h: Likewise.
604         * i386/gnu.h: Likewise.
605         * i386/linux-aout.h: Likewise.
606         * i386/linux-oldld.h: Likewise.
607         * i386/linux.h: Likewise.
608         * i386/linux64.h: Likewise.
609         * ia64/linux.h: Likewise.
610         * m68k/linux-aout.h: Likewise.
611         * m68k/linux.h: Likewise.
612         * mips/linux.h: Likewise.
613         * pa/pa-linux.h: Likewise.
614         * pj/linux.h: Likewise.
615         * rs6000/sysv4.h: Likewise.
616         * s390/linux.h: Likewise.
617         * sh/linux.h: Likewise.
618         * sparc/linux-aout.h: Likewise.
619         * sparc/linux.h: Likewise.
620         * sparc/linux64.h: Likewise.
621         * xtensa/linux.h: Likewise.
622
623 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
624
625         * stmt.c (check_unique_operand_names): Expect operand names to
626         be strings rather than identifiers.  Use simple_cst_equal to
627         compare them.
628         (resolve_operand_name_1): Make same identifier to string change here.
629         * c-parse.in (asm_operand): Convert a named operand into a string.
630         * cp/parse.y (asm_operand): Likewise.
631
632 2002-04-13  Andreas Schwab  <schwab@suse.de>
633
634         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
635
636 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
637
638         Revert these changes:
639
640         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
641
642         PR c++/5571
643         * stor-layout.c (layout_decl): Reset the RTL for the decl.
644
645 2002-04-12  Richard Henderson  <rth@redhat.com>
646
647         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
648         (sparc*-*-solaris): Clean up header files.
649         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
650         and plan on generating 64-bit code.
651         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
652         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
653         * config/sparc/sol2-sld-64.h: Rename ...
654         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
655         for AS_SPARC64_FLAG not defined.
656         * config/sparc/sol2-gld-bi.h: New.
657         * config/sparc/sol2-sld.h: Remove.
658         * config/sparc/sol26-sld.h: New.
659         * config/sparc/sol2.h: Tidy comments.
660         * doc/install.texi: Document sparc-solaris configury changes.
661
662 2002-04-12  Richard Henderson  <rth@redhat.com>
663
664         * recog.c (offsettable_address_p): Match the logic in adjust_address.
665
666         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
667         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
668
669 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
670
671         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
672
673 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
674
675         * pa.c (pa_can_combine_p): Call extract_insn before calling
676         constrain_operands.
677
678 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
679
680         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
681         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
682         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
683         (CPP_PREDEFINES): Handle __declspec.
684         * config/i386/t-interix (USER_H): Remove.
685
686 2002-04-12  DJ Delorie  <dj@redhat.com>
687
688         * integrate.c (compare_blocks): Make comparisons safe for when
689         sizeof(int) < sizeof(char *).
690         (find_block): Likewise.
691
692 2002-04-12  Jan Hubicka  <jh@suse.cz>
693             David Edelsohn  <edelsohn@gnu.org>
694
695         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
696         registers.
697         (symbol_ref_operand): New.
698         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
699         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
700
701 2002-04-12  Andreas Schwab  <schwab@suse.de>
702
703         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
704         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
705         overrides the definition in config/svr4.h.
706
707 2002-04-12      Eric Norum <eric.norum@usask.ca>
708
709         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
710         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
711         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
712         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
713         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
714         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
715         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
716         definitions to config/rtems.h and make the targets more similar.
717
718 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
719
720         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
721         POINTERS_EXTEND_UNSIGNED.
722         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
723         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
724
725         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
726         not specified.
727
728 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
729
730         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
731         depends on TARGET_SHMEDIA, not TARGET_SH5.
732
733 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
734
735         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
736         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
737
738 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
739
740         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
741         no r0 clobber.
742
743 2002-04-12  Andreas Schwab  <schwab@suse.de>
744
745         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
746
747 2002-04-12  Richard Henderson  <rth@redhat.com>
748
749         PR bootstrap/4191
750         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
751
752         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
753         modes spanning multiple hard regs.
754
755         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
756
757 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
758
759         * pa.c (pa_output_function_prologue): Don't accumulate the total
760         number of code bytes when using TARGET_64BIT, or gas, SOM and not
761         the portable runtime.
762         (output_deferred_plabels): Handle 64bit plabels.
763         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
764         generating pic code using the GAS assembler for object formats that
765         are not SOM (ie., ELF32 and ELF64).
766         (output_millicode_call): Check attribute type if attribute length is 28.
767         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
768         dbr_sequence_length once.
769         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
770         dbr_sequence_length once.
771         * pa.h (TARGET_SOM): Define if not defined.
772         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
773         with GAS and not SOM.
774         (jump, call_internal_reg, call_value_internal_reg): Likewise.
775         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
776
777 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
778
779         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
780         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
781         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
782         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
783         elfos.h and dbxelf.h values are fine now.
784         * config/i386/freebsd.h, config/alpha/freebsd.h
785         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
786
787 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
788
789         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
790         or set Acpu or Amachine.  Reformat.
791         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
792         define.
793         (LINK_SPEC): Do not need to undef.
794         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
795         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
796         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
797         define.
798         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
799         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
800         (LINK_SPEC): Do not need to undef.
801         (DONT_USE_BUILTIN_SETJMP): Do not define.
802         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
803         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
804         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
805         Remove trailing spaces.
806         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
807         __ELF__, or set Acpu or Amachine.  Reformat.
808         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
809         define.
810
811 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
812
813         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
814         all other *-*-freebsd* targets.
815
816 2002-04-11  Richard Henderson  <rth@redhat.com>
817
818         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
819
820 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
821
822         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
823         Include {cpu}/{cpu}.h thru tm_file.
824         (alpha*-*-linux*ecoff): Remove target.
825         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
826         (LINK_SPEC): Remove, is not OS independent.
827         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
828         (LINK_SPEC): Do not need to #undef any longer.
829         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
830         any longer.
831         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
832         __ELF__.
833         (LINK_SPEC): Moved here from alpha/elf.h.
834         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
835         SUB_CPP_PREDEFINES.
836         * config/alpha/linux-ecoff.h: Remove.
837         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
838         (CPP_SPEC): Define _POSIX_SOURCE as needed.
839         (CPP_SUBTARGET_SPEC): Do not define.
840         (LINK_SPEC): Do not need to #undef any longer.
841         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
842         * config/alpha/vms.h: Likewise.
843
844 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
845
846         * doc/extend.texi: Remove old claim that typedefs cannot have
847         an alignment attribute.
848
849 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
850
851         PR optimization/6177
852         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
853         bitpos is 0 and bitsize CONCAT size.
854
855 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
856
857         PR c/6223
858         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
859
860 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
861
862         * config/alpha/freebsd.h: Minor reformatting.
863         (CPP_SPEC): Define ELF and add cpp_subtarget.
864         (ASM_SPEC): No longer needed.
865
866 2002-04-11  Richard Henderson  <rth@redhat.com>
867
868         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
869         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
870         (dimode mem/zero splitter): New.
871
872 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
873
874         * config/cris/cris.c (cris_override_options): Tweak error message
875         for PIC not implemented.
876
877         * config/cris/cris.h: Tweak comments related to parameter-passing.
878
879         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
880
881 2002-04-10  Richard Henderson  <rth@redhat.com>
882
883         * except.c (add_ehl_entry): Allow duplicates after landing pad
884         creation.
885
886 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
887
888         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
889
890 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
891
892         * c-decl.c (c_init_decl_processing): Move generation of
893         decls for g77_integer_type_node and friends from here ...
894         * c-common.c (c_common_nodes_and_builtins): ... to here.
895
896 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
897
898         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
899         is only used as frame pointer when frame_pointer_needed is true.
900
901 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
902
903         PR target/817
904         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
905         for the fact that the pool entry uses two words.
906         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
907         1k bytes.
908         (movdf_soft_insn): Similarly.
909         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
910         for the fact that the pool entry uses three words.
911
912 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
913
914         * config/mips/mips.c (mips_va_arg): When using the struct version
915         of the EABI va_list, allow arguments in the register save area to
916         take up less room than a stack argument.
917
918 2002-04-10  Richard Henderson  <rth@redhat.com>
919
920         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
921         if EXPAND_INITIALIZER.
922
923 2002-04-09  Richard Henderson  <rth@redhat.com>
924
925         * config/alpha/alpha.md (movdi_er_maybe_g): New.
926         * config/alpha/alpha.c (alpha_expand_mov): Use it.
927
928 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
929
930         PR optimization/6233
931         * rtlanal.c (pure_call_p): New function.
932         * rtl.h (pure_call_p): Declare.
933         * loop.c (prescan_loop): Use it to set has_nonconst_call.
934         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
935
936 2002-04-09  Eric Christopher  <echristo@redhat.com>
937
938         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
939         information to .comm directive.
940
941 2002-04-09  Richard Henderson  <rth@redhat.com>
942
943         PR c/5078
944         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
945
946 2002-04-09  Richard Henderson  <rth@redhat.com>
947
948         * basic-block.h (flow_delete_block_noexpunge): Declare.
949         (expunge_block_nocompact): Declare.
950         * cfg.c (expunge_block_nocompact): Split out from ...
951         (expunge_block): ... here.
952         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
953         (flow_delete_block_noexpunge): Split out from ...
954         (flow_delete_block): ... here.
955         * cfgcleanup.c (delete_unreachable_blocks): Compact while
956         removing dead blocks.
957         * except.c (exception_handler_labels): Remove.
958         (exception_handler_label_map): New.
959         (struct eh_region): Add aka member.
960         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
961         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
962         (for_each_eh_label, for_each_eh_label_1): New.
963         (init_eh): Register exception_handler_label_map.
964         (free_eh_status): Use free_region.
965         (find_exception_handler_labels): Use the map, not the list.
966         (remove_exception_handler_label): Likewise.
967         (maybe_remove_eh_handler): Likewise.
968         (remove_eh_handler): Use the region aka bitmap.
969         * except.h (exception_handler_labels): Remove.
970         (for_each_eh_label): Declare.
971         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
972         * loop.c (invalidate_loops_containing_label): New.
973         (find_and_verify_loops): Use it.  Use for_each_eh_label.
974         * sched-rgn.c (is_cfg_nonregular): Use
975         current_function_has_exception_handlers.
976
977 2002-04-09  Richard Henderson  <rth@redhat.com>
978
979         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
980         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
981         Do not return changed status.
982         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
983         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
984         New functions that do return changed status.
985         * sbitmap.h: Update decls.
986         * gcse.c, lcm.c: Use _cg functions as needed.
987
988 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
989
990         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
991         (sh64-*-elf*, sh-*-rtemself*): Likewise.
992         * config/sh/embed_bb.c: New file.
993         * config/sh/embed-elf.h: New file.
994         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
995         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
996         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
997         __PTRDIFF_TYPE__ .
998         (SUBTARGET_CPP_PTR_SPEC): Don't define.
999         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
1000         Add subtarget_asm_endian_spec.
1001         (ASM_SPEC): Use subtarget_asm_endian_spec.
1002         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
1003         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
1004         (WCHAR_UNSIGNED): Define.
1005         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
1006         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
1007         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
1008         Fix value.
1009         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
1010         (sh_adjust_cost): Likewise.
1011         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
1012         __PTRDIFF_TYPE__ .
1013         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
1014         (WCHAR_TYPE_SIZE): Likewise.
1015         (ASM_SPEC): Use subtarget_asm_endian_spec.
1016         (SH_ELF_WCHAR_TYPE): #undef/ #define.
1017         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
1018         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
1019         (MAX_WCHAR_TYPE_SIZE): Don't #define .
1020         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
1021         (USER_LABEL_PREFIX): Don't #undef /#define .
1022         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
1023         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
1024         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
1025         (ASM_SPEC): Likewise.
1026         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
1027         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
1028         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
1029         (LIB2FUNCS_EXTRA): Define.
1030         * t-sh64 (LIB2FUNCS_EXTRA): Define.
1031         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
1032         (LIB1ASMFUNCS_CACHE): Define.
1033         (LIB2FUNCS_EXTRA): Redefine empty.
1034
1035 2002-04-08  Richard Henderson  <rth@redhat.com>
1036
1037         * reorg.c (get_branch_condition): Use reversed_comparison_code.
1038
1039 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1040
1041         * config/m68hc11/larith.asm (__map_data_section): Fix condition
1042         and optimize for size.
1043         (__do_global_ctors): Fix pointer comparison.
1044         (__do_global_dtors): Likewise.
1045
1046 2002-04-09  David S. Miller  <davem@redhat.com>
1047
1048         * config/sparc/sparc.c (sparc_extra_constraint_check): New
1049         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
1050         allow reloading pseudos.
1051         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
1052         * config/sparc/sparc-protos.h: Declare it.
1053
1054         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
1055         unsigned comparison warning.
1056         (output_restore_regs): Mark leaf_function as unused.
1057
1058 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1059
1060         * expr.c (is_aligning_offset): New function.
1061         (expand_expr, case COMPONENT_EXPR): Call it.
1062
1063 2002-04-08  David S. Miller  <davem@redhat.com>
1064
1065         PR target/6082
1066         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
1067
1068         Make init_priority work on Sparc when using GNU ld.
1069         * config/sparc/linux.h, config/sparc/linux64.h,
1070         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
1071         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
1072         * config/sparc/sol2-gld.h: New file to do the same.
1073         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
1074         sparc/sol2-gld.h to tm_file.
1075
1076         PR optimization/4328
1077         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
1078         * doc/md.texi: Document it.
1079         * config/sparc/sparc.md (movdi_insn_sp64_novis,
1080         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
1081         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
1082         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
1083         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
1084
1085 2002-04-08  Andreas Jaeger  <aj@suse.de>
1086
1087         * stmt.c (expand_asm_operands): Revert last patch from Richard
1088         Henderson.
1089
1090 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1091
1092         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
1093         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
1094
1095 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1096
1097         * doc/contrib.texi (Contributors): Add David O'Brien.
1098
1099 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
1100
1101         * configure.in (auto-build.h): Use target_alias and build_alias
1102         when running configure.
1103         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
1104         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
1105         * configure: Regenerate.
1106
1107 2002-04-07  David S. Miller  <davem@redhat.com>
1108
1109         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
1110
1111 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1112
1113         PR 5933
1114         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
1115         generating 32-bit pic code.
1116
1117 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
1118
1119         * cppinit.c (cpp_create_reader): Initialize
1120         discard_comments_in_macro_exp.
1121         (COMMAND_LINE_OPTIONS): Add "-CC" option.
1122         (cpp_handle_option): Handle "-CC" option.
1123         * cpplex.c (save_comment): If saving a C++ comment in
1124         a directive, convert it to a C comment.
1125         (_cpp_lex_direct): Pass second comment start character to
1126         save_comment to indicate comment type.
1127         * cpplib.c (_cpp_handle_directive): If processing
1128         a "#define" directive and discard_comments_in_macro_exp
1129         is false,  re-enable saving of comments.
1130         (lex_macro_node): If discard_comments_in_macro_exp is false,
1131         discard any comments before the macro identifier.
1132         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
1133         member.
1134         * cppmacro.c (cpp_get_token): If expanding a macro while
1135         processing a directive, discard any comments we might encounter.
1136         (parse_params): If discard_comments_in_macro_exp is false,
1137         ignore comments in the macro parameter list.
1138         * gcc.c (cpp_unique_options): Add "-CC" option.
1139         (option_map): Map "--comments-in-macros" to "-CC".
1140         * doc/cppopts.texi: Document "-CC" option.
1141         * f/lang-specs.h: Add "-CC" option.
1142         * testsuite/gcc.dg/cpp/maccom1.c: New test.
1143         * testsuite/gcc.dg/cpp/maccom2.c: New test.
1144         * testsuite/gcc.dg/cpp/maccom3.c: New test.
1145         * testsuite/gcc.dg/cpp/maccom4.c: New test.
1146         * testsuite/gcc.dg/cpp/maccom5.c: New test.
1147         * testsuite/gcc.dg/cpp/maccom6.c: New test.
1148
1149 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1150
1151         PR middle-end/6180
1152         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
1153
1154 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
1155
1156         PR c++/5571
1157         * stor-layout.c (layout_decl): Reset the RTL for the decl.
1158
1159         PR opt/5120
1160         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
1161         RTX_UNCHANGING_P for the functions arguments when a tail call
1162         is made.
1163
1164 2002-04-06  Jason Merrill  <jason@redhat.com>
1165
1166         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
1167         (parse_options_and_default_flags): Set them appropriately.
1168         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
1169
1170 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
1171
1172         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
1173         here.
1174
1175         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
1176         semicolon.
1177
1178         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
1179         types come in by-reference.  Fix typo in comment.
1180
1181 2002-04-05  David S. Miller  <davem@redhat.com>
1182
1183         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
1184         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
1185         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
1186         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
1187
1188 2002-04-05  David S. Miller  <davem@redhat.com>
1189
1190         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
1191         are not going to emit return instructions, emit at least a nop
1192         for the sake of sane backtraces.
1193
1194 2002-04-05  Richard Henderson  <rth@redhat.com>
1195
1196         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
1197
1198 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
1199
1200         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
1201
1202 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
1203
1204         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
1205         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
1206         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
1207
1208 2002-04-05  Andreas Schwab  <schwab@suse.de>
1209
1210         * c-convert.c: Include c-common.h.
1211         * Makefile.in (c-convert.o): Updated.
1212
1213 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1214
1215         * mklibgcc.in: Use separate libgcc.map for each multilib.
1216         * Makefile.in (distclean): Don't remove libgcc.map here.
1217
1218 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1219
1220         * Makefile.in (s-mlib): Handle --disable-multilib by separate
1221         genmultilib invocation.
1222
1223 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
1224
1225         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
1226         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
1227         to num_gprs for symmetry.
1228         * config/mips/mips.c: Adjust accordingly.
1229
1230 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1231
1232         * c-common.c (truthvalue_conversion): Rename, update.
1233         * c-common.h (c_common_truthvalue_conversion): New.
1234         * c-convert.c (convert): Update.
1235         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1236         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
1237         * c-typeck.c (build_binary_op, build_unary_op,
1238         build_conditional_expr): Update.
1239         * fold-const.c (constant_boolean_node, fold): Use langhook.
1240         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
1241         * langhooks.h (struct lang_hooks): New hook.
1242         * stmt.c (expand_decl_cleanup): Use langhook.
1243         * tree.h (truthvalue_conversion): Remove.
1244 objc:
1245         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1246
1247 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
1248
1249         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
1250         Add rules to make null object file.
1251
1252 2002-04-04  Jim Blandy  <jimb@redhat.com>
1253
1254         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
1255         macro formal parameter names.
1256
1257 2002-04-04  David S. Miller  <davem@redhat.com>
1258
1259         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
1260
1261 2002-04-04  Richard Henderson  <rth@redhat.com>
1262
1263         PR middle-end/5099
1264         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
1265         Support copies into and out of memory.  Don't accept allows_reg
1266         and allows_mem as gospel.
1267
1268 2002-04-04  Richard Henderson  <rth@redhat.com>
1269
1270         PR opt/6165
1271         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
1272         (write_dependence_p): Likewise.
1273
1274 2002-04-04  Richard Henderson  <rth@redhat.com>
1275
1276         * predict.c (estimate_bb_frequencies): Do frequency calculation
1277         with a volatile temporary.
1278
1279 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
1280
1281         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
1282
1283 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1284
1285         PR c++/6119
1286         * final.c (final_start_function): Don't bump profile_label_no here...
1287         (final_end_function): ...but here.
1288
1289 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1290
1291         * config/sparc/sparc.md (pic): New attribute.
1292         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
1293         into stack slots.
1294         (split after do_builtin_setjmp_setup): New.
1295
1296 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1297
1298         PR fortran/6106
1299         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
1300         change.
1301
1302 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1303
1304         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
1305         UNITS_PER_WORD for zero sized aggregates.
1306
1307 2002-04-03  David S. Miller  <davem@redhat.com>
1308
1309         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
1310         one-character spec for this, just use %(link_gcc_c_sequence).
1311
1312 2002-04-03  David S. Miller  <davem@redhat.com>
1313
1314         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
1315         handling.
1316
1317 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1318
1319         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
1320         (DWARF_FRAME_RETURN_COLUMN): Move.
1321         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1322         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
1323         * pa.c (except.h, predict.h): Include.
1324         (FRP): Delete.
1325         (store_reg_modify, set_reg_plus_d): Revise prototypes.
1326         (output_ascii): Add cast.
1327         (store_reg_modify): Revise to add frame notes.
1328         (set_reg_plus_d): Likewise.
1329         (compute_frame_size): Include space for eh data registers in frame if
1330         the current function calls eh_return.
1331         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
1332         function calls eh_return.  Save eh data registers if the current
1333         function calls eh_return.  Fix code to add frame notes.  Emit
1334         blockage to prevent insns with frame notes being scheduled in the
1335         delay slot of calls.
1336         (hppa_expand_epilogue): Restore eh data registers and do final stack
1337         adjustment if the current function calls eh_return.  Don't add frame
1338         notes.
1339         (output_call): Revise for change in length of call insn.  Don't do
1340         return pointer adjustment for an unconditional jump in the delay slot
1341         of a call when using frame notes.
1342         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
1343         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
1344         (ARG_POINTER_CFA_OFFSET): Define.
1345         * pa.md (return_external_pic): New pattern.
1346         (prologue): Correct formatting.  Use return_external_pic if current
1347         function calls eh_return.
1348         (call_internal_symref, call_value_internal_symref,
1349         sibcall_internal_symref, sibcall_value_internal_symref): Change default
1350         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
1351         respectively.
1352         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
1353
1354         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
1355         list of targets to check using "nop" insn.
1356         * configure: Rebuilt.
1357
1358 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
1359
1360         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
1361
1362 2002-04-03  David S. Miller  <davem@redhat.com>
1363
1364         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
1365         library sequence passed to the linker.
1366         (LINK_COMMAND_SPEC): Use it.
1367         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
1368         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
1369         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1370
1371 2002-04-03  Jason Merrill  <jason@redhat.com>
1372
1373         * except.c (struct eh_status): Remove protect_list.
1374         (begin_protect_partials, end_protect_partials): Remove.
1375         (add_partial_entry): Remove.
1376         * except.h: Remove prototypes.
1377
1378         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
1379         expand_decl_cleanup_eh.
1380
1381         PR c++/5636
1382         * tree.h (CLEANUP_EH_ONLY): New macro.
1383         * stmt.c (expand_decl_cleanup_eh): New fn.
1384         (expand_cleanups): Check CLEANUP_EH_ONLY.
1385         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
1386         Use expand_decl_cleanup_eh.
1387         (expand_stmt): Adjust.
1388         * c-common.h: Adjust prototype.
1389
1390 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
1391
1392         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
1393         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
1394         (cris_target_asm_function_epilogue): Ditto.
1395         (cris_initial_frame_pointer_offset): Ditto.
1396         (cris_simple_epilogue): Ditto.
1397         (cris_expand_builtin_va_arg): Variable-size types come in
1398         by-reference.
1399
1400 2002-04-03  David S. Miller  <davem@redhat.com>
1401
1402         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
1403         little-endian.
1404         (set_fast_math): Correct 'fsr' type.
1405
1406 2002-04-03  Richard Henderson  <rth@redhat.com>
1407
1408         PR opt/3569
1409         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
1410         * toplev.c (check_global_declarations): Use it.
1411         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
1412         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1413         (LANG_HOOKS_DECLS): Add it.
1414         * langhooks.c (lhd_warn_unused_global_decl): New.
1415         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1416         * c-objc-common.c (c_warn_unused_global_decl): New.
1417         * c-tree.h (c_warn_unused_global_decl): Declare.
1418         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1419
1420 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1421
1422         * langhooks-def.h (lhd_set_decl_assembler_name,
1423         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1424         (LANG_HOOKS_INITIALIZER): Update.
1425         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
1426         * langhooks.h (struct lang_hooks): New hook.
1427         * tree.c (set_decl_assembler_name): Move to langhooks.c.
1428         (lang_set_decl_assembler_name): Remove.
1429         (init_obstacks): Don't set hook.
1430         (decl_assembler_name): New function.
1431         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
1432         (decl_assembler_name): New.
1433         (lang_set_decl_assembler_name): Remove.
1434
1435 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1436
1437         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
1438         works properly with .hidden symbols.
1439         * configure: Rebuilt.
1440         * config.in: Rebuilt.
1441         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1442         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
1443         properly with .hidden symbols.
1444
1445 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1446
1447         PR middle-end/6102
1448         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1449         USE argument.
1450
1451 2002-04-03  Richard Henderson  <rth@redhat.com>
1452
1453         PR opt/4120
1454         * sched-rgn.c (sets_likely_spilled): New.
1455         (sets_likely_spilled_1): New.
1456         (add_branch_dependences): Use it.
1457
1458 2002-04-02  Richard Henderson  <rth@redhat.com>
1459
1460         PR opt/4311
1461         * loop.h (LOOP_FIRST_PASS): New.
1462         * loop.c (strength_reduce): Mind it when deciding to unroll.
1463         * toplev.c (rest_of_compilation): Set it.
1464
1465 2002-04-02  David S. Miller  <davem@redhat.com>
1466
1467         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
1468         mems_ok_for_ldd_peep when the order of the loads being examined
1469         is reversed.
1470         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1471         existing comment to increase comprehension of this situation.
1472
1473 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
1474
1475         * config/sh/sh.md: Don't use union real_extract.
1476
1477 2002-04-02  Richard Henderson  <rth@redhat.com>
1478
1479         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1480
1481 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1482
1483         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
1484         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
1485         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
1486         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
1487         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
1488         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
1489         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
1490         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
1491         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
1492         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
1493         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
1494         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
1495         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
1496         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
1497         Include as many configury headers via tm_file as possible.  This
1498         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
1499         * config/openbsd-oldgas.h: New file.
1500         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
1501         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
1502         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
1503         config/i386/i386-coff.h, config/i386/i386-interix.h,
1504         config/i386/iscdbx.h, config/i386/linux-aout.h,
1505         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
1506         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
1507         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
1508         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
1509         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
1510         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
1511         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
1512         config/i386/vxi386.h: Do not directly include configury headers.
1513         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
1514         Directly include configury headers that are no longer automatically
1515         included by the above headers.
1516         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
1517         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
1518         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
1519         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
1520         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
1521         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
1522         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
1523         (TARGET_VERSION): Define.
1524         * config/i386/beos-elf.h, config/i386/freebsd.h,
1525         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
1526         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1527         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
1528         config/i386/sco5.h, config/i386/sysv4.h
1529         (TARGET_VERSION): Do not need to protect.
1530         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
1531         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
1532         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
1533         config/i386/i386-interix.h, config/i386/linux-aout.h,
1534         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
1535         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
1536         (YES_UNDERSCORES): Do not define - not needed.
1537         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
1538         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1539         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
1540         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
1541         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1542         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
1543         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
1544         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
1545
1546 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
1547             Richard Henderson  <rth@redhat.com>
1548
1549         PR c/5484
1550         * function.c (assign_temp): Accept either type or decl argument.
1551         Detect variables whose size is too large to fit into an integer.
1552         * stmt.c (expand_decl): Pass the decl, not the type.
1553
1554 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1555
1556         * protoize.c: Match include directory usage with cppdefault.c.
1557
1558 2002-04-03  Jeffrey A Law  (law@redhat.com)
1559             Hans-Peter Nilsson  <hp@bitrange.com>
1560
1561         * combine.c (simplify_comparison): Avoid narrowing a comparison
1562         with a paradoxical subreg when doing so would drop signficant bits.
1563
1564 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
1565
1566         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1567         if POINTERS_EXTEND_UNSIGNED is defined.
1568
1569 2002-04-02  Richard Henderson  <rth@redhat.com>
1570
1571         PR opt/3967
1572         * local-alloc.c (contains_replace_regs): LO_SUM may contain
1573         replace regs.
1574
1575 2002-04-02  Richard Henderson  <rth@redhat.com>
1576
1577         * doc/standards.texi: Document required freestanding libc entry points.
1578
1579 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
1580
1581         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1582         associated splitter.  Remove MQ constraint.
1583         (ctrdi_internal4): Correct CCmode clobber.
1584
1585 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1586
1587         * milli64.S ($$dyncall): New function.
1588         * t-linux (LIB1ASMFUNCS): Revise module list.
1589         (LIB1ASMSRC): Use pa/milli64.S.
1590
1591 2002-04-02  Richard Henderson  <rth@redhat.com>
1592
1593         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1594         rename solaris_sys_varargs_h.
1595
1596 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1597
1598         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1599         the same mode as its component.
1600
1601 2002-04-02  Richard Henderson  <rth@redhat.com>
1602
1603         PR opt/190
1604         * final.c (this_is_asm_operands): Export.
1605         * output.h (this_is_asm_operands): Declare.
1606         * config/i386/i386.c (print_operand): Error odd asm operands.
1607
1608 2002-04-02  Richard Henderson  <rth@redhat.com>
1609
1610         PR opt/420
1611         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1612
1613 2002-04-01  Richard Henderson  <rth@redhat.com>
1614
1615         PR target/1538
1616         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1617         * fixinc/fixincl.x: Rebuild.
1618
1619 2002-04-01  Richard Henderson  <rth@redhat.com>
1620
1621         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1622         (atomic_alloc, atomic_free): New.
1623         (SIZE, MASK_FOR, PTR_IN): New.
1624         (emergency_reg_state, emergency_reg_state_free): New.
1625         (emergency_labeled_state, emergency_labeled_state_free): New.
1626         (reg_state_alloced, labeled_state_alloced): New.
1627         (alloc_reg_state, free_reg_state): New.
1628         (alloc_label_state, free_label_state, free_label_states): New.
1629         (push, pop, dup_state_stack, free_state_stack): Use them.
1630         (desc_label_state): Likewise.
1631         (uw_frame_state_for): Free label states and state stack.
1632         (uw_update_reg_address): Eliminate warnings.
1633
1634 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1635
1636         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1637         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1638
1639 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1640
1641         * c-decl.c (grokdeclarator): Update.
1642         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1643         * c-tree.h (c_mark_addressable): New.
1644         * c-typeck.c (default_function_array_conversion, build_unary_op,
1645         build_array_ref, convert_for_assignment): Update.
1646         (mark_addressable): Rename.
1647         * calls.c (try_to_integrate, expand_call): Use langhook.
1648         * expr.c (expand_expr): Use langhook.
1649         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1650         * langhooks.h (struct lang_hooks): New hook.
1651         * stmt.c (expand_asm_operands): Use langhook.
1652         * tree.h (mark_addressable): Remove.
1653 objc:
1654         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1655
1656 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1657
1658         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1659         in previous change.
1660
1661 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1662
1663         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1664         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1665
1666 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1667
1668         * c-common.c (unsigned_conversion_warning, convert_and_check,
1669         unsigned_type, signed_type, shorten_compare,
1670         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1671         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1672         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1673         New.
1674         * c-decl.c (grokdeclarator): Update.
1675         * c-format.c (check_format_types): Update.
1676         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1677         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1678         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1679         * convert.c (convert_to_integer): Use new hooks.
1680         * expmed.c (make_tree): Use new hooks.
1681         * expr.c (store_expr): Use new hooks.
1682         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1683         all_ones_mask_p, unextend, fold): Use new hooks.
1684         * langhooks.h (struct lang_hooks_for_types): New hooks.
1685         * tree.h (signed_or_unsigned_type, signed_type,
1686         unsigned_type): Remove.
1687 objc:
1688         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1689         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1690
1691 2002-03-31  Richard Henderson  <rth@redhat.com>
1692
1693         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1694         (desc_frgr_mem): Fix reference to f16-f31.
1695
1696 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1697
1698         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1699         RTVEC_ELT): Const-ify.
1700         * varray.h (VARRAY_CHECK): Const-ify.
1701         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1702         ggc_mark_rtvec, ggc_mark): Const-ify.
1703
1704 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1705
1706         * diagnostic.c: Include langhooks-def.h.
1707         * Makefile.in (diagnostic.o): Update.
1708
1709 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1710
1711         * c-common.c (c_unsafe_for_reeval): Rename.
1712         * c-common.h (c_unsafe_for_reeval): Rename.
1713         * c-decl.c (finish_incomplete_decl): Rename.
1714         (c_init_decl_processing): Don't set langhook.
1715         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1716         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1717         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1718         * c-tree.h (finish_incomplete_decl): Rename.
1719         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1720         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1721         (LANG_HOOKS_INITIALIZER): Update.
1722         * langhooks.c (lhd_unsafe_For_reeval): New.
1723         * langhooks.h (struct langhooks): New hooks.
1724         * toplev.c (incomplete_decl_finalize_hook): Remove.
1725         (wrapup_global_declarations): Update.
1726         * tree.c (lang_unsafe_for_reeval): Remove.
1727         (unsafe_for_reeval): Update.
1728         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1729         Remove.
1730 objc:
1731         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1732         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1733
1734 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1735
1736         * diagnostic.c (print_error_function): Remove.
1737         (default_print_error_function): Rename.
1738         (report_error_function): Update.
1739         * diagnostic.h (print_error_function): Remove.
1740         (default_print_error_function): Remove.
1741         * langhooks-def.h (struct diagnostic_context): Predeclare.
1742         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1743         (LANG_HOOKS_INITIALIZER): Update.
1744         * langhooks.h (struct diagnostic context): Predeclare.
1745         (struct lang_hooks): New hook.
1746
1747 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1748
1749         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1750         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1751         !flag_pic.
1752         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1753         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1754         of PIC_OFFSET_TABLE_REGNUM thruout.
1755         * config/rs6000/rs6000.md: Likewise.
1756         * config/rs6000/darwin.h: Likewise.
1757
1758 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1759
1760         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1761         unsigned HOST_WIDE_INT, not unsigned int.
1762
1763 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1764
1765         PR middle-end/6096, middle-end/6098, middle-end/6099
1766         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1767         CODE_LABELs.
1768         (fill_slots_from_thread): Likewise.
1769
1770 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1771
1772         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1773         floating fields in float regs.
1774         (function_arg_record_value_2): Likewise.
1775
1776 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1777
1778         * config/mmix/mmix.md (define_constants): Remove misleading
1779         FIXME.  Add MMIX_fp_rO_OFFSET.
1780         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1781         saved rO as part of the pattern.  Remove FIXME.
1782         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1783         here, at output-time.
1784
1785 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1786
1787         PR middle-end/6100
1788         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1789         REG_BR_PRED.
1790         (output_v9branch): Likewise.
1791
1792 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1793
1794         * gcc.c: Revert previous patch for now.
1795         * config/i386/djgpp.h: Likewise.
1796
1797 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1798
1799         * config/mmix/crti.asm (_init): Register _fini with atexit.
1800         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1801
1802 2002-03-31  Richard Henderson  <rth@redhat.com>
1803
1804         PR target/3997
1805         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1806         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1807
1808 2002-03-31  Richard Henderson  <rth@redhat.com>
1809
1810         * libgcc2.c (__bb_exit_func): Make static.
1811
1812         * config/alpha/alpha.md (trap): New.
1813
1814 2002-03-31  Richard Henderson  <rth@redhat.com>
1815
1816         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1817         promoted argument types; build trap.
1818         (expand_builtin_trap): New.
1819         (expand_builtin): Use it.
1820         * stmt.c (expand_nl_goto_receivers): Likewise.
1821         * expr.h (expand_builtin_trap): Declare.
1822         * libfuncs.h (LTI_abort, abort_libfunc): New.
1823         * optabs.c (init_optabs): Init abort_libfunc.
1824
1825 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1826
1827         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1828         (LINK_COMMAND_SPEC): ... from here.
1829         (init_gcc_specs): Duplicate it here too, omitting
1830         shared_name in the second copy.
1831         (init_spec): Test for duplicate
1832         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1833
1834 2002-03-30  David S. Miller  <davem@redhat.com>
1835
1836         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1837         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1838
1839 2002-03-30  Roger Sayle <roger@eyesopen.com>
1840             Richard Henderson  <rth@redhat.com>
1841
1842         * regmove.c (combine_stack_adjustments_for_block): Avoid
1843         emitting a stack adjustment of zero bytes.  Let delete_insn
1844         update bb->head.
1845
1846 2002-03-30  Richard Henderson  <rth@redhat.com>
1847
1848         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1849         (sparc_emitting_epilogue): New.
1850         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1851         * config/sparc/sparc-protos.h: Update.
1852         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1853         (TARGET_SWITCHES): Update.
1854         * config/sparc/sparc.md (return): Remove.
1855         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1856         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1857         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1858         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1859         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1860         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1861         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1862         Remove MASK_EPILOGUE.
1863         * doc/invoke.texi: Update.
1864
1865 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1866
1867         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1868         CPP will start the file for us.
1869
1870 2002-03-30  Richard Henderson  <rth@redhat.com>
1871
1872         PR target/5446
1873         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1874         prologue_allocate_stack.
1875         (ia64_single_set): Use insn codes for recognition of special
1876         cases, not rtl matching.
1877         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1878
1879 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1880
1881         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1882
1883 2002-03-30  Richard Henderson  <rth@redhat.com>
1884
1885         PR target/6032
1886         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1887         or -fomit-frame-pointer with profiling.
1888         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1889         (FUNCTION_PROFILER): Do nothing.
1890         (PROFILE_HOOK): New.
1891         * config/sparc/sparc.c (sparc_override_options): Don't check
1892         code models for profiling.
1893         (sparc_function_profiler): Remove.
1894         (sparc_profile_hook): New.
1895         * config/sparc/sparc-protos.h: Update.
1896
1897 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1898
1899         PR optimization/6086
1900         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1901         of SUBREG of volatile MEM or because the MEM was mode dependent,
1902         return CLOBBER instead of unmodified SUBREG.
1903
1904 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1905
1906         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1907         when not optimizing.
1908
1909         * toplev.c (rest_of_compilation): Cann mark_constant_function
1910         only when optimizing.
1911
1912         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1913         are NULL.
1914
1915         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1916         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1917         (try_optimize_cfg): clear all AUX fields.
1918
1919         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1920         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1921         (ix86_address_cost): Be prepared for SUBREGed registers.
1922         (legitimate_address_p): Accept SUBREGed registers.
1923
1924 2002-03-29  Richard Henderson  <rth@redhat.com>
1925
1926         PR target/5672
1927         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1928
1929 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1930
1931         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1932         for aggregate and TFmode types.
1933
1934 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1935
1936         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1937
1938 2002-03-29  Richard Henderson  <rth@redhat.com>
1939
1940         PR target/5886
1941         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1942         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1943
1944 2002-03-29  Richard Henderson  <rth@redhat.com>
1945
1946         PR target/6041
1947         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1948         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1949         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1950         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1951         conditional.
1952         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1953
1954 2002-03-29  Dale Johannesen <dalej@apple.com>
1955
1956         * loop.c (combine_movables): Do allow combination of pseudos.
1957
1958 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1959
1960         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1961         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1962         No functional change except ...
1963         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1964         * doc/install.texi (*-*-freebsd*): Document port configuration.
1965
1966 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1967
1968         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1969         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1970         Use new hooks.
1971         * builtin-types.def (BT_PTRMODE): Update.
1972         * c-common.c (type_for_size): Rename c_common_type_for_size.
1973         (type_for_mode): Similarly.
1974         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1975         Use new hook.
1976         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1977         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1978         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1979         Redefine.
1980         * c-typeck.c (common_type, comptypes, default_conversion):
1981         Use new hooks.
1982         * calls.c: Include langhooks.h.
1983         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1984         calls.
1985         * convert.c: Include langhooks.h
1986         (convert_to_pointer, convert_to_integer): Use new hooks.
1987         * except.c (init_eh): Similarly.
1988         * expmed.c: Include langhooks.h.
1989         (expand_mult_add): Use new hooks.
1990         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1991         try_casesi): Similarly.
1992         * fold-const.c (optimize_bit_field_compare, make_range,
1993         decode_field_reference, fold_truthop, fold): Similarly.
1994         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1995         put_var_into_stack): Similarly.
1996         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1997         LANG_HOOKS_TYPE_FOR_SIZE): New.
1998         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1999         * langhooks.h (lang_hooks_for_types): New hooks.
2000         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
2001         * tree.c (get_unwidened, get_narrower): Similarly.
2002         * tree.h (type_for_mode, type_for_size): Remove.
2003         * varasm.c (force_const_mem): Use new hooks.
2004         * utils2.c (nonbinary_modular_operation): Update.
2005 objc:
2006         * objc-act.c (handle_impent): Update.
2007         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
2008         Redefine.
2009
2010 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
2011
2012         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
2013         * config/ia64/ia64.c (basereg_operand): New.
2014         * config/ia64/ia64-protos.h (basereg_operand): Declare.
2015         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
2016
2017 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
2018
2019         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
2020         unwind information when frame_pointer_needed.
2021         (mmix_assemble_integer): Tweak wording in comment.
2022
2023 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2024
2025         * Makefile.in (except.o): Update.
2026         * except.c: Include langhooks.h.
2027         (init_eh): Use langhook.
2028         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
2029         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
2030         (LANG_HOOKS_INITIALIZER): Update.
2031         * langhooks.h (lang_hooks_for_types): New.
2032         (struct lang_hooks): Add it.
2033         * tree.c (make_lang_type_fn, make_lang_type): Remove.
2034         * tree.h (make_lang_type_fn, make_lang_type): Remove.
2035 config:
2036         * alpha/alpha.c: Include langhooks.h.
2037         (alpha_build_va_list): Use langhook.
2038         * d30v/d30v.c: Include langhooks.h.
2039         (d30v_build_va_list): Use langhook.
2040         * i386/i386.c: Include langhooks.h.
2041         (ix86_build_va_list): Use langhook.
2042         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
2043         * s390/s390.c: Include langhooks.h.
2044         (s390_build_va_list): Use langhook.
2045         * stormy16/stormy16.c: Include langhooks.h.
2046         (stormy16_build_va_list): Use langhook.
2047
2048 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2049
2050         PR c++/5964
2051         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
2052         attributes.
2053         (length): Compute variable length for branches/calls/jumps here.
2054         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
2055         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
2056         define branch_type attribute.
2057         (divsi3_sp32): Maximum length is 6 not 7.
2058         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
2059         call_address_untyped_struct_value_sp32,
2060         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
2061         * config/sparc/sparc.c (empty_delay_slot): New function.
2062         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
2063         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
2064
2065 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2066
2067         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
2068         nonzero_bits if not needed.
2069         (nonzero_bits) [XOR]: Likewise.
2070         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
2071         reg_last_set_mode and mode are both MODE_INT, but not equal.
2072         (record_value_for_reg): Compute reg_last_set_nonzero_bits
2073         in nonzero_bits_mode for MODE_INT modes.
2074
2075 2002-03-28  Richard Henderson  <rth@redhat.com>
2076
2077         PR target/5715
2078         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
2079         to GAS.  Correct drift between alternatives.
2080
2081 2002-03-28  Richard Henderson  <rth@redhat.com>
2082
2083         PR target/6087
2084         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
2085
2086 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
2087
2088         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
2089         emulation to the linker.
2090
2091 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
2092
2093         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
2094         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
2095
2096 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
2097
2098         * combine.c (simplify_and_const_int): Make sure to apply mask
2099         when force_to_mode returns a constant integer.  PR3311.
2100
2101 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2102
2103         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
2104
2105 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2106
2107         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
2108         and Objective-C Dialect Options.
2109
2110 2002-03-28  Richard Henderson  <rth@redhat.com>
2111
2112         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
2113         comparison should be done vs !=0 not >0 return code.  Tidy cases.
2114
2115 2002-03-28  Richard Henderson  <rth@redhat.com>
2116
2117         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
2118         on to c_expand_body.
2119         * c-tree.h (finish_function): Update decl.
2120         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
2121
2122 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2123
2124         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
2125
2126 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
2127
2128         * rtlanal.c: Include flags.h
2129         (may_trap_p): Do not mark FP operations if trapping
2130         if !flag_trapping_math
2131         * Makefile.in (rtlanal.o): Add dependency on flag.h
2132         * ifcvt.c (noce_operand_ok): Avoid the lameness.
2133
2134 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
2135
2136         * mips.md: Use dconst1, not 1.0, as first argument of
2137         REAL_VALUE_LDEXP.  Don't use union real_extract.
2138
2139 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
2140
2141         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
2142         rather than $target.  Heed program_prefix and
2143         program_transform_name.  Search for gas in cross-compiler case too.
2144         "test -x" rather than "test -f".
2145         (gcc_cv_ld): Likewise.
2146         (gcc_cv_nm): Heed program_prefix and program_transform_name.
2147         (gcc_cv_objdump): Likewise.
2148         * configure: Regenerate.
2149
2150 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2151
2152         * Makefile.in (attribs.o): Update.
2153         * attribs.c: Include langhooks.h.
2154         (decl_attributes): Use langhook.
2155         * c-decl.c (insert_default_attributes): Rename.
2156         * c-tree.h (c_insert_default_attributes): New.
2157         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
2158         (LANG_HOOKS_INITIALIZER): Update.
2159         * langhooks.h (struct lang_hooks): New hook.
2160         * tree.h (insert_default_attributes): Remove.
2161 objc:
2162         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
2163
2164 2002-03-27  Andreas Schwab  <schwab@suse.de>
2165
2166         * config/i386/i386.c (classify_argument): Also check for
2167         QUAL_UNION_TYPE.
2168
2169 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2170
2171         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
2172         any more.
2173
2174 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2175
2176         * i960.md (ret): Set PC.
2177         (nonlocal_goto): Fix expander.
2178         * builtins.c (epxand_builin_longjmp): Check that we've emitted
2179         some jump or call.
2180
2181 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
2182
2183         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
2184         of libcall regions.
2185
2186 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2187
2188         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
2189         assigning to BLOCK_FOR_INSN directly.
2190
2191 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
2192
2193         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
2194
2195 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2196
2197         * c-common.c (c_expand_expr): Fix prototype.
2198         * c-common.h (c_expand_expr): Always declare, update.
2199         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2200         * c-objc-common.c (c_objc_common_init): No global hook.
2201         * expr.c (expand_expr): Use langhook.
2202         * expr.h (enum expand_modifier): Conditionally declare.
2203         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
2204         (LANG_HOOKS_INITIALIZER): Update.
2205         * langhooks.c (lhd_expand_expr): New.
2206         * langhooks.h (struct lang_hooks): New hook.
2207         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
2208         (lang_independent_init): Don't default hook.
2209 objc:
2210         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2211
2212 2002-03-27  Richard Henderson  <rth@redhat.com>
2213
2214         PR target/6054
2215         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
2216         TARGET_CONST_GP.  Simplify conditions.
2217
2218 2002-03-27  Richard Henderson  <rth@redhat.com>
2219
2220         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
2221         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
2222         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
2223
2224 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
2225
2226         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
2227         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
2228         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
2229         Remove unnecessary masks.
2230         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
2231         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
2232         -mwindows, -mdll switches and their negations.
2233
2234 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2235
2236         * gcc-common.c (lang_mark_false_label_stack): Remove.
2237         * ggc.h (lang_mark_false_label_stack): Similarly.
2238
2239 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2240
2241         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
2242
2243         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
2244         or __rtems_ is defined.
2245
2246 2002-03-26  Richard Henderson  <rth@redhat.com>
2247
2248         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
2249         if a non-trivial load was emitted.
2250         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
2251         in high+extra+low case.
2252
2253 2002-03-26  Richard Henderson  <rth@redhat.com>
2254
2255         * config.gcc (sparc*-solaris): Use float_format=sparc.
2256
2257 2002-03-26  Richard Henderson  <rth@redhat.com>
2258
2259         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
2260         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
2261         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
2262         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
2263         (WINT_TYPE_SIZE): Fix at 32.
2264
2265 2002-03-26  Richard Henderson  <rth@redhat.com>
2266
2267         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
2268         until after eh landing pad generation.
2269         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
2270         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
2271
2272 2002-03-26  Richard Henderson  <rth@redhat.com>
2273
2274         * expr.h (ADD_PARM_SIZE): One more convert for INC.
2275
2276 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
2277
2278         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
2279         and warning switches.
2280         (cc1_options):  Likewise.
2281
2282 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
2283
2284         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
2285         Restore more of the signal context.  Set no_reg_stack_frame.
2286         * config/ia64/unwind-ia64.c (unw_state_record):
2287         Add no_reg_stack_frame, comments.
2288         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
2289         (uw_update_context): Adjust bsp when unwinding from leaf,
2290         but not signal frame.
2291
2292 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
2293
2294         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
2295
2296 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2297
2298         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
2299
2300 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2301
2302         PR target/5621
2303         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
2304         "Add a pool_range attribute", which was lost during the ARM/Thumb
2305         merge.
2306
2307 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2308
2309         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
2310         a register into the MAC16 accumulator.
2311
2312 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
2313
2314         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
2315         (Warning Options): Document -Wswitch-enum.
2316         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
2317         -Wswitch.
2318         (warn_switch_enum): Define variables.
2319         * flags.h (warn_switch_enum): Declare variables.
2320         * stmt.c (expand_end_case_type): When warn_switch_enum /
2321         -Wswitch-enum, perform switch checks.
2322         Fix PR c/5044.
2323
2324 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2325
2326         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
2327         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
2328         (reload_muladdsi_compare0_scratch): Delete.
2329
2330 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
2331
2332         * doc/install.texi (*-*-freebsd*): Update.
2333
2334 2002-03-26  Richard Henderson  <rth@redhat.com>
2335
2336         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
2337         (SUB_PARM_SIZE): Cast DEC to ssizetype.
2338
2339         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
2340         types from the normal argument frame.
2341
2342         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
2343         variable sized objects by reference.
2344         (sparc_va_arg): Receive them by reference too.
2345
2346 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
2347
2348         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
2349         code to not restoring global registers.
2350
2351 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2352
2353         * Makefile.in (ggc-common.o): Update.
2354         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
2355         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2356         * c-tree.h (c_mark_tree): New.
2357         * ggc-common.c: Include langhooks.h.
2358         (gcc_mark_trees): Use new langhook.
2359         * ggc-callbacks.c: Delete file.
2360         * ggc.h (lang_mark_tree): Remove.
2361         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
2362         (LANG_HOOKS_INITIALIZER): Update.
2363         * langhooks.h (struct lang_hooks): New hook.
2364 objc:
2365         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2366
2367 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2368
2369         * doc/cpp.texi: Exclude entire Top node from printed manual.
2370         Move option index after directive index.  Insert page breaks
2371         before GFDL and concept index.  Index environment variables
2372         with command line options.
2373         * doc/cppenv.texi: Use @vtable for environment variable list.
2374         Add paragraph explaining semantics of empty elements in path
2375         variables.  Exclude a cross-reference to Fishkill from the
2376         manpage.  Remove an unnecessary cross-reference of the entry
2377         right above the referer.  Don't use @anchor in text that goes
2378         into manpage.
2379         * doc/cppopts.texi: Cross-reference the environment variables
2380         section, not the specific environment variable, for consistency.
2381
2382 2002-03-25  Richard Henderson  <rth@redhat.com>
2383
2384         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
2385         anywhere in the block.  Don't refer to insns that have been
2386         removed from the chain.  Iterate backward through the new insns.
2387         Don't refer to edges that have been removed.
2388
2389 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
2390
2391         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
2392         test for overflow of constant.
2393
2394 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
2395
2396         PR target/2623
2397         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
2398         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
2399         these patterns on arm_archv4.
2400
2401 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
2402
2403         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
2404         int".
2405
2406 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2407
2408         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
2409         float_handled, float_handler, float_signal, set_float_handler,
2410         and do_float_handler.  Set handler for SIGFPE to crash_signal.
2411         * toplev.h: Don't prototype do_float_handler.
2412
2413         * c-lex.c: Fold parse_float into lex_number.  Make warning
2414         about portability of hex float constants more informative, and
2415         don't issue it on top of a syntax error.
2416         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
2417         their callers.
2418         * real.h: Define REAL_VALUE_ABS here...
2419         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
2420         simplify_unary_real, simplify_binary_real, and
2421         simplify_binary_is2orm1 into their callers.
2422         * tree.c: Fold build_real_from_int_cst_1 into caller.
2423
2424         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2425
2426         * tsystem.h: Include float.h here...
2427         * libgcc2.c: ... not here.
2428
2429 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
2430
2431         Fixes for: PR bootstrap/3591, target/5676
2432         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
2433         defined.  Do not disable exceptions or rtti.
2434         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
2435         mcore.h.  Disable exceptions and rtti, since they are not
2436         supported by EPOC.
2437
2438 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2439
2440         * c-decl.c (maybe_build_cleanup): Remove.
2441         * expr.c (expand_expr): Use langhook.
2442         * langhooks-def.h (lhd_return_null_tree,
2443         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
2444         (LANGHOOKS_INITIALIZER): Update.
2445         * langhooks.c (lhd_return_null_tree): New.
2446         * langhooks.h (struct lang_hooks): New hook.
2447         * tree-inline.c (initialize_inlined_parameters): Use langhook.
2448         * tree.h (maybe_build_cleanup): Remove.
2449
2450 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2451
2452         * regrename.c (build_def_use): Move recog_memoized
2453         before extract_insn.
2454
2455 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2456
2457         PR target/6043
2458         * expr.c (emit_group_store): Handle storing into CONCAT.
2459
2460 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2461
2462         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2463         corresponding MATCH_DUP.
2464
2465 2002-03-24  Richard Henderson  <rth@redhat.com>
2466
2467         * unroll.c (unroll_loop): Zero label_map.
2468
2469         * gcse.c: Include except.h.
2470         * Makefile.in (gcse.o): Update.
2471
2472 2002-03-24  Richard Henderson  <rth@redhat.com>
2473
2474         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2475         Do resolve_unique_section before shared data clause.
2476
2477 2002-03-24  Richard Henderson  <rth@redhat.com>
2478
2479         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2480
2481 2002-03-24  Richard Henderson  <rth@redhat.com>
2482
2483         * recog.c (peephole2_optimize): Split blocks when EH insns are
2484         generated in the middle of a block.  Do global life update if
2485         zapped EH edges.
2486
2487 2002-03-24  Richard Henderson  <rth@redhat.com>
2488
2489         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2490
2491 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2492
2493         preprocessor/3951
2494         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
2495         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
2496         (init_dependency_output): Don't make no_output decision here.
2497
2498 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
2499
2500         * stmt.c (check_for_full_enumeration_handling): Remove tests of
2501         warn_switch.  Update description.
2502         (expand_end_case_type): Call check_for_full_enumeration_handling
2503         when warn_switch.
2504
2505 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2506
2507         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
2508         (m68hc11_split_move): Call it to see if the source and destination
2509         operands use the same direction auto inc/dec mode, otherwise make the
2510         source an offsetable memory operand and generate an add.
2511
2512 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2513
2514         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
2515         register for operand 2.
2516         ("*subsi3_zero_extendqi"): Likewise.
2517         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
2518         bits so that it is compatible with a pop.
2519         ("*andhi3_gen"): Likewise.
2520         ("xorhi3"): Likewise.
2521
2522 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2523
2524         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2525         -pedantic here...
2526         (cpp_post_options): ... not here.
2527
2528 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2529             Aldy Hernandez  <aldyh@redhat.com>
2530
2531         Removal of separate preprocessor cpp0.
2532
2533         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
2534         cpp0, install-common): Update.
2535         * c-common.c (flag_preprocess_only): New.
2536         (c_common_init): Preprocess for -E.
2537         * c-common.h (flag_preprocess_only): New.
2538         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
2539         * c-objc-common.c (c_init_decl_processing): Exit quickly
2540         for NULL return from c_common_init.
2541         * cpplib.h (cpp_preprocess_file): New.
2542         * cppmain.c (main, general_init, pfile, progname): Remove.
2543         (do_preprocessing): Rename cpp_preprocess_file, don't call
2544         cpp_finish.  Don't close stdout here.
2545         (setup_callbacks): Update prototype.
2546         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
2547         Update.
2548         * tradcpp.c (main): Ignore -quiet.
2549 objc:
2550         * lang-specs.h (default_compilers): Preprocess with cc1obj.
2551
2552 2002-03-24  Richard Henderson  <rth@redhat.com>
2553
2554         PR optimization/5742
2555         * machmode.def: Add inner mode field to complex modes.
2556         * config/mips/mips.c (mips_function_value): Always define.  Add
2557         new argument to handle libcalls.
2558         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
2559         (FUNCTION_VALUE): Likewise.
2560         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
2561         * config/mips/mips-protos.h: Update.
2562
2563 2002-03-23  Richard Henderson  <rth@redhat.com>
2564
2565         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2566         * config/sparc/sparc-protos.h: Update.
2567         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2568
2569 2002-03-23  Richard Henderson  <rth@redhat.com>
2570
2571         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2572         _start or _init begins the text segment.
2573
2574 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
2575
2576         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
2577         not HOST_WIDEST_INT.
2578         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
2579
2580 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
2581
2582         PR java/5489
2583         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
2584         operand argument to output_return_instruction.
2585         * arm.c (arm_print_operand, case 'd'): If the operand is
2586         const_true_rtx then just return.
2587         (arm_print_operand, case 'D'): If the operand is const_true_rtx
2588         then abort.
2589
2590 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2591
2592         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2593         (Warning Options): Document -Wswitch-default.
2594         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2595         -Wswitch.
2596         (warn_switch_default): Define variable.
2597         (warn_switch): Update comment.
2598         * flags.h (warn_switch_default): Declare variable.
2599         (warn_switch): Update comment.
2600         * stmt.c (expand_end_case): Check for and, when
2601         warn_switch_no_default, warn of a missing default case.
2602
2603 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2604
2605         * real.h (N): Special case 128 bit doubles.
2606
2607         * combine.c (simplify_comparison): When widening modes, ignore
2608         sign extension on CONST_INTs.
2609
2610 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2611
2612         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2613         passed to adjust_address.  Fix comment formatting.
2614
2615
2616 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2617
2618         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2619         Always make REAL_VALUE_TYPE a struct containing an array of
2620         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2621         big it is.  Don't declare or use union real_extract.
2622
2623         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2624         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2625         (print_operand), config/arm/arm.c (output_move_double),
2626         config/arm/arm.md (consttable_4, consttable_8),
2627         config/romp/romp.c (output_fpops), config/s390/s390.h
2628         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2629         (xtensa_output_literal): Don't use union real_extract.
2630
2631         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2632         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2633         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2634         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2635         (PRINT_OPERAND): Don't use local version of union
2636         real_extract.
2637
2638         * config/convex/convex.c (check_float_value), config/vax/vax.c
2639         (vax_float_literal), config/m88k/m88k.md (divdf3),
2640         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2641         config/pdp11/pdp11.c (output_move_quad): Don't do host
2642         arithmetic on target floating point quantities.
2643
2644         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2645         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2646
2647         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2648         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2649
2650         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2651         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2652         INFINITY.
2653         * print-rtl.c (print_rtx): Disable code which needs
2654         floating-point emulator.
2655         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2656         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2657         depending on HOST_FLOAT_FORMAT to be defined properly.
2658
2659         * config/1750a/1750a.c (get_double, float_label): Delete.
2660         (print_operand): Delete huge commented-out chunk.  Use
2661         REAL_VALUE_TO_DECIMAL.
2662         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2663         functions.
2664         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2665         IEEE_FLOAT_FORMAT.
2666         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2667         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2668         * config/m88k/m88k.c (real_power_of_2_operand,
2669         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2670         real_extract out of the union; run the input through
2671         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2672         from that into the union.
2673         * config/pdp11/pdp11.c (output_move_double): Rearrange
2674         parentheses to make automatic indenter happy.
2675
2676         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2677         Point" and rewrite to describe current situation.  Also adjust
2678         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2679         match code.
2680         * doc/rtl.texi: Adjust cross reference.
2681
2682 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2683
2684         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2685         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2686         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2687         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2688         prevent use of sp as a reload register.
2689         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2690         non_acc_reg_operand.
2691         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2692         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2693         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2694         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2695
2696 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2697
2698         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2699         * cpplex.c (unterminated): Delete.
2700         (parse_string): No string literal may extend over multiple
2701         lines.  Suppress the error when preprocessing assembly.
2702         * cppmain.c (scan_translation_unit): Strings are single-line.
2703
2704         * doc/cpp.texi: Update to match.
2705
2706 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2707
2708         PR optimization/5854
2709         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2710         Shut up warnings.
2711         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2712         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2713         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2714         const0 if scratch register was not allocated.
2715         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2716         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2717         with GEN_INT (...).
2718         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2719         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2720         with GEN_INT (...) everywhere.  Remove constraints in define_split
2721         patterns.
2722         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2723         require scratch register for setting 0 into regs/non-pushable memory.
2724
2725 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2726
2727         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2728         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2729
2730 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2731
2732         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2733         * cppinit.c (cpp_create_reader):  On by default.
2734         (cpp_handle_option):  Handle -W[no-]endif-labels.
2735         (cpp_post_options):  Also enable if -pedantic.
2736         * cpplib.c (do_else):  Use it.
2737         (do_endif):  Likewise.
2738         * doc/cppopts.texi:  Document new option.
2739         * doc/invoke.texi:  Document new option.
2740
2741 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2742
2743         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2744         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2745
2746 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2747
2748         * flow.c (calculate_global_regs_live): Clear aux fields of
2749         ENTRY and EXIT.
2750
2751 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2752
2753         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2754         REG or MEM subregs, pass rtx * instead of rtx to it.
2755         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2756         rtx * instead of rtx to alter_subreg.
2757         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2758         * config/pj/pj.c (pj_output_rval): Likewise.
2759
2760 2002-03-22  Richard Henderson  <rth@redhat.com>
2761
2762         PR target/3177
2763         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2764         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2765         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2766         (ia64_expand_prologue): Look at int_regs, not words, for number
2767         of incomming int regs.
2768
2769 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2770
2771         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2772
2773 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2774
2775         * toplev.c (flag_loop_optimize, flag_crossjumping):
2776         New static variables.
2777         (rest_of_compilation): Conditionalize crossjumping and
2778         loop optimizer.
2779         (parse_options_and_default_flags): Default loop_optimize and
2780         crossjumping.
2781         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2782         * invoke.texi (crossjumping, loop-optimize): Document.
2783
2784 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2785
2786         * real.c (eiisneg): Move outside #ifdef NANS.
2787
2788 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2789
2790         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2791         frequencies match; avoid match on different loop depths.
2792         (try_crossjump_to_bb): Kill tests that no longer brings time
2793         savings.
2794         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2795         updating code.
2796         (split_edge): Likewise.
2797
2798         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2799         variable.
2800
2801         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2802         * cfgrtl.c: Include insn-config.h
2803         (split_block) Dirtify block in presence of conditional execution
2804
2805 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2806
2807         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2808         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2809         (function_arg): Constify CUMULATIVE_ARGS.
2810         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2811         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2812         (UNITS_PER_DOUBLE): New macro.
2813         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2814         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2815         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2816         fp_regs and stack_words.
2817         (EABI_FLOAT_VARARGS_P): New macro.
2818         * config/mips/mips.c (struct mips_arg_info): New.
2819         (mips_arg_info): New function.
2820         (function_arg_advance): Use it.  Add adjustment instructions here
2821         rather than in function_arg.
2822         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2823         for VOIDmode at the beginning of the function.
2824         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2825         (function_arg_pass_by_reference): Likewise.
2826         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2827         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2828         (mips_va_start): Likewise.  Use the new stack_words field of
2829         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2830         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2831         doubles and other types, aligning the overflow pointer for non-doubles
2832         too.  Remove some code duplication.  Replace hard-coded constants.
2833
2834 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2835
2836         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2837         (CLASS_UNITS): Undefine.
2838         (CLASS_MAX_NREGS): Use FP_INC.
2839         * config/mips/mips.c (compute_frame_size): Likewise.
2840         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2841
2842 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2843
2844         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2845         prototype, and handle lexing numbers and identifiers.
2846         (parse_identifier): Update to new form of parse_slow.
2847         (parse_number): Fast path only, use parse_slow otherwise.
2848         (_cpp_lex_direct): Update calls to parse_number.
2849
2850 2002-03-21  DJ Delorie  <dj@redhat.com>
2851
2852         * bb-reorder.c (make_reorder_chain_1): Protect against
2853         when redundant edges are omitted.
2854         * predict.c (dump_prediction): Likewise.
2855
2856 2002-03-21  Richard Henderson  <rth@redhat.com>
2857
2858         PR target/5996
2859         * fixinc/inclhack.def (solaris_stdio_tag): New.
2860         * fixinc/fixincl.x: Regenerate.
2861
2862 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2863
2864         PR c/5597
2865         * c-typeck.c (process_init_element): Flag non-static
2866         initialization of a flexible array member as illegal.
2867
2868 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2869
2870         * config/rs6000/t-linux64: New.
2871         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2872         t-ppccomm.  Use t-rs6000 and t-linux64.
2873         (powerpc64-*-gnu* <tmake_file>): Likewise.
2874         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2875         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2876         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2877
2878 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2879
2880         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2881         flag_really_no_inline instead of optimize == 0.
2882
2883         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2884
2885         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2886
2887         * flags.h (flag_really_no_inline): New.
2888
2889         * c-common.c (c_common_post_options): Initialize
2890         flag_really_no_inline.
2891
2892         * toplev.c (flag_really_no_inline): New.
2893
2894 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2895
2896         * config/avr/avr.md (length): Fix length computation for
2897         conditional branches.
2898
2899 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2900
2901         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2902         sdbout.o, profile.o): Update.
2903         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2904         langhook.
2905         * c-common.h (gettags): Move here from tree.h.
2906         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2907         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2908         * dbxout.c (dbxout_init): Use getdecls langhook.
2909         * expr.c (expand_expr): Use insert_block langhook.
2910         * fold-const.c: Include langhooks.h.
2911         (fold_range_test, fold_binary_op_with_conditional_arg,
2912         fold): Use global_bindings_p langhook.
2913         * integrate.c (expand_inline_function): Use insert_block langhook.
2914         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2915         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2916         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2917         LANG_HOOKS_GETDECLS): New.
2918         (LANG_HOOKS_INITIALIZER): Update.
2919         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2920         langhook.
2921         * langhooks.h (struct lang_hooks_for_decls): New.
2922         (struct lang_hooks): Update.
2923         * profile.c: Include langhooks.h.
2924         (output_func_start_profiler): Use new langhooks.
2925         * sdbout.c: Include langhooks.h.
2926         (sdbout_init, sdbout_finish): Use getdecls langhook.
2927         * stmt.c: Include langhooks.h.
2928         (expand_fixup, fixup_gotos): Use new langhooks.
2929         * stor-layout.c: Include langhooks.h.
2930         (variable_size): Use global_bindings_p langhook.
2931         * toplev.c (compile_file): Use getdecls langhook.
2932         * tree-inline.c (remap_block): Use insert_block langhook.
2933         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2934         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2935
2936 2002-03-21  Richard Henderson  <rth@redhat.com>
2937
2938         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2939         constants in .data when -fpic.
2940
2941 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2942
2943         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2944         where appropriate.
2945
2946 2002-03-21  Tom Tromey  <tromey@redhat.com>
2947
2948         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2949
2950 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2951
2952         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2953
2954         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2955
2956 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2957             Richard Henderson  <rth@redhat.com>
2958
2959         PR c/5354
2960         * c-common.c (c_expand_expr): Preserve result of a statement
2961         expression if needed.
2962
2963 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2964
2965         PR bootstrap/4195
2966         * genrecog.c (maybe_both_true_mode): Remove.
2967         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2968         * machmode.def (Pmode): Likewise.
2969
2970 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2971
2972         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2973         (nonlocal_mentioned_p_1): New function.
2974         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2975         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2976         (mark_constant_function): Recognize pure functions.
2977         * rtl.h (global_reg_mentioned_p): New prototype.
2978         * rtlanal.c (global_reg_mentioned_p,
2979         global_reg_mentioned_p_1): New function.
2980
2981 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2982
2983         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2984         UNIX assert.h.
2985         * fixinc/fixincl.x: Regenerate.
2986
2987 2002-03-20  Jason Merrill  <jason@redhat.com>
2988
2989         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2990
2991 2002-03-20  Michael Meissner  <meissner@redhat.com>
2992
2993         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2994         -fstrict-aliasing.
2995
2996 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2997
2998         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2999         ".literal_position" directive before the constant pool.
3000
3001 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3002
3003         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
3004         Add Craig Rodrigues.
3005         Add Brad Lucier to testers.
3006
3007 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3008
3009         PR target/4792
3010         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
3011         to if_then_else.
3012         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
3013         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
3014         instead of insn_extract.
3015
3016 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3017
3018         PR bootstrap/4192
3019         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
3020
3021         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
3022         stmt if some case has been output.
3023
3024 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3025
3026         PR c/5972
3027         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
3028         movsfcc_1, movdfcc_1): Add %O2.
3029         * config/i386/i386.c (print_operand): Handle %ON.
3030         Print . before float condition codes in Sun as cmov syntax.
3031         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
3032         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
3033         no longer true.
3034
3035 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
3036
3037         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
3038         return instruction if PC was popped.
3039
3040 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
3041
3042         * config/xtensa/xtensa.md: Remove unused type attributes.
3043         (adddi_carry, subddi_carry): Change type attribute to "multi".
3044
3045 2002-03-19  Dale Johannesen  <dalej@apple.com>
3046
3047         PR optimization/5999, middle-end/5731
3048         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
3049         multiplications by reciprocals.
3050
3051 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3052
3053         * Makefile.in: Update.
3054         * c-common.c: Include langhooks.h.
3055         (inline_forbidden_p): Use new hook.
3056         * diagnostic.c: Include langhooks.h.
3057         (format_with_decl, announce_function,
3058         default_print_error_function): Use new hook.
3059         * dwarf2out.c (dwarf2_name): Use new hook.
3060         * function.c: Include langhooks.h.
3061         (init_function_start): Use new hook.
3062         * langhooks-def.h (lhd_decl_printable_name): New.
3063         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
3064         (LANGHOOKS_INITIALIZER): Update.
3065         * langhooks.c (lhd_decl_printable_name): New.
3066         * langhooks.h (struct lang_hooks): New hook.
3067         * toplev.c (decl_name, decl_printable_name): Remove.
3068         (open_dump_file): Use new hook.
3069         (process_options): Remove old hook.
3070         * tree.h (decl_printable_name): Remove.
3071 objc:
3072         * objc-act.c (objc_init): Remove old hook.
3073         (objc_printable_name): Export.
3074         * objc-act.h (objc_printable_name): New.
3075         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
3076
3077 2002-03-19  Jim Blandy  <jimb@redhat.com>
3078
3079         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
3080         the start_source_file debug hook, not the current line number.
3081
3082 2002-03-19  Richard Henderson  <rth@redhat.com>
3083
3084         * flow.c (EH_USES): Provide default.
3085         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
3086         * doc/tm.texi (EH_USES): New.
3087
3088         * config/ia64/ia64.c (ia64_eh_uses): New.
3089         * config/ia64/ia64-protos.h: Update.
3090         * config/ia64/ia64.h (EH_USES): New.
3091
3092 2002-03-19  Richard Henderson  <rth@redhat.com>
3093
3094         * varasm.c (output_constant_def): Fix stupid typo.
3095
3096 2002-03-19  Richard Henderson  <rth@redhat.com>
3097
3098         PR 5879
3099         * except.c (current_function_has_exception_handlers): New.
3100         * except.h: Declare it.
3101         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
3102         Combine tests that disable all sibcalls for the function.
3103
3104 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
3105
3106         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
3107         for INTEGER_CST.
3108
3109 2002-03-19  Richard Henderson  <rth@redhat.com>
3110
3111         PR 5977, 5991
3112         * config/ia64/ia64.c: Revert 2002-03-01 patch.
3113         * config/ia64/ia64.h (INIT_EXPANDERS): New.
3114
3115 2002-03-19  Jim Blandy  <jimb@redhat.com>
3116
3117         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
3118         name, even if the replacement list contains no tokens, as required
3119         by Dwarf.
3120
3121 2002-03-19  Jason Merrill  <jason@redhat.com>
3122
3123         * varasm.c (globalize_decl): Get the name from the RTL, not
3124         DECL_ASSEMBLER_NAME.
3125
3126         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
3127
3128 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
3129
3130         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
3131         subdi_carry): Define.
3132
3133 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3134
3135         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
3136         about -fpic/-fPIC if extra_warnings set.
3137
3138 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3139
3140         * expr.c (expand_expr): Sign-extend CONST_INT generated from
3141         TREE_STRING_POINTER.
3142         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
3143
3144 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3145
3146         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
3147         in favor of SP if FRAME_POINTER_REQUIRED is false.
3148
3149 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
3150
3151         * emit-rtl.c (gen_int_mode): New function.
3152         * rtl.h: Prototype for it.
3153         * combine.c (make_extraction, simplify_comparison), expmed.c
3154         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
3155         (convert_modes, store_field), optabs.c (expand_fix),
3156         simplify-rtx.c (neg_const_int, simplify_unary_real),
3157
3158         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
3159         Use it instead of GEN_INT (trunc_int_for_mode (...)).
3160
3161 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
3162
3163         PR c/5656
3164         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
3165         convert_parm_for_inlining.
3166         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3167         Define.
3168         * langhooks-def.h: Likewise.
3169         * objc/objc-lang.c: Likewise.
3170         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
3171         function.
3172         * tree-inline.c (initialize_inlined_parameters):
3173         Call convert_parm_for_inlining lang hook if needed.
3174         * c-typeck.c (c_convert_parm_for_inlining): New function.
3175         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
3176
3177 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
3178
3179         * calls.c (precompute_arguments): Do not assume that temporaries
3180         can be destroyed after expanding the argument.
3181         (expand_call): Likewise.
3182
3183 2002-03-15  Eric Christopher  <echristo@redhat.com>
3184
3185         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
3186         Fix register preference on last change.
3187         * config/mips/mips.c (mips_return_in_memory): New function.
3188         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
3189         * config/mips/mips-protos.h: Declare.
3190         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
3191         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
3192
3193 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
3194
3195         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
3196         a register too.
3197         (anddi3, iorsi3): Likewise.
3198
3199         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
3200         use %gprel for symbols that are going to be placed in linkonce
3201         sections.
3202
3203         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
3204         RETURN_ADDRESS_POINTER_REGNUM to $ra.
3205         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
3206         not needed.  Disregard leaf_function_p().
3207         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
3208         mips16 frame pointer.
3209         * config/mips/mips.md (store ra): Only to small SP offsets.
3210         2001-08-22  Graham Stott  <grahams@redhat.com>
3211         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
3212         return a REG rtx for the return address register.
3213
3214 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
3215
3216         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
3217         constant-pool addresses as "mode-dependent".
3218         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
3219
3220 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
3221
3222         PR target/5740
3223         * expr.c (emit_group_load): Use extract_bit_field if
3224         needed for CONCAT arguments.
3225
3226 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
3227
3228         PR target/4863
3229         * arm.md (tablejump): Make this a define_expand.  For PIC add the
3230         offset to the base of the table.
3231         (thumb_tablejump): Matcher for Thumb tablejump insn.
3232         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
3233         as the difference of two labels.
3234         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3235         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
3236         tables in the code.
3237         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3238         * arm.c (get_jump_table_size): If the table is not in the text
3239         section, return zero.
3240
3241 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
3242
3243         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
3244         of gen_rtx_SUBREG.
3245         (arm_reload_out_hi): Use gen_lowpart instead of
3246         gen_rtx_SUBREG to access QImode components.
3247         * config/arm/arm.md: Disable zero_extend split for QImode
3248         subregs in BIG_ENDIAN mode.
3249         (storehi_bigend): Match use of least significant byte.
3250         (storeinthi): Remove extraneous SUBREG.
3251         Add missing construction of operands[2].
3252         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
3253         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
3254         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
3255
3256 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
3257
3258         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
3259         any_operand.
3260
3261 2002-03-17  Richard Henderson  <rth@redhat.com>
3262
3263         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
3264         explicitly.
3265
3266 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3267
3268         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
3269         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
3270
3271 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3272
3273         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
3274
3275         * predict.c (estimate_bb_frequencies): Delete unused variables.
3276
3277 2002-03-17  Richard Henderson  <rth@redhat.com>
3278
3279         * config/ia64/ia64.c (ia64_attribute_table): Move before
3280         targetm definition.  Make static.
3281
3282 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3283
3284         * c-common.h (yyparse, c_common_parse_file): New.
3285         * c-lang.c: Include c-common.h.
3286         (LANG_HOOKS_PARSE_FILE): Redefine.
3287         * c-lex.c: Include c-common.h.
3288         (yyparse): Rename c_common_parse_file.  Call yyparse.
3289         * c-parse.in (yyparse): Remove macro.
3290         * c-tree.h (yyparse_1): Remove.
3291         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
3292         (LANG_HOOKS_INITIALIZER): Update.
3293         * langhooks.h (struct lang_hoooks): New hook parse_file.
3294         * toplev.c (compile_file): Use parse_file hook.
3295         * tree.h (yyparse): Remove.
3296         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
3297
3298 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3299
3300         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
3301         float_truncate, not fix.
3302         ("*truncdfsf2_real"): Ditto.
3303         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
3304
3305         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
3306
3307 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
3308
3309         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
3310         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
3311         where appropriate.  Make the second reference to
3312         leaf_function_p a function call, as intended.  Reindented.
3313
3314         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
3315         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
3316
3317         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
3318         add register to non-constant into sp.
3319
3320         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
3321         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
3322         (mips16_gp_pseudo_rtx): Lose.
3323         (INIT_EXPANDERS): Deleted.
3324         * config/mips/mips.c (mips_init_machine_status): New.
3325         (mips_free_machine_status): New.
3326         (mips_mark_machine_status): New.
3327         (override_options): Set them.
3328         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
3329         (struct machine_function): ... new.  Replaced all references.
3330         (mips_add_gc_roots): Don't mark them.
3331         (embedded_pic_fnaddr_reg): New, extracted from...
3332         (embedded_pic_offset): ... here.
3333         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
3334         (movsi): Likewise.
3335
3336 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3337
3338         * cppinit.c: Revert -MD removal.
3339
3340 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3341
3342         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
3343         soft registers by default for 68HC12.
3344         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
3345         when compiling with -fomit-frame-pointer.
3346         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
3347         (expand_epilogue): Likewise.
3348         (m68hc11_gen_rotate): Use exg when rotating by 8.
3349
3350 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3351
3352         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
3353         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
3354         (splits): Remove unused add splits.
3355         ("*addhi3_68hc12"): Tune constraints.
3356         ("addhi_sp"): Try to use X instead of Y in all cases and if the
3357         constant fits in 8-bits and D is dead use abx/aby instructions.
3358         ("*addhi3"): Remove extern declaration of ix_reg.
3359         ("*subsi3"): Optimize and provide new split.
3360         ("subhi3"): Cleanup.
3361         ("*subhi3_sp"): Avoid saving X if we know it is dead.
3362         (arith splits): For 68hc12 save the address register on the stack
3363         and do the arithmetic operation with a pop.
3364
3365 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3366
3367         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
3368         allocating QImode in address registers.
3369         ("*movqi_m68hc11"): Likewise.
3370
3371 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
3372
3373         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
3374
3375 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3376
3377         * cppinit.c (print_help): Display -MD and -MMD.
3378         Don't display usage string.  Update assertion syntax and
3379         typo.
3380         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
3381         (cpp_handle_option): Update.
3382
3383 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
3384
3385         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
3386         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
3387         and define it so that regardless of target CPU size,
3388         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
3389         of "int" rather than "long."
3390
3391 2002-03-15  Richard Henderson  <rth@redhat.com>
3392
3393         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
3394         size as a tree.
3395
3396 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3397
3398         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
3399         ("tstqi" split): Avoid using memory for tstqi on address register.
3400         (splits): Remove constraints.
3401         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
3402         ("cmpdf", "cmpsf"): Remove since not used.
3403         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
3404         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
3405
3406 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3407
3408         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
3409         ("neghi2"): Tighten constraints.
3410         ("one_cmplsi2"): Optimize and simplify split.
3411         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
3412
3413 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3414
3415         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
3416         and split of AND operation to clear the upper bits.
3417         ("*logicalsi3_zextqi"): Likewise.
3418         ("*logicallhi3_zexthi_ashift8"): Likewise.
3419         ("*logicalsi3_silshr16"): Likewise.
3420         ("logicalsi3_silshl16"): Likewise.
3421         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
3422
3423 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3424
3425         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
3426         (m68hc11_indirect_p): New function.
3427         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
3428         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
3429         TARGET_M6812.
3430         (asm_print_register): Likewise.
3431         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
3432         (m68hc11_indirect_p): Declare.
3433         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
3434         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
3435         (TARGET_SWITCHES): New option -mrelax.
3436         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
3437         destination.
3438         ("iorsi3", "xorsi3"): Likewise.
3439         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
3440         ("*andhi3_mem"): New to handle destination in memory with bclr
3441         and a scratch register.
3442         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
3443         ("*andhi3_const"): New when operand2 is constant.
3444         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
3445         ("*andhi3_gen"): Cleanup of the old "andhi3".
3446         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
3447         ("xorqi3"): Update constraints.
3448
3449 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3450
3451         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
3452         for reg_equiv_memory_loc when the operand is a register that does
3453         not get a hard register (stack location).
3454         (tst_operand): After reload, accept all memory operand.
3455         (symbolic_memory_operand): Fix detection of symbolic references.
3456         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
3457         accept symbols and any constant.
3458
3459 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3460
3461         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
3462         note on the insn that sets the soft frame register.
3463         (must_parenthesize): ix and iy are also reserved names.
3464         (print_operand_address): One more place where parenthesis are required
3465         to avoid confusion with register names.
3466         (m68hc11_gen_movhi): Allow push of stack pointer.
3467         (m68hc11_check_z_replacement): Fix handling of parallel with a
3468         clobber.
3469         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
3470         the replacement register is.
3471         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
3472         and D8_REGS classes.
3473         (MODES_TIEABLE_P): All modes are tieable except QImode.
3474
3475 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3476
3477         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
3478         (___subdi3): Likewise.
3479         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
3480         (__map_data_section): Optimize 68hc11 case.
3481
3482 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3483
3484         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
3485         than a shift to avoid adding a register with itself.
3486         (m68hc11_memory_move_cost): Take into account NO_REGS.
3487         (m68hc11_register_move_cost): Update and use memory move cost
3488         for soft registers.
3489         (m68hc11_address_cost): Make cost of valid offset not 0 so that
3490         it gives more opportunities to cse to optimize.
3491         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
3492         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
3493
3494 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
3495
3496         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
3497         * c-common.def (CLEANUP_STMT): New tree node.
3498         * c-common.h (CLEANUP_DECL): New macro.
3499         (CLEANUP_EXPR): Likewise.
3500         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
3501         * expr.c (expand_expr): Tidy.
3502         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
3503         * tree-inline.c (initialize_inlined_parameters): Clean up
3504         new local variables.
3505
3506 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3507
3508         PR bootstrap/4128
3509         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
3510         before movrXX only, use reg_overlap_mentioned_p.
3511         Only special case NE if just one insn can be generated.
3512
3513 2002-03-15  Jason Merrill  <jason@redhat.com>
3514
3515         * varasm.c (assemble_variable): Call resolve_unique_section before
3516         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
3517         of error_mark_node.
3518
3519 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3520
3521         PR target/5170
3522         * arm.md (split pattern for thumb shiftable immediates): Add comment
3523         explaining non-obvious test.
3524
3525 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3526
3527         PR target/5712
3528         * arm.md (movaddr, movaddr_insn): Delete.
3529
3530 2002-03-15  Jason Merrill  <jason@redhat.com>
3531
3532         * toplev.c (wrapup_global_declarations): Clarify variable handling.
3533         -fkeep-static-consts doesn't apply to comdats.
3534
3535 2002-03-14  Richard Henderson  <rth@redhat.com>
3536
3537         * c-decl.c: Include c-pragma.h.
3538         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
3539         (finish_function): Tidy.
3540         * c-pragma.c: Include c-common.h.
3541         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
3542         (handle_pragma_weak): Use them.
3543         (init_pragma): Register pending_weaks.
3544         * c-pragma.h (maybe_apply_pragma_weak): Declare.
3545         * print-tree.c (print_node): Print DECL_WEAK.
3546         * varasm.c (mark_weak_decls): Remove.
3547         (remove_from_pending_weak_list): Remove.
3548         (add_weak): Remove.
3549         (asm_emit_uninitialised): Call globalize_decl for weak commons.
3550         (weak_decls): Make a tree_list.
3551         (declare_weak): Cons weak_decls directly.
3552         (globalize_decl): Remove weak_decls elements directly.
3553         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
3554         symbols.  Don't pretend to handle aliases.
3555         (init_varasm_once): Update weak_decls registry.
3556         * Makefile.in: Update dependencies.
3557
3558 2002-03-14  Richard Henderson  <rth@redhat.com>
3559
3560         PR target/5312
3561         * config/ia64/ia64.c: Include tm_p.h last.
3562         (gen_nop_type): Remove duplicate definition.
3563         (cycle_end_fill_slots): Set sched_data for second L slot.
3564         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
3565         (nop_cycles_until): Fix typos.
3566
3567 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3568
3569         PR optimization/5891
3570         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
3571
3572 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
3573
3574         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
3575           descriptors correctly.
3576
3577 2002-03-14  Michael Meissner  <meissner@redhat.com>
3578
3579         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
3580         100, allowing MAX_UNROLLED_INSNS to be overridden.
3581
3582         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
3583         --param.
3584
3585         * unroll.c (params.h): Include.
3586         (MAX_UNROLLED_INSNS): Delete, now in params.h.
3587
3588         * doc/invoke.texi (--param max-unroll-insns): Document.
3589
3590         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
3591
3592 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3593
3594         * arm.md: Fix warnings about constraints in peepholes and splits.
3595
3596 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
3597
3598         * cpphash.h (struct lexer_state): Remove line_extension member.
3599         * cpplib.c (dequote_string, do_linemarker): New functions.
3600         (linemarker_dir): New data object.
3601         (DIRECTIVE_TABLE): No longer need to interpret #line in
3602         preprocessed source.  Delete obsolete comment about return
3603         values of handlers.
3604         (end_directive, directive_diagnostics, _cpp_handle_directive):
3605         Don't muck with line_extension.
3606         (directive_diagnostics): No need to issue warnings for
3607         linemarkers here.
3608         (_cpp_handle_directive): Issue warnings for linemarkers here,
3609         when appropriate.  Dispatch linemarkers to do_linemarker, not
3610         do_line.
3611         (do_line): Code to handle linemarkers split out to do_linemarker.
3612         Convert escape sequences in filename argument, both places.
3613
3614         * cppmacro.c (quote_string): Rename cpp_quote_string and
3615         export.  All callers changed.
3616         * cpplib.h (cpp_quote_string): Prototype.
3617         * cppmain.c (print_line): Call cpp_quote_string on to_file
3618         before printing it.
3619
3620         * doc/cpp.texi: Document that escapes are now interpreted in
3621         #line and in linemarkers, and that non-printing characters are
3622         converted to octal escapes when linemarkers are generated.
3623
3624 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
3625
3626         * emit-rtl.c (try_split): Use delete_insns.
3627         * recog.c (split_all_insns): Fix terminating condition.
3628
3629 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3630             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
3631
3632         PR target/5828
3633         * arm.c (arm_output_epilogue): Fix floating-point register save
3634         adjustment when using a frame pointer.
3635
3636 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
3637
3638         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
3639         * config/mips/mips.c (compute_frame_size): Retrofit them here.
3640         (save_restore_insns, mips_expand_epilogue): And here.
3641         (build_mips16_call_stub): And here.
3642         (mips_function_value): Use the new macros to decide whether a single
3643         or complex float can be returned in floating-point registers.  Return
3644         a parallel rtx in the complex case.
3645
3646 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
3647
3648         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
3649         call after liveness analysis.
3650
3651         * recog.c (split_insn): Use delete_insn_and_edges.
3652
3653         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
3654         instructions to have branch prediction notes.
3655         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
3656
3657 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
3658
3659         * configure.in: Don't pass -Wno-long-long to a ADA compiler
3660         that doesn't support it.
3661         * configure: Regenerate.
3662
3663 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3664
3665         PR target/5626
3666         * config/sparc/sparc.md (normal_branch, inverted_branch,
3667         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3668         inverted_fp_branch): Adjust calls to output_cbranch.
3669         Set length attribute.
3670         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
3671         output_v9branch.  Set length attribute.
3672         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
3673         predicates.
3674         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
3675         (output_cbranch): Likewise.  Handle far branches.
3676         (output_v9branch): Handle far branches.
3677         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
3678         Adjust prototypes.
3679         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
3680         noov_compare64_op predicates.
3681
3682 2002-03-13  Jason Merrill  <jason@redhat.com>
3683
3684         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
3685         into the function and constify it.
3686         * gthr-dce.h, gthr-solaris.h: Likewise.
3687
3688 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
3689
3690         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
3691         * config/rs6000/rs6000.c (rs6000_va_arg): Use
3692         std_expand_builtin_va_arg if not ABI_V4.
3693
3694 2002-03-13  Jason Merrill  <jason@redhat.com>
3695
3696         * varasm.c (globalize_decl): New fn.
3697         (assemble_start_function): Use it.
3698         (asm_emit_uninitialized): Use it.
3699         (assemble_alias): Use it.
3700         (assemble_variable): Use it.
3701
3702 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
3703
3704         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
3705         2002-03-12 internal visibility change.
3706         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
3707         visibility into SYMBOL_REF_FLAG.
3708
3709 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
3710
3711         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
3712         VOIDmode operand.  Add compile-time optimization for constant results.
3713
3714 2002-03-12  Jason Merrill  <jason@redhat.com>
3715
3716         * c-typeck.c (convert_for_assignment): Don't allow conversions
3717         between pointers and references.  Only allow lvalues to convert to
3718         reference.
3719
3720 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
3721
3722         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
3723         before prologue, to avoid scheduling problems.
3724
3725 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3726
3727         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3728         (ELIMINABLE_REGS): Add sfp->sp.
3729         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
3730
3731 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3732
3733         PR optimization/5892
3734         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
3735
3736 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3737
3738         * loop.c (basic_induction_var): Don't call convert_modes if mode
3739         classes are different.
3740
3741 2002-03-12  Richard Henderson  <rth@redhat.com>
3742
3743         PR optimization/5901
3744         * function.c (reposition_prologue_and_epilogue_notes): Position
3745         the markers after/before the last/first insn not deleted.
3746
3747 2002-03-12  Richard Henderson  <rth@redhat.com>
3748
3749         PR optimization/5878
3750         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
3751         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
3752         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3753
3754         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
3755         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
3756         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
3757
3758         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
3759         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
3760         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
3761         also.  Don't set it if not flag_pic.
3762         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
3763         to be INVALID_REGNUM when not used.
3764
3765 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
3766
3767         * expmed.c (store_bit_field): Reset alias set for memory.
3768         (extract_bit_field): Same.
3769
3770 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3771
3772         * c-common.c (c_tree_code_type, c_tree_code_length,
3773         c_tree_code_name, add_c_tree_codes): Delete.
3774         * c-common.h (add_c_tree_codes): Delete.
3775         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
3776         Define.
3777         * c-objc-common.c (c_objc_common_init): Don't call
3778         add_c_tree_codes, instead set lang_unsafe_for_reeval.
3779         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3780         objc_tree_code_name, add_objc_tree_codes): Delete.
3781         (objc_init): Don't call add_objc_tree_codes.
3782         * objc/objc-lang.c (tree_code_type, tree_code_length,
3783         tree_code_name): Define.
3784         * toplev.c (lang_independent_init): Don't set
3785         tree_code_length[IDENTIFIER_NODE].
3786         * tree.c (tree_code_type, tree_code_length, tree_code_name):
3787         Delete definitions, moved to language front-ends.
3788         * tree.def (IDENTIFIER_NODE): Hardwire the length.
3789         * tree.h (tree_code_type, tree_code_length, tree_code_name):
3790         Const-ify.
3791         (tree_code_length): Change type to unsigned char.
3792
3793 2002-03-12  Richard Henderson  <rth@redhat.com>
3794
3795         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
3796         internal visibility change.
3797
3798 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3799
3800         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
3801         validize_mem() instead of change_address to avoid clobbering
3802         memory attributes.
3803
3804 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3805
3806         * c-lex.h (position_after_whitespace): Remove.
3807
3808 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
3809
3810         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
3811         (lex_string): Use unsigned char pointers.
3812
3813 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3814
3815         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3816         is not a valid memory_operand.
3817
3818 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3819
3820         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3821         * config/xtensa/lib1funcs.asm: Fix copyright to include
3822         special case for libgcc files.
3823         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3824         (__divsi3): Likewise.
3825         (__umodsi3): Likewise.
3826         (__modsi3): Likewise.
3827         * config/xtensa/lib2funcs.S: Fix copyright to include
3828         special case for libgcc files.
3829
3830 2002-03-12  Tom Rix  <trix@redhat.com>
3831
3832         * collect2.c (resolve_lib_name): Move outside of
3833         OBJECT_FORMAT_COFF ifdef.
3834         (ignore_library): Same.
3835
3836 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3837
3838         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3839
3840 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3841
3842         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3843         to function_section before writing out the constant pool.
3844
3845 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
3846
3847         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3848         zero_constant.
3849         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3850
3851 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
3852
3853         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3854         (adddi3): Likewise.
3855         (movdf): Likewise.
3856         (movdi): Likewise.
3857         (cmpsi splitter): Likewise.
3858         (modsi3): Fail if <= 0.
3859         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3860         redundant test when HOST_BITS_PER_WIDE_INT != 32.
3861         (reg_or_sub_cint64_operand): Likewise.
3862         (num_insns_constant_wide): Optimize sign extension.
3863         (rs6000_legitimize_address): Likewise.
3864
3865 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3866
3867         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3868         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3869
3870 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3871
3872         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3873         address calculation.
3874
3875 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3876
3877         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3878         scratch register to DImode / TImode.
3879         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3880         register used does not overlap the target.
3881
3882 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3883
3884         * Makefile.in (debug.o): Depend on debug.h.
3885         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3886         * debug.c (do_nothing_debug_hooks): Likewise.
3887         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3888         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3889         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3890         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3891         * dwarfout.c (dwarf_debug_hooks): Likewise.
3892         * integrate.c (output_inline_function): Likewise.
3893         * objc/objc-act.c (synth_module_prologue): Likewise.
3894         * sdbout.c (sdb_debug_hooks): Likewise.
3895         * toplev.c (debug_hooks): Likewise.
3896         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3897
3898 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3899
3900         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3901         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3902         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3903         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3904         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3905         * defaults.h (POINTER_SIZE): Define.
3906         * doc/tm.texi (POINTER_SIZE): Document default.
3907
3908 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3909
3910         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3911
3912 2002-03-11  Richard Henderson  <rth@redhat.com>
3913
3914         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3915         if rebuild_label_notes_after_reload.
3916
3917 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
3918
3919         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
3920         emit pic register load if "internal" visibility.
3921         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3922         (cris_expand_builtin_va_arg): Do all computations on trees.
3923
3924 2002-03-11  Richard Henderson  <rth@redhat.com>
3925
3926         * rtlanal.c: Include recog.h.
3927         (keep_with_call_p): Fix thinko.
3928         * Makefile.in (rtlanal.o): Update dependencies.
3929
3930 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
3931
3932         * genflags.c (gen_insn): Use IS_VSPACE.
3933         * genoutput.c (output_insn_data): Likewise.
3934         (process_template): Likewise.
3935
3936 2002-03-11  Richard Henderson  <rth@redhat.com>
3937
3938         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3939
3940 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3941
3942         * Makefile.in: Update.
3943         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3944         Update documentation.
3945         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3946         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3947
3948 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
3949
3950         * Makefile.in: Give texi2pod its input file as a command line
3951         argument, not on stdin.
3952
3953 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
3954             Daniel Berlin  <dan@dberlin.org>
3955
3956         C++ alias analysis improvement.
3957         * alias.c (record_component_aliases): Record aliases for base
3958         classes too.
3959
3960 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3961
3962         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3963
3964 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
3965
3966         * toplev.c (vms_fopen): Remove, not needed.
3967
3968         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3969
3970         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3971
3972         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3973         for FP, already done later.
3974
3975         * toplev.c (debug_args): Add entry for VMS_DEBUG.
3976         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3977
3978 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
3979
3980         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3981         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3982         LARGEST_EXPONENT_IS_NORMAL for the given mode.
3983         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3984         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3985         (ediv, emul, eldexp, esqrt): Likewise.
3986         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3987         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3988         (saturate): New function.
3989         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3990         (make_nan): Use a saturation value instead of a NaN if
3991         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
3992         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3993         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
3994         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
3995         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3996         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3997         !ROUND_TOWARDS_ZERO.
3998         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3999         (ROUND_TOWARDS_ZERO): Document.
4000
4001 2002-03-11  Andreas Jaeger  <aj@suse.de>
4002
4003         * cfg.c (dump_flow_info): Remove unused variable.
4004
4005 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
4006
4007         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
4008         computations on trees.
4009
4010 2002-03-10  Richard Henderson  <rth@redhat.com>
4011
4012         PR 5693:
4013         * reload.c (copy_replacements_1): New.
4014         (copy_replacements): Use it to recurse through the rtx.
4015
4016 2002-03-10  Richard Henderson  <rth@redhat.com>
4017
4018         * loop.c (strength_reduce): Compute number of iterations as
4019         unsigned HOST_WIDE_INT.
4020
4021 2002-03-10  Richard Henderson  <rth@redhat.com>
4022
4023         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
4024         to move away from the end of the block.
4025
4026 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4027
4028         PR preprocessor/5899
4029         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
4030
4031 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4032
4033         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
4034
4035         * attribs.c (decl_attributes): Fix signed/unsigned warning.
4036
4037 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
4038
4039         * config/mmix/mmix.c: Improve comments.
4040         (mmix_target_asm_function_prologue): Drop variable
4041         empty_stack_frame.  Don't allocate unused slot above fp.
4042         (mmix_target_asm_function_epilogue): Mirror prologue changes.
4043         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
4044         brace in first column.
4045         (enum reg_class): Ditto.
4046         (FIRST_PARM_OFFSET): Now 0.
4047         (USER_LABEL_PREFIX): Remove #if 0:d definition.
4048
4049 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4050
4051         * combine.c (make_extraction): Fix error in last change.
4052
4053 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4054
4055         * c4x.c (c4x_fp_reglist): Const-ify.
4056         * cris.c (cris_print_operand): Likewise.
4057         * i386.c (ix86_va_arg): Likewise.
4058         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
4059         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
4060         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
4061         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
4062         * mcore.h (regno_reg_class): Likewise.
4063         * mips.c (gen_int_relational): Likewise.
4064         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
4065         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
4066         * pdp11.c (move_costs): Likewise.
4067         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
4068         * s390.c (s390_branch_condition_mnemonic, regclass_map):
4069         Likewise.
4070         * s390.h (regclass_map): Likewise.
4071         * sh.c (shift_amounts): Likewise.
4072         * sh.md (rotlsi3): Likewise.
4073
4074 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
4075
4076         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
4077         (ne0+5): Use new clobber to generate proper shift pattern.
4078         Patch by Michael Matz <matz@kde.org>.
4079
4080 2002-03-09  Andreas Schwab  <schwab@suse.de>
4081
4082         * gcc.c (validate_all_switches): Also handle `%W{...}'.
4083
4084 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
4085
4086         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
4087
4088 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
4089
4090         PR middle-end/5877
4091         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
4092         even for non-representable constants.
4093
4094 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4095
4096         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
4097         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
4098         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
4099         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
4100         (pop_function_context): Compute MAY_SHARE parameter for
4101         fixup_var_refs.
4102         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
4103         (gen_mem_addressof): Call fixup_var_refs with new parm.
4104
4105         * combine.c (make_extraction): Don't make extension of CONST_INT.
4106
4107 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
4108
4109         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
4110         in o32 and o64 ABIs.
4111         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
4112         but getting fixed-size structs passed in registers regardless of
4113         padding in o32 and o64 ABIs.
4114
4115         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
4116         offset before loading address of argument passed by transparent
4117         reference.
4118
4119 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4120
4121         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
4122
4123 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
4124
4125         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
4126         marker such that registers after it are saved.
4127
4128 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4129
4130         * sparc.c (arith_4096_operand): Fix error in last change.
4131
4132 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
4133
4134         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
4135         defaults for MEABI.
4136
4137 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
4138
4139         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
4140         vectors.
4141
4142 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
4143
4144         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
4145
4146 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
4147
4148         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
4149         removed; fix return value.
4150         * combine.c (combine_instructions): Dirtify blocks where we failed to
4151         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
4152         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
4153
4154 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4155
4156         * gcse.c (insert_insn_end_bb): Fix typo in last change.
4157
4158 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
4159
4160         * recog.c (peephole2_optimize): Re-distribute EH edges.
4161
4162 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4163
4164         * expr.c (expand_expr): Use unsave lang hook.
4165         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
4166         (LANG_HOOKS_INITIALIZER): Update.
4167         * langhooks.h (struct lang_hooks): New hook unsave.
4168         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
4169         (unsave_expr_1): Remove unused lang_unsave_expr_now.
4170         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
4171         (unsave_expr_now): Remove.
4172         * tree.h (unsave_expr_now, lang_unsave,
4173         lang_unsave_expr_now): Remove.
4174         (lhd_unsave): New.
4175
4176 2002-03-08  Andreas Jaeger  <aj@suse.de>
4177
4178         * flow.c (propagate_block_delete_insn): Remove unused variable.
4179
4180 2002-03-08  Kazu Hirata  <kazu@hxi.com>
4181
4182         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
4183         insn length for memory load/store.
4184
4185 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4186
4187         * doc/install.texi (--with-libiconv-prefix): Document.
4188
4189 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
4190
4191         * doc/sourcebuild.texi: Fix typo.
4192
4193 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
4194
4195         PR c/3711
4196         * builtins.c (std_expand_builtin_va_arg): Do all computations on
4197         trees.
4198
4199 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4200
4201         * rtl.c (copy_most_rtx): Move from here ...
4202         * emit-rtl.c (copy_most_rtx): ... to here.
4203
4204 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
4205
4206         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
4207         SUBTARGET_CPP_SIZE_SPEC.
4208         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
4209
4210         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
4211
4212 2002-03-07  Matt Hiller  <hiller@redhat.com>
4213
4214         * gensupport.c (first_dir_md_include): Renamed from include;
4215         change all references.
4216         (last_dir_md_include): Renamed from last_include; change all
4217         references.
4218         (init_md_reader): Unconditionally initialize base_dir whether or
4219         not filename is a relative path.
4220
4221 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
4222
4223         * config/fp-bit.c (_unord_f2): Compile it in even if
4224         US_SOFTWARE_GOFAST is enabled.
4225
4226         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
4227         NULL_RTX.  Set all HFmode operations as NULL_RTX.
4228         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
4229         NULL_RTX, try reversing the comparison and the operands.
4230
4231 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4232
4233         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
4234         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
4235         and MATCH_OP_DUP.
4236
4237 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
4238
4239         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
4240
4241 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4242
4243         * basic-block.h (fixup_abnormal_edges): Declare.
4244         * reload1.c (fixup_abnormal_edges): New function.
4245         * reg-stack.c (convert_regs): Use it.
4246
4247         * gcse.c (insert_insn_end_bb): Handle trapping insns.
4248
4249         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
4250
4251 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
4252
4253         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
4254         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
4255         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
4256         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
4257         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
4258         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
4259         unless x and y could be infinite.
4260         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
4261         Check that the common type of both arguments is a real, even for
4262         targets without unordered comparisons.  Allow an integer argument
4263         to be compared against a real.
4264         (expand_tree_builtin): Use expand_unordered_cmp.
4265         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
4266         * cse.c (fold_rtx): Likewise.  Fix indentation.
4267         * fold-const.c (fold_real_zero_addition_p): New.
4268         (fold): Use it, and the new HONOR_... macros.
4269         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
4270         * jump.c (reversed_comparison_code_parts): After searching for
4271         the true comparison mode, use HONOR_NANS to decide whether it
4272         can be safely reversed.
4273         (reverse_condition_maybe_unordered): Remove IEEE check.
4274         * simplify-rtx.c (simplify_binary_operation): Use the new macros
4275         to decide which simplifications are valid.  Allow the following
4276         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
4277         and (a - -b) to (a + b).
4278         (simplify_relational_operation): Use HONOR_NANS.
4279         * doc/tm.texi: Document the MODE_HAS_... macros.
4280
4281 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
4282
4283         * combine.c (simplify_comparison): If simplifying a logical shift
4284         right and compare with constant, force the comparison to unsigned.
4285
4286 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
4287
4288         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
4289
4290         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
4291         -mabi=no-altivec
4292         (alt_reg_names): Remove % for vrsave.
4293
4294 2002-03-06  Richard Henderson  <rth@redhat.com>
4295
4296         PR optimization/5844
4297         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
4298         if used indicates we've already emitted one copy of an operand.
4299         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
4300         (gen_split): Supply a non-null used.
4301
4302 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4303
4304         * reload1.c (reload): Unshare all rtl after reload is done.
4305
4306         * simplify-rtx.c (simplify_plus_minus): Do not abort,
4307         but simply fail if the expression is too complex to simplify.
4308         (simplify_gen_binary): Handle simplify_plus_minus failures.
4309
4310 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
4311
4312         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
4313         consistently call delete_trivially_dead_insns after CSE and GCSE;
4314         fix DFI_life dumping; do jump threading after liveness; do crossjumping
4315         after liveness2; update comment in last crossjumping.
4316         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
4317
4318 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
4319
4320         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
4321         after completing fast dead code elimination.
4322
4323         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
4324         COMPARE operator.
4325
4326 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
4327
4328         * version.c:  Fix misplaced leading blanks on first line.
4329
4330 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
4331
4332         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
4333
4334 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
4335
4336         * cfgcleanup.c (mentions_nonequal_regs): New function.
4337         (thread_jump): Use it.
4338         * toplev.c (rest_of_compilation): Run jump threading after
4339         liveness.
4340
4341 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
4342
4343         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
4344         patch.
4345
4346 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4347
4348         * predict.c (estimate_bb_frequencies): Do not reload the
4349         frequencies from notes.
4350
4351 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
4352
4353         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
4354         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
4355
4356         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
4357         delete_noop_moves): Return indeger.
4358         * flow.c (ndead): New variable.
4359         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
4360         BB argument; update callers.
4361         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
4362         (life_analysis): Do not call purge_all_dead_edges.
4363         (update_life_info): Return number of deleted insns; print statistics.
4364         (update_life_info_in_dirty_blocks): likewise.
4365         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
4366         return number of insns deleted.
4367
4368         * cse.c: Include timevar.h
4369         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
4370         iterate until stabilizes; print statistics; return number of killed
4371         insns.
4372         * Makefile.in: (cse.o): Add timevar.h dependency
4373         * rtl.h (delete_trivially_dead_insns): New.
4374         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
4375         * toplev.c (rest_of_compilation): Update callers.
4376
4377         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
4378         (try_optimize_cfg): Do not update liveness.
4379         (cleanup-cfg): Loop until try_optimize_cfg and dead code
4380         removal stabilizes; use delete_trivially_dead_insns.
4381
4382         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
4383
4384 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
4385
4386         * cppmain.c (setup_callbacks): Disable #pragma and #ident
4387         callbacks when processing assembly language.
4388
4389 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4390
4391         * pa.h (ASM_FILE_END): Define.
4392         * som.h (ASM_FILE_END): Delete.
4393
4394         * pa.c (function_arg): Don't pass floats in general registers in
4395         indirect calls if TARGET_ELF32.
4396
4397 2002-03-05  Richard Henderson  <rth@redhat.com>
4398
4399         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
4400
4401 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
4402
4403         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
4404
4405 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4406
4407         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
4408         -r command line.  Don't hide any symbols if not building
4409         shared libgcc.
4410
4411 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
4412
4413         * cfg.c (dump_flow_info): Warn about profile mismatches.
4414         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
4415         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
4416
4417 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4418
4419         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
4420         wide volatile memory by parts.
4421
4422 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4423
4424         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
4425         is NULL.
4426
4427 2002-03-05  Richard Henderson  <rth@redhat.com>
4428
4429         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
4430
4431 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4432
4433         * toplev.c (documented_lang_options): Document more
4434         language-specific options.
4435         * doc/invoke.texi (Warning Options): Correct documentation for
4436         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
4437         * c-decl.c (c_decode_option): Use a table to handle warning options.
4438
4439 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
4440
4441         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
4442         parameter to mmix_encode_section_info.
4443         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
4444         relocatably.  Always produce ELF, not mmo if linking relocatably.
4445         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
4446         first is non-zero, don't add symbol prefix.
4447         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
4448         prototype accordingly.
4449
4450 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
4451
4452         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
4453
4454 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4455
4456         * configure.in: Increase required makeinfo version to 4.1.
4457         * configure: Regenerate.
4458
4459 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4460
4461         * .cvsignore: Remove *.info* and genrtl*; these files are generated
4462         elsewhere now.
4463
4464 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4465
4466         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
4467         * doc/invoke.texi: Fix @math uses.
4468
4469 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4470
4471         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
4472         removal
4473
4474 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
4475
4476         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
4477         (powerpc-*-eabisimaltivec*): Same.
4478
4479         * config/rs6000/t-ppcendian: New.
4480
4481 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4482
4483         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
4484         nonimmediate_src_operand and nonimmediate_lsrc_operand to
4485         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
4486
4487 2002-03-03  Richard Henderson  <rth@redhat.com>
4488
4489         * toplev.c (rest_of_decl_compilation): Revert last two changes.
4490
4491 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
4492
4493         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
4494         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
4495         tree.c, config/m68k/m68k.c:
4496         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
4497         REAL_ARITHMETIC blocks unconditional.  Delete some further
4498         #ifdef blocks predicated on REAL_ARITHMETIC.
4499         * flags.h, toplev.c: Delete remaining references to
4500         flag_pretend_float.
4501
4502         * doc/invoke.texi: Remove documentation of -fpretend-float.
4503         * doc/tm.texi: Describe the various REAL_* macros as provided by
4504         real.h, not by the target configuration files.
4505
4506         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
4507         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
4508         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
4509         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
4510         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
4511         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
4512         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
4513         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
4514         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
4515         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
4516         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
4517         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
4518         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
4519         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
4520         config/xtensa/xtensa.h:
4521         Do not define, undefine, or mention in comments any of
4522         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
4523         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
4524         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
4525         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
4526         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
4527         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
4528         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
4529         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
4530         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
4531
4532 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4533
4534         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
4535         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
4536         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
4537         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
4538         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
4539         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
4540         Delete.
4541         * defaults.h (BITS_PER_WORD): Define.
4542         * doc/tm.texi (BITS_PER_WORD): Document default value.
4543
4544         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
4545         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
4546         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
4547
4548 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4549
4550         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
4551         lieu of explicit sizeof/sizeof.
4552         * i386.c (override_options, ix86_init_mmx_sse_builtins,
4553         ix86_expand_builtin): Likewise.
4554         * mips.c (mips_add_gc_roots): Likewise.
4555         * mmix.c (mmix_output_condition): Likewise.
4556         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
4557         altivec_init_builtins): Likewise.
4558         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
4559         * cppexp.c (Nsuff, parse_number): Likewise.
4560         * cppinit.c (builtin_array_end): Likewise.
4561         * gcc.c (n_default_compilers, process_command): Likewise.
4562         * genpreds.c (output_predicate_decls): Likewise.
4563         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
4564         * lcm.c (N_ENTITIES): Likewise.
4565         * stor-layout.c (set_sizetype): Likewise.
4566
4567 2002-03-03  Richard Henderson  <rth@redhat.com>
4568
4569         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
4570         for types or labels.
4571
4572 2002-03-03  Richard Henderson  <rth@redhat.com>
4573
4574         * c-decl.c (start_decl): Initialized variables are not common.
4575
4576 2002-03-02  Per Bothner  <per@bothner.com>
4577
4578         * gcc.c (option_map):  Suport new --bootclasspath option.
4579         --CLASSPATH is now just an alias for --classpath.
4580
4581 2002-03-02  Richard Henderson  <rth@redhat.com>
4582
4583         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
4584         load if "internal" visibility.
4585         * doc/extend.texi: Document visibility meanings.
4586
4587 2002-03-02  Richard Henderson  <rth@redhat.com>
4588
4589         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
4590         to functions as well.
4591
4592 2002-03-02  Richard Henderson  <rth@redhat.com>
4593
4594         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
4595         (handle_visibility_attribute): Don't call assemble_visibility.
4596         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
4597         without asmspec.  Invoke assemble_alias when needed.
4598         * varasm.c (maybe_assemble_visibility): New.
4599         (assemble_start_function, assemble_variable, assemble_alias): Use it.
4600
4601 2002-03-02  Richard Henderson  <rth@redhat.com>
4602
4603         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
4604         invoke ENCODE_SECTION_INFO with first call flag.
4605
4606         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
4607         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4608         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
4609         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
4610         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
4611         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
4612         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
4613         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
4614         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
4615         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
4616         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4617         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
4618         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
4619         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
4620         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4621         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
4622         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
4623         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
4624         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
4625         config/sh/sh.h, config/sparc/sparc.h,
4626         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
4627         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
4628         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
4629         FIRST argument.  As needed, examine it and do nothing.
4630
4631         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
4632         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
4633         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
4634
4635         * config/arm/t-pe (pe.o): Add dependencies.
4636
4637 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4638
4639         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
4640         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
4641         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
4642         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
4643         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
4644         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
4645         * defaults.h (BITS_PER_UNIT): Define.
4646         * doc/tm.texi (BITS_PER_UNIT): Document default value.
4647
4648 2002-03-02  Kazu Hirata  <kazu@hxi.com>
4649
4650         * config/h8300/h8300-protos.h: Add a prototype for
4651         compute_a_shift_length.
4652         * config/h8300/h8300.c (h8300_asm_insn_count): New.
4653         (compute_a_shift_length): Likewise.
4654         (h8300_adjust_insn_length): Do not adjust insn length of shift
4655         insns.
4656         * config/h8300/h8300.md (anonymous shift patterns): Use
4657         compute_a_shift_length.
4658
4659 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4660
4661         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
4662         trunc_int_for_mode.
4663
4664         * emit-rtl.c (offset_address): Call update_temp_slot_address.
4665
4666 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4667
4668         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
4669         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
4670         * flags.h (flag_zero_initialized_in_bss): Declare.
4671         * toplev.c (flag_zero_initialized_in_bss): New flag.
4672         (lang_independent_options): Add flag_zero_initialized_in_bss.
4673         * tree.c (initializer_zerop): New function.
4674         * tree.h (initializer_zerop): Declare.
4675         * varasm.c (assemble_variable): If we can emit bss, put zero
4676         initializers in the bss section.
4677
4678 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
4679
4680         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
4681         like more than one symbol per .weak directive.
4682
4683 2002-03-01  Richard Henderson  <rth@redhat.com>
4684
4685         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
4686         adjust argument_pointer by pretend_args_size.
4687         (ia64_va_start): Adjust va_start address by -pretend_args_size.
4688
4689 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4690
4691         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
4692
4693 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
4694
4695         * toplev.c (rest_of_compilation): Delete dead jumptables before
4696         loop.
4697         * flow.c (delete_dead_jumptables): Make global.
4698         * rtl.h (delete_dead_jumptables): Declare.
4699
4700 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
4701
4702         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
4703         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
4704         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
4705
4706 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4707
4708         * config/h8300/h8300-protos.h: Fix formatting.
4709         * config/h8300/h8300.c: Likewise.
4710         * config/h8300/h8300.h: Likewise.
4711
4712 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4713
4714         * config/h8300/h8300.c (print_operand): Support 16-bit
4715         constant addresses.
4716         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
4717
4718 2002-02-28  Richard Henderson  <rth@redhat.com>
4719
4720         * expmed.c (store_bit_field): Prevent generation of CONCATs;
4721         pun complex values as integers; use gen_lowpart instead of
4722         gen_rtx_SUBREG.
4723         (extract_bit_field): Likewise.
4724
4725 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
4726             David Edelsohn  <edelsohn@gnu.org>
4727
4728         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
4729         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
4730         (SUPPORTS_WEAK): Likewise.
4731         * output.h (add_weak): Add tree param.
4732         * varasm.c (add_weak): Likewise.  Save decl.
4733         (struct weak_syms): Add decl field.
4734         (mark_weak_decls): New function.
4735         (init_varasm_once): ggc_add_root mark_weak_decls.
4736         (assemble_start_function): Use ASM_WEAKEN_DECL.
4737         (assemble_variable): Likewise.
4738         (assemble_alias): Likewise.
4739         (declare_weak): Pass decl to add_weak.
4740         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
4741         (remove_from_pending_weak_list): Declare and define for
4742         ASM_WEAKEN_DECL.
4743         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
4744         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
4745         * defaults.h (SUPPORTS_WEAK): Likewise.
4746         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4747         .weak for code sym.  Do emit .size for descriptor sym.
4748         (ASM_DECLARE_FUNCTION_SIZE): Define.
4749         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
4750         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
4751         .lglobl unless TARGET_XCOFF.  Formatting fixes.
4752         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4753         .weak for code sym.
4754         (HANDLE_PRAGMA_WEAK): Remove.
4755         (ASM_WEAKEN_LABEL): Remove.
4756         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
4757
4758 2002-03-01  Jason Merrill  <jason@redhat.com>
4759
4760         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
4761         (TARGET_EXPR_CLEANUP): New macro.
4762
4763 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
4764
4765         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
4766         to take ptr_extend into account as third type of extension.
4767         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
4768         fields used by SUBREG_PROMOTED_UNSIGNED_P.
4769         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
4770         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
4771         * calls.c (precompute_arguments): Use new macro.
4772         (expand_call): Ditto.
4773         * combine.c (nonzero_bits): Ditto.
4774         (record_promoted_value): Ditto.
4775         * expr.c (store_expr): Ditto.
4776         (expand_expr): Ditto.
4777         * function.c (assign_parms): Ditto.
4778
4779 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
4780
4781         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
4782         override -shared and -shared-libgcc.
4783
4784 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
4785
4786         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
4787         of "ultrasparc".
4788         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
4789         to be broken.
4790
4791 2002-02-28  Richard Henderson  <rth@redhat.com>
4792
4793         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
4794         4 cycle latency from MM producers.
4795         (ia64_internal_sched_reorder): Likewise with pipeline flush.
4796
4797 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
4798
4799         * mklibgcc.in: Don't use GNU make extension.
4800
4801 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4802
4803         * c-parse.in (STATIC): New terminal.
4804         (scspec): New non-terminal.  Update productions accordingly.
4805         (program): Remove bogus ifc / end ifc.
4806         (array_declarator): Simplify production using STATIC.
4807
4808 2002-02-28  Jim Meyering  <meyering@lucent.com>
4809
4810         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
4811         \a still means TARGET_BELL.
4812
4813 2002-02-28  Richard Henderson  <rth@redhat.com>
4814
4815         * haifa-sched.c (sched_emit_insn): New.
4816         (schedule_block): Use last_scheduled_insn to track last insn.
4817         * sched-int.h (sched_emit_insn): Prototype.
4818         * config/ia64/ia64.c (last_issued): Remove.
4819         (ia64_variable_issue): Don't set it.
4820         (nop_cycles_until): Use sched_emit_insn.
4821
4822 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
4823
4824         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
4825         extended constants.
4826
4827 2002-02-28  Kazu Hirata  <kazu@hxi.com>
4828
4829         * config/h8300/h8300.c: Fix formatting.
4830         * config/h8300/h8300.h: Likewise.
4831
4832 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4833
4834         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
4835         which may overwrite the high byte of the frame pointer.
4836
4837 2002-02-28  Bo Thorsen  <bo@suse.de>
4838
4839         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
4840         (STARTFILE_SPEC): Add 64 bit files.
4841         (ENDFILE_SPEC): Likewise.
4842
4843 2002-02-28  Jason Merrill  <jason@redhat.com>
4844
4845         * c-decl.c (finish_function): Only warn about missing return
4846         statement with -Wreturn-type.
4847
4848 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4849
4850         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
4851
4852         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
4853         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
4854
4855 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4856
4857         * basic-block.h (BB_REACHABLE): Renumber.
4858         (BB_DIRTY, BB_NEW): New flags.
4859         (clear_bb_flags): Declare.
4860         (update_life_info_in_dirty_blocks): Declare.
4861         * cfg.c (clear_bb_flags): New function.
4862         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
4863         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
4864         reorder_insns, emit_insn_after): Mark block as dirty.
4865         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
4866         (update_life_info_in_dirty_blocks): New function.
4867         * recog.c (apply_change_group): Dirtify block.
4868
4869         * cse.c (cse_insn): Reorder emitting of jump insn to keep
4870         cfg consistent.
4871         * gcse.c (delete_null_pointer_checks): Likewise.
4872
4873         * toplev.c (dump_file_index): Move cse2 after bp,
4874         add DFI_null
4875         (dump_file_info): Similary.
4876         (rest_of_compilation): Avoid most of CFG rebuilds;
4877         do first if converision after null pointer checks, do cse2
4878         after branch prediction; avoid full liveness rebuild after
4879         initializing subregs.
4880         * invoke.texi (-d options): Document -du, renumber.
4881
4882         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
4883         (notice_new_block): Do not set BB_UPDATE_LIFE.
4884         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
4885          merge_blocks_move_successor_nojumps, merge_blocks,
4886          try_crossjump_to_edge): Likewise.
4887         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
4888         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
4889         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
4890         (merge_of_block): Do not use life_data_ok.
4891         (find_if_case_1): Do not use SET_UPDATE_LIFE.
4892         (if_convert): Use BB_DIRTY mechanizm to update life.
4893         * lcm.c (optimize_mode_switching): Update
4894         update_life_info_in_dirty_blocks
4895
4896 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4897
4898         * Makefile.in (integrate.o): Update.
4899         * c-decl.c (copy_lang_decl): Rename.
4900         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4901         * integrate.c: Include langhooks.h.
4902         (copy_decl_for_inlining): Update to use langhook.
4903         * langhooks-def.h (lhd_do_nothing_t,
4904         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
4905         (LANG_HOOKS_INITIALIZER): Update.
4906         * langhooks.c (lhd_do_nothing_t): New.
4907         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
4908         * tree.h (copy_lang_decl): Remove.
4909 objc:
4910         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4911
4912 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
4913
4914         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
4915         POST_DEC, and POST_MODIFY.
4916
4917 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4918
4919         * c-typeck.c (digest_init): Remove unused parameter; all
4920         callers changed.
4921
4922 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
4923
4924         * expmed.c (expand_shift): Correctly test for low part of a
4925         subreg.
4926
4927 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
4928
4929         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
4930         insn UIDs with insn addresses.
4931
4932 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4933
4934         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
4935         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
4936         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
4937         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
4938         gcc.c, toplev.c: Delete code implementing -traditional mode.
4939
4940         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
4941         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
4942         Document removal of -traditional mode for compilation, and
4943         remove documentation only relevant to that mode.
4944
4945         * config/nextstep.h, config/ptx4.h, config/svr4.h,
4946         config/convex/convex.h, config/d30v/d30v.h,
4947         config/i386/dgux.h, config/i386/osf1elf.h,
4948         config/i386/osfelf.h, config/i386/osfrose.h,
4949         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
4950         config/m68k/hp310.h, config/m88k/dgux.h,
4951         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
4952         config/m88k/m88k.h, config/m88k/openbsd.h,
4953         config/mips/abi64.h, config/mips/osfrose.h,
4954         config/mips/svr4-5.h, config/mips/svr4-t.h,
4955         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
4956         config/stormy16/stormy16.h: Remove all references to
4957         -traditional from target specs.  Delete all mention of the
4958         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
4959         delete a couple of commented-out definitions of
4960         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
4961         to -traditional.
4962
4963         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
4964         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
4965
4966 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4967
4968         * mklibgcc.in: Don't use \n in a line subject to
4969         interpretation by echo.
4970
4971 2002-02-27  Graham Stott  <grahams@redhat.com>
4972
4973         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
4974         Constify NAME.
4975
4976         * loop.c (prescan_loop): Handle PARALLEL.
4977
4978         * unroll.c (loop_iterations): Return 0 if the add_val for
4979         a BIV is REG.
4980
4981         * final.c (output_operand_lossage): Constify PFX_STR.
4982
4983         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
4984
4985 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4986
4987         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
4988         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
4989
4990 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
4991
4992         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4993
4994 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4995
4996         * cpplex.c (_cpp_lex_token): Handle directives in macro
4997         arguments.
4998         * cpplib.c (_cpp_handle_directive): Save and restore state
4999         if parsing macro args when entering a directive.
5000         * cppmacro.c (collect_args): No need to handle directives
5001         in macro arguments.
5002         (enter_macro_context, replace_args): Use the original macro
5003         definition in case it was redefined whilst collecting arguments.
5004 doc:
5005         * cpp.texi: Update.
5006
5007 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
5008
5009         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
5010         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
5011         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
5012         method on AIX.
5013         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
5014         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
5015         (load_toc_v4_PIC_2): Same.
5016
5017 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
5018
5019         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
5020
5021 2002-02-26  Richard Henderson  <rth@redhat.com>
5022
5023         * config/alpha/alpha.md (ashldi_se): Re-enable.
5024
5025 2002-02-26  Richard Henderson  <rth@redhat.com>
5026
5027         * config/alpha/alpha.c (alpha_encode_section_info): Examine
5028         MODULE_LOCAL_P; improve commentary.
5029
5030 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
5031
5032         * doc/cpp.texi: Clarify documentation of relationship between
5033         #line and #include.
5034
5035 2002-02-26  Kazu Hirata  <kazu@hxi.com>
5036
5037         * config/h8300/h8300-protos.h: Update the prototype for
5038         compute_logical_op_length.  Add the prototype for
5039         compute_logical_op_cc.
5040         * config/h8300/h8300.c (compute_logical_op_length): Figure out
5041         code from operands.
5042         (compute_logical_op_cc): New.
5043         * config/h8300/h8300.md: Combine all the logical op patterns
5044         in HImode and SImode.  Use compute_logical_op_cc.
5045
5046 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
5047
5048         * config/i386/i386.c (print_operand): Don't append ATT-style
5049         length suffixs to x87 opcodes when in Intel mode.
5050
5051 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
5052
5053         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
5054         (init_emit_once): Update calls.
5055         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
5056         (init_syntax_once): Prototype.
5057
5058 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5059
5060         * pa-linux.h (LIB_SPEC): Update definition.
5061         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
5062
5063 2002-02-26  Richard Henderson  <rth@redhat.com>
5064
5065         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
5066         if we emitted a stop bit.
5067
5068 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
5069
5070         * configure.in (libgcc_visibility): Substitute.
5071         * configure: Rebuilt.
5072         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
5073         defined symbols .hidden.
5074
5075 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
5076
5077         * attribs.c (c_common_attribute_table): Add visibility.
5078         (handle_visibility_attribute): New function.
5079         * varasm.c (assemble_visibility): New function.
5080         * output.h (assemble_visibility): Add prototype.
5081         * tree.h (MODULE_LOCAL_P): Define.
5082         * crtstuff.c (__dso_handle): Use visibility attribute.
5083         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
5084         for MODULE_LOCAL_P symbols too.
5085         * config/ia64/ia64.c (ia64_encode_section_info): Handle
5086         MODULE_LOCAL_P symbols the same way as local symbols.
5087         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
5088         into .sdata/.sbss by the user.
5089         * doc/extend.texi (Function Attributes): Document visibility
5090         attribute.
5091
5092 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
5093
5094         PR debug/5770
5095         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
5096         STRING_CST initializer spanning the whole variable without
5097         embedded zeros.
5098         If expand_expr returned MEM, don't use it.
5099
5100 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
5101
5102         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
5103         generate a die for the lexical block.
5104
5105 2002-02-26  Kazu Hirata  <kazu@hxi.com>
5106
5107         * config/h8300/h8300-protos.h: Add a prototype for
5108         compute_logical_op_length.
5109         * config/h8300/h8300.c (compute_logical_op_length): New.
5110         * config/h8300/h8300.md (anonymous logical patterns): Use
5111         compute_logical_op_length for length.
5112
5113 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
5114
5115         * dwarf2out.c (modified_type_die): Do not call type_main_variant
5116         for vectors.
5117         (gen_type_die): Same.
5118
5119         * attribs.c (handle_vector_size_attribute): Set debug information.
5120
5121 2002-02-26  Daniel Egger  <degger@fhm.edu>
5122
5123         * config/rs6000/rs6000.md: Swap define_insn attributes to
5124         fix incorrect generation of merge high instructions instead
5125         of merge low.
5126
5127 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
5128
5129         * c-typeck.c (really_start_incremental_init): Use
5130         bitsize_zero_node for vectors.
5131
5132 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
5133
5134         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
5135         ("*set_vrsave_internal"): Same.
5136
5137 2002-02-25  Richard Henderson  <rth@redhat.com>
5138
5139         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
5140         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
5141
5142 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
5143
5144         PR target/5755
5145         * config/i386/i386.c (ix86_return_pops_args): Only pop
5146         fake structure return argument if it was passed on the stack.
5147
5148 2002-02-25  Jason Merrill  <jason@redhat.com>
5149
5150         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
5151         RESULT_DECL.
5152
5153 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
5154
5155         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
5156         link with shared_name only.
5157         * doc/invoke.texi (Link Options): Document new behavior.
5158
5159 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
5160
5161         * c-typeck.c (push_init_level): Handle vectors.
5162
5163 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
5164
5165         * config/sparc/sparc.c (const64_high_operand): Zero-extend
5166         operands of SPARC_SETHI_P.
5167         (input_operand): Likewise.
5168         (sparc_emit_set_const32): Likewise.
5169         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
5170         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
5171         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
5172         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
5173         (movdi_insn_sp64_vis): Likewise.
5174         (movdi split, movdf split): Use SETHI32.
5175         * doc/md.texi: Document SPARC constraints L, M and N.
5176
5177 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
5178
5179         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
5180         ("*set_vrsave_internal"): use mfspr for Darwin.
5181
5182         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
5183         gen_get_vrsave_internal.
5184
5185 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5186
5187         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
5188
5189 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5190
5191         * cpplex.c (cpp_interpret_charconst): Get signedness or
5192         otherwise of wide character constants correct.
5193         * cppexp.c (lex): Get signedness of wide charconsts correct.
5194
5195 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5196
5197         * optabs.c (widen_operand): Only call convert_modes for
5198         promoted SUBREG if signedness matches.
5199         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
5200
5201 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5202
5203         * cpplib.c (glue_header_name): Use local buffer to build up
5204         header name.
5205
5206 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5207
5208         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
5209
5210 2002-02-23  Kazu Hirata  <kazu@hxi.com>
5211
5212         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
5213         H8/300[HS] separately.
5214         * config/h8300/h8300.md: Remove the early clobber constraint
5215         from bit field patterns.
5216
5217 2002-02-23  Kazu Hirata  <kazu@hxi.com>
5218
5219         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
5220         register_operand.
5221         (mulhisi3): Likewise.
5222         (umulqisi3): Likewise.
5223         (umulhisi3): Likewise.
5224
5225 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5226
5227         * cppinit.c (output_deps): Correct test for stdout output.
5228         (init_dependency_output): Cure warning.
5229
5230 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5231
5232         * expr.c (store_expr): When converting expression to promoted
5233         equivalent type, allow using SUBREG_REG of TARGET as the target
5234         of the expansion of EXP.
5235         * loop.c (basic_induction_var, case SUBREG): Always look inside.
5236         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
5237         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
5238         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
5239         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
5240
5241 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
5242
5243         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
5244         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
5245         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
5246
5247 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
5248
5249         PR optimization/5747
5250         * loop.c (scan_loop): Update reg info if move_movables created new
5251         pseudos.
5252
5253 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
5254
5255         * gcc.c (init_gcc_spec): Revert last change.
5256
5257 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
5258
5259         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
5260         gpc_reg_operand constraint.
5261
5262 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
5263
5264         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
5265         Simplify comparison of `low'.
5266         (add_operand): Fix formatting.
5267         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
5268         (mask_operand): Disallow mask to wrap in 64-bit mode.
5269         (rs6000_stack_info): Remove redundant test setting push_p.
5270         (output_toc): Fix formatting.
5271         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
5272         cc_reg_not_cr0_operand constraint.
5273         (booldi3, boolcdi3 splitters): Same.
5274
5275 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
5276
5277         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
5278
5279 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
5280
5281         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
5282         gcc invoked with -shared-libgcc.
5283
5284 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
5285
5286         PR c++/5748
5287         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
5288         decl if any of elements was TREE_USED.
5289
5290 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
5291
5292         * config/sparc/sol2.h: Don't include sys/mman.h.
5293         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
5294         (arith_4096_operand): Don't throw high bits away.
5295         (const64_operand): Take sign extension of CONST_INTs into account.
5296         (const64_high_operand, sparc_emit_set_const32): Likewise.
5297         (GEN_HIGHINT64): Likewise.
5298         (sparc_emit_set_const64_quick1): Likewise.
5299         (const64_is_2insns): Likewise.
5300         (print_operand): Use trunc_int_for_mode for sign extension.
5301         * config/sparc/sparc.h (SMALL_INT32): Likewise.
5302         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
5303         chars.  Assume CONST_INT is already properly sign-extended.
5304         (movdi split): Sign-extend each SImode part.
5305         (andsi3 split): Don't mask high bits off, so that result
5306         remains properly sign-extend.
5307         (iorsi3 split): Likewise.
5308         (xorsi3 split): Likewise.
5309
5310 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
5311
5312         * fold-const.c (fold): Fix typo in comments.
5313
5314 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
5315
5316         * Makefile.in (langhooks.o): Update dependencies.
5317
5318 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
5319
5320         * langhooks.c: Include flags.h.
5321
5322 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
5323
5324         * testsuite/gcc.dg/attr-alwaysinline.c: New.
5325
5326         * c-common.c (c_common_post_options): Set inline trees by
5327         default.
5328
5329         * doc/extend.texi (Function Attributes): Document always_inline
5330         attribute.
5331         Update documentation about inlining when not optimizing.
5332
5333         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
5334
5335         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
5336         unless DECL_ALWAYS_INLINE.
5337
5338         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
5339         unless DECL_ALWAYS_INLINE.
5340         (c_disregard_inline_limits): Disregard if always_inline set.
5341
5342         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
5343         Disregard if always_inline set.
5344         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
5345         unless DECL_ALWAYS_INLINE.
5346
5347         * attribs.c (handle_always_inline_attribute): New.
5348         (c_common_attribute_table): Add always_inline.
5349
5350         * config/rs6000/altivec.h: Add prototypes for builtins
5351         requiring the always_inline attribute.
5352
5353 2002-02-21  Eric Christopher  <echristo@redhat.com>
5354
5355         * expmed.c (store_bit_field): Try to simplify the subreg
5356         before generating a new one when when the mode size of
5357         value is less than maxmode.
5358
5359 2002-02-21  Richard Henderson  <rth@redhat.com>
5360
5361         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
5362         than gen_rtx_PLUS to form the sum.
5363         * explow.c (force_reg): Rearrange to not allocate new pseudo
5364         when force_operand returns a register.
5365         * expr.c (expand_assignment): Allow offset_rtx expansion to
5366         return a sum.  Do not force addresses into registers.
5367         (expand_expr): Likewise.
5368         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
5369         to canonicalize arithmetic that didn't simpify.
5370         (simplify_plus_minus): New argument force; update
5371         all callers.  Don't split CONST unless we can do something with it,
5372         and wouldn't lose the constness of the operands.
5373
5374         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
5375         that we generated earlier.
5376
5377 2002-02-21  Tom Tromey  <tromey@redhat.com>
5378
5379         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5380         (output_line_info): Use constant `1', with a long explanatory
5381         comment.
5382         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
5383
5384 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
5385
5386         * jump.c (redirect_jump): If old label has no UID, don't try to
5387         delete it.
5388
5389 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
5390
5391         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
5392         If input is constant, do shifts at compile time.
5393
5394 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5395
5396         * doc/extend.texi: Fix some more overfull hboxes.
5397
5398 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5399
5400         PR optimization/4994
5401         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
5402         register moves.
5403
5404 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5405
5406         PR c++/4574
5407         * expr.h (expand_and): Add mode argument.
5408         * expmed.c (expand_and): Add mode argument.
5409         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
5410         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
5411         * except.c (expand_builtin_extract_return_addr): Likewise.
5412         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5413         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
5414         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
5415         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
5416         * config/c4x/c4x.md: Use GEN_INT (x) instead of
5417         gen_rtx (CONST_INT, VOIDmode, x).
5418
5419 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5420
5421         PR c/4697:
5422         * stmt.c (warn_if_unused_value): Move side effects test once more.
5423
5424 2002-02-20  Torbjorn Granlund  <tege@swox.com>
5425
5426         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
5427         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
5428
5429 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
5430
5431         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
5432         SUBREG or ZERO_EXTEND.
5433
5434 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
5435
5436         * sh.h (current_function_anonymous_args): Remove.
5437         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
5438         of current_function_varargs and current_function_stdarg is set.
5439         * sh.c (sh_expand_prologue): Check current_function_varargs /
5440         current_function_stdarg / TARGET_SH5 instead of
5441         current_function_anonymous_args.
5442
5443         * sh64.h (TARGET_VERSION): Define.
5444
5445 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
5446
5447         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
5448         VRSAVE_REGNO on TARGET_ALTIVEC.
5449
5450 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
5451
5452         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
5453         bits of SImode const_int.
5454         (includes_rshift_p): Likewise.
5455         (print_operand): Call mask_operand and mask64_operand with correct
5456         mode.
5457         (rs6000_output_function_epilogue): Pad traceback table to word.
5458         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
5459         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
5460         mask64_operand with correct mode.
5461         (FUNCTION_ARG_REGNO_P): Correct parentheses.
5462
5463 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5464
5465         PR debug/4461
5466         * varasm.c (get_pool_constant_mark): New.
5467         * rtl.h (get_pool_constant_mark): Add prototype.
5468         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
5469         be represented if it has not been output.
5470
5471 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5472
5473         * combine.c (do_SUBST): Sanity check substitutions of
5474         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
5475         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
5476         CONST_INT into its operand.
5477         (known_cond): Likewise, for ZERO_EXTEND.
5478         * simplify-rtx.c (simplify_unary_operation): Fix condition to
5479         allow for simplification of wide modes.  Reject CONST_INTs in
5480         ZERO_EXTEND when their actual mode is not given.
5481
5482 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5483
5484         * c-decl.c (pushdecl): If no global declaration is found for an
5485         extern declaration in block scope, try a limbo one.
5486
5487 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5488
5489         PR c++/4401
5490         * c-common.c (pointer_int_sum): Moved from...
5491         * c-typeck.c (pointer_int_sum): ...here.
5492         * c-common.h (pointer_int_sum): Add prototype.
5493
5494 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5495
5496         PR c++/5713
5497         * c-decl.c (duplicate_decls): Return 0 if issued error about
5498         redeclaration.
5499
5500 2002-02-20  Roger Sayle  <roger@eyesopen.com>
5501             Jakub Jelinek  <jakub@redhat.com>
5502
5503         PR c/4389
5504         * tree.c (host_integerp): Ensure that the constant integer is
5505         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
5506         when pos is zero or non-zero respectively.  Clarify comment.
5507         * c-format.c (check_format_info_recurse): Fix host_integerp
5508         usage; the pos argument should be zero when assigning to a
5509         signed HOST_WIDE_INT.
5510
5511 2002-02-20  Richard Henderson  <rth@redhat.com>
5512
5513         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
5514         of the operand, rather than assuming TImode.
5515         (ix86_expand_binop_builtin): Cope with commutative patterns
5516         using nonimmediate_operand for both operands.
5517         (ix86_expand_timode_binop_builtin): Likewise.
5518         (ix86_expand_store_builtin): Validate operand 1.
5519         (ix86_expand_unop1_builtin): Likewise.
5520
5521 2002-02-20  Philip Blundell  <philb@gnu.org>
5522
5523         PR 5705
5524         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
5525
5526 2002-02-20  Richard Henderson  <rth@redhat.com>
5527
5528         PR c/5615
5529         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
5530
5531 2002-02-20  Tom Tromey  <tromey@redhat.com>
5532
5533         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5534         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5535         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5536         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5537         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
5538         unconditionally.
5539
5540 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
5541
5542         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
5543           for (const_int 0) in X not just INTVAL.
5544
5545 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5546
5547         * doc/extend.texi: Avoid or reduce overfull hboxes.
5548
5549 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
5550
5551         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
5552         operations if the field does not start at a mode boundary.
5553
5554 2001-02-20      Joel Sherrill <joel@OARcorp.com>
5555
5556         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
5557         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
5558         Also done for -Acpu and -Amachine.
5559
5560 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5561
5562         * cppinit.c (init_dependency_output): Take deps output file
5563         from -o if none given with -MF.  Suppress normal output.
5564         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
5565         * doc/cpp.texi, doc/invoke.texi: Update.
5566
5567 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5568
5569         * toplev.c (output_quoted_string): Write unprintable
5570         characters with octal escapes.
5571
5572 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5573
5574         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
5575         really_call_used[VRSAVE_REGNO] if not Altivec.
5576
5577 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
5578
5579         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
5580         MODE_MASK.
5581         (constant_pool_expr_1): Fix formatting.
5582         (rs6000_legitimize_reload_address): Likewise.
5583
5584 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5585
5586         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
5587         now that we have one.
5588
5589 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5590
5591         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
5592         end of first block of bitfields (which was only seven bits);
5593         rename dummy to unused_1; remove comment which is no longer true.
5594
5595 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5596
5597         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
5598
5599 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5600
5601         PR 5399
5602         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
5603         if generating PIC.
5604
5605         PR 5054
5606         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
5607         arm_is_longcall_p rather than inspecting call-type cookie
5608         directly.
5609         (call_value_insn) [TARGET_THUMB]: Likewise.
5610
5611 2002-02-19  Graham Stott  <grahams@redhat.com>
5612
5613         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
5614
5615 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5616
5617         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
5618         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
5619         (FP_SAVE_INLINE): Delete.
5620
5621         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
5622         * config/rs6000/eabi.asm: Remove ABI save restore routines.
5623         * config/rs6000/t-ppccomm: Build crtsavres.o.
5624         * config/rs6000/crtsavres.asm: New file.
5625
5626 2002-02-19  Philip Blundell  <philb@gnu.org>
5627
5628         * config/arm/arm.c (use_return_insn): Don't reject interrupt
5629         functions.
5630         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
5631         (output_return_instruction): Allow interrupt functions to return with
5632         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
5633         (arm_expand_prologue): Subtract 4 before stacking LR in an
5634         interrupt function.
5635
5636 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5637
5638         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
5639         decl, not just FUNCTION_DECL.
5640         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
5641         (arm_assemble_integer): Likewise.
5642         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
5643         marked local.
5644
5645 2002-02-19  matthew green  <mrg@eterna.com.au>
5646
5647         * config.gcc (sparc-*-netbsdelf*): Enable target.
5648         (sparc64-*-netbsd*): New target.
5649         * config/sparc/netbsd-elf.h: New file.
5650         * config/sparc/t-netbsd64: New file.
5651
5652 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5653
5654         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
5655
5656 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
5657
5658         * doc/invoke.texi: explicitly list the style guidelines that
5659         -Weffc++ checks for.
5660
5661 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
5662
5663         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
5664
5665 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5666
5667         PR other/5718
5668         * gcc.c (cpp_unique_options): Treat -o as indicating object file
5669         only if not -E.  If -E, pass -o through to the preprocessor.
5670
5671 2002-02-19  Kazu Hirata  <kazu@hxi.com>
5672
5673         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
5674         register number with an appropriate macro.
5675
5676 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5677
5678         * doc/rtl.texi (Constants): Close @code tag.
5679
5680 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
5681
5682         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
5683         ("mmx_uavgv4hi3"): Same.
5684         ("pmulhrwv4hi3"): Same.
5685
5686         * tree-inline.c (walk_tree): Handle vectors.
5687
5688         * c-common.c (constant_expression_warning): Handle vectors.
5689         (overflow_warning): Same.
5690
5691         * sched-deps.c (sched_analyze_2): Handle vectors.
5692
5693         * rtlanal.c (rtx_unstable_p): Handle vectors.
5694         (rtx_varies_p): Same.
5695         (count_occurrences): Same.
5696         (regs_set_between_p): Same.
5697         (modified_between_p): Same.
5698         (modified_in_p): Same.
5699         (volatile_insn_p): Same.
5700         (volatile_refs_p): Same.
5701         (side_effects_p): Same.
5702         (may_trap_p): Same.
5703         (inequality_comparisons_p): Same.
5704         (replace_regs): Same.
5705         (computed_jump_p_1): Same.
5706
5707         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
5708         argument.
5709         (inner_mode_array): New.
5710         (copy_rtx): Handle vectors.
5711         (copy_most_rtx): Same.
5712         (rtx_equal_p): Same.
5713         (get_mode_alignment): Adjust for vectors.
5714
5715         * resource.c (mark_referenced_resources): Handle vectors.
5716         (mark_set_resources): Same.
5717
5718         * reload1.c (eliminate_regs): Handle vectors.
5719         (elimination_effects): Same.
5720         (scan_paradoxical_subregs): Same.
5721
5722         * reload.c (subst_reg_equivs): Handle vectors.
5723
5724         * regrename.c (scan_rtx): Handle vectors.
5725
5726         * regclass.c (reg_scan_mark_refs): Handle vectors.
5727
5728         * recog.c (find_single_use_1): Handle vectors.
5729
5730         * local-alloc.c (equiv_init_varies_p): Handle vectors.
5731         (contains_replace_regs): Same.
5732         (memref_referenced_p): Same.
5733
5734         * integrate.c (copy_rtx_and_substitute): Handle vectors.
5735         (subst_constants): Same.
5736
5737         * genattrtab.c (attr_copy_rtx): Handle vectors.
5738         (encode_units_mask): Same.
5739         (clear_struct_flag): Same.
5740         (count_sub_rtxs): Same.
5741
5742         * gcse.c (want_to_gcse_p): Handle vectors.
5743         (oprs_unchanged_p): Same.
5744         (hash_expr_1): Same.
5745         (oprs_not_set_p): Same.
5746         (expr_killed_p): Same.
5747         (compute_transp): Same.
5748         (store_ops_ok): Same.
5749
5750         * function.c (purge_addressof_1): Do not allow paradoxical subregs
5751         of vectors.
5752         (fixup_var_refs_1): Same.
5753         (instantiate_virtual_regs_1): Same.
5754
5755         * fold-const.c (operand_equal_p): Handle vectors.
5756         (fold): Same.
5757         (rtl_expr_nonnegative_p): Same.
5758
5759         * flow.c (mark_used_regs): Handle vectors.
5760
5761         * df.c (df_uses_record): Handle vectors.
5762
5763         * cselib.c (cselib_subst_to_values): Handle vectors.
5764         (cselib_mem_conflict_p): Same.
5765         (hash_rtx): Same.
5766
5767         * cse.c (canon_reg): Handle vectors.
5768         (fold_rt): Same.
5769         (cse_process_notes): Same.
5770         (count_reg_usage): Same.
5771         (canon_hash): Same.
5772
5773         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
5774
5775         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
5776
5777         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
5778         (gen_rtx): Handle CONST_VECTOR.
5779         (gen_const_vector_0): New.
5780         (copy_rtx_if_shared): CONST_VECTORs can be shared.
5781         (reset_used_flags): Same.
5782         (copy_insn_1): Same.
5783         (initializer_constant_valid_p): Handle VECTOR_CST.
5784
5785         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
5786
5787         * doc/rtl.texi (Constants): Document const_vector.
5788         (CONST0_RTX): Update for vectors.
5789         (RTL sharing): Same.
5790
5791         * print-tree.c (print_node): Add case for VECTOR_CST.
5792
5793         * tree.h (TREE_VECTOR_CST_ELTS): New.
5794         (struct tree_vector): New.
5795         (union tree_node): Add vector node.
5796         (build_vector): Add prototype.
5797
5798         * tree.def (VECTOR_CST): New.
5799
5800         * tree.c (build_vector): New.
5801
5802         * expmed.c (make_tree): Handle CONST_VECTOR.
5803
5804         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
5805         (CONST_VECTOR_ELT): New.
5806         (CONST_VECTOR_NUNITS): New.
5807
5808         * machmode.h (GET_MODE_INNER): New.
5809         (DEF_MACHMODE): Accept 8th arg.
5810
5811         * machmode.def: Add 8th argument for vector inner mode.
5812         Add inner vector modes for vectors.
5813
5814         * rtl.def (VEC_CONST): Remove.
5815         (CONST_VECTOR): New.
5816
5817         * expr.c (clear_storage): Allow vectors.
5818         (is_zeros_p): Handle VECTOR_CST.
5819
5820         * varasm.c (output_constant_pool): Handle vectors.
5821         (rtx_const): Add veclo and vechi fields.
5822         (kind): Add RTX_VECTOR.
5823         (decode_rtx_const): Add case for vector.
5824
5825         * config/rs6000/rs6000-protos.h: Add zero_constant.
5826
5827         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
5828         constants.  Force easy vector constants into memory.
5829         (easy_vector_constant): New.
5830         (emit_easy_vector_constant): New.
5831         (rs6000_legitimize_reload_address): Do not generate bad reloads on
5832         darwin.
5833
5834         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
5835         instruction does.
5836         ("altivec_lvxl"): Same.
5837         (altivec_lvebx): Same.
5838         (altivec_lvehx): Same.
5839         (altivec_lvewx): Same.
5840         ("*movv4si_const0"): New.
5841         ("*movv4sf_const0"): New.
5842         ("*movv8hi_const0"): New.
5843         ("*movv16qi_const0"): New.
5844
5845 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5846
5847         * config/h8300/h8300.c (notice_update_cc): Use
5848         cc_status.value2.
5849
5850 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5851
5852         * config/h8300/h8300.md (divmod patterns): Change the
5853         constraints for operands[1] to register_operand.
5854
5855 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5856
5857         * config/h8300/h8300-protos.h: Remove the prototype for
5858         p_operand.
5859         * config/h8300/h8300.c (p_operand): Remove.
5860         * config/h8300/h8300.md: Replace p_operand with
5861         const_int_operand.
5862
5863 2002-02-18 Philip Blundell <pb@nexus.co.uk>
5864
5865         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
5866         comment.
5867         (output_return_instruction): Allow use of LDR to unstack
5868         return addresss even for interrupt handlers or when
5869         interworking.  If compiling for ARMv5, use interworking-safe
5870         return instructions by default.  Remove duplicated code and
5871         lengthy "strcat" sequences.
5872
5873 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5874
5875         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
5876         (LINK_EH_SPEC): Define.
5877         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
5878
5879 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5880
5881         * config/s390/s390.c (s390_emit_prologue): Do not set the
5882         frame_related flag for call-clobbered registers.
5883
5884 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
5885
5886         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
5887         (construct_container): Fix handling of SSE operands.
5888         (ix86_expand_builtin): Fix handling of 64bit pointers.
5889         (mmx_maskmovq_rex): New pattern.
5890
5891 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
5892
5893         * regrename.c (kill_set_value): Handle subregs properly.
5894
5895 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
5896
5897         * objc/objc-act.c (handle_impent): Remove leading '*'
5898         from objc_class_name.
5899
5900 2002-02-17  Richard Henderson  <rth@redhat.com>
5901
5902         * config/alpha/alpha.c (some_small_symbolic_operand,
5903         some_small_symbolic_operand_1, split_small_symbolic_operand,
5904         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
5905         Handle small SYMBOL_REFs anywhere, not just inside memories.
5906         * config/alpha/alpha-protos.h: Update.
5907         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5908         * config/alpha/alpha.md (small symbolic operand splitter): Update.
5909
5910 2002-02-17  Roland McGrath  <roland@frob.com>
5911
5912         * config.gcc (powerpc-*-gnu-gnualtivec*,
5913         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
5914         * config/rs6000/gnu.h: New file.
5915         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
5916         Grok "gnu" in rs6000_abi_name.
5917         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
5918         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
5919         Grok -mcall-gnu analogous to -mcall-linux et al.
5920         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5921         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
5922         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
5923
5924 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
5925
5926         PR c/3444:
5927         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
5928         shortening.
5929
5930 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5931
5932         * config/cris/cris.h: Undefine STARTFILE_SPEC and
5933         ENDFILE_SPEC before (re)defining them.
5934
5935 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5936
5937         * config/h8300/h8300.c: Fix formatting.
5938         * config/h8300/h8300.h: Likewise.
5939
5940 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5941
5942         * doc/tm.texi: Explain why empty strings should not be
5943         marked for translation.
5944
5945 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5946
5947         * final.c (output_operand_lossage): Changed to accept
5948         printf style arguments. Change calls where necessary.
5949         * output.h (output_operand_lossage): Change declaration
5950         accordingly. Update copyright.
5951         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
5952         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
5953         Update copyright date where necessary.
5954
5955         * config/i386/i386.c (print_operand): Likewise. Remove use of
5956         sprintf.
5957
5958         * config/cris/cris.c (cris_operand_lossage): Likewise.
5959         Rename parameter so that exgettext recognizes it as
5960         translatable message.
5961         (LOSE_AND_RETURN): Rename parameter to msgid.
5962
5963 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5964
5965         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
5966         hard coded register number with an appropriate macro.
5967         (HARD_REGNO_MODE_OK): Likewise.
5968         (ARG_POINTER_REGNUM): Likewise.
5969         (STATIC_CHAIN_REGNUM): Likewise.
5970         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5971         * config/h8300/h8300.md (define_constants): Define more
5972         register numbers.
5973
5974 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5975
5976         * config/i386/i386.h: Don't mark empty strings for translation.
5977
5978 2002-02-16  H.J. Lu <hjl@gnu.org>
5979
5980         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
5981
5982 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
5983
5984         * cppinit.c (merge_include_chains): Check for brack being
5985         NULL before attempting to merge it with qtail.
5986
5987 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
5988
5989         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
5990         DBX_DEBUG.
5991
5992 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5993
5994         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
5995
5996 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5997
5998         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
5999         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
6000         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
6001
6002 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6003
6004         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
6005         now only if !TARGET_FIX.
6006         (*movsi_nt_vms_fix): New pattern.
6007
6008 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
6009
6010         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
6011         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
6012         (alpha_sa_mask, alpha_sa_size): Reflect above change.
6013         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
6014         (alpha_start_function, alpha_expand_epilogue): Likewise.
6015         (unicosmk_gen_dsib): Likewise.
6016
6017 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6018
6019         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
6020
6021 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
6022
6023         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
6024         check_and_change_labels, s390_final_chunkify): Delete.
6025         (s390_split_branches, s390_chunkify_pool): New functions.
6026         (s390_function_prologue): Call them.
6027
6028         * config/s390/s390.h (S390_REL_MAX): Delete.
6029         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
6030
6031         * config/s390/s390.md (cjump, icjump, jump): Fix length
6032         attribute calculation.
6033
6034
6035 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
6036
6037         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
6038         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
6039
6040 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6041
6042         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
6043         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
6044         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
6045
6046 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
6047
6048         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
6049
6050 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
6051
6052         * reload.c (find_dummy_reload): Check that an output register
6053         is valid for its mode.
6054
6055 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
6056
6057         * combine.c (known_cond): After replacing the REG of a SUBREG, try
6058         to simplify it.
6059
6060         * function.c (assign_parms): Demote promoted argument passed by
6061         transparent reference.
6062
6063 2001-02-14      Joel Sherrill <joel@OARcorp.com>
6064
6065         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
6066         -Acpu() and -Amachine() to eliminate warnings.
6067
6068 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
6069
6070         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
6071
6072 2002-02-14  Kazu Hirata  <kazu@hxi.com>
6073
6074         * config/h8300/h8300-protos.h: Update the prototype for
6075         const_costs.
6076         * config/h8300/h8300.c (const_costs): Treat SET as a little
6077         more expensive operation.
6078         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
6079         reference to const_costs.
6080
6081 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
6082
6083         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
6084
6085 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
6086
6087         PR c/5503:
6088         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
6089         use arguments from newtype.
6090
6091 2002-02-13  Eric Christopher  <echristo@redhat.com>
6092
6093         * config/mips/mips.c (override_options): Add check for march/mipsX
6094         on the same command line. Fix error message in cpu processing.
6095         Remove architecture and ISA checks.
6096
6097 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
6098
6099         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
6100
6101         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
6102
6103 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
6104
6105         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
6106         alternatives.
6107         ("*movv8hi_internal1"): Same.
6108         ("*movv16qi_internal1"): Same.
6109         ("*movv4sf_internal1"): Same.
6110
6111         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
6112         not push_reload for altivec modes.
6113
6114 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
6115
6116         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
6117         all RTEMS targets including removal of #includes from config/*/rtems*.h
6118         file and adding them to tm_file setting. Added xm_defines=POSIX to
6119         many targets.
6120         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
6121         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
6122         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
6123         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
6124         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
6125         config/m68k/rtemself.h: Ditto.
6126         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
6127         config/mips/rtems64.h: Ditto.
6128         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
6129         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
6130         Ditto.
6131         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
6132         config/sparc/rtemself.h: Ditto.
6133         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
6134         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
6135         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
6136         more like arm-elf.
6137         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
6138         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
6139         target made more similar to i386-elf.
6140         * config/i386/t-rtems-i386: Added soft float support and multilibs.
6141         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
6142         be similar to config/m68k/t-m68kelf.
6143         * gthr-rtems.h: Encapsulate with extern "C" for C++.
6144
6145 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
6146
6147         * regmove.c (kill_value): Handle subregs.
6148
6149 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6150
6151         * i386.md (mul patterns): Allow memory operand to be first;
6152         add expanders where needed; fix constraints.
6153         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
6154         Allow memory operand to be the first.
6155
6156         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
6157         operands.
6158
6159 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
6160
6161         PR c/5681:
6162         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
6163         GET_MODE (x).
6164
6165 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
6166
6167         PR optimization/5547:
6168         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
6169         all valid IA-32 address modes involving non-scaled %ebx and
6170         GOT/GOTOFF as displacement.
6171
6172 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6173
6174         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
6175         after emitting ltorg insns.
6176
6177         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
6178         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
6179         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
6180         *abssf2): Fix "op_type" attribute.
6181
6182 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
6183
6184         * mkconfig.sh: Avoid using a subshell redirect.
6185         ($output.T): Change to $(output)T.
6186         (ENABLE_NLS): Remove unneeded undef.
6187
6188         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
6189         * config/alpha/x-vms (libsubdir): Define.
6190
6191         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
6192         register frame procedures. Optimize retrieving context.
6193
6194         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
6195         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
6196         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
6197
6198 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6199
6200         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
6201         Make same change as for find_base_value.
6202
6203 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6204
6205         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
6206         of QImode and SImode.
6207
6208 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6209
6210         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
6211         length computation of movsi.
6212         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
6213
6214 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6215
6216         * config/h8300/h8300.md (subqi3): Tighten the predicate for
6217         operands[2] to register_operand.
6218
6219 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
6220
6221         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
6222
6223 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
6224
6225         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
6226         for altivec_lvx* and altivec_stvx*.
6227         ("*movv4si_internal"): Add constraint for loading from GPRs.
6228         ("*movv8hi_internal1"): Same.
6229         ("*movv16qi_internal1"): Same.
6230         ("*movv4sf_internal1"): Same.
6231
6232         * config/rs6000/rs6000.c (altivec_register_operand): New.
6233
6234         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
6235         altivec_register_operand.
6236
6237 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
6238
6239         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
6240         handle SYMBOL_REF.
6241
6242 2002-02-13  Stan Shebs  <shebs@apple.com>
6243
6244         * c-typeck.c (digest_init): Handle vectors.
6245         (really_start_incremental_init): Same.
6246         (pop_init_level): Same.
6247         (process_init_element): Same.
6248
6249         * varasm.c (output_constant): Same.
6250
6251         * expr.c (clear_storage): Same.
6252         (store_constructor): Same.
6253
6254 2002-02-12  Eric Christopher  <echristo@redhat.com>
6255
6256         * explow.c (hard_function_value): Add comment explaining
6257         signed/unsigned comparison.
6258
6259 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
6260
6261         * jump.c (never_reached_warning): Add finish argument.
6262         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
6263         real insn after end.
6264         * rtl.h (never_reached_warning): Adjust prototype.
6265         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
6266         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
6267         never_reached_warning.
6268
6269 2002-02-12  Graham Stott  <grahams@redhat.com>
6270
6271         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
6272
6273 2002-02-12  Kazu Hirata  <kazu@hxi.com>
6274
6275         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
6276         logical shifts on H8/300.
6277         (shift_alg_si): Improve several shifts on H8/300.
6278         (get_shift_alg): Likewise.
6279
6280 2002-02-12  Graham Stott  <grahams@redhat.com>
6281
6282         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
6283
6284 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6285
6286         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
6287         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
6288
6289 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
6290
6291         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
6292         non-CONST_INT through default_assemble_integer.
6293         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
6294         <case 8>: Abort for CONST_DOUBLE.
6295
6296 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6297
6298         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
6299         is specified.
6300         * config/pa/pa-linux.h (LIB_SPEC): Delete.
6301         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6302
6303 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
6304
6305         * config/stormy16/stormy16.md (zero_extendqihi2): New.
6306
6307 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
6308
6309         * regrename.c (regrename_optimize): Don't accept a
6310         part-clobbered register if the replaced register is not part
6311         clobbered.
6312
6313         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
6314         take padding into account when computing the argument value.
6315
6316         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
6317
6318         * combine.c (try_combine): Apply substitutions in
6319         CALL_INSN_FUNCTION_USAGE too.
6320
6321 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
6322
6323         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
6324         __builtin_altivec_abs*.
6325         (bdesc_abs): New.
6326
6327         * config/rs6000/rs6000.h (rs6000_builtins): Add
6328         ALTIVEC_BUILTIN_ABS*.
6329
6330         * config/rs6000/altivec.h: Use const char for builtins expecting
6331         literals.
6332         (vec_abs): New versions for C and C++.
6333         (vec_abss): Same.
6334
6335 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6336
6337         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
6338         using Pmode.
6339
6340 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6341
6342         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
6343         constant definition from h8300.md.
6344         (FRAME_POINTER_REGNUM): Likewise.
6345         * config/h8300/h8300.md (define_constants): Add FP_REG.
6346
6347 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6348
6349         * config/h8300/h8300.c (print_operand): Remove redundant code.
6350
6351 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6352
6353         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
6354         * config/h8300/h8300.c (byte_reg): Make it static.
6355
6356 2002-02-10  Richard Henderson  <rth@redhat.com>
6357
6358         PR c/5623
6359         * c-typeck.c (incomplete_type_error): Handle flexible array members.
6360
6361 2002-02-10  Richard Henderson  <rth@redhat.com>
6362
6363         PR c++/5624
6364         * tree.c (append_random_chars): Don't abort if main_input_filename
6365         does not exist.
6366
6367 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
6368
6369         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
6370
6371 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6372
6373         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
6374         (pushhi1): Likewise.
6375
6376 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6377
6378         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
6379         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
6380
6381 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
6382
6383         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
6384         remove MASK_VIS.
6385         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
6386
6387 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6388
6389         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
6390         a half of an SImode register on H8/300.
6391
6392 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
6393
6394         * i386.md (movdi_2): Add missing '!'.
6395
6396 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6397
6398         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
6399         definitions.
6400
6401 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6402
6403         * config/h8300/h8300.md (length): Correct the distance valid
6404         for the short branch.
6405
6406 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6407
6408         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
6409
6410 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6411
6412         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
6413         registers in SImode.
6414         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
6415         part-clobbered.
6416
6417         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
6418         patch.
6419
6420         Contribute sh64-elf.
6421         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6422         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
6423         (sh_cannot_modify_jumps_p): New function.
6424         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
6425         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
6426         (sh_ms_bitfield_layout_p): New function.
6427         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
6428                     Zack Weinberg  <zack@codesourcery.com>
6429         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
6430         expand_simple_binop instead of expand_binop.
6431         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
6432         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
6433         use of .quad and .uaquad.
6434         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
6435         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
6436         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6437         * config/sh/sh.md (movdi_const, movdi_const_32bit,
6438         movdi_const_16bit): Make sure all CONSTs have modes.
6439         (sym2PIC): Ditto, but by adjusting all callers.
6440         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
6441         if the prologue calls the SHmedia argument decoder or register
6442         saver.
6443         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6444         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
6445         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
6446         (sh_expand_epilogue): Don't emit USE of return target register.
6447         (prepare_move_operands): Legitimize DImode PIC addresses.
6448         (sh_media_register_for_return): Skip tr0, used to initialize the
6449         PIC register.
6450         (sh_expand_prologue): Remove explicit USE of return register.
6451         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
6452         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
6453         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
6454         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
6455         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
6456         EXTRA_CONSTRAINT_T.
6457         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
6458         (MOVI_SHORI_BASE_OPERAND_P): New.
6459         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
6460         (EXTRA_CONSTRAINT_T): Define in terms of them.
6461         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
6462         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
6463         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
6464         alternatives supporting TARGET_REGS.
6465         (UNSPEC_GOTPLT): New constant.
6466         (movdi split): Move incrementing of LABEL_NUSES...
6467         (movdi_const, movdi_const_32bit): Here.  Use
6468         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
6469         (movdi_const_16bit): New.
6470         (call, call_value) [flag_pic]: Use GOTPLT.
6471         (call_pop, call_value_pop): New expands.
6472         (call_pop_compact, call_pop_rettramp): New insns.
6473         (call_value_pop_compact, call_value_pop_rettramp): New insns.
6474         (sibcall) [flag_pic]: Use GOT.
6475         (builtint_setjmp_receiver): Remove bogus, unused expand.
6476         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
6477         (*pt, *ptb, ptrel): New insns.
6478         (sym2GOT): Handle DImode GOT.
6479         (sym2GOTPLT, symGOTPLT2reg): New expands.
6480         (sym2PIC): New expand.
6481         (shcompact_return_tramp): Use GOTPLT to return trampoline.
6482         (shcompact_return_tramp_i): Use return register explicitly.
6483         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
6484         disable flag_reorder_blocks.
6485         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
6486         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
6487         clobbers, for clarity.
6488         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
6489         restoring of r0 in macl as MAYBE_DEAD.
6490         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
6491         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
6492         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
6493         alter_subreg all over.
6494         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
6495         reload, instead of emitting instructions that would require
6496         reloading.
6497         (casesi_load_media): Add missing modes.
6498         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
6499         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
6500         as used if the argument decoder is called.
6501         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6502         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
6503         Pmode, then extend it to DImode if necessary.
6504         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6505         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
6506         constants in FPU-enabled SHmedia, let them be loaded from memory.
6507         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6508         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
6509         Adjust whitespace in assembly output templates.
6510         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6511         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
6512         mode of if_then_else.
6513         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
6514         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
6515         sh.h.
6516         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
6517                     Joern Rennecke <amylaar@redhat.com>
6518         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
6519         (SUBTARGET_CPP_PTR_SPEC): New.
6520         (SUBTARGET_CPP_SPEC): Remove.
6521         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6522         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6523         Fix typo in previous checkin.
6524         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
6525         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
6526         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
6527                     Alexandre Oliva  <aoliva@redhat.com>
6528         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
6529         what single FP register can hold for SHmedia target.
6530         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6531                     Alexandre Oliva  <aoliva@redhat.com>
6532         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6533         Do not split into SUBREG.
6534         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
6535         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
6536         and added new functions as specified in SH5 ABI r9.
6537         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
6538         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
6539         8-byte boundary.
6540         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
6541         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
6542         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
6543         and consttable_window_ends.
6544         2001-06-03  Graham Stott  <grahams@redhat,com>
6545         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
6546         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
6547         * config/sh/sh.c (print_operand): Handle floating-point pair,
6548         vector and matrix registers.
6549         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
6550         vector modes into account.
6551         * config/sh/sh.md (movv2sf): Split move between registers into
6552         movdf.
6553         (movv4sf, movv16sf): Introduce insns that get split only after
6554         reload.
6555         * config/sh/shmedia.h: Fix Copyright dates.
6556         * config/sh/ushmedia.h: Likewise.  Move loop counter
6557         declarations into conditionals that uses them.
6558         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
6559         loop boundary.
6560         * config/sh/sshmedia.h: Fix Copyright dates.
6561         (sh_media_PUTCFG): Fix constraints.
6562         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
6563         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
6564         ptrmemfunc_vbit_in_delta for SH5.
6565         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
6566         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
6567         * invoke.texi: Likewise.
6568         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
6569         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
6570         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
6571         GCC_pop_shmedia_regs_nofpu): New global symbols.
6572         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
6573         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
6574         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
6575         compact function with nonlocal labels.
6576         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
6577         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
6578         (initial_elimination_offset): Account for their stack space.
6579         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
6580         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
6581         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
6582         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
6583         least one of the operands to be a register.
6584         (movv2sf): Likewise.  Renamed to movv2sf_i.
6585         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
6586         prepare_move_operands() before emitting SHmedia insns.
6587         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
6588         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
6589         Don't save nor initialize r12.  Don't mis-align the stack.
6590         Pad the code with a nop.
6591         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
6592         stack.
6593         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
6594         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
6595         [__SHMEDIA__]: Implement.
6596         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
6597         * config/sh/sh.md: Set latency of `pt' closer to reality.
6598         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
6599         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
6600         Set move, load and store type attributes.
6601         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
6602         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
6603         profiling.
6604         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
6605         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
6606         * config/sh/sh.c (sh_media_register_for_return): New function.
6607         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
6608         branch-target register.
6609         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
6610         * config/sh/sh.md (return_media_i): Use any call-clobbered
6611         branch-target register.
6612         (return_media): If r18 wasn't copied in the prologue, copy it
6613         here.
6614         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
6615         Clear class FP0_REGS.
6616         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
6617         from elf.h.
6618         2001-03-08  DJ Delorie  <dj@redhat.com>
6619         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
6620         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
6621         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
6622         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
6623         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
6624         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
6625         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
6626         return value correctly for call_cookie.
6627         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
6628         * config/sh/crt1.asm (start): Modified so as to call
6629         ___setup_argv_and_call_main.
6630         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
6631         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
6632         SHmedia mode.
6633         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
6634         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
6635         (STRIP_NAME_ENCODING): Use it.
6636         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
6637         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
6638         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
6639         prepare_scc_operands().
6640         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
6641         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
6642         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
6643         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
6644         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
6645         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
6646         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
6647         used in shcompact_incoming_args.
6648         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
6649         change.
6650         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
6651         mode.
6652         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
6653         Adjust accordingly.
6654         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6655         Simplify.  Adjust.  Add sanity check.
6656         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
6657         FPU_SINGLE_BIT.
6658         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
6659         TARGET_SHCOMPACT.
6660         (udivsi3, divsi3): Use them.
6661         (force_mode_for_call): New insn.
6662         (call, call_value, sibcall_value): Emit it before SHcompact
6663         calls.
6664         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
6665         * config/sh/sh.md (call, call_value, sibcall): Make sure the
6666         call cookie is non-NULL before taking its value.
6667         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
6668         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
6669         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
6670         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
6671         block.
6672         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
6673         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
6674         temporary for stack adjusts.  Use MACL and MACH to pass
6675         arguments to shcompact_incoming_args.
6676         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
6677         clobber r1.
6678         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
6679         (nested_trampoline): Load static chain address into r1.
6680         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
6681         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
6682         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
6683         fp_arith_reg_operand().
6684         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
6685         * config/sh/sh.md (casesi): Sign-extend the first two operands,
6686         and use signed compares for them.
6687         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
6688         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
6689         ones properly aligned.
6690         (find_barrier): Account for extra alignment needed for 8-byte wide
6691         constants.
6692         (machine_dependent_reorg): Require a label for the second 4-byte
6693         constant after an 8-byte one.
6694         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
6695         change.
6696         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6697         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
6698         last_float when switching float modes.
6699         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
6700         auto-increment for general-purpose registers.
6701         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
6702         result.
6703         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
6704         for stack adjust.
6705         * config/sh/sh.c (sh_builtin_saveregs): Support using all
6706         registers for varargs.
6707         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
6708         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
6709         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
6710         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
6711         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
6712         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
6713         call_cookie accordingly.
6714         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
6715         (SHCOMPACT_BYREF): Likewise.
6716         (SHCOMPACT_FORCE_ON_STACK): New macro.
6717         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
6718         (sh_builtin_saveregs): Likewise.
6719         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6720         shcompact_incoming_args): Use new shift values.  Support
6721         sequences of consecutive and non-consecutive pushes/pops.
6722         * config/sh/sh.md (return): Don't explicitly use PR_REG.
6723         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
6724         * config/sh/sh.h (TEXT_SECTION): Define.
6725         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
6726         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6727         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
6728         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
6729         return values on FPU-enabled SHmedia.
6730         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
6731         FPU-enabled SHmedia.
6732         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
6733         value is returned in a non-FP reg and is not returned by
6734         reference.
6735         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
6736         jump_ind.
6737         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
6738         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
6739         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
6740         quad-aligned to be passed by callee-copy reference.
6741         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
6742         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
6743         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
6744         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
6745         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
6746         copying low-numbered FP regs to r7 and r8.
6747         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
6748         FP regs to general-purpose regs only if the copy was passed on the
6749         stack.
6750         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
6751         copying FP reg to r9.
6752         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
6753         copy FP regs to general-purpose regs only in outgoing calls.
6754         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
6755         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
6756         HOST_WIDE_INT.
6757         * config/sh/sh.h (struct sh_args): Document all fields.
6758         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
6759         passed partially on the stack should not consider making
6760         sibcalls.
6761         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
6762         stack_regs only for incoming calls.  When passing FP args,
6763         make sure there are FP regs available before modifying
6764         call_cookie.
6765         (SHCOMPACT_BYREF): Pass double args in general-purpose
6766         registers by reference.
6767         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
6768         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
6769         attempt to generate sibcalls if the caller got any arguments
6770         by reference.
6771         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
6772         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
6773         to 8-byte boundaries.
6774         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
6775         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
6776         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
6777         stored in the stack.
6778         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
6779         for the offsets to have the ISA bit set.
6780         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
6781         invocation.  Use beq instead of bgt to mark end of sequence of
6782         loads.
6783         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
6784         bgt to mark end of sequence of stores.
6785         * config/sh/sh.c (arith_operand): Don't check whether
6786         CONST_OK_FOR_J for now.
6787         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
6788         instead of long for conversion.
6789         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
6790         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
6791         before passing it to fprintf.
6792         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
6793         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
6794         Call set_fpscr before reading/writing SR.
6795         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
6796         Call set_fpscr.
6797         * config/sh/lib1funcs.asm: Add `.align 2' directives before
6798         SHmedia code.
6799         (FMOVD_WORKS): Define on SH5 with FPU.
6800         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
6801         setting.
6802         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
6803         _fpscr_values.
6804         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
6805         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
6806         address.
6807         (ia_main_table): Ditto.
6808         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
6809         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
6810         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
6811         the definitions from sh.h.
6812         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
6813         TARGET_SH5.
6814         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
6815         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
6816         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6817         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
6818         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
6819         Increment LABEL_NUSES.
6820
6821         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
6822         TARGET_SH5.
6823         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
6824         defined.
6825         * config/sh/elf.h (SIZE_TYPE): Likewise.
6826         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6827         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6828         shcompact_incoming_args): Load switch table addresses using
6829         datalabel.
6830         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6831         (NO_BUILTIN_SIZE_TYPE): Define.
6832         (SIZE_TYPE): Don't define.
6833         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6834         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
6835         definition of __SH5__=32 for -m5-compact-nofpu.
6836         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
6837         ADDR_DIFF_VEC.
6838         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
6839         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
6840         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
6841         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
6842         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
6843         (INSN_LENGTH_ALIGNMENT): Likewise.
6844         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6845         * config/sh/sh.md (call, call_value, sibcall): Simplify
6846         copying of non-branch-target register.
6847         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6848         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
6849         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
6850         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6851         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
6852         floating-point values as structs.
6853         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
6854         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
6855         general-purpose register.
6856         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
6857         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6858         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
6859         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
6860         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
6861         (ENCODE_SECTION_INFO): Enclose variables and constants in
6862         DATALABEL unspecs.
6863         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
6864         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
6865         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
6866         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
6867         only for LABEL_REFs.  For SYMBOL_REFs, prepend
6868         SH_DATALABEL_ENCODING to the symbol name.
6869         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
6870         convert_mode().
6871         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6872         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
6873         UNSPEC_DATALABEL.
6874         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
6875         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
6876         (DATALABEL_REF_P): Don't require CONST.
6877         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
6878         REL label.
6879         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
6880         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
6881         right.
6882         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6883         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
6884         Use shallow_copy_rtx and PUT_MODE to change the mode of
6885         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
6886         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
6887         on SHmedia using GENERAL_REGs.
6888         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6889         bltu_media_i): Fix reversion of conditions.
6890         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6891         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
6892         * config/sh/sh.c (output_far_jump): Save r13 in macl.
6893         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
6894         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
6895         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
6896         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
6897         (GCC_nested_trampoline): Likewise.
6898         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
6899         * config/sh/sh.c (gen_datalabel_ref): Define.
6900         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
6901         (INITIALIZE_TRAMPOLINE): Likewise.
6902         (TRAMPOLINE_ADJUST_ADDRESS): Define.
6903         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
6904         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
6905         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
6906         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
6907         (ic_invalidate): Adjust for SH5.
6908         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
6909         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
6910         _nested_trampoline.
6911         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
6912         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
6913         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
6914         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6915         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
6916         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
6917         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6918         * config/sh/sh.c (target_reg_operand): Match only target-branch
6919         registers and pseudos that aren't virtual registers.
6920         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6921         Copy operands that don't match target_reg_operand to pseudos.
6922         (call_media, call_value_media, sibcall_media): Use
6923         target_reg_operand instead of target_operand.
6924         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
6925         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
6926         * config/sh/sh.c (target_reg_operand): Match hardware registers
6927         other than branch-target registers.
6928         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
6929         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
6930         (fpscr_values) [SH5 == 32]: Define.
6931         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
6932         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6933         Handle function addresses coming in SUBREGs.
6934         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
6935         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6936         shcompact_return_trampoline): Use datalabel where appropriate.
6937         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
6938         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
6939         general-purpose register to copy one branch-target register to
6940         another.
6941         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6942         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
6943         SYMBOL_REFs with VOIDmode.
6944         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6945         bltu_media_i): New insns.
6946         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6947         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
6948         (INIT_CUMULATIVE_ARGS): Likewise.
6949         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
6950         * machmode.def (V16SFmode): New mode.
6951         * c-common.c (type_for_mode): Support V2SF and V16SF.
6952         * tree.c (build_common_tree_nodes_2): Likewise.
6953         * tree.h (tree_index): Likewise.
6954         * calls.c (emit_call_1): Take args_so_far.  Adjust all
6955         callers.  Introduce CALL_POPS_ARGS.
6956         * tm.texi (CALL_POPS_ARGS): Document.
6957         * config/sh/crt1.asm: Implement in SHmedia mode.
6958         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
6959         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
6960         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
6961         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
6962         Implement divsi and udivsi in SHmedia mode.  Introduce
6963         SHcompact trampolines.
6964         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
6965         only in SHmedia64.
6966         (regno_reg_class): Rewrite.
6967         (fp_reg_names): Remove.
6968         (sh_register_names, sh_additional_register_names): New.
6969         (print_operand): Added `u'.  Support SUBREGs in addresses.
6970         Add parentheses around shifted CONSTs.
6971         (output_file_start): Output .mode and .abi directives.
6972         (shiftcosts, addsubcosts, multcosts): Adjust.
6973         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
6974         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
6975         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
6976         bytes, not registers.  Take into account the need for the
6977         SHcompact incoming args trampoline.  Adjust all callers.
6978         (sh_expand_prologue): Take stack_regs into account.  Call
6979         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
6980         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
6981         stack aligned as per SH5 ABI.
6982         (sh_builtin_saveregs): Support SH5 ABI.
6983         (sh_build_va_list, sh_va_start): Likewise.
6984         (initial_elimination_offset): Take alignment into account.
6985         Compute location of PR according to the SH5 stack frame.
6986         (arith_reg_operand): Reject branch-target registers.
6987         (shmedia_6bit_operand): New.
6988         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
6989         (target_reg_operand): Match DImode only.  Accept SUBREGs.
6990         (target_operand): New.
6991         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
6992         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
6993         SIBCALL_REGS for SHmedia.
6994         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
6995         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
6996         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
6997         (TARGET_SWITCHES): New SH5 flags.
6998         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
6999         VALID_REGISTER_P to disable unsupported registers.
7000         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
7001         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
7002         (FUNCTION_ARG_PADDING): Define.
7003         (FASTEST_ALIGNMENT): Adjust.
7004         (SH_REGISTER_NAMES_INITIALIZER): New.
7005         (sh_register_names): Declare.
7006         (DEBUG_REGISTER_NAMES): Define.
7007         (REGISTER_NAMES): Define based on sh_register_names.
7008         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
7009         (sh_additional_register_names): Declare.
7010         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
7011         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
7012         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
7013         (REGISTER_NATURAL_MODE): Define.
7014         (FIRST_PSEUDO_REGISTER): Adjust.
7015         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
7016         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
7017         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
7018         (VECTOR_MODE_SUPPORTED_P): Define.
7019         (REG_CLASS_CONTENTS): Adjust.
7020         (SMALL_REGISTER_CLASSES): Adjust.
7021         (REG_ALLOC_ORDER): Adjust.
7022         (INDEX_REG_CLASS): Adjust.
7023         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
7024         (CONST_OK_FOR_LETTER_P): Adjust.
7025         (PREFERRED_RELOAD_CLASS): Adjust.
7026         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
7027         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
7028         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
7029         (FIRST_FP_PARM_REG): Adjust.
7030         (CALL_POPS_ARGS): Define.
7031         (FUNCTION_ARG_REGNO_P): Adjust.
7032         (struct sh_args): New fields.
7033         (GET_SH_ARG_CLASS): Adjust.
7034         (INIT_CUMULATIVE_ARGS): Adjust.
7035         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
7036         (FUNCTION_ARG_ADVANCE): Adjust.
7037         (FUNCTION_ARG): Adjust.
7038         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
7039         (FUNCTION_ARG_CALLEE_COPIES): Define.
7040         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
7041         (STRICT_ARGUMENT_NAMING): Define.
7042         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
7043         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
7044         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
7045         (SETUP_INCOMING_VARARGS): Adjust.
7046         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
7047         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
7048         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
7049         (SUBREG_OK_FOR_INDEX_P): Adjust.
7050         (EXTRA_CONSTRAINT_S): Update.
7051         (EXTRA_CONSTRAINT_T): New.
7052         (EXTRA_CONSTRAINT): Adjust.
7053         (GO_IF_LEGITIMATE_INDEX): Adjust.
7054         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
7055         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
7056         (MOVE_MAX): Adjust.
7057         (MAX_MOVE_MAX): Define.
7058         (Pmode): Adjust.
7059         (CONST_COSTS): Adjust.
7060         (REGISTER_MOVE_COST): Adjust.
7061         (BRANCH_COST): Adjust.
7062         (TEXT_SECTION_ASM_OP): Adjust.
7063         (DBX_REGISTER_NUMBER): Adjust.
7064         (ASM_OUTPUT_DOUBLE_INT): New.
7065         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
7066         (PREDICATE_CODES): Adjust.
7067         (PROMOTE_MODE): Adjust.
7068         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
7069         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
7070         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
7071         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
7072         (DR0_REG, DR2_REG, DR4_REG): Renumber.
7073         (TR0_REG, TR1_REG, TR2_REG): New.
7074         (XD0_REG): Renumber.
7075         (UNSPEC_COMPACT_ARGS): New.
7076         (type): Added pt and ptabs.
7077         (length): Default to 4 on SHmedia.  Default pt length to 12
7078         and     20 on SHmedia32 and SHmedia64, respectively.
7079         (pt): New function unit.
7080         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
7081         Add whitespace between operands of SHmedia instructions.
7082         (movdicc): Fix.
7083         (adddi3_media, addsi3_media): Adjust constraints.
7084         (subsi3) [SHmedia]: Force operand 1 into a register.
7085         (udivsi3_i1_media, udivsi3_i4_media): New.
7086         (udivsi3): Support SHmedia.
7087         (divsi3_i1_media, divsi3_i4_media): New.
7088         (divsi3): Support SHmedia.
7089         (anddi3, iordi3, xordi3): Adjust constraints.
7090         (zero_extendhidi2, zero_extendqidi2): New.
7091         (extendsidi2, extendhidi2, extendqidi2): New.
7092         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
7093         (pop_e, pop_fpul, pop_4): Likewise.
7094         (movsi_media): Support FP and BT registers.
7095         (movsi_media_nofpu): New.  Adjust splits to DImode.
7096         (lduw, ldub): Renamed to zero_extend* above.
7097         (movqi_media): Fix typo.
7098         (movdi_media): Support FP and BT registers.
7099         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
7100         (movdi_const_32bit): New.
7101         (shori_media): Require immediate operand.  Use `u' for output.
7102         (movdf_media, movsf_media): Simplified.
7103         (movdf_media_nofpu, movsf_media_nofpu): New.
7104         (movdf, movsf): Adjust
7105         (movv2sf, movv2sf, movv16sf): New.
7106         (beq_media, beq_media_i): Adjust constraints.  Don't use
7107         scratch BT register.
7108         (bne_media, bne_media_i): Likewise.
7109         (bgt_media, bgt_media_i): Likewise.
7110         (bge_media, bge_media_i): Likewise.
7111         (bgtu_media, bgtu_media_i): Likewise.
7112         (bgeu_media, bgeu_media_i): Likewise.
7113         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
7114         bunordered): Emit jump insn.  Force operands to registers when
7115         needed.
7116         (jump_media, jump): Simplify.
7117         (call_compact, call_compact_rettramp): New.
7118         (call_value_compact, call_value_compact_rettramp): New.
7119         (call_media, call_value_media): Simplify.
7120         (sibcall_compact, sibcall_media): New.
7121         (call, call_value): Adjust for SHmedia and SHcompact.
7122         (sibcall, sibcall_value, untyped_call): Likewise.
7123         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
7124         (indirect_jump): Adjust for SHmedia.
7125         (casesi_jump_media): New.
7126         (nop): Re-enable for SHmedia.
7127         (call_site): Restrict to SH1.
7128         (casesi): Adjust for SHmedia.
7129         (casesi_shift_media, casesi_load_media): New.
7130         (return): Explicitly use PR register.  Call return trampoline
7131         on SHcompact.
7132         (return_i): Explicitly use PR register.
7133         (shcompact_return_tramp, shcompact_return_tramp_i): New.
7134         (return_media): Adjust.
7135         (shcompact_incoming_args): New.
7136         (epilogue): Adjust.
7137         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
7138         (movstrsi): Disable on SH5.
7139         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
7140         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
7141         (subsf3, subsf3_media): Likewise.
7142         (mulsf3, mulsf3_media, mac_media): Likewise.
7143         (divsf3, divsf3_media): Likewise.
7144         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
7145         (floatsisf2, fux_truncsfsi2): Likewise.
7146         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
7147         constraints.
7148         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
7149         (cmpunsf_media, cmpsf): Likewise.
7150         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
7151         (abssf2, abssf2_media): Likewise.
7152         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
7153         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
7154         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
7155         (floatsidf2, fix_truncdfsi2): Likewise.
7156         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
7157         constraints.
7158         (cmpeqdf_media, cmpgtdf_media): Likewise.
7159         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
7160         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
7161         (absdf2, absdf2_media): Likewise.
7162         (extendsfdf2, extendsfdf2_media): Likewise.
7163         (truncsfdf2, truncsfdf2_media): Likewise.
7164         * config/sh/sh64.h: New file.
7165         * config/sh/t-sh64: New file.
7166         * config/sh/shmedia.h: New file.
7167         * config/sh/ushmedia.h: New file.
7168         * config/sh/sshmedia.h: New file.
7169         * configure.in: Added sh64-*-elf.
7170         * configure: Rebuilt.
7171         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
7172         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
7173         (reg_class_from_letter): Use `b' for TARGET_REGS.
7174         (print_operand): Support `%M', `%m', `AND' and
7175         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
7176         (andcosts): Adjust for SHmedia.
7177         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
7178         Likewise.
7179         (target_reg_operand): New function.
7180         * config/sh/sh-protos.h (target_reg_operand): Declare.
7181         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
7182         FP registers on SH5.
7183         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
7184         on SH4.
7185         (TARGET_REGISTER_P): New macro.
7186         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
7187         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
7188         (EXTRA_CONSTRAINT_S): New macro.
7189         (EXTRA_CONSTRAINT): Adjust.
7190         (FLOAT_TYPE_SIZE): Define to 32.
7191         (Pmode): DImode on SHmedia.
7192         (CONST_COSTS): Adjust for SHmedia literals.
7193         (PREDICATE_CODES): Added target_reg_operand.
7194         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
7195         * config/sh/sh.md: Remove all attrs from SHmedia insns.
7196         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
7197         (cmpdi): Accept SHmedia.
7198         (movdicc_false, movdicc_true): New insns.
7199         (movdicc): New expand.
7200         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
7201         no_new_pseudos.
7202         (addsi3_media): Match `S' constraint.
7203         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
7204         (negdi2): Expand for SHmedia.
7205         (one_cmpldi2): New expand.
7206         (zero_extendsidi2): Change from expand to insn.
7207         (extendsidi2): Add constraints.
7208         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
7209         LD/ST address.  Fix SI immediate loading split.
7210         (movhi_media, movqi_media, lduw, ldub): New insns.
7211         (movhi, movqi): Accept SHmedia.
7212         (shori_media, movdi_media): Relax input constraints.  Split
7213         symbolic constants.
7214         (movdf_media, movsf_media): New insn.  New split to movdi.
7215         (movdf, movsf): Match on SHmedia.
7216         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
7217         bgeu_media): New insns and splits.  New insns with `_i' suffix.
7218         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
7219         (bunordered): New expand.
7220         (jump_compact): Renamed from `jump'.
7221         (jump_media): New insn.
7222         (jump): New expand.
7223         (call_media, call_value_media): New insns.
7224         (call, call_value): Adjust.
7225         (indirect_jump_compact): Renamed from `indirect_jump'.
7226         (indirect_jump_media): New insn.
7227         (indirect_jump): New expand.
7228         (untyped_call, return): Accept SHmedia.
7229         (return_media): New insn.
7230         (prologue, epilogue, blockage): Accept SHmedia.
7231         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
7232         (sunordered): New expand.
7233         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
7234         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
7235         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
7236         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
7237         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
7238         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
7239         abssf2_media): New insns.
7240         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
7241         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
7242         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
7243         floatdidf2, floatsidf2_media, fix_truncdfdi2,
7244         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
7245         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
7246         absdf2_media): New insns.
7247         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
7248         (extendsfdf2_media, truncdfsf2_media): New insns.
7249         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
7250         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
7251         * config/sh/sh.h (CONST_OK_FOR_J): Document.
7252         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
7253         * config/sh/sh.md (adddi3): New expand.
7254         (adddi3_media, adddi3z_media): New insns.
7255         (adddi3_compact): Renamed from adddi3.
7256         (addsi3_media): Use add.l r63 to add constant zero.
7257         (subdi3): New expand.
7258         (subdi3_media): New insn.
7259         (subdi3_compact): Renamed from subdi3.
7260         (mulsidi3): New expand.
7261         (mulsidi3_media): New insn.
7262         (mulsidi3_compact): Renamed from mulsidi3.
7263         (umulsidi3): New expand.
7264         (umulsidi3_media): New insn.
7265         (umulsidi3_compact): Renamed from umulsidi3.
7266         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
7267         (ashlsi3, ashrsi3, lshrsi3): Use them.
7268         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
7269         (ashldi3, ashrdi3, lshrdi3): Use them.
7270         (zero_extendsidi2): New expand.
7271         (extendsidi2): New insn.
7272         (movsi_media): New insn.  Split to movdi to load constants.
7273         (movsi): Enable for shmedia.
7274         (movdi_media): New insn.  Use shori_media to load wide constants.
7275         (short_media): New insn.
7276         (movdi): Enable for shmedia.
7277         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
7278         * config/sh/sh.h (CPP_SPEC): Added `m5'.
7279         (SUBTARGET_CPP_SPEC): Added `!m5'.
7280         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
7281         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
7282         to all other SH variants.
7283         (TARGET_DEFAULT): Set to SH1_BIT.
7284         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
7285         (BITS_PER_WORD): Raise to 64 on shmedia.
7286         (MAX_BITS_PER_WORD): Change to 64.
7287         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
7288         (INT_TYPE_SIZE): Keep as 32.
7289         (UNITS_PER_WORD): Raise to 8 on shmedia.
7290         (MIN_UNITS_PER_WORD): Keep as 4.
7291         (POINTER_SIZE): Raise to 64 on shmedia.
7292         (CONST_OK_FOR_J): New macro.
7293         (CONST_OK_FOR_LETTER_P): Use it.
7294         (processor_type): Add PROCESSOR_SH5.
7295         * config/sh/sh.md: Conditionalize all expands, insns and
7296         splits to TARGET_SH1.
7297         (cpu): Added sh5.
7298         (addsi3_compact): Renamed from...
7299         (addsi3): Now an expand.
7300         (addsi3_media, subsi3_media): New insns.
7301         (subsi3): Don't negate constants with SHmedia.
7302
7303         * hooks.c: New file.
7304         * hooks.h: New file.
7305         * Makefile.in (HOOKS_H): New.
7306         (TARGET_DEF_H): Added $(HOOKS_H).
7307         (OBJS): Added hooks.o.
7308         (cfgcleanup.o, bb-reorder.o): Added target.h.
7309         (hooks.o): Added dependencies.
7310         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
7311         (TARGET_INITIALIZER): this.
7312         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
7313         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
7314         * bb-reorder.c: Include target.h.
7315         (reorder_basic_blocks): Skip if cannot modify jumps.
7316         * cfgcleanup.c: Include target.h.
7317         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
7318
7319 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
7320
7321         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7322         Protect jump delay slot instructions with .set noreorder and
7323         .set nomacro.
7324
7325 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
7326
7327         * config/mips/mips.md (casesi_internal_di): Calculate
7328         the index into the target offset table correctly.
7329
7330 2002-02-08  Richard Henderson  <rth@redhat.com>
7331
7332         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
7333         * final.c (output_addr_const): Accept and discard SUBREG.
7334         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
7335         mark them unknown instead.
7336         (simplify_subtraction): Handle RTX_UNKNOWN.
7337         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
7338
7339 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
7340
7341         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
7342
7343 2002-02-08  Richard Henderson  <rth@redhat.com>
7344
7345         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
7346
7347 2002-02-08  Andreas Jaeger  <aj@suse.de>
7348
7349         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
7350         * config/i386/t-linux64: New file.
7351
7352 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
7353
7354         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
7355         * c-parse.in (compstmt): Clear last_expr_type.
7356
7357 2002-02-07  Richard Henderson  <rth@redhat.com>
7358
7359         * loop.c (strength_reduce): Sink final_value when not
7360         eliminating a biv.
7361
7362 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
7363
7364         * config/sparc/freebsd.h: Fix mismatched spec {.
7365
7366 2002-02-07  Richard Henderson  <rth@redhat.com>
7367
7368         * cfgrtl.c: Include recog.h and insn-config.h.
7369         (keep_with_call_p): Fix general_operand invocation.
7370         * Makefile.in (cfgrtl.o): Update dependencies.
7371
7372 2002-02-07  Kazu Hirata  <kazu@hxi.com>
7373
7374         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
7375         comment.  Accept HImode only if TARGET_H8300.
7376
7377 2002-02-07  Eric Christopher  <echristo@redhat.com>
7378
7379         * config/mips/crtn.asm: Cleanup #ifdefs.
7380
7381 2002-02-07  Eric Christopher  <echristo@redhat.com>
7382
7383         * config/mips/crti.asm: Add changes for mips16. mips16 uses
7384         register 7 as RA instead of $31.
7385         * config/mips/crtn.asm: Ditto.
7386         * config/mips/mips.c (mips_move_2words): Add case for
7387         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
7388         (compute_frame_size): Fix typo.
7389         (save_restore_insns): Ditto.  Make documentation about using
7390         register $7 as return register more precise.
7391         (mips_expand_epilogue): Fix comment. Add code to work around not
7392         being able to add to the stack pointer directly.
7393         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
7394         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
7395         epilogue.
7396
7397 2002-02-07  Tom Rix  <trix@redhat.com>
7398
7399         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
7400         immediates in ldu and stdu DS opcode field.
7401         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
7402         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
7403         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
7404
7405 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
7406
7407         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
7408         offset for stack bias.
7409
7410 2002-02-07  H.J. Lu <hjl@gnu.org>
7411
7412         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
7413
7414 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
7415
7416         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
7417
7418 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
7419
7420         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
7421         * i386.c (x86_order_regs_for_local_alloc): New global function.
7422         * i386.h (REG_ALLOC_ORDER): CLeanup.
7423         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
7424
7425 2002-02-07  Richard Henderson  <rth@redhat.com>
7426
7427         PR optimization/2463
7428         * alias.c (find_base_value): Recall base values for fixed hard regs.
7429         * loop.c (loop_regs_update): Don't use single_set on non-insns.
7430
7431 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
7432
7433         * config/mips/mips.md (define_delay) [mips16]: Adjust required
7434         length.
7435
7436 2002-02-06  Richard Henderson  <rth@redhat.com>
7437
7438         PR c/5609
7439         * stmt.c (resolve_operand_name_1): Take more care with mixed
7440         named and unnamed operands.
7441
7442 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
7443             Jan Hubicka  <jh@suse.cz>
7444
7445         * loop.c (remove_constant_addition): Avoid clobbering a shared
7446         CONST expression.
7447
7448 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7449
7450         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
7451         * config/s390/t-linux64: New file.
7452         * config/s390/libgcc-glibc.ver: New file.
7453
7454 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7455
7456         * config/s390/linux64.h: Delete file.
7457         * config/s390/s390x.h: New file.
7458         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
7459         as target header file.
7460         * config/s390/linux.h (TARGET_VERSION): Define depending on
7461         DEFAULT_TARGET_64BIT.
7462         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
7463         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
7464         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
7465         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
7466         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
7467         (EXTRA_SPEC): New define.
7468         * config/s390/s390.h (TARGET_VERSION): Define depending on
7469         DEFAULT_TARGET_64BIT.
7470         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
7471
7472 2002-02-06  Jason Merrill  <jason@redhat.com>
7473
7474         * c-decl.c (finish_function): Warn about a non-void function with
7475         no return statement and no abnormal exit.
7476         (current_function_returns_abnormally): New variable.
7477         (start_function): Clear it.
7478         (struct c_language_function): Add returns_abnormally.
7479         (push_c_function_context): Save it.
7480         (pop_c_function_context): Restore it.
7481         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
7482         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
7483         an explicit return type.
7484         * c-tree.h: Declare current_function_returns_abnormally.
7485         (C_FUNCTION_IMPLICIT_INT): New macro.
7486         * c-typeck.c (build_function_call): Set it.
7487         (c_expand_return): Set current_function_returns_value even if the
7488         value is erroneous.
7489
7490 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7491
7492         PR c/5420:
7493         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
7494         unsafe for reevaluation.
7495
7496 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7497
7498         PR c/5482:
7499         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
7500         EXPR_STMT, but COMPOUND_STMT, recurse into it.
7501
7502 2002-02-06  Richard Henderson  <rth@redhat.com>
7503
7504         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
7505         be a general_operand.  Dest for function value must be a pseudo.
7506
7507 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
7508
7509         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
7510         as SYMBOL_REFs from the constant pool.
7511
7512 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
7513
7514         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
7515         passed by invisible reference.
7516
7517 2002-02-05  Richard Henderson  <rth@redhat.com>
7518
7519         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
7520
7521 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
7522
7523         Implement using "base addresses" in insn operands as default.
7524         * config/mmix/mmix.c (mmix_conditional_register_usage): if
7525         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
7526         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
7527         used to read the rtx value.
7528         (mmix_target_asm_function_epilogue): Fix spacing.
7529         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
7530         (mmix_legitimate_address): Ditto.
7531         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
7532         should be loaded with a GETA insn.  Don't allocate needless extra
7533         char for nul termination and fix misleading comment.
7534         (mmix_print_operand_address): Handle constants if
7535         TARGET_BASE_ADDRESSES.
7536         (mmix_output_register_setting): Use base addressing if
7537         TARGET_BASE_ADDRESSES and the number of insns is 3.
7538         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
7539         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
7540         to use R as constraint, add LDA to match s.
7541         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
7542         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
7543         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
7544         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
7545         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
7546         order with other fixed registers.
7547         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
7548         other parameter/call-clobbered registers.
7549         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
7550         -mbase-addresses, -mno-base-addresses.
7551         (MMIX Options): Ditto.
7552
7553 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7554
7555         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
7556
7557 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
7558
7559         * config/rs6000/altivec.h: Change elem to _S_elem.
7560
7561 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7562
7563         * config/netbsd.h (WCHAR_TYPE): Define.
7564         (WCHAR_TYPE_SIZE): Ditto.
7565         (WINT_TYPE): Ditto.
7566         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
7567         (WCHAR_UNSIGNED): Ditto.
7568         (WCHAR_TYPE_SIZE): Ditto.
7569         (WINT_TYPE): Ditto.
7570         * config/arm/netbsd.h: Likewise.
7571         * config/i386/netbsd-elf.h: Likewise.
7572         * config/i386/netbsd.h: Likewise.
7573         * config/m68k/netbsd-elf.h: Likewise.
7574         * config/m68k/netbsd.h: Likewise.
7575         * config/ns32k/netbsd.h: Likewise.
7576         * config/sparc/netbsd.h: Likewise.
7577         * config/vax/netbsd.: Likewise.
7578
7579 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
7580
7581         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
7582         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
7583         (TARGET_INITIALIZER): this.
7584         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
7585         (BITFIELD_NBYTES_LIMITED): Markup fix.
7586         * tree.h (default_ms_bitfield_layout_p): Declare.
7587         (record_layout_info): Added prev_field.
7588         * tree.c (default_ms_bitfield_layout_p): New fn.
7589         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
7590         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
7591         * stor-layout.c: Include target.h.
7592         (start_record_layout): Initialize prev_field.
7593         (place_field): Handle MS bit-field layout, and disregard
7594         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
7595         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
7596         * Makefile.in (stor-layout.o): Adjust dependencies.
7597
7598 2002-02-05  Jason Merrill  <jason@redhat.com>
7599
7600         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
7601
7602 2002-02-05  Andreas Jaeger  <aj@suse.de>
7603
7604         * crtstuff.c: Fix comments.
7605
7606 2002-02-05  Richard Henderson  <rth@redhat.com>
7607
7608         PR fortran/3393
7609         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
7610         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
7611
7612         PR fortran/3392
7613         * config/mips/mips.c (function_arg): Handle TImode.
7614         (function_arg_advance): Likewise.
7615
7616 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7617
7618         * config/rs6000/altivec.h (vec_step_help): Rename to
7619         __vec_step_help.
7620
7621 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7622
7623         * config/rs6000/altivec.h: Fix typos.
7624
7625 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7626
7627         * config/arm/netbsd.h: Correct a comment.
7628
7629 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7630
7631         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
7632         building void typed builtins.
7633
7634         * config/rs6000/altivec.h (vec_ld*): Fix typos.
7635         (vec_step): Implement for C++.
7636
7637 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7638
7639         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
7640
7641 2002-02-04  Richard Henderson  <rth@redhat.com>
7642
7643         * combine.c (nonzero_bits): Re-introduce special case for
7644         sp/fp/ap wrt REGNO_POINTER_ALIGN.
7645
7646 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7647
7648         * doc/extend.texi: Warn about unsupported usage of altivec
7649         builtins.
7650
7651         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
7652         (altivec_predicate_*): New.
7653
7654         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
7655         Add C++ version of vec_*() functions.
7656
7657         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
7658         (bdesc_2arg): Remove altivec predicates.
7659         (altivec_expand_builtin): Handle predicates.
7660         (altivec_init_builtins): Handle predicates.
7661         (altivec_expand_predicate_builtin): New.
7662
7663 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7664
7665         * pa.c (DO_FRAME_NOTES): Move forward.
7666         (store_reg): Revise handling of frame notes.
7667         (load_reg): Likewise.
7668         (set_reg_plus_d): Likewise.
7669         (hppa_expand_prologue): Likewise.
7670         (hppa_expand_epilogue): Likewise.
7671
7672 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7673
7674         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
7675
7676 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7677
7678         PR c/4475, c++/3780:
7679         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
7680         * c-common.h (SWITCH_TYPE): Define.
7681         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
7682         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
7683         Rename spareness variable to sparseness.
7684         (expand_end_case_type): Renamed from expand_end_case, use orig_type
7685         if non-NULL instead of TREE_TYPE (orig_index).
7686         * tree.h (expand_end_case_type): Renamed from expand_end_case.
7687         (expand_end_case): Define using expand_end_case_type.
7688         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
7689         to expand_end_case_type.
7690         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
7691
7692 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7693
7694         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
7695         (BIGGEST_ALIGNMENT): Change to 128.
7696
7697 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7698
7699         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
7700
7701 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7702
7703         * pa.md (call_internal_reg_64bit): Remove unused variable.
7704
7705 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
7706
7707         * config/arm/arm.h (machine_function): Add uses_anonymous_args
7708         field.
7709         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
7710         * config/arm/arm.c (current_function_anonymous_args): Delete,
7711         replace uses with cfun->machine->uses_anonymous_args.
7712         (arm_reorg): Do not reset uses_anonymous_args.
7713
7714         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
7715         any geenral register.
7716
7717 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
7718
7719         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
7720         the entry block.
7721
7722 2002-02-04  Richard Henderson  <rth@redhat.com>
7723
7724         * combine.c (force_to_mode): Remove STACK_BIAS code.
7725         (nonzero_bits): Likewise.  Replace sp/fp special case with
7726         REGNO_POINTER_ALIGN.
7727
7728         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
7729         (HARD_FRAME_POINTER_REGNUM): New.
7730         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
7731         (FIXED_REGS, CALL_USED_REGS): Update.
7732         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
7733         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
7734         (HARD_REGNO_NREGS): Update for SFP.
7735         (STACK_POINTER_OFFSET): Include bias here ...
7736         (FIRST_PARM_OFFSET): ... not here.
7737         (STACK_BIAS): Remove.
7738         (INIT_EXPANDERS): New.
7739         (STARTING_FRAME_OFFSET): Do not include bias.
7740         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
7741         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
7742         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
7743         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
7744         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
7745         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
7746         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
7747         (MUST_SAVE_REGISTER): Likewise.
7748         (sparc_flat_function_prologue): Likewise.
7749         (sparc_flat_function_epilogue): Likewise.
7750         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
7751         (sparc_init_modes): SFP is GENERAL_REGS.
7752         (sparc_builtin_saveregs): SFP does not have bias applied.
7753
7754 2002-02-04  Richard Henderson  <rth@redhat.com>
7755
7756         * config/alpha/alpha.c (current_function_is_thunk): Don't check
7757         current_function_is_thunk.
7758         (alpha_sa_mask): Distinguish between current_function_is_thunk
7759         called from ASM_OUTPUT_MI_THUNK and not.
7760         (alpha_does_function_need_gp): Thunks always need gp.
7761         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7762         (alpha_output_mi_thunk_osf): New.
7763         * config/alpha/alpha-protos.h: Update.
7764         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
7765
7766 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
7767
7768         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
7769         function types, not when they're taken away.
7770
7771 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
7772
7773         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
7774         CODE_LABEL and jump table when replacing a table jump with a
7775         simple jump.
7776
7777 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7778
7779         * config/s390/s390-protos.h (legitimize_la_operand,
7780         s390_secondary_input_reload_class, s390_plus_operand,
7781         s390_expand_plus_operand): Add prototypes.
7782
7783         config/s390/s390.c (s390_secondary_input_reload_class,
7784         s390_plus_operand, s390_expand_plus_operand): New functions.
7785
7786         (struct s390_address): New member 'pointer'.
7787         (s390_decompose_address): Compute it.
7788         (legitimate_la_operand_p): Use it.
7789         (legitimize_la_operand): New function.
7790         (movti, movdi, movdf splitters): Call it.
7791
7792         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
7793         (PREDICATE_CODES): Add s390_plus_operand.
7794
7795         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
7796         (la_ccclobber): Allow GENERAL_REGS as output operand.
7797
7798         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
7799         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
7800         (*la_64, *la_31, reload_indi, reload_insi): ... these.
7801
7802 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7803
7804         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
7805         register names for regular asm () construct.
7806
7807 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7808
7809         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
7810         registers.
7811
7812 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7813
7814         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
7815         pat for recog.
7816
7817 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
7818
7819         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
7820         constant pool to be identical by string address and index.
7821
7822 2002-02-04  Anthony Green  <green@redhat.com>
7823
7824         * output.h (SECTION_OVERRIDE): Define.
7825         * varasm.c (named_section): Obey SECTION_OVERRIDE.
7826
7827 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7828
7829         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
7830         by existing arm*-*-netbsd* (a.out) target.
7831         (ns32k-*-netbsdelf*): Likewise.
7832         (sparc-*-netbsdelf*): Likewise.
7833         (vax-*-netbsdelf*): Likewise.
7834
7835 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
7836
7837         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
7838         headers and libobjc headers.
7839
7840 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
7841
7842         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
7843         (_mingw.h): Remove duplicate include.
7844
7845 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7846
7847         * config.gcc: Set cpu_type to m68k for 68010, as well.
7848         (m68010-*-netbsdelf*): New...
7849         (m68k*-*-netbsdelf*): ...targets.
7850         * config/m68k/netbsd-elf.h: New file.
7851
7852 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7853
7854         * config/h8300/h8300.c (hand_list): Move inside function_arg.
7855
7856 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7857
7858         * config/h8300/h8300.c (h8_push_ops): Move inside
7859         h8300_init_once.
7860         (h8_pop_ops): Likewise.
7861         (h8_move_ops): Likewise.
7862
7863 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7864
7865         * config/h8300/h8300.c (os_task): Make it static.
7866         (monitor): Likewise.
7867         (pragma_saveall): Likewise.
7868
7869 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
7870
7871         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
7872         constant is a valid sign-extension for Pmode.
7873
7874 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7875
7876         * config/h8300/h8300.c: Fix formatting.
7877
7878 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7879
7880         * config/h8300/h8300.md: Fix formatting.
7881
7882 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7883
7884         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
7885         predicates of operands[1].  Split the patterns for each
7886         processor variant.
7887
7888 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7889
7890         * config/h8300/h8300.md (xor patterns): Tighten the predicates
7891         of operands[1] to register_operand.
7892
7893 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7894
7895         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
7896         * cpphash.c (_cpp_init_hashtable): Similarly.
7897         * cppinit.c (cpp_create_reader): Default the signed_char flag.
7898         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
7899         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
7900         (cpp_handle_option): Handle the new options.
7901         * cpplex.c (cpp_interpret_charconst): Use new flag.
7902         * cpplib.h (struct cpp_options): New member signed_char.
7903         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
7904         (cpp_options): Handle -fsigned-char and -funsigned-char.
7905         (static_specs): Remove signed_char_spec.
7906         (do_spec1): Don't handle %c.
7907         * system.h: Poison SIGNED_CHAR_SPEC.
7908         * tradcif.y (yylex): Use flag_signed_char.
7909         * tradcpp.h (flag_signed_char): New.
7910         * tradcpp.c (flag_signed_char): New.
7911         (main): Handle new command-line options.
7912         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
7913 config:
7914         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
7915         * avr/avr.h: Remove old comments.
7916         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
7917         (CC1_SPEC): Pass -fsigned-char if -mic*.
7918         (SIGNED_CHAR_SPEC): Remove.
7919 doc:
7920         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
7921
7922 2002-02-01  Eric Christopher  <echristo@redhat.com>
7923
7924         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
7925         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
7926         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
7927         (ASM_OUTPUT_REG_POP): Ditto.
7928
7929 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7930
7931         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
7932         patch.
7933
7934 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7935
7936         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
7937
7938 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7939
7940         PR c/5304:
7941         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
7942         unconditionally.
7943
7944 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7945
7946         * cfganal.c: Include tm_p.h.
7947         (keep_with_call_p): Fix the test that determines if a register holds
7948         the return value of a call.
7949
7950 2002-02-01  DJ Delorie  <dj@redhat.com>
7951
7952         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
7953         we are given conflicting registers, switch to the other one we
7954         had allocated for us.
7955         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
7956         as TImode so we know when the "other" register is available.
7957
7958 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
7959
7960         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
7961         sparc/sparc_bi.h.
7962
7963 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7964
7965         * cfganal.c (keep_with_call_p): New function.
7966         (flow_call_edges_add): Prevent splitting a block between a call and
7967         a single-set instruction that should be kept in the same block.
7968
7969 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7970
7971         * doc/install.texi (avr): Update outdated URL.
7972
7973 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
7974
7975         * config/stormy16/stormy16.md (pushqi): New.
7976         (popqi): New.
7977         (pushhi): New.
7978         (pophi): New.
7979         (movhi): Remove stack operands.
7980         (movqi): Likewise.
7981         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
7982         nonimmediate_nonstack_operand.
7983         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
7984         New.
7985         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
7986         New.
7987
7988 2002-01-31  Jason Merrill  <jason@redhat.com>
7989
7990         * Makefile.in (c-parse.c): Handle .output file.
7991         * objc/Make-lang.in (objc-parse.c): Likewise.
7992
7993 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
7994
7995         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
7996         the -me[lb] option is given.  Don't output the default flag
7997         twice.
7998
7999 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
8000
8001         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
8002         the primary source file; this has not been done yet.
8003         * c-decl.c (c_expand_body): Reset input_filename from
8004         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
8005
8006 2002-01-31  Kazu Hirata  <kazu@hxi.com>
8007
8008         * rtlanal.c (subreg_regno_offset): Do not use
8009         SUBREG_REGNO_OFFSET.
8010         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
8011         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
8012
8013 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8014
8015         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
8016         version rather than GNATS version in --version output.
8017
8018 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
8019
8020         * ifcvt.c (noce_process_if_block): Make a copy of the destination
8021         when copying back from a temporary.
8022
8023 2002-01-30  Richard Henderson  <rth@redhat.com>
8024
8025         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
8026         and new_dest are the same.
8027
8028 2002-01-30  Richard Henderson  <rth@redhat.com>
8029
8030         PR opt/5076
8031         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
8032         * rtl.c (note_insn_name): Update.
8033         * emit-rtl.c (remove_unnecessary_notes): Kill it.
8034         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
8035         to perform loop rotation.
8036         (expand_exit_loop_top_cond): New.
8037         * tree.h (expand_exit_loop_top_cond): Declare it.
8038         * c-semantics.c (genrtl_while_stmt): Use it.
8039         (genrtl_for_stmt): Likewise.
8040
8041 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
8042
8043         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
8044         arguments to 64-bit boundaries on 64-bit ABIs.
8045
8046 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
8047
8048         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
8049
8050 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8051
8052         * c-decl.c (grokdeclarator): Handle type being a typedef for an
8053         invalid type.
8054
8055 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
8056
8057         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
8058         * config/sparc/sparc_bi.h: Remove file.
8059         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
8060
8061 2002-01-30  Richard Henderson  <rth@redhat.com>
8062
8063         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
8064
8065 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
8066
8067         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
8068
8069 2002-01-30  Jason Merrill  <jason@redhat.com>
8070
8071         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
8072         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
8073         (reg_save): Use DW_CFA_offset_extended_sf instead.
8074
8075         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
8076
8077 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
8078
8079         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
8080         in cselib_lookup.
8081
8082 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
8083
8084         * rs6000.md ("*call_value_local32"): Remove constraints.
8085         ("*call_value_local64"): Same.
8086         ("*call_value_indirect_nonlocal_aix32"): Same.
8087         ("*call_value_nonlocal_aix32"): Same.
8088         ("*call_value_indirect_nonlocal_aix64"): Same.
8089         ("*call_value_nonlocal_aix64"): Same.
8090         ("*call_value_nonlocal_sysv"): Same.
8091
8092 2002-01-29  Richard Henderson  <rth@redhat.com>
8093
8094         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
8095
8096 2002-01-29  Richard Henderson  <rth@redhat.com>
8097
8098         * expr.c (force_operand): Ignore flag_pic for detecting pic
8099         address loads.
8100         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
8101         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
8102         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
8103         instead of open-coded loop.
8104         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
8105         be fixed when in use.
8106
8107 2002-01-29  Richard Henderson  <rth@redhat.com>
8108
8109         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
8110         * sched-rgn.c (propagate_deps): Update them.
8111         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
8112         clobbers list when either gets too long.
8113
8114 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
8115
8116         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
8117         and INDEX_REGS the same as GENERAL_REGS.
8118         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
8119
8120 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8121
8122         * tree.c (build_nonstandard_integer_type): Correct prototype.
8123
8124 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
8125
8126         * config/s390/s390.md (movstrsico, movstrdix_64,
8127         movstrsix_31): Remove, replace by ...
8128         (movstrdi_short, movstrsi_short, movstrdi_long,
8129         movstrsi_long): ... these.  New.
8130         (movstrdi, movstrsi): Adapt.
8131
8132         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
8133         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
8134         Remove unnecessary CC clobber.
8135         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
8136         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
8137
8138         (divmoddi4): Don't partially initialize TImode register.
8139
8140 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
8141
8142         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
8143
8144 2002-01-29  Richard Henderson  <rth@redhat.com>
8145
8146         * flow.c (print_rtl_and_abort): Remove.
8147         (print_rtl_and_abort_fcn): Remove.
8148         (verify_local_live_at_start): Use dump_bb instead.
8149         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
8150         (verify_wide_reg_1): Return 2 on mode test failure.
8151
8152 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8153
8154         PR c/3325, c/3326, c/2511, c/3347
8155         * c-decl.c (enum_decl_context): Remove BITFIELD.
8156         (grokdeclarator): Take bitfield width as an input.
8157         Ensure bitfields are given the correct type.  Perform
8158         bitfield width validation with build_bitfield_integer_type
8159         rather than waiting for finish_struct.
8160         (grok_typename, grok_typename_in_parm_context, start_decl,
8161         push_parmdecl, grokfield, start_function): Update calls to
8162         grokdeclarator.
8163         (build_bitfield_integer_type): New function.
8164         (finish_struct): Move bitfield validation to grokdeclarator
8165         and build_bitfield_integer_type.
8166         * tree.c (build_nonstandard_integer_type): New function.
8167         * tree.h (build_nonstandard_integer_type): New prototype.
8168 objc:
8169         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
8170
8171 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
8172
8173         PR other/1502:
8174         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
8175         don't ignore unrecognized -W* options.
8176         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
8177         * cpplib.h (cpp_handle_option): Adjust prototype.
8178         * c-decl.c (c_decode_options): Pass 0 as last argument to
8179         cpp_handle_option.
8180
8181         PR c/2896:
8182         * gcc.c (cpp_unique_options): Split from cpp_options.
8183         (cpp_options): Source cpp_unique_options.
8184         (default_compilers): Use cpp_unique_options instead of cpp_options
8185         when used together with cc1_options.
8186         (static_specs): Add cpp_unique_options.
8187         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
8188         when used together with cc1_options.
8189
8190 2002-01-29  Kazu Hirata  <kazu@hxi.com>
8191
8192         * config/h8300/h8300-protos.h: Update the prototype of
8193         output_a_shift.
8194         * config/h8300/h8300.c (output_a_shift): Remove an unused
8195         argument 'insn'.  Remove redundant code.
8196         * config/h8300/h8300.md: Adust to the new prototype of
8197         output_a_shift.
8198
8199 2002-01-29  Kazu Hirata  <kazu@hxi.com>
8200
8201         * config/h8300/h8300-protos.h: Update the prototypes of
8202         emit_a_rotate and expand_a_rotate.
8203         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
8204         first argument to 'enum rtx_code'.
8205         (expand_a_rotate): Likewise.
8206
8207 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8208
8209         * config/h8300/h8300-protos.h: Update the prototype of
8210         output_simode_bld.
8211         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
8212         'log2'.
8213         * config/h8300/h8300.md: Adjust to the new prototype.
8214
8215 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8216
8217         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
8218         redundant code.
8219
8220 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8221
8222         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
8223         is a fixed register before returning pic_offset_table_rtx.
8224         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
8225         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
8226
8227 2002-01-28  Jason Merrill  <jason@redhat.com>
8228
8229         * dwarf2.h: Sync with src version.
8230
8231 2002-01-28  Paul Koning  <pkoning@equallogic.com>
8232
8233         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
8234         BT_FN_VOID_PTR_VAR.
8235         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
8236         * doc/extend.texi (__builtin_prefetch): Update documentation:
8237         first argument is now const void ptr.
8238
8239 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8240
8241         * config/h8300/h8300-protos.h: Remove an unused prototype.
8242
8243 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
8244
8245         * toplev.c (lang_independent_init): Round up identifier size.
8246
8247 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
8248
8249         * config.gcc: Revert previous change.
8250
8251 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
8252
8253         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
8254
8255 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
8256
8257         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
8258         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
8259         other non-elf netbsd config frags.
8260         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
8261         collect2 will does that.
8262         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
8263         shared-lib frobbing will work.
8264
8265 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8266
8267         * config/h8300/h8300.h: Fix formatting.
8268         * config/h8300/h8300.md: Likewise.
8269
8270 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
8271
8272         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
8273         the old, removed AAA_standards fix.
8274         * fixinc/fixincl.x: Rebuilt.
8275
8276 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
8277
8278         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
8279         atexit call in crtbegin, hooked in after call to frame_dummy;
8280         register EH before registering __fini__start.
8281
8282 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
8283
8284         * config/rs6000/altivec.h: Remove spurious semicolons.
8285
8286 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8287
8288         * config/h8300/h8300.md: Replace dead bit extraction patterns
8289         with ones that work.
8290
8291 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8292
8293         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
8294         if not STRICT_ALIGNMENT.
8295         * rtl.h (MEM_ALIGN): Likewise.
8296
8297 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8298
8299         * doc/invoke.texi (-fdump-translation-unit): Revert this
8300         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8301
8302 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8303
8304         * config/h8300/h8300.md (define_constants): New.
8305         (anonymous patterns) Use defined constants appropriately.
8306
8307 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8308
8309         * config/h8300/h8300.c (function_arg): Remove redundant code.
8310
8311 2002-01-26  Richard Henderson  <rth@redhat.com>
8312
8313         * sched-deps.c (reg_pending_uses_head): New.
8314         (reg_pending_barrier): Rename from reg_pending_sets_all.
8315         (find_insn_list): Don't mark inline.
8316         (find_insn_mem_list): Remove.
8317         (add_dependence_list, add_dependence_list_and_free): New.
8318         (flush_pending_lists): Replace only_write param with separate
8319         for_read and for_write parameters.  Update all callers.  Use
8320         add_dependence_list_and_free.
8321         (sched_analyze_1): Do not add reg dependencies here; just set
8322         the pending bits.  Use add_dependence_list.
8323         (sched_analyze_2): Likewise.
8324         (sched_analyze_insn): Replace schedule_barrier_found with
8325         reg_pending_barrier.  Add all dependencies for pending reg
8326         uses, sets, and clobbers.
8327         (sched_analyze): Don't add reg dependencies for calls, just
8328         set pending bits.  Use regs_invalidated_by_call.  Treat
8329         sched_before_next_call as a normal list, not a fake insn.
8330         (init_deps): No funny init for sched_before_next_call.
8331         (free_deps): Free pending mems lists.  Don't zero reg_last.
8332         (init_deps_global): Init reg_pending_uses.
8333         (finish_deps_global): Free it.
8334         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
8335         (find_insn_mem_list): Remove.
8336         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
8337         (propagate_deps): Use them.  Zero temp mem lists.
8338
8339 2002-01-26  Richard Henderson  <rth@redhat.com>
8340
8341         * Makefile.in (CRTSTUFF_CFLAGS): New.
8342         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
8343         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
8344         crtstuff.c instead of alpha assembly version.
8345         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
8346         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
8347         not FORCE_{INIT,FINI}_SECTION_ALIGN.
8348         (__do_global_dtors_aux): Mark used.
8349         (frame_dummy, __do_global_ctors_aux): Mark used.
8350         (fini_dummy, init_dummy): Remove.
8351
8352         * config/alpha/crtbegin.asm: Remove file.
8353         * config/alpha/crtend.asm: Remove file.
8354         * config/alpha/t-crtbe: Remove file.
8355         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
8356         (LINK_EH_SPEC): New.
8357
8358         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
8359         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
8360         calling constructors.
8361         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
8362
8363         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
8364         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
8365         CRT_END_INIT_DUMMY hack.
8366         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
8367         FORCE_{INIT,FINI}_SECTION_ALIGN.
8368
8369         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
8370         FORCE_{INIT,FINI}_SECTION_ALIGN.
8371
8372         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
8373         invocation sequence.
8374         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
8375
8376         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
8377         (FORCE_CODE_SECTION_ALIGN): New.
8378
8379 2002-01-26  Richard Henderson  <rth@redhat.com>
8380
8381         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
8382
8383 2002-01-26  Richard Henderson  <rth@redhat.com>
8384
8385         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
8386         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
8387
8388 2002-01-26  Kazu Hirata  <kazu@hxi.com>
8389
8390         * config/h8300/h8300.md: Remove bit extraction patterns that
8391         cannot be triggered.
8392         Restrict each bit extraction pattern to a variant on which the
8393         pattern is tested.
8394
8395 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
8396
8397         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
8398
8399 2002-01-26  Kazu Hirata  <kazu@hxi.com>
8400
8401         * config/h8300/h8300.md: Remove bit test patterns that cannot
8402         be triggered.
8403         Restrict each bit test pattern to a variant on which the
8404         pattern is tested.
8405
8406 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8407
8408         * builtins.c (expand_builtin_strncat): Remove redundant check for
8409         INTEGER_CST.
8410
8411 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8412
8413         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
8414         default setting.
8415         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
8416         existing setting.
8417
8418 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8419
8420         * dbxout.c (dbxout_init): Use assemble_name rather than just
8421         stripping off the first character.
8422         (dbxout_source_file): Likewise.
8423
8424 2002-01-25  DJ Delorie  <dj@redhat.com>
8425
8426         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
8427         using rtx_equal_p, not by comparing pointers.
8428
8429 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
8430
8431         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
8432         for PIC_OFFSET_TABLE_REGNUM.
8433         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
8434
8435 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8436
8437         * config.gcc (x86_64-*-freebsd*): New target.
8438         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
8439         value.
8440         (i[34567]86-*-freebsd*): Don't include svr4.h.
8441         * config/i386/freebsd64.h: New file.
8442
8443 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
8444
8445         * config/alpha/x-vms (version): Make static.
8446
8447         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
8448         in previous checkin.
8449
8450         * Makefile.in (install-headers-cp): New target.
8451         * config.gcc (alpha-dec-*vms*): Install headers with
8452         install-headers-cp
8453
8454 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
8455
8456         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
8457         avoid it's copies.
8458
8459 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8460
8461         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
8462         of compare_tree_int.
8463         (expand_builtin_strncat): Likewise.
8464         * c-decl.c (finish_struct): Use tree_low_cst.
8465         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
8466         * tree.c (compare_tree_int): Likewise.
8467
8468 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
8469
8470         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
8471         adjustments even if they are implemented by more than two insns.
8472
8473 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
8474
8475         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
8476         * df.h (struct ref): Kill B.
8477         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
8478
8479         * basic-block.h (PROP_EQUAL_NOTES): New flag.
8480         * flow.c (propagate_one_insn): Use it.
8481         (mark_used_regs): Handle NIL.
8482
8483 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8484
8485         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
8486         to help folding.
8487
8488 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
8489
8490         * rs6000.md (prefetch): Make address V4SI mode so that the address
8491         is restricted to legitimate form for instruction.
8492
8493 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
8494
8495         * doc/install.texi (xtensa-*-elf): New target.
8496         (xtensa-*-linux*): New target.
8497         * doc/contrib.texi: Add myself.
8498
8499 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
8500
8501         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
8502         purpose register to hold an SImode (or smaller) value.
8503
8504 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
8505
8506         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
8507         registry only.
8508         * crtstuff.c: Likewise.
8509
8510 2002-01-25  Kazu Hirata  <kazu@hxi.com>
8511
8512         * config/h8300/h8300.md (negation patterns): Tighten
8513         predicates to register_operand.
8514
8515 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
8516
8517         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
8518         mode, not Pmode.
8519
8520         * builtins.c (expand_builtin_prefetch): Same.
8521
8522 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8523
8524         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
8525         modes.
8526
8527 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8528
8529         * config/h8300/h8300.c (print_operand): Remove support for
8530         operand character 'A'.
8531         * config/h8300/h8300.md (three anonymous patterns): Replace
8532         operand character 'A' with either 'T' or 'S'.
8533
8534 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8535
8536         * config/h8300/h8300.c (print_operand): Remove support for
8537         operand character 'U'.
8538
8539 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
8540
8541         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
8542
8543 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
8544
8545         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
8546         values to be assigned to the stack pointer.
8547
8548 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
8549
8550         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
8551         to const_double needs to be done right for big-endian systems.
8552
8553 2002-01-24  Jason Merrill  <jason@redhat.com>
8554
8555         PR c++/2432
8556         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
8557         to can_throw_internal.
8558
8559 2002-01-23  Richard Henderson  <rth@redhat.com>
8560
8561         * fold-const.c (fold): Change UINT_MAX test to check vs precision
8562         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
8563
8564 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8565
8566         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
8567         (symGOT2reg): Use them, then set as GOT value as unchanging.
8568         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
8569         as a temporary, if possible.
8570         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
8571         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
8572
8573 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8574
8575         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
8576         accept to accept 0x80 as operands[2].
8577
8578 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8579
8580         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
8581
8582 2002-01-23  Richard Henderson  <rth@redhat.com>
8583
8584         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
8585
8586 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
8587
8588         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
8589         (parmlist_or_identifiers_1): Verify that only a parmlist follows
8590         an attribute.
8591
8592 2002-01-23  Richard Henderson  <rth@redhat.com>
8593
8594         * expr.c (move_by_pieces_1): Extend size before negation.
8595
8596         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
8597         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
8598         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
8599         * config/m68k/t-m68kelf: Likewise.
8600
8601 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
8602
8603         * config/xtensa/elf.h: New file.
8604         * config/xtensa/lib1funcs.asm: New file.
8605         * config/xtensa/lib2funcs.S: New file.
8606         * config/xtensa/linux.h: New file.
8607         * config/xtensa/t-xtensa: New file.
8608         * config/xtensa/xtensa-config.h: New file.
8609         * config/xtensa/xtensa-protos.h: New file.
8610         * config/xtensa/xtensa.c: New file.
8611         * config/xtensa/xtensa.h: New file.
8612         * config/xtensa/xtensa.md: New file.
8613         * config.gcc (xtensa-*-elf*): New target.
8614         (xtensa-*-linux*): New target.
8615         * cse.c (canon_hash): Compare rtx pointers instead of register
8616         numbers.  This is required for the Xtensa port.
8617         * integrate.c (copy_insn_list): Handle case where the static
8618         chain is in memory and the memory address has to be copied to
8619         a register.
8620         * doc/invoke.texi (Option Summary): Add Xtensa options.
8621         (Xtensa Options): New node.
8622         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
8623
8624 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8625
8626         * diagnostic.c (internal_error): Do ICE suppression only
8627         when ENABLE_CHECKING is not defined.
8628
8629         * c-typeck.c (require_complete_type): Return error_mark_node
8630         if type is error_mark_node.
8631
8632 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
8633
8634         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
8635         -Os and issue a warning.
8636
8637 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8638
8639         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
8640         current (lack of) need for host configuration by hand.
8641
8642         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
8643         references.  Documentation of some target macros moved from
8644         hostconfig.texi to tm.texi.
8645
8646 2002-01-23  Will Cohen  <wcohen@redhat.com>
8647
8648         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
8649         defined.
8650
8651 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8652
8653         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
8654         operand[3].
8655
8656 2002-01-23  Jason Merrill  <jason@redhat.com>
8657
8658         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
8659
8660         * function.c (assign_parms): Don't put args of inline functions
8661         into registers when not optimizing.
8662
8663 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
8664
8665         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
8666         (prologue_use): New pattern.
8667         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
8668         preference to gen_rtx_USE.
8669         (thumb_expand_prologue): Use gen_prologue_use in preference to
8670         gen_rtx_USE.
8671         (thumb_expand_epilogue): Use gen_prologue_use in preference to
8672         gen_rtx_USE.
8673
8674 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
8675
8676         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
8677
8678 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8679
8680         PR c/3504
8681         * doc/extend.texi: Correct documentation of __alignof__.
8682
8683 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
8684
8685         * params.h: Rename arguments of DEFPARAM so that it will be
8686         recognized as a translation keyword.
8687
8688 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8689
8690         * extend.texi: Document altivec functions.
8691         Fix N-bit adjectives in X86 builtin documentation.
8692
8693 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8694
8695         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
8696         auto_inc_dec values.
8697
8698 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
8699
8700         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
8701         after backslash.
8702         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
8703
8704 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8705
8706         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
8707
8708 2002-01-22  Richard Henderson  <rth@redhat.com>
8709
8710         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
8711         copy_insn not copy_rtx.
8712
8713 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
8714
8715         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
8716         "nonzero" as that might add "1" bits.  Ensure "constop" is
8717         properly sign extened.
8718         (force_to_mode): Tweak for sign extended constop.
8719
8720 2002-01-22  Richard Henderson  <rth@redhat.com>
8721
8722         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
8723         for_each_rtx instead of assuming we're already looking at the MEM.
8724         (split_small_symbolic_mem_operand): Likewise.
8725         * config/alpha/alpha.h (PREDICATE_CODES): Update.
8726         * config/alpha/alpha.md (small symbolic memory splitters): Update.
8727
8728 2002-01-22  Richard Henderson  <rth@redhat.com>
8729
8730         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
8731         sequence number for the literal.
8732         (divmoddi_internal_er): Likewise.
8733
8734 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8735
8736         PR java/4972
8737         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
8738         in LIBICONV variable.
8739         * configure: Regenerated.
8740
8741 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
8742
8743         * dependence.c (build_def_use): Remove array_idx.
8744
8745         * dwarfout.c (last_filename): Remove.
8746         (output_compile_unit_die): Remove last_filename.
8747
8748 2002-01-22  Roger Sayle  <roger@eyesopen.com>
8749             Richard Henderson  <rth@redhat.com>
8750
8751         PR opt/3640
8752         * fold-const.c (fold): Optimize unsigned comparisons against
8753         UINT_MAX (and similar unsigned constants).
8754
8755 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
8756
8757         * Makefile.in (loop.o): Depend on OPTABS_H.
8758         * loop.c (emit_prefetch_instructions): Check the prefetch operand
8759         against the predicate.
8760
8761         PR target/5379
8762         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
8763         for the address operand.
8764
8765 2002-01-22  Richard Henderson  <rth@redhat.com>
8766
8767         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
8768
8769 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8770
8771         PR other/5450
8772         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
8773         preprocessor flags.
8774
8775 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
8776
8777         * config.gcc (x86_64-*-netbsd*): New target.
8778         * config/i386/netbsd64.h: New file.
8779
8780 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8781
8782         * regrename.c (kill_value): Fix typo.
8783
8784 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8785
8786         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
8787
8788         * config/rs6000/rs6000.h: Same.
8789
8790         * function.c (instantiate_virtual_regs): Remove
8791         STARTING_FRAME_PHASE.
8792         (assign_stack_local_1): Same.
8793         Calculate frame phase.
8794
8795 2002-01-22  Nick Clifton  <nickc@redhat.com>
8796
8797         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
8798         variable declaration to outer scope in order to simplify
8799         future extensions.
8800         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
8801         arm_hard_regno_mode_ok.
8802         * config/arm/arm-protos.h: Add a prototype for
8803         arm_hard_regno_mode_ok.
8804         * config/arm/arm.c (soft_df_operand): Remove now redundant
8805         check for DImode values using IP_REGNUM.
8806         (nonimmediate_soft_df_operand): Remove now redundant check for
8807         DImode values using IP_REGNUM.
8808         (arm_hard_regno_mode_ok): New function. New check: make sure
8809         that DImode values are not stored in IP_REGNUM.
8810
8811         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
8812         note with a USE.
8813         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
8814
8815 2002-01-22  Jason Merrill  <jason@redhat.com>
8816
8817         * c-semantics.c (genrtl_compound_stmt): Only check nesting
8818         consistency if this COMPOUND_STMT is scoped.
8819
8820 2002-01-22  Kazu Hirata  <kazu@hxi.com>
8821
8822         * predict.c: Fix formatting.
8823         * print-tree.c: Likewise.
8824         * protoize.c: Likewise.
8825         * real.h: Likewise.
8826         * rtl.h: Likewise.
8827         * sbitmap.h: Likewise.
8828         * scan.c: Likewise.
8829         * sched-deps.c: Likewise.
8830         * sched-vis.c: Likewise.
8831         * sdbout.c: Likewise.
8832         * sibcall.c: Likewise.
8833         * ssa.c: Likewise.
8834         * ssa-ccp.c: Likewise.
8835         * ssa-dce.c: Likewise.
8836         * stmt.c: Likewise.
8837         * stor-layout.c: Likewise.
8838         * system.h: Likewise.
8839
8840 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8841
8842         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
8843         if fits in bounds of base type.
8844
8845         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
8846         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
8847         (add_bound_info, default): If can't find a context, make a
8848         SAVE_EXPR.
8849         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
8850
8851 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
8852
8853         * c-typeck.c (parser_build_binary_op): If result from
8854         build_binary_op is ERROR_MARK just return error_mark_node without
8855         further processing.
8856
8857 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
8858
8859         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
8860         Split a.out-specific bits into...
8861         * config/netbsd-aout.h: ...this.
8862         * config/netbsd-elf.h: New file.
8863         * config/alpha/netbsd-elf.h: Remove.
8864         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
8865         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
8866         (STARTFILE_SPEC): Remove redundant definition.
8867         (ENDFILE_SPEC): Likewise.
8868         (LINK_SPEC): Likewise.
8869         (CPP_SPEC): Likewise.
8870         (ASM_SPEC): Likewise.
8871         (LIB_SPEC): Likewise.
8872         (SWITCH_TAKES_ARG): Likewise.
8873         (TARGET_MEM_FUNCTIONS): Likewise.
8874         (CPP_PREDEFINES): Redefine.
8875         (ASM_FINAL_SPEC): Remove redefinition.
8876         (ASM_COMMENT_START): Redefine.
8877         (FUNCTION_PROFILER): Define.
8878         (TARGET_VERSION): Redefine.
8879         Comment and formatting cleanup.
8880         * config/i386/netbsd.h: Include <netbsd-aout.h>.
8881         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
8882         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
8883         big- or little-endian.
8884         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
8885         * config.gcc (*-*-netbsd*): Add definitions common to all
8886         NetBSD configs.
8887         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
8888         gnu_ld definitions.  Add netbsd-elf.h to and remove
8889         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
8890         tmake_file, and don't lose previous tmake_file contents.
8891         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
8892         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
8893         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
8894         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
8895         (mipsel-*-netbsd*): Rename this to...
8896         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
8897         mips/little.h to tm_file for mips*el-*.
8898         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
8899         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
8900         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
8901
8902 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8903
8904         * pa-protos.h (reg_before_reload_operand): New function prototype.
8905         * pa.c (reg_before_reload_operand): New function implementation.
8906         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
8907         contraints to "*m".
8908
8909 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8910
8911         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
8912
8913 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8914
8915         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
8916         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
8917         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
8918         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
8919         (ENDFILE_SPEC): Undefine.
8920         (STARTFILE_SPEC): Redefine for PA.
8921
8922 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8923
8924         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
8925
8926 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
8927
8928         * config.gcc: Add entries to supported PowerPC --with-cpu
8929         types.
8930
8931 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
8932
8933         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
8934         true for 64-bit mode only SSE registers in 32-bit mode.
8935
8936 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8937
8938         * unwind-dw2.c: Fix formatting.
8939         * unwind-dw2-fde.c: Likewise.
8940         * unwind-dw2-fde.h: Likewise.
8941         * unwind-pe.h: Likewise.
8942         * varasm.c: Likewise.
8943         * varray.h: Likewise.
8944
8945 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
8946
8947         Remove workaround for register stack overwrite bug in mmix.
8948         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
8949         support for TARGET_REG_STACK_FILL_BUG.
8950         * config/mmix/mmix.h: Remove member has_call_without_parameters.
8951         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
8952         Delete.
8953         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
8954         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
8955         -mno-reg-stack-fill-bug-workaround.
8956         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
8957         machine member has_call_without_parameters.
8958         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
8959         -mreg-stack-fill-bug-workaround and
8960         -mno-reg-stack-fill-bug-workaround.
8961         (MMIX Options): Ditto.
8962
8963 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8964
8965         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
8966         as appropriate.
8967         Remove redundant code.
8968
8969 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8970
8971         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
8972         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8973         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8974         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
8975         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
8976         out target macro definitions and non-target-specific comments
8977         mostly taken from old versions of the manual.
8978
8979 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8980
8981         * config/h8300/h8300.h: Fix comment formatting.
8982         * config/ia64/aix.h: Likewise.
8983         * config/ia64/ia64-protos.h: Likewise.
8984         * config/ia64/ia64.c: Likewise.
8985         * config/ia64/ia64.h: Likewise.
8986         * config/ia64/ia64intrin.h: Likewise.
8987         * config/ia64/linux.h: Likewise.
8988         * config/ia64/unwind-aix.c: Likewise.
8989         * config/ia64/unwind-ia64.c: Likewise.
8990
8991 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8992
8993         * config/h8300/h8300.c: Revise comments about shift code.
8994
8995 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8996
8997         * config/h8300/h8300.c (function_arg): Update a comment.
8998
8999 2002-01-20  Kazu Hirata  <kazu@hxi.com>
9000
9001         * config/h8300/h8300.md: Update the comments at the beginning
9002         of the file.
9003
9004 2002-01-20  Kazu Hirata  <kazu@hxi.com>
9005
9006         * config/i370/i370.c: Fix comment formatting.
9007         * config/i370/i370.h: Likewise.
9008         * config/i370/i370.md: Likewise.
9009         * config/i370/linux.h: Likewise.
9010
9011 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9012
9013         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
9014
9015         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
9016         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
9017         in incomplete case.
9018
9019 2002-01-20  Graham Stott  <grahams@redhat.com>
9020
9021         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
9022
9023 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9024
9025         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
9026
9027 2002-01-19  Tom Rix  <trix@redhat.com>
9028
9029         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
9030
9031 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
9032
9033         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
9034
9035         * function.c (assign_stack_local_1): Adjust x_frame_offset with
9036         STARTING_FRAME_PHASE.
9037         (STARTING_FRAME_PHASE): New.
9038         (instantiate_virtual_regs): Check saneness of
9039         STARTING_FRAME_PHASE.
9040
9041         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
9042
9043 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
9044
9045         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
9046
9047 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9048
9049         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
9050         be used for bootstrapping GCC 3.0.
9051
9052 2002-01-18  Kazu Hirata  <kazu@hxi.com>
9053
9054         * config/h8300/h8300.md: Fix an insn length.
9055
9056 2002-01-18  Kazu Hirata  <kazu@hxi.com>
9057
9058         * bitmap.h: Fix comment formatting.
9059         * combine.c: Likewise.
9060         * cppfiles.c: Likewise.
9061         * c-pragma.h: Likewise.
9062         * c-typeck.c: Likewise.
9063         * df.c: Likewise.
9064         * dwarf2out.c: Likewise.
9065         * function.c: Likewise.
9066         * gcc.c: Likewise.
9067         * genattrtab.c: Likewise.
9068         * gthr-win32.h: Likewise.
9069         * haifa-sched.c: Likewise.
9070         * predict.c: Likewise.
9071         * rtlanal.c: Likewise.
9072         * rtl.h: Likewise.
9073         * unwind-dw2-fde.h: Likewise.
9074         * unwind-pe.h: Likewise.
9075         * vmsdbgout.c: Likewise.
9076
9077 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9078
9079         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
9080         if type_required and passed decl.
9081
9082 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
9083
9084         * config.gcc (cpu_type): Include altivec.h in powerpc
9085         extra_headers.
9086         Same for darwin.
9087
9088         * config/rs6000/altivec.h: New.
9089
9090 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
9091
9092         * doc/install.texi (*-ibm-aix*): Update assembler and exception
9093         handling information.
9094         * doc/trouble.texi (Interoperation): Add libstdc++ information
9095         for AIX.
9096         (Misunderstandings): Add template instantiation and static template
9097         member information for AIX.
9098
9099 2002-01-17  Jason Merrill  <jason@redhat.com>
9100
9101         * dbxout.c (dbxout_type): Support const and volatile.
9102
9103         * except.c (add_partial_entry): Remove backwards compatibility code.
9104         (end_protect_partials): Likewise.
9105
9106 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
9107
9108         * config/ia64/ia64.md (prologue_use): New.
9109         * config/ia64/ia64.c (ia64_expand_prologue): Use
9110         gen_prologue_use instead of gen_rtx_USE.
9111         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
9112         as CODE_FOR_pred_rel_mutex.
9113         (ia64_sched_reorder2): Likewise.
9114
9115 2002-01-16  Eric Christopher  <echristo@redhat.com>
9116
9117         * config/mips/r3900.h: Reformat.
9118         (SUBTARGET_CPP_SIZE_SPEC): Remove.
9119         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
9120         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
9121         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
9122         * config/mips/t-elf: Remove mips3 multilib.
9123
9124 2002-01-16  H.J. Lu <hjl@gnu.org>
9125
9126         * config/mips/linux.h: Include "mips/abi64.h".
9127
9128 2002-01-16  H.J. Lu <hjl@gnu.org>
9129
9130         * config/mips/t-linux: New.
9131
9132         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
9133
9134         * config/mips/linux.h: Don't include "gofast.h".
9135         (INIT_SUBTARGET_OPTABS): Removed.
9136
9137 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9138
9139         * config/h8300/h8300-protos.h: Replace emit_a_shift with
9140         output_a_shift.
9141         * config/h8300/h8300.c: Likewise.
9142         * config/h8300/h8300.md: Likewise.
9143
9144 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9145
9146         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
9147         spaces after an opcode name.
9148         (pushqi1_h8300hs): Likewise.
9149         (pushhi1_h8300hs): Likewise.
9150
9151 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9152
9153         * doc/extend.texi: Replace "option" with "attribute"
9154         appropriately.
9155
9156 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9157
9158         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
9159         (and:DI () (const_int -8)).
9160         (split_small_symbolic_mem_operand): Split
9161         (mem (and:DI () (const_int -8)).
9162
9163 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9164
9165         PR target/5309:
9166         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
9167         same way as TYPE_IMUL.
9168         (ultrasparc_sched_reorder): Likewise.
9169         * config/sparc/sparc.md (type): Add comment to update
9170         ultrasparc_sched_reorder when making changes.
9171
9172 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9173
9174         * doc/invoke.texi: Change the dump file name of block
9175         reordering pass from 28.bbro to 29.bbro.
9176         Mention -dk option.
9177
9178 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
9179
9180         * i386.md (minsf splitter): Fix pasto.
9181
9182 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
9183
9184         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
9185         to frame pointer initialisation instruction.
9186         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
9187         initialisation instruction.
9188         (soft_df_operand): Do not accept the IP register.
9189         (nonimmediate_soft_df_operand): Do not accept the IP register.
9190
9191 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9192
9193         PR target/5357:
9194         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
9195         MASK_V8 being both set.
9196
9197 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
9198
9199         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
9200         insn for GOT register; add REG_MAYBE_DEAD notes instead.
9201         config/s390/s390.md (call, call_value): Add GOT register to
9202         CALL_INSN_FUNCTION_USAGE where needed.
9203         (call_exp, call_value_exp): New.
9204
9205 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
9206
9207         * config/arm/arm.c: General formatting tidy up.
9208
9209 2002-01-16  Graham Stott  <grahams@redhat.com>
9210
9211         * calls.c (try_to_integrate): Use "(size_t)" intermediate
9212         cast and when casting an integer literal to "rtx" pointer.
9213         (expand_call): Likewise.
9214         * flow.c (try_pre_increment): Likewise.
9215         (find_use_as_address): Likewise.
9216         * integrate.c (expand_iline_function): Likewise.
9217         * regmove.c (try_auto_increment): Likewise.
9218
9219 2002-01-16  Graham Stott  <grahams@redhat.com>
9220
9221         * sched-rgn.c (passed): Use sbitmap_free.
9222         (header): Likewise.
9223         (inner): Likewise.
9224         (in_queue): Likewise.
9225         (in_stack): Likewise.
9226
9227 2002-01-15  Eric Christopher  <echristo@redhat.com>
9228
9229         * flow.c (propagate_one_insn): Change to use fatal_insn.
9230
9231 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9232
9233         * expmed.c (extract_fixed_bit_field): Remove unused code.
9234         * system.h: Poison SLOW_ZERO_EXTEND.
9235         * doc/tm.texi: Remove.
9236         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
9237         * config/arm/arm.h: Likewise.
9238         * config/avr/avr.h: Likewise.
9239         * config/clipper/clipper.h: Likewise.
9240         * config/convex/convex.h: Likewise.
9241         * config/d30v/d30v.h: Likewise.
9242         * config/dsp16xx/dsp16xx.h: Likewise.
9243         * config/elxsi/elxsi.h: Likewise.
9244         * config/fr30/fr30.h: Likewise.
9245         * config/h8300/h8300.h: Likewise.
9246         * config/i370/i370.h: Likewise.
9247         * config/i386/i386.h: Likewise.
9248         * config/m68k/m68k.h: Likewise.
9249         * config/mips/mips.h: Likewise.
9250         * config/ns32k/ns32k.h: Likewise.
9251         * config/pdp11/pdp11.h: Likewise.
9252         * config/pj/pj.h: Likewise.
9253         * config/s390/s390.h: Likewise.
9254         * config/sh/sh.h: Likewise.
9255         * config/stormy16/stormy16.h: Likewise.
9256         * config/v850/v850.h: Likewise.
9257         * config/vax/vax.h: Likewise.
9258         * config/we32k/we32k.h: Likewise.
9259
9260 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
9261
9262         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
9263         (altivec_lvsl): Change constraint to b.
9264         (altivec_lvsr): Same.
9265         (altivec_lvebx): Same.
9266         (altivec_lvehx): Same.
9267         (altivec_lvewx): Same.
9268         (altivec_lvxl): Same.
9269         (altivec_lvx): Same.
9270         (altivec_stvx): Add parallel.
9271         (altivec_stvxl): Same.
9272         (altivec_stvehx): Same.
9273         (altivec_stvebx): Same.
9274         (altivec_stvebx): Same.
9275
9276 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
9277
9278         * config.gcc: Change altivec.h to altivec-defs.h.
9279
9280         * config/rs6000/altivec.h: Delete.
9281
9282         * config/rs6000/altivec-defs.h: Add.
9283
9284 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9285
9286         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
9287         and UMOD modes.
9288
9289         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
9290         less than or equal to eight bytes.
9291
9292         * vax.md (andsi3): Remove constraints and change SET destination
9293         operand type to nonimmediate_operand.
9294         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
9295         when it is a CONST_INT.
9296
9297 2002-01-15  Jason Merrill  <jason@redhat.com>
9298
9299         * c-common.def (FILE_STMT): New code.
9300         * c-common.c (statement_code_p): It's a statement.
9301         * c-common.h (stmt_tree_s): Add x_last_filename.
9302         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
9303         (last_expr_filename): New macro.
9304         * c-semantics.c (begin_stmt_tree): Initialize it.
9305         (add_stmt): If the filename changed, also insert a
9306         FILE_STMT.
9307         (expand_stmt): Handle seeing one.
9308
9309 2002-01-15  Eric Christopher  <echristo@redhat.com>
9310
9311         * flow.c (propagate_one_insn): Add error message and print out
9312         insn for debugging.
9313
9314 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9315
9316         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
9317         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
9318         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
9319         TRAMPOLINE_ALIGNMENT.
9320         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
9321         to be in bits.
9322         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
9323         PCC_BITFIELD_TYPE_MATTERS.
9324         * config/interix.h (STDC_VALUE): Remove.  Use
9325         STDC_0_IN_SYSTEM_HEADERS.
9326         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
9327         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
9328         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
9329
9330 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9331
9332         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
9333         not work on this platform currently.
9334
9335 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9336
9337         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
9338         readonly_warning in _().
9339
9340 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
9341
9342         * gcc.c (delete_if_ordinary): Backout previous change.
9343
9344 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9345
9346         * config/h8300/h8300.c (print_operand): Remove support for
9347         unused operand characters.
9348
9349         * read-rtl.c: Fix formatting.
9350         * real.c: Likewise.
9351         * recog.c: Likewise.
9352         * regclass.c: Likewise.
9353         * regmove.c: Likewise.
9354         * reg-stack.c: Likewise.
9355         * reload1.c: Likewise.
9356         * rtlanal.c: Likewise.
9357
9358 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9359
9360         * config/i386/i386.c: Fix formatting.
9361
9362 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
9363
9364         * c-typeck.c (process_init_element): Don't save_expr
9365         COMPOUND_LITERAL_EXPR if just its initializer will be used.
9366
9367 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
9368
9369         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
9370         emit optional traceback table if optimize_size or TARGET_ELF.
9371         * config/rs6000/rs6000.md (prefetch): New.
9372
9373 2002-01-15  Andreas Jaeger  <aj@suse.de>
9374
9375         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
9376
9377 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9378
9379         * mips-tfile.c: Fix formatting.
9380
9381 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9382
9383         * unroll.c (final_reg_note_copy): Fix previous commit.
9384
9385 2002-01-14  Kazu Hirata  <kazu@hxi.com>
9386
9387         * config/h8300/h8300-protos.h: Remove the prototype for
9388         eq_operator.
9389         * config/h8300/h8300.c (eq_operator): Remove.
9390
9391 2002-01-14  Richard Henderson  <rth@redhat.com>
9392
9393         * config/i386/i386.md (prefetch): Tidy.
9394         (prefetch_3dnow): Fix locality operand.
9395
9396 2002-01-14  Richard Henderson  <rth@redhat.com>
9397
9398         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
9399         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
9400
9401 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
9402
9403         * reload1.c (reload_combine): Pass reg_sum replacement through
9404         copy_rtx in loop performing multiple changes.
9405
9406 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
9407
9408         * except.c (remove_unreachable_regions): New.
9409         (free_eh_status): Clear exception_handler_labels.
9410         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
9411         (find_exception_handler_labels): Don't add the same label more than
9412         once.
9413         (remove_exception_handler_label): Don't die if
9414         find_exception_handler_labels hasn't been called for the current
9415         function yet.
9416
9417 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
9418
9419         * toplev.c (rest_of_compilation): Rebuild jump labels after
9420         gcse.
9421
9422 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
9423
9424         * doc/extend.texi: Move documentation of X86 built-in functions
9425         here.
9426         * doc/invoke.texi: From here.
9427         * doc/sourcebuild.texi: Document location of documentation for
9428         machine built-in functions.
9429
9430 2002-01-13  Christopher Faylor  <cgf@redhat.com>
9431
9432         * cppfiles.c (TEST_THRESHOLD): New macro.
9433         (SHOULD_MMAP): Ditto.
9434         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
9435         be used.
9436
9437 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
9438
9439         * unroll.c (final_reg_note_copy): Properly handle
9440         REG_LABEL
9441         (unroll_loops): Fix LOOP_CONDITION heuristics.
9442
9443 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
9444
9445         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
9446         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
9447
9448 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9449
9450         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
9451         threaded loop.
9452
9453 2002-01-14  Tom Rix  <trix@redhat.com>
9454
9455         * config/rs6000/rs6000.md: Fix typo with sradi.
9456
9457 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
9458
9459         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
9460         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
9461         (clrstrdi, clrstrsi): Adapt callers.
9462
9463         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
9464
9465         (movti splitter): Never use register 0 as base register.
9466
9467 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
9468
9469         * combine.c (simplify_shift_const): Always generate new rtx
9470         for shift expression instead of reusing given expression.
9471
9472 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9473
9474         * config/alpha/alpha.c (alpha_expand_mov): Don't call
9475         alpha_legitimize_address unless mode is Pmode.
9476
9477 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
9478
9479         * doc/md.texi (Modifiers): Document the '*' constraint for the
9480         user.
9481
9482         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
9483         * doc/extend.texi (Function Attributes): 'interrupt' is valid
9484         for xstormy16 too.
9485
9486 2002-01-13  Richard Henderson  <rth@redhat.com>
9487
9488         * reload.c (find_reloads): Use a hard reg destination as reload reg
9489         for an input reload of the source.
9490
9491 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9492
9493         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
9494         more generic.
9495
9496 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
9497
9498         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9499         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9500
9501         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
9502
9503 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9504
9505         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
9506
9507 2002-01-12  Tom Rix  <trix@redhat.com>
9508
9509         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
9510         TARGET_POWERPC64.
9511
9512 2002-01-12  Richard Henderson  <rth@redhat.com>
9513
9514         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
9515
9516         * doc/invoke.texi: Update Alpha options.
9517
9518         * doc/invoke.texi: Update i386 built-in function lists.
9519
9520 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9521
9522         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
9523         referencing outside.
9524
9525 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9526
9527         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
9528         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
9529         offsets, and change line folding.
9530         * optabs.c (expand_binop): Remove warnings.
9531         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
9532
9533 2002-01-12  Graham Stott <grahams@redhat.com>
9534
9535         * attribs.c (handle_deprecated_attribute): constify WHAT.
9536         * diagnostic.c (warn_deprecated_use): Add braces, fixes
9537         dangling else warning and constify WHAT.
9538         * except.h (struct function, struct inline_remap): Move
9539         struct tag forward defs before all prototypes.
9540         (duplicate_eh_regions): Whitespace.
9541
9542 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
9543
9544         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9545         MODE_BASE_REG_CLASS.
9546         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
9547
9548 2002-01-12  Richard Henderson  <rth@redhat.com>
9549
9550         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
9551         (ix86_expand_vector_move): New.
9552         (bdesc_2arg): Remove andps, andnps, orps, xorps.
9553         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
9554         Remove old prefetch builtins.  Special case the logicals removed above.
9555         (ix86_expand_builtin): Likewise.
9556         (safe_vector_operand): Use V4SFmode, not TImode.
9557         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
9558         (ix86_expand_timode_binop_builtin): New.
9559         * config/i386/i386-protos.h: Update.
9560         * config/i386/i386.h (enum ix86_builtins): Update.
9561         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
9562         Use ix86_expand_vector_move in vector move expanders.
9563         (movti_internal, movti_rex64): Add xorps alternative.
9564         (sse_clrv4sf): Rename and adjust from sse_clrti.
9565         (prefetch): Don't work so hard.
9566         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
9567         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
9568         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
9569
9570 2002-01-11  Richard Henderson  <rth@redhat.com>
9571
9572         * config/i386/mmintrin.h: New file.
9573         * config/i386/xmmintrin.h: New file.
9574         * config.gcc (i?86-*-*): Add extra_headers.
9575         * simplify-rtx.c (simplify_unary_operation): Handle saturating
9576         truncation codes.
9577         (simplify_binary_operation): Handle saturating arithmetic codes.
9578         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
9579         not the lowpart subreg.
9580         (ix86_expand_builtin): Return a TImode dummy register instead of 0
9581         on error.
9582         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
9583
9584 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9585
9586         * conflict.c (conflict_graph_compute): Free regsets when finished.
9587         * ssa.c (compute_coalesced_reg_partition): Likewise.
9588
9589 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9590
9591         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
9592         every where we allocate a register.
9593
9594 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9595
9596         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
9597         * lcm.c (compute_earliest, compute_farthest): Likewise.
9598
9599 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9600
9601         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
9602
9603 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9604
9605         * doc/rtl.texi (Insns): Fix 2 typos.
9606
9607 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
9608
9609         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
9610         options.  Use @table @gcctabopt for MMIX options.  Add index
9611         entries for MMIX options.  Start new paragraph with first
9612         heading of the machine-dependent options.
9613
9614 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9615
9616         PR other/5299
9617         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
9618         * combine.c (force_to_mode): Same.
9619         * reload1.c (clear_reload_reg_in_use): Same.
9620
9621 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
9622
9623         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
9624         and 'subtargets'.
9625
9626 2002-01-11  Andreas Jaeger  <aj@suse.de>,
9627             Brad Lucier <lucier@math.purdue.edu>
9628
9629         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
9630         mcpu.
9631
9632 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
9633
9634         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
9635         Protect with IN_LIBGCC.
9636         (LINK_EH_SPEC): Add required trailing space.
9637
9638 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9639
9640         * c-tree.h: Move function declarations so that they are listed
9641         under the filename which contains them.
9642         (check_identifier, finish_decl_top_level,
9643         lookup_name_current_level_global, shadow_record_fields): Remove.
9644
9645 2002-01-11  Andreas Jaeger  <aj@suse.de>
9646
9647         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
9648         march.
9649
9650 2002-01-10  Richard Henderson  <rth@redhat.com>
9651
9652         * config/alpha/alpha.c (print_operand): Add 'J'.
9653         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
9654         new operand with the sequence number for the lituse.  When splitting
9655         the insns, use gen_movdi_er_high_g and generate a sequence number.
9656         (gen_movdi_er_high_g): Print the sequence number if non-zero.
9657
9658 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
9659
9660         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
9661         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
9662         stvxl.
9663         (altivec_expand_builtin): Same.
9664         (altivec_expand_stv_builtin): New.
9665
9666         * config/rs6000/rs6000.h (rs6000_builtins): Same.
9667
9668         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
9669         ("altivec_lvehx"): New.
9670         ("altivec_lvewx"): New.
9671         ("altivec_lvxl"): New.
9672         ("altivec_lvx"): New.
9673         ("altivec_stvx"): New.
9674         ("altivec_stvebx"): New.
9675         ("altivec_stvehx"): New.
9676         ("altivec_stvewx"): New.
9677         ("altivec_stvxl"): New.
9678
9679 2002-01-10  Richard Henderson  <rth@redhat.com>
9680
9681         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
9682         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
9683         care not to delete instructions twice.
9684
9685 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9686
9687         * toplev.c: Don't declare environ (it's not used anywhere).
9688         * configure.in: Don't check for declaration of environ.
9689         * config/i386/xm-mingw32.h: Don't #define environ.
9690         * config.in, configure: Regenerate.
9691
9692 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9693
9694         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
9695         * configure: Regenerate.
9696
9697         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
9698         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
9699         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
9700         alpha/xm-vms.h.
9701         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
9702         LIMITS_H_TEST here, not in m68k/x-next.
9703         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
9704         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
9705
9706         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
9707         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
9708         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
9709
9710         * config/i386/x-djgpp: Renamed i386/t-djgpp.
9711         * config/m88k/x-dolph: Renamed m88k/t-dolph.
9712         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
9713         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
9714         replacement of quadlib.asm with quadlib.c.
9715
9716         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
9717         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
9718         config/rs6000/xm-beos.h: Delete file.
9719
9720         * config.gcc: Update to match above changes.
9721
9722 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9723
9724         * config/h8300/h8300.h: Fix comment typos.
9725         * config/h8300/h8300.md: Likewise.
9726         * config/h8300/lib1funcs.asm: Likewise.
9727
9728 2002-01-10  Dale Johannesen  <dalej@apple.com>
9729
9730         PR optimization/5269
9731         * unroll.c (precondition_loop_p): Make *increment be the correct
9732         sign when n_iterations known, to avoid confusing caller.
9733
9734 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9735
9736         * doc/extend.texi (deprecated): Fix a typo.
9737
9738 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9739
9740         * basic-block.h (update_br_prob_note): Declare.
9741         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
9742         (try_forward_edges): Care negative frequencies and update note.
9743         (outgoing_edges_match): Tweek conditional merging heuristics.
9744         (try_crossjump_to_edge): use update_br_prob_note.
9745         * cfglayout.c (fixup_reorder_chain): Likewise.
9746         * cfrtl.c (update_br_prob_note): New.
9747         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
9748
9749         * i386.c (ix86_decompose_address): Return -1 if address contains
9750         shift.
9751         (legitimate_address_p): Require ix86_decompose_address to return 1.
9752
9753         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
9754         (cprop_insn): Likewise.
9755
9756 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9757
9758         * toplev.c: Fix formatting.
9759         * tree.c: Likewise.
9760         * tree-dump.c: Likewise.
9761         * unroll.c: Likewise.
9762         * unwind-dw2.c: Likewise.
9763         * unwind-dw2-fde.c: Likewise.
9764         * unwind-dw2-fde-glibc.c: Likewise.
9765         * unwind-sjlj.c: Likewise.
9766
9767 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9768
9769         * doc/invoke.texi: Document PDP-11 options.
9770
9771 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9772
9773         * config/h8300/h8300.h: Fix formatting.
9774
9775 2002-01-10  Ira Ruben   <ira@apple.com>
9776
9777         Add __attribute__ ((deprecated)).
9778         * extend.texi: Document __attribute__ ((deprecated)).
9779         * invoke.texi: Document -Wno-deprecated-declarations.
9780         * testsuite/g++.dg/other/deprecated.C: New C++ test.
9781         * testsuite/gcc.dg/deprecated.c: New C test.
9782         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
9783         (c_common_attribute_table): Add "deprecated" entry.
9784         (handle_deprecated_attribute): New function.
9785         * c-decl.c (deprecated_states): New enum.
9786         deprecated_state: State of "deprecated" handling.
9787         (start_decl): Set deprecated_state based on attributes.
9788         (grokdeclarator): Test for deprecated uses, propagate attribute.
9789         * c-typeck.c (build_component_ref): Test for deprecated fields.
9790         (build_external_ref): Test for deprecated primaries.
9791         * diagnostic.c (warn_deprecated_use) New function to issue
9792         warnings about __attribute__ ((depricated)) references.
9793         * flags.h (warn_deprecated_decl): Extern declared for
9794         -W[no-]deprecated-declarations option.
9795         * print-tree.c (print_node): Show deprecated flag status.
9796         * toplev.c (warn_deprecated_decl): Defined.
9797         (W_options): Added "deprecated-declaration".
9798         * toplev.h (warn_deprecated_use): Extern declared.
9799         * tree.h (struct tree_common): Define deprecated_flag.
9800         (TREE_DEPRECATED): New macro to access flag.
9801         * cp/call.c (build_call): Test for deprecated calls.
9802         * cp/class.c (add_implicitly_declared_members): Set global
9803         flag to tell grokdeclarator to not issue deprecated warnings.
9804         * cp/cp-tree.h: Add extern for adding_implicit_members.
9805         * cp/decl.c (deprecated_states): New enum.
9806         (start_decl): Set deprecated_state based on attributes.
9807         (grokdeclarator): Test for deprecated uses, propagate attribute.
9808         * cp/lex.c (do_identifier): Test for deprecated primaries.
9809         * cp/typeck.c (build_component_ref): Test for deprecated fields.
9810
9811 2002-01-10  Ira Ruben   <ira@apple.com>
9812
9813         Fix to assign attributes to inline member functions.
9814         * cp/decl.c (start_method): Handle attrlist.
9815
9816 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9817
9818         * combine.c (expand_field_assignment): Use subreg_lsb().
9819
9820 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
9821
9822         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
9823         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
9824         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
9825         Recurse for any operand of AND as long as constant is non-zero.
9826
9827 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9828
9829         * config/h8300/h8300.md: Remove constraints from expanders.
9830
9831 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9832
9833         * varasm.c: Fix formatting.
9834         * varray.c: Likewise.
9835         * vmsdbgout.c: Likewise.
9836         * xcoffout.c: Likewise.
9837
9838 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9839
9840         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
9841         update edge probabilities to match.
9842
9843 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9844
9845         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
9846         dependencies.
9847         * doc/languages.texi, doc/sourcebuild.texi: New files.
9848         * doc/configfiles.texi: Make a subsubsection.  Update.
9849         * doc/configterms.texi: Add @node.  Remove warning that this isn't
9850         instructions for building GCC.
9851         * doc/makefile.texi: Make a subsection.
9852         * doc/gccint.texi: Update.
9853
9854 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
9855
9856         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
9857
9858 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9859
9860         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
9861
9862 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
9863
9864         * optabs.c (expand_fix): Look for wider integer modes first.
9865
9866         * i386.md (mov?f): Avoid the fake const double trick for medium
9867         memory model.
9868         (min?f*/max?f*): Prohibit memory operands for i387 variant.
9869         (fop_df_4): Disable for SSE compilation.
9870
9871 2002-01-10  Graham Stott  <grahams@redhat.com>
9872
9873         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
9874         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
9875
9876 2002-01-10  Richard Henderson  <rth@redhat.com>
9877
9878         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
9879
9880 2002-01-10  Richard Henderson  <rth@redhat.com>
9881
9882         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
9883         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
9884
9885 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9886
9887         * combine.c (can_combine_p): Fix a comment typo.
9888
9889 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
9890
9891         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
9892         empty list correctly.  Change loop index $t to $f for
9893         consistency with rest of Makefile.
9894
9895 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
9896
9897         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
9898         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9899
9900         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
9901         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
9902         (altivec_init_builtins): Same.
9903         (altivec_expand_unop_builtin): Return NULL_RTX on error.
9904         (altivec_expand_binop_builtin): Same.
9905         (altivec_expand_ternop_builtin): Same.
9906         (bdesc_dst): New.
9907
9908         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
9909         ("altivec_vctuxs"): Fix typo.
9910         ("altivec_vnmsubfp"): Same.
9911         ("altivec_dssall"): New.
9912         ("altivec_mfvscr"): New.
9913         ("altivec_dss"): New.
9914         ("altivec_lvsl"): New.
9915         ("altivec_lvsr"): New.
9916         ("altivec_dstt"): New.
9917         ("altivec_dstst"): New.
9918         ("altivec_dststt"): New.
9919         ("altivec_dst"): New.
9920
9921         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
9922         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9923
9924 2002-01-09  Richard Henderson  <rth@redhat.com>
9925
9926         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
9927
9928 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
9929
9930         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
9931         function.
9932         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
9933         prototype.
9934         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
9935
9936 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9937
9938         * read-rtl.c: Fix formatting.
9939         * real.c: Likewise.
9940         * regclass.c: Likewise.
9941         * regrename.c: Likewise.
9942         * reg-stack.c: Likewise.
9943         * reload1.c: Likewise.
9944         * reload.c: Likewise.
9945         * rtl.c: Likewise.
9946
9947 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9948
9949         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
9950         to extract items in the expr_list chain.
9951
9952 2002-01-09  Richard Henderson  <rth@redhat.com>
9953
9954         * config/vax/vax.c (vax_rtx_cost): Never abort.
9955
9956         * config/vax/vax.h (REAL_ARITHMETIC): Define.
9957
9958 2002-01-09  Jan Hubicka  <jh@suse.cz>
9959
9960         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
9961
9962 2002-01-09  Richard Henderson  <rth@redhat.com>
9963
9964         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
9965         Unify code from various alternatives.
9966
9967 2002-01-09  Richard Henderson  <rth@redhat.com>
9968
9969         * regrename.c (copy_value): Ignore the copy if the source register
9970         is present in the value chain with a narrower mode.
9971
9972 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9973
9974         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
9975         for the c4x target. Also improve layout.
9976
9977 2002-01-09  Richard Henderson  <rth@redhat.com>
9978
9979         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
9980         * config/m32r/m32r.md (and ior xor splitters): Swap operands
9981         to match insn patterns.
9982
9983 2002-01-09  Richard Henderson  <rth@redhat.com>
9984
9985         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
9986         (copyprop_hardreg_forward_1): Likewise.
9987
9988 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9989
9990         * pa.md (decrement_and_branch_until_zero): Change predicate for
9991         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
9992
9993 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9994
9995         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
9996         gets undefined. For Darwin.
9997
9998 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9999
10000         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
10001
10002 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10003
10004         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
10005
10006 2002-01-08  Richard Henderson  <rth@redhat.com>
10007
10008         * regrename.c (copy_value): Ignore overlapping copies.
10009
10010 2002-01-08  Richard Henderson  <rth@redhat.com>
10011
10012         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
10013         as needed to avoid shared structure.
10014
10015 2002-01-08  Kazu Hirata  <kazu@hxi.com>
10016
10017         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
10018         H8/300H and H8/S.
10019
10020 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10021
10022         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
10023         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
10024         documentation of obsolete macros.
10025         * system.h: Poison these macros.
10026         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
10027         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
10028         config/c4x/c4x.h, config/clipper/clipper.h,
10029         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
10030         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
10031         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
10032         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
10033         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
10034         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
10035         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
10036         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
10037         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
10038         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
10039         config/sparc/sparc.h, config/stormy16/stormy16.h,
10040         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
10041         definitions and commented out definitions of obsolete macros.
10042         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
10043         of MAX_INT_TYPE_SIZE.
10044
10045 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
10046
10047         * config/s390/s390.c (s390_preferred_reload_class): Never
10048         return ADDR_REGS if it isn't a subset of the given class.
10049         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
10050         FP_REGS, but all superclasses as well.
10051
10052         * config/s390/s390.c (s390_function_profiler): Fix thinko.
10053
10054         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
10055         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
10056         must not be a const_int.
10057
10058 2002-01-08  Richard Henderson  <rth@redhat.com>
10059
10060         * Makefile.in (toplev.o): Depend on options.h.
10061         (gcc.o): Depend on specs.h.
10062
10063 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
10064
10065         * expr.c (store_expr): Convert VOIDmode constants back to target's
10066         mode.
10067
10068 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10069
10070         * doc/invoke.texi: Markup gcc as @command.  Refer to
10071         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
10072         of http://gcc.gnu.org/thanks.html.
10073
10074 2002-01-08  Dale Johannesen  <dalej@apple.com>
10075
10076         * config/rs6000/rs6000.md: Add missing int register
10077         target case to movdf_low.
10078
10079 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
10080
10081         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
10082         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
10083         (cppinit.o): Depend on except.h.
10084         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
10085         s-specs): New rules.
10086
10087         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
10088         Don't create specs.h/options.h/gencheck.h here.  Remove
10089         unnecessary variable settings from last argument of AC_OUTPUT.
10090         * config.in, configure: Regenerate.
10091         * intl.c: Hardcode package name as "gcc".
10092
10093         * cppinit.c: Include except.h.
10094         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
10095         appropriate.
10096         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
10097         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
10098         (!)USING_SJLJ_EXCEPTIONS.
10099         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
10100
10101 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10102
10103         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
10104         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
10105         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
10106         documentation of obsolete macros.
10107         * system.h: Poison these macros.
10108         * config/d30v/d30v.h, config/ns32k/encore.h,
10109         config/stormy16/stormy16.h: Remove definitions and commented out
10110         definitions of obsolete macros.
10111
10112 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
10113
10114         * objc/objc-act.c (handle_class_ref): Mark the declaration of
10115         %sobjc_class_ref_%s as used - to prevent unwanted compiler
10116         warnings.
10117
10118 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
10119
10120         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
10121         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
10122         to insn adjusting stack/frame pointer.
10123         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
10124         accept operands that cause the insn to be non-splittable.
10125
10126 2002-01-08  Graham Stott  <grahams@redhat.com>
10127
10128         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
10129         (C_TYPE_FIELDS_VOLATILE): Likewise.
10130         (C_TYPE_BEING_DEFINED): Likewise.
10131         (C_IS_RESERVED_WORD): Likewise.
10132         (C_TYPE_VARIABLE_SIZE): Likewise.
10133         (C_DECL_VARIABLE_SIZE): Likewise.
10134         (C_MISSING_PROTOTYPE_WARNED): Likewise.
10135         (C_SET_EXP_ORIGINAL_CODE): Likewise.
10136         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
10137         parenthesis.
10138         (C_DECL_ANTICIPATED): Likewise.
10139         (c_build_type_variant): Add parenthesis.
10140
10141 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10142
10143         * gcc.c (option_map): Remove --version.
10144         (process_command): Handle -fversion following the GNU Coding
10145         Standards.  Partially addresses PR other/704.
10146
10147 2002-01-08  Graham Stott  <grahams@redhat.com>
10148
10149         * combine.c (combine_instructions): Fix typo.
10150
10151 2002-01-08  Graham Stott  <grahams@redhat.com>
10152
10153         * debug.h: Use "tree" and "rtx" throughout.
10154
10155         * debug.c: Likewise.
10156
10157 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
10158
10159         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
10160         constant pool, use the pool's version of the symbol instead.
10161
10162 2002-01-07  Richard Henderson  <rth@redhat.com>
10163
10164         * regrename.c (find_oldest_value_reg): Ignore the value chain if
10165         the original register was copied in a mode with a fewer number of
10166         hard registers than the desired mode.
10167         (copyprop_hardreg_forward_1): Likewise.
10168         (debug_value_data): Fix loop test.
10169         * toplev.c (parse_options_and_default_flags): Reenable
10170         -fcprop-registers at -O1.
10171
10172 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10173
10174         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
10175         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
10176
10177         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
10178         predicates.
10179
10180         * config/rs6000/rs6000.md: Add altivec predicate patterns.
10181
10182 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10183
10184         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
10185         (pa_output_function_prologue): Output local label at the beginning of
10186         the prologue when profiling.
10187         (hppa_profile_hook): Use the local label rather than the function label.
10188         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
10189
10190 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10191
10192         * config/rs6000/rs6000.c (print_operand): Remove extra space.
10193         (altivec_expand_unop_builtin): Fix thinko.
10194         (altivec_expand_binop_builtin): Same.
10195         (altivec_expand_ternop_builtin): Same.
10196         (altivec_expand_builtin): Same.
10197
10198 2002-01-07  Richard Henderson  <rth@redhat.com>
10199
10200         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
10201
10202 2002-01-07  Jason Merrill  <jason@redhat.com>
10203
10204         * unwind-dw2.c (execute_cfa_program): Use < again.
10205
10206 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
10207
10208         * predict.c (combine_predictions_for_insn): Avoid division by zero.
10209
10210 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
10211
10212         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
10213         Don't allow -1 - x -> ~x simplifications in the first pass.
10214
10215 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10216
10217         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
10218         arguments.
10219         (altivec_expand_binop_builtin): Same.
10220         (altivec_expand_unop_builtin): Same.
10221         (print_operand): Fix typo.
10222         (bdesc_1arg): Add vupk* variants.
10223
10224         * rs6000.h (rs6000_builtins): Add vupk* enums.
10225
10226         * rs6000.md: Add altivec_vupk* variants.
10227
10228 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10229
10230         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
10231         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
10232         and last update dates.
10233
10234 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
10235
10236         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
10237
10238 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10239
10240         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
10241         * config/avr/avr.h (CPP_SPEC): Likewise.
10242         (LINK_SPEC): Likewise.
10243         (CRT_BINUTILS_SPECS): Likewise.
10244         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10245         * doc/invoke.texi (AVR Options): Document them.
10246
10247 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
10248
10249         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
10250         LABEL_NUSES.
10251
10252 2002-01-07  Graham Stott  <grahams@redhat.com>
10253
10254         * config/i386/i386.h: Update copyright date.
10255         (HALF_PIC_PTR): Add parenthesis.
10256         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
10257         (CONSTANT_ALIGNMENT): Add parenthesis.
10258         (DATA_ALIGNMENT): Likewise.
10259         (LOCAL_ALIGNMENT): Likewise.
10260         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
10261         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
10262         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
10263         (HARD_REGNO_NREGS): Add paranethesis.
10264         (VALID_SSE_REG_MODE): Whitespace.
10265         (VALID_MMX_REG_MODE): Whitespace.
10266         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
10267         (ix86_hard_regno_mode_ok): Add parenthesis.
10268         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
10269         (RETURN_IN_MEMORY): Whitespace.
10270         (N_REG_CLASSES): Add parenthesis.
10271         (INTEGER_CLASS_P): Add parenthesis and wrap.
10272         (FLOAT_CLASS_P): Likewise.
10273         (SSE_CLASS_P): Likewise.
10274         (MMX_CLASS_P): Likewise.
10275         (MAYBE_INTEGER_CLASS_P): Likewise.
10276         (MAYBE_FLOAT_CLASS_P): Likewise.
10277         (MAYBE_SSE_CLASS_P): Likewise.
10278         (MAYBE_MMX_CLASS_P): Likewise.
10279         (Q_CLASS_P): Likewise.
10280         (GENERAL_REGNO_P): Uppercase macro parameter.
10281         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
10282         (FP_REGNO_P): Likewise.
10283         (ANY_FP_REGNO_P): Uppercase macro parameter.
10284         (SSE_REGNO_P): Likewise.
10285         (SSE_REGNO): Likewise.
10286         (SSE_REG_P): Likewise.
10287         (SSE_FLOAT_MODE_P): Likewise.
10288         (MMX_REGNO_P): Likewise.
10289         (MMX_REG_P):Likewise.
10290         (STACK_REG_P): Likewise.
10291         (NON_STACK_REG_P): Likewise.
10292         (STACK_TOP_P): Likewise.
10293         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
10294         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
10295         (SECONDARY_MEMORY_NEEDED): Likewise.
10296         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
10297         (MD_ASM_CLOBBERS): Whitespace and wrap.
10298         (MUST_PASS_IN_STACK): Whitespace and wrap.
10299         (RETURN_POPS_ARGS): Add parenthesis.
10300         (INIT_CUMULATIVE_ARGS): Likewise.
10301         (FUNCTION_ARG): Likewise.
10302         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
10303         (SETUP_INCOMING_VARARGS): Likewise.
10304         (BUILD_VA_LIST_TYPE):  Add parenthesis.
10305         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
10306         parenthsis.
10307         (EXPAND_BUILTIN_VA_ARG): Likewise.
10308         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
10309         (INITIALIZE_TRAMPOLINE): Add parenthesis.
10310         (INITIAL_ELIMINATION_OFFSET): Likewise.
10311         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
10312         (REGNO_OK_FOR_BASE_P): Likewise.
10313         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
10314         (REGNO_OK_FOR_DIREG_P): Likewise.
10315         (REG_OK_FOR_INDEX_P): Whitespace.
10316         (REG_OK_FOR_BASE_P): Whitespace.
10317         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
10318         parenthesis.
10319         (FIND_BASE_TERM): Fix typo.
10320         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
10321         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
10322         (SYMBOLIC_CONST; Whitespace.
10323         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
10324         (ENCODE_SECTION_INFO): Whitespace.
10325         (FINALIZE_PIC): Remove do { ... } while (0).
10326         (PROMOTE_MODE): Wrap in do { ... } while (0).
10327         (CONST_COSTS): Whitespace.
10328         (RTX_COSTS): Add paramethesis, whitespace and wrap.
10329         (REGISTER_MOVE_COST): Add parenthesis.
10330         (MEMORY_MOVE_COST): Likewise.
10331         (EXTRA_CC_MODES): Whitespace.
10332         (SELECT_CC_MODE): Add parenthesis and whitespace.
10333         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
10334         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
10335         (ASM_OUTPUT_LABEL): Add paramethesis.
10336         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
10337         (ASM_OUTPUT_REG_POP): Likewise.
10338         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
10339         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10340
10341         * config/i386/i386.c: Update copyright.
10342         (CHECK_STACK_LIMIT): Add parenthesis.
10343         (AT_BP): Uppercase macro parameter.
10344         (x86_64_int_parameter_registers): Constify.
10345         (x86_64_int_return_registers): Likewise.
10346         (ix86_compare_op0): Use rtx.
10347         (construct_container): Constify INTREG parameter.
10348         (function_arg): Use rtx.
10349
10350         * diagnostic.h: Update copyright date.
10351         (output_buffer_state): Add parenthesis.
10352         (output_buffer_format_args): Likewise.
10353
10354         * combine.c (combine_instructions): Replace XEXP (links, 0)
10355         with link.
10356
10357 2002-01-06  H.J. Lu <hjl@gnu.org>
10358
10359         * cfgcleanup.c (thread_jump): Fix 2 typos.
10360
10361 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
10362
10363         * config.gcc: Add support for --enable-altivec.
10364
10365 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10366
10367         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
10368
10369 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
10370
10371         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
10372         __objc_class_name_*.
10373
10374 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10375
10376         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
10377
10378 2002-01-06  Richard Henderson  <rth@redhat.com>
10379
10380         * reorg.c (emit_delay_sequence): Remove death notes, not merely
10381         nop them out.  Increment label reference count for REG_LABEL.
10382         (fill_slots_from_thread): Frob label reference count around
10383         delete_related_insns.
10384
10385 2002-01-05  Richard Henderson  <rth@redhat.com>
10386
10387         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
10388         jump threading.
10389
10390 2002-01-05  Richard Henderson  <rth@redhat.com>
10391
10392         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
10393         * integrate.c (output_inline_function): Likewise.
10394         * toplev.c (rest_of_compilation): Do it here instead.  Move call
10395         to remove_unnecessary_notes after emitting abstract instance.
10396         Force an emitted nested function to have its parent emited as well.
10397         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
10398         for null.
10399         (rtl_for_decl_location): Do not look at reload data structures
10400         before reload has run.
10401
10402 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10403
10404         * cse.c: Fix formatting.
10405         * dwarf2asm.c: Likewise.
10406         * dwarf2out.c: Likewise.
10407         * explow.c: Likewise.
10408         * expmed.c: Likewise.
10409         * function.c: Likewise.
10410         * gcov.c: Likewise.
10411         * gencheck.c: Likewise.
10412         * genrecog.c: Likewise.
10413         * ggc-common.c: Likewise.
10414         * ggc-page.c: Likewise.
10415         * global.c: Likewise.
10416
10417 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10418
10419         * combine.c: Fix formatting.
10420
10421 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
10422
10423         PR middle-end/1557
10424         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
10425
10426 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
10427
10428         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
10429         as 1 for __powerpc64__ as well.
10430
10431         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
10432
10433         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
10434         return it.
10435
10436 2002-01-05  Daniel Berlin  <dan@dberlin.org>
10437
10438         * lcm.c: Revert change, due to performance regression it causes on
10439         SPEC because it's slightly more conservative (sigh, I hate
10440         edge-based LCM).
10441
10442 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10443
10444         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
10445
10446 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10447
10448         * doc/cppinternals.texi: Update.
10449
10450 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
10451
10452         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
10453         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
10454         negatives.
10455         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
10456         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
10457         kludge for pre-october-14th mmix versions to handle new-found bug
10458         with PUSHJ/PUSHGO and the register stack.
10459         * config/mmix/mmix.h (struct machine_function): Rename member
10460         has_call_value_without_parameters to has_call_without_parameters.
10461         All referers changed.
10462         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
10463         TARGET_MASK_BRANCH_PREDICT): New macros.
10464         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
10465         -mno-reg-stack-fill-bug-workaround.
10466         * config/mmix/mmix.md ("call"): Set struct machine member
10467         has_call_without_parameters.
10468
10469 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10470
10471         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
10472
10473 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
10474
10475         * cfgcleanup.c: Include tm_p.h
10476         (mark_effect): Fix handling of hard register; fix handling of SET
10477
10478 2002-01-04  Kazu Hirata  <kazu@hxi.com>
10479
10480         * config/h8300/h8300.md (anonymous patterns): Check that
10481         operands are registers before using REGNO on them.
10482
10483 2002-01-03  Roland McGrath  <roland@frob.com>
10484
10485         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
10486
10487 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
10488
10489         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
10490         * c-common.h (genrtl_expr_stmt_value): Likewise.
10491         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
10492         (expand_expr_stmt_value): Add maybe_last argument.
10493         Don't warn about statement with no effect if it is the last statement
10494         in expression statement.
10495         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
10496         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
10497         expand_expr_stmt_value.
10498         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
10499         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
10500         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
10501         as maybe_last to expand_expr_stmt_value.
10502
10503 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
10504
10505         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
10506         be passed in, do not build it.
10507         (c_begin_if_stmt): New function.
10508         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10509         * c-common.h (c_expand_start_cond): Update prototype.
10510         (c_begin_if_stmt): Prototype new function.
10511         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10512         * c-parse.in (if_prefix): Use c_begin_if_stmt,
10513         c_begin_while_stmt and c_finish_while_stmt_cond.
10514
10515 2002-01-04  William Cohen  <wcohen@redhat.com>
10516
10517         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
10518         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10519         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10520         * config/pa/som.h (ASM_FILE_START): Likewise.
10521
10522 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
10523
10524         * lcm.c: Include df.h.
10525         Add available_transfer_function prototype.
10526         (compute_available): Rework to use iterative dataflow framework.
10527         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
10528         with bb_info in df.h
10529         (available_transfer_function): New function.
10530
10531         * Makefile.in (lcm.o): add df.h to dependencies.
10532
10533 2002-01-04  Richard Henderson  <rth@redhat.com>
10534
10535         * config/alpha/alpha.c (some_operand): Accept HIGH.
10536         (input_operand): Likewise; accept simple references to globals.
10537         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
10538         (alpha_const_double_ok_for_letter_p): Likewise.
10539         (alpha_extra_constraint): Likewise.
10540         (alpha_preferred_reload_class): Likewise.  Do not force
10541         symbolic constants to memory.
10542         (alpha_legitimate_address_p): Accept simple references
10543         to small_symbolic_operand.
10544         (alpha_legitimize_address): New arg scratch.  Be prepared to be
10545         called when no_new_pseudos.  Emit simple symbolic references.
10546         Split integers into low, high, and rest.
10547         (alpha_expand_mov): Use alpha_legitimize_address.
10548         (some_small_symbolic_mem_operand): New.
10549         (split_small_symbolic_mem_operand): New.
10550         * config/alpha/alpha-protos.h: Update.
10551         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
10552         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
10553         (EXTRA_CONSTRAINT): Likewise.
10554         (PREFERRED_RELOAD_CLASS): Likewise.
10555         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
10556         (PREDICATE_CODES): Update.
10557         * config/alpha/alpha.md: New post-reload splitters to convert
10558         simplfied symbolic operands to the form that references $29.
10559         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
10560         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
10561
10562 2002-01-03  Richard Henderson  <rth@redhat.com>
10563
10564         * local-alloc.c (function_invariant_p): Update commentary.
10565
10566 2002-01-04  H.J. Lu <hjl@gnu.org>
10567
10568         * toplev.c (rest_of_compilation): Fix a typo when calling
10569         cleanup_cfg.
10570
10571 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10572
10573         * c-common.c: Fix formatting.
10574         * diagnostic.c: Likewise.
10575         * doloop.c: Likewise.
10576         * dwarf2out.c: Likewise.
10577
10578 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10579
10580         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
10581         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
10582
10583 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10584
10585         * cpperror.c: Update comments and copyright.
10586         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
10587         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
10588
10589 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10590
10591         * collect2.c (main): Use strcmp when testing for "-shared".
10592
10593 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10594
10595         * cppmacro.c: Don't include intl.h.  Update comments.
10596         (new_number_token): Allocate enough buffer for 64-bit unsigned
10597         integers; update prototype.
10598         * cppmain.c: Update comments.
10599
10600 2002-01-03  William Cohen  <wcohen@redhat.com>
10601
10602         * function.h (struct function): Add profile.
10603         (current_function_profile): New.
10604         doc/extend.texi: Update documentation.
10605         * final.c (final_start_function): Use current_function_profile
10606         instead of profile_flag.
10607         (profile_after_prologue): Likewise.
10608         * function.c (expand_function_start): Likewise.
10609         (expand_function_start): Likewise.
10610         * config/alpha/alpha.c (direct_call_operand):
10611         (alpha_does_function_need_gp): Likewise.
10612         (alpha_expand_prologue): Likewise.
10613         * config/arm/arm.c (arm_expand_prologue): Likewise.
10614         thumb_expand_prologue: Likewise.
10615         * config/d30v/d30v.c (d30v_stack_info): Likewise.
10616         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
10617         (fr30_expand_prologue): Likewise.
10618         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
10619         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
10620         * config/i386/i386.h (FINALIZE_PIC): Likewise.
10621         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
10622         * config/i960/i960.c (i960_output_function_prologue): Likewise.
10623         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10624         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
10625         (m32r_expand_prologue): Likewise.
10626         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
10627         (m88k_expand_prologue): Likewise.
10628         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
10629         * config/mips/mips.c (compute_frame_size): Likewise.
10630         (mips_expand_prologue): Likewise.
10631         (mips_can_use_return_insn): Likewise.
10632         * config/pa/elf.h (ASM_FILE_START): Likewise.
10633         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10634         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10635         * config/pa/som.h (ASM_FILE_START): Likewise.
10636         * config/romp/romp.c (romp_using_r14): Likewise.
10637         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
10638         (rs6000_stack_info): Likewise.
10639         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10640         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
10641         * config/v850/v850.c (compute_register_save_size): Likewise.
10642
10643 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
10644
10645         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
10646         gen_lowpart_common fails, use gen_lowpart_SUBREG.
10647
10648 2002-01-03  Turly O'Connor  <turly@apple.com>
10649
10650         * darwin.c (machopic_output_possible_stub_label): Don't generate
10651         stub routines for pseudo-stubs which we've just defined.
10652
10653 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10654
10655         * builtins.c: Fix formatting.
10656         * c-typeck.c: Likewise.
10657         * combine.c: Likewise.
10658         * expr.c: Likewise.
10659         * loop.c: Likewise.
10660
10661 2002-01-03  Andreas Schwab  <schwab@suse.de>
10662
10663         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
10664         and return true if _cpp_push_next_buffer pushed a new include
10665         file.
10666         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
10667         _cpp_pop_file_buffer did not push a new file.
10668         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
10669
10670 2002-01-02  Eric Christopher  <echristo@redhat.com>
10671
10672         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
10673         FIND_REG_INC_NOTE call. Update copyright.
10674         * loop.c (canonicalize_condition): Ditto.
10675         * reorg.c (delete_scheduled_jump): Ditto.
10676
10677 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10678
10679         * gcse.c: Fix formatting.
10680
10681 2002-01-03  Graham Stott  <grahams@redhat.com>
10682
10683         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
10684         forward defs for struct tags rtx_def, union_tree, rtvec_def
10685         also output corresponding typedefs for rtx, tree, and rtvec.
10686
10687         * system.h: Move forward defs for struct tags rtx_def, union_tree,
10688         rtvec_def along with corresponding typedefs for rtx, tree, and
10689         rtvec to config.h, hconfig.h, tconfig.h.
10690
10691 2002-01-03  Graham Stott  <grahams@redhat.com>
10692
10693         * tree.h: Update copyright date.
10694         (IS_EXPR_CODE_CLASS): Add parenthesis.
10695         (TREE_SET_CODE): Add whitespace.
10696         (TREE_CHECK): Add parenthesis.
10697         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
10698         (CST_OR_CONSTRUCTOR_CHECK):
10699         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
10700         (TREE_SYMBOL_REFERENCED): Whitespace.
10701         (INT_CST_LT): Likewise.
10702         (INT_CST_LT_UNSIGNED): Likewise.
10703         (tree_real_cst): Unwrap comment.
10704         (tree_string): Likewise.
10705         (tree_complex): Likewise.
10706         (IDENTIFIER_POINTER): correct cast.
10707         (SAVE_EXPR_CONTEXT): Whitespace.
10708         (EXPR_WFL_FILENAME_NODE): Likewise.
10709         (EXPR_WFL_FILENAME): Remove parenthesis.
10710         (DECL_ORIGIN): Add parenthesis.
10711         (DECL_FROM_INLINE): Use NULL_TREE.
10712         (build_int_2): Whitespace.
10713         (build_type_variant): Add parenthesis.
10714
10715         * gcc/jcf-parse.c: Update copyright date.
10716         (yyparse): Constify resource_filename.
10717
10718 2002-01-03  Graham Stott  <grahams@redhat.com>
10719
10720         * rtl.h: Update copyright date.
10721         (RTL_CHECK1): Wrap long line.
10722         (RTL_CHECK2): Likewise.
10723         (RTL_CHECKC1): Wrap long line and whitespace.
10724         (RTL_CHECKC2): Likewise.
10725         (XWINT): Whitespace.
10726         (XINT): Likewise.
10727         (XSTR): Likewise.
10728         (XEXP): Likewise.
10729         (XVEC): Likewise.
10730         (XMODE): Likewise.
10731         (XBITMAP): Likewise.
10732         (XTREE): Likewise.
10733         (XBBDEF): Likewise.
10734         (XTMPL): Likewise.
10735         (X0WINT): Likewise.
10736         (X0INT):Likewise.
10737         (X0UINT): Likewise.
10738         (X0STR): Likewise.
10739         (X0EXP): Likewise.
10740         (X0VEC): Likewise.
10741         (X0MODE): Likewise.
10742         (X0BITMAP): Likewise.
10743         (X0TREE): Likewise.
10744         (X0BBDEF): Likewise.
10745         (X0ADVFLAGS): Likewise.
10746         (X0CSELIB): Likewise.
10747         (X0MEMATTR): Likewise.
10748         (XCWINT): Likewise.
10749         (XCINT): Likewise.
10750         (XCUINT): Likewise.
10751         (XCSTR): Likewise.
10752         (XCEXP): Likewise.
10753         (XCVEC): Likewise.
10754         (XCMODE): Likewise.
10755         (XCBITMAP): Likewise.
10756         (XCTREE): Likewise.
10757         (XCBBDEF): Likewise.
10758         (XCADVFLAGS): Likewise.
10759         (XCCSELIB): Likewise.
10760         (XC2EXP): Likewise.
10761         (INSN_UID): Likewise.
10762         (PREV_INSN): Likewise.
10763         (PATTERN): Likewise.
10764         (INSN_CODE): Likewise.
10765         (PUT_REG_NOTE_KIND): Likewise.
10766         (CODE_LABEL_NUMBER): Likewise.
10767         (NOTE_SOURCE_FILE): Likewise.
10768         (NOTE_BLOCK): Likewise.
10769         (NOTE_EH_HANDLER): Likewise.
10770         (NOTE_RANGE_INFO): Likewise.
10771         (NOTE_LIVE_INFO): Likewise.
10772         (NOTE_BASIC_BLOCK): Likewise.
10773         (NOTE_EXPECTED_VALUE): Likewise.
10774         (NOTE_LINE_NUMBER): Likewise.
10775         (LABEL_NAME): Likewise.
10776         (LABEL_NUSES): Likewise.
10777         (LABEL_ALTERNATE_NAME): Likewise.
10778         (ADDRESSOF_DECL): Likewise.
10779         (JUMP_LABEL): Likewise.
10780         (LABEL_NEXTREF): Likewise.
10781         (REGNO): Likewise.
10782         (ORIGINAL_REGNO: Likewise.
10783         (HARD_REGISTER_NUM_P): Add parenthesis.
10784         (SUBREG_REG): Whitespace.
10785         (SUBREG_BYTE): Likewise.
10786         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
10787         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
10788         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
10789         (ASM_OPERANDS_INPUT_VEC): Likewise.
10790         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
10791         (ASM_OPERANDS_INPUT): Likewise.
10792         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
10793         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
10794         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
10795         (ASM_OPERANDS_INPUT_MODE): Likewise.
10796         (ASM_OPERANDS_SOURCE_FILE): Likewise.
10797         (ASM_OPERANDS_SOURCE_LINE): Likewise.
10798         (MEM_SET_IN_STRUCT_P): Minor reformat.
10799         (TRAP_CONDITION): Whitespace.
10800         (TRAP_CODE): Likewise.
10801         (COND_EXEC_TEST): Likewise.
10802         (COND_EXEC_CODE): Likewise.
10803         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
10804         (PHI_NODE_P): Add parenthesis.
10805         (plus_constant): Whitespace and add parenthesis.
10806
10807 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10808
10809         * config/avr/avr.c: Fix comment typos.
10810         * config/c4x/c4x.md: Likewise.
10811         * config/dsp16xx/dsp16xx.h: Likewise.
10812         * config/dsp16xx/dsp16xx.md: Likewise.
10813         * config/i386/i386.md: Likewise.
10814         * config/ia64/ia64.c: Likewise.
10815         * config/m32r/m32r.h: Likewise.
10816         * config/m68hc11/m68hc11.md: Likewise.
10817         * config/mmix/mmix.c: Likewise.
10818         * config/mn10200/mn10200.c: Likewise.
10819         * config/romp/romp.c: Likewise.
10820         * config/sh/sh.c: Likewise.
10821         * config/stormy16/stormy16.c: Likewise.
10822         * config/stormy16/stormy16.h: Likewise.
10823         * config/stormy16/stormy16.md: Likewise.
10824
10825 2002-01-03  Graham Stott  <grahams@redhat.com>
10826
10827         * loop.h: Update copyright date.
10828         (LOOP_MOVABLES): Fix typo.
10829         (LOOP_REGS): Likewise.
10830         (LOOP_IVS): Likewise.
10831
10832 2002-01-03  Graham Stott  <grahams@redhat.com>
10833
10834         * cppinit.c: Update copyright date.
10835         Don't include output.h
10836         * Makefile.in: Update copyright date.
10837         Update dependency.
10838
10839 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10840
10841         PR c/5226
10842         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
10843         (-pthread) Add to RS/6000 options.
10844
10845 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10846
10847         * except.c: Fix comment typos.
10848         * loop.c: Likewise.
10849         * varasm.c: Likewise.
10850         * doc/tm.texi: Fix a typo.
10851
10852 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
10853
10854         * c-typeck.c (output_init_element): Allow initializing static storage
10855         duration objects with compound literals.
10856
10857 2002-01-02  Richard Henderson  <rth@redhat.com>
10858
10859         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
10860         after abusing it.
10861
10862 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10863
10864         * gcc.c (default_compilers): Const-ify.
10865         * mips-tdump.c (stab_names): Likewise.
10866         * mips-tfile.c (map_coff_types, map_coff_storage,
10867         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
10868         pseudo_ops_t, pseudo_ops): Likewise.
10869         * protoize.c (default_include): Likewise
10870
10871         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
10872         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
10873         Add array size in declaration.
10874         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
10875         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
10876         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
10877         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
10878         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
10879         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
10880         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
10881         emtens, make_nan): Const-ify.
10882         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
10883         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
10884
10885 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10886
10887         * config.gcc (ia64-*-*): Set extra_headers.
10888         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
10889         * config/alpha/t-osf: Remove.
10890         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
10891
10892 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
10893
10894         * config/rs6000/t-aix43: Revert previous change.
10895
10896 2002-01-02  Jason Merrill  <jason@redhat.com>
10897
10898         * c-decl.c (c_expand_body): Call outlining_inline_function when
10899         emitting an inline function out of line.
10900
10901 2002-01-02  Richard Henderson  <rth@redhat.com>
10902
10903         * dwarf2out.c (limbo_die_node): Add created_for member.
10904         (new_die): New argument created_for.  Update all callers.
10905         (mark_limbo_die_list): New.
10906         (dwarf2out_init): Register limbo_die_list as a root.
10907         (dwarf2out_finish): Force insert limbo dies into their function
10908         context.
10909
10910 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
10911
10912         PR c++/5089
10913         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
10914
10915 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10916
10917         * config/h8300/fixunssfsi.c: Update copyright.
10918         Fix comment typos.
10919         Fix formatting.
10920         * config/h8300/h8300.c: Update copyright.
10921         Eliminate warnings.
10922
10923 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10924
10925         * config/romp/romp.c: Fix comment formatting.
10926         * config/romp/romp.h: Likewise.
10927         * config/romp/romp.md: Likewise.
10928         * config/s390/s390.c: Likewise.
10929         * config/stormy16/stormy16.c: Likewise.
10930         * config/stormy16/stormy16.h: Likewise.
10931
10932 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
10933
10934         * c-common.h (genrtl_expr_stmt_value): Declare.
10935         * c-semantics.c (genrtl_goto_stmt): Redirect to...
10936         (genrtl_goto_stmt_value): ... this new function.  Pass new
10937         argument down to expand_expr_stmt_value, taking
10938         TREE_ADDRESSABLE into account.
10939         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
10940         STMT_EXPR as addressable, i.e., one whose result we want.
10941         * expr.c (expand_expr): Don't save expression statement value
10942         of labeled_blocks or loop_exprs.
10943         * stmt.c (expand_expr_stmt): Redirect to...
10944         (expand_expr_stmt_value): ... this new function.  Use new
10945         argument to tell whether to save expression value.
10946         (expand_end_stmt_expr): Reset last_expr_type and
10947         last_expr_value if we don't have either.
10948         * tree-inline.c (declare_return_variable): Mark its use
10949         statement as addressable.
10950         * tree.h: Document new use of TREE_ADDRESSABLE.
10951         (expand_expr_stmt_value): Declare.
10952
10953 2002-01-01  Tom Rix  <trix@redhat.com>
10954
10955         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
10956         rs6000_emit_allocate_stack.
10957
10958 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10959
10960         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
10961         ${srcdir}/ginclude/ to every entry in extra_headers.
10962         * configure: Regenerate.
10963         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
10964         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
10965         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
10966         * ginclude/proto.h: Rename to config/convex/proto.h.
10967
10968 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10969
10970         * attribs.c (handle_vector_size_attribute): Use host_integerp
10971         and tree_int_cst; remove warnings.
10972         * caller-save.c (insert_restore): Add cast to get rid of warning.
10973         (insert_save): Likewise.
10974         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
10975         * regmove.c (find_matches): Add temporary var to kill a warning.
10976
10977 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
10978
10979         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
10980         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
10981         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
10982         (vms-dwarf2eh.o): Add Makefile rule.
10983         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
10984         * config/alpha/vms-dwarf2eh.asm: New file.
10985
10986         * gcc.c (delete_if_ordinary): Delete all versions.
10987
10988 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
10989
10990         * config/mmix/mmix.md: Update FIXME to not mention
10991         define_constants.
10992         (MMIX_rJ_REGNUM): New define_constants constant.
10993         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
10994         "*movdicc_real"): Adjust contraints formatting.
10995         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
10996         for branch prediction.
10997         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
10998         output template.
10999         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
11000         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
11001         number.  Delete related FIXMEs.
11002         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
11003         from number to MMIX_rJ_REGNUM.
11004         (TARGET_MASK_BRANCH_PREDICT): New.
11005         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
11006         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
11007         value.  Add -mbranch-predict and -mno-branch-predict.
11008         (TARGET_VERSION): Drop date.
11009         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
11010         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
11011         for finding out global symbols.
11012         (mmix_asm_output_labelref): Revert condition for global symbol.
11013         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
11014         (mmix_print_operand_punct_valid_p): A '+' is valid.
11015
11016 See ChangeLog.6 for earlier changes.