OSDN Git Service

* config/h8300/lib1funcs.asm (___mulsi3): Use hardware
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2
3         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
4         multiply instructions for H8/300H case.
5
6 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7
8         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
9         Bum three instructions from each routine.
10
11 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
12
13         * Makefile.in: Update.
14         * decl.c (push_c_function_context, pop_c_function_context,
15         mark_c_function_context): Rename for consistency.
16         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
17         * c-tree.h (push_c_function_context, pop_c_function_context,
18         mark_c_function_context): Rename for consistency.
19         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
21         * function.c (init_lang_status, save_lang_status,
22         restore_lang_status, mark_lang_status, free_lang_status):
23         Move to langhooks.h.
24         (push_function_context_to, pop_function_context_from,
25         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
26         Update.
27         * function.h (init_lang_status, save_lang_status,
28         restore_lang_status, mark_lang_status, free_lang_status):
29         Move to langhooks.h.
30         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
31         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
32         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
33         LANG_HOOKS_FUNCTION_INITIALIZER): New.
34         (LANG_HOOKS_INITIALIZER): Update.
35         (lhd_do_nothing_f): New.
36         * langhooks.h (struct lang_hooks_for_functions): New.
37         (struct lang_hooks): New hooks.
38         * langhooks.c (lhd_do_nothing_f): New.
39 objc:
40         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
41         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
42
43 2002-04-19  David S. Miller  <davem@redhat.com>
44
45         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
46         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
47
48 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
49
50         PR optimization/3756
51         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
52         x = ((int) y < 0) ? cst1 : cst2.
53
54 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
55
56         PR c/6358
57         * function.c: Reapply patch for c/6358.
58         (expand_function_end): Copy decl_rtl's mode, not
59         current_function_return_rtx mode.
60
61 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
62
63         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
64         targets.
65
66 2002-04-19  Tom Tromey  <tromey@redhat.com>
67
68         * doc/install.texi (Specific): Update status of Solaris 2.8.
69         For PR libgcj/6158.
70
71 2002-04-19  Andreas Schwab  <schwab@suse.de>
72
73         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
74         (PUT_REAL): Restore old definition.
75
76 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
77             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
78
79         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
80         binutils 2.11.2 and higher generate smaller binaries than Sun's
81         native tools.
82
83 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
84
85         PR c++/6352
86         * toplev.c (rest_of_compilation): Do not defer functions for which
87         TREE_SYMBOL_REFERENCED has already been set.
88
89 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
90
91         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
92         alternative.
93
94 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
95
96         * builtins.c: Include langhooks.h.
97         (lang_type_promotes_to): Remove.
98         (expand_builtin_va_arg): Use new hook.
99         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
100         (simple_type_promotes_to): Move to c-typeck.c.
101         * c-common.h (simple_type_promotes_to): Remove.
102         * c-decl.c (duplicate_decls, grokdeclarator): Update.
103         * c-format.c: Include langhooks.h.
104         (check_format_types): Update.
105         * c-tree.h (c_type_promotes_to): New.
106         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
107         (type_lists_compatible_p): Update.
108         * langhooks-def.h (lhd_type_promotes_to): New.
109         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
110         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
111         * langhooks.c (lhd_type_promotes_to): New.
112         * langhooks.h (struct lang_hooks_for_types): New hook.
113         * tree.h (lang_type_promotes_to): Remove.
114 objc:
115         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
116
117 2002-04-18  Richard Henderson  <rth@redhat.com>
118
119         * function.c: Revert patch for c/6358.
120
121 2002-04-18  Richard Henderson  <rth@redhat.com>
122
123         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
124         blocks.  Handle multiple references to the TRAP block.  Handle
125         non-adjacent THEN and OTHER blocks.
126
127 2002-04-18  Richard Henderson  <rth@redhat.com>
128
129         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
130         crash with no type for by-mode libcalls.
131
132         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
133
134 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
135
136         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
137         __xtensa_nonlocal_goto): Use a syscall instructions to flush
138         the register windows.
139
140 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
141
142         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
143         appropriate.  Document need for extended precision even when
144         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
145         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
146         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
147         instead of relying on later syntax error when REAL_WIDTH > 5.
148         * real.c: Define NE based only on whether or not we have a
149         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
150         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
151         define GET_REAL and PUT_REAL as simple memcpy operations; no
152         need to byteswap or round.
153         Use #error instead of #ifdef-ing out the entire file, for
154         prompt error detection.
155
156         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
157
158 2002-04-18  David S. Miller  <davem@redhat.com>
159
160         * config/sparc/sparc.h (BRANCH_COST): Define.
161
162         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
163         does it.
164
165 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
166
167         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
168         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
169         propagate_block calls after relaxation loop using new variable
170         stabilized_prop_flags.
171
172 2002-04-18  Richard Henderson  <rth@redhat.com>
173
174         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
175         (ia64_va_arg): Expect variable sized types by reference.
176         * config/ia64/ia64-protos.h: Update.
177         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
178         ia64_function_arg_pass_by_reference.
179
180 2002-04-18  Richard Henderson  <rth@redhat.com>
181
182         * ifcvt.c: Include except.h.
183         (block_has_only_trap): Break out from find_cond_trap.
184         (find_cond_trap): Use it.  Always delete the trap block.
185         (merge_if_block): Allow then block null.  Be less simplistic about
186         what insns can end a block.
187         * Makefile.in (ifcvt.o): Depend on except.h.
188
189         * config/ia64/ia64.md (trap, conditional_trap): New.
190
191 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
192
193         PR c/6358
194         * function.c (assign_parms): Assign hard current_function_return_rtx
195         register here...
196         (expand_function_end): ...not here.
197
198 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
199
200         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
201         * c-tree.h (c_incomplete_type_error): New.
202         * c-typeck.c (require_complete_type, build_component_ref): Update.
203         (incomplete_type_error): Rename.
204         * langhooks-def.h (lhd_incomplete_type_error): New.
205         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
206         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
207         * langhooks.c (lhd_incomplete_type_error): New.
208         * langhooks.h (struct lang_hooks_for_types): New hook.
209         * tree.c (size_in_bytes): Use new hook.
210         * tree.h (incomplete_type_error): Remove.
211 objc:
212         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
213
214 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
215
216         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
217         TARGET_FLOAT_FORMAT blocks.
218
219 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
220
221         * doc/install.texi (Downloading the source): Do not mention Chill
222         any longer, but mention Ada.
223         (Configuration): Do not mention Chill any longer.
224
225 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
226
227         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
228
229 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
230
231         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
232         in last patch.
233
234 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
235
236         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
237         instead of unsigned_type.
238
239 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
240
241         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
242         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
243         later.
244
245 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
246
247         * attribs.c (vector_type_node_list): New static variable.
248         (handle_vector_size_attribute): Use it to avoid generating a
249         new type node each time we are called.
250
251         * combine.c (subst): Avoid trying to make a vector mode subreg of
252         an integer constant.
253         (gen_lowpart_for_combine): Likewise.
254
255 2002-04-18  Roger Sayle  <roger@eyesopen.com>
256             Jakub Jelinek  <jakub@redhat.com>
257
258         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
259         for integer constant c (if x has unsigned type or sign bit is not
260         set in c).  This folds the zero/sign extension into the bit-wise and
261         operation.
262
263 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
264
265         PR middle-end/6205
266         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
267         otherwise xorps.
268
269 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
270
271         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
272
273 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
274
275         * gcc.c (read_specs): Detect and fail if an attempt is made to
276         rename a spec string to an already existing string.
277
278 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
279
280         * config/s390/s390.c (legitimize_pic_address): Do not generate
281         illegal address constant without CONST.
282
283 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
284
285         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
286         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
287
288 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
289
290         PR optimization/6305
291         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
292         to make sure previous reloads are taken into account.  Generate
293         better code if one operand is an in-range immediate constant.
294
295 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
296
297         * doc/install.texi (Building): libgcj requires GNU make.
298
299 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
300
301         PR bootstrap/6315
302         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
303         even if hard quad and register is not floating.
304         (movtf reg<-mem split): Disallow splitting if hard quad and
305         register is floating.
306         (movtf mem<-reg split): Likewise.
307         * config/sparc/sparc.c (fp_register_operand): New predicate.
308         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
309
310 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
311
312         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
313         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
314         (unprotoize.o): Ditto.  Build from protoize.c.  Define
315         UNPROTOIZE on command line.
316         * protoize.c: Include cppdefault.h.  Delete include_defaults.
317         (in_system_include_dir): Use cpp_include_defaults (defined in
318         cppdefault.o).
319         * unprotoize.c: Delete file.
320
321 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
322
323         * config/rs6000/altivec.h (vec_ld): Add array variants.
324         (vec_lde): Same.
325         (vec_ldl): Same.
326
327 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
328             Aldy Hernandez <aldyh@redhat.com>
329
330         * config/rs6000/altivec.h: Define __ALTIVEC__.
331         (bool): New.
332         (__pixel): New.
333         (pixel): New.
334         (vec_cfux): New.
335         (vec_vmaddfp): New.
336         (vec_vsldoi): New.
337         Add parentheses to all macro arguments.
338
339 2002-04-16  Richard Henderson  <rth@redhat.com>
340
341         PR c++/6320
342         * except.c (remove_eh_handler): Insert inner regions at beginning
343         of sibling chain.  Refactor expressions.
344
345 2002-04-16  Richard Henderson  <rth@redhat.com>
346
347         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
348         * config/sparc/sol2-gas-bi.h: New file.
349         * config.gcc (sparc*-solaris): Add it as needed.
350         * configure.in (AS_SPARC64_FLAG): Remove check.
351         * config.in, configure: Regenerate.
352
353         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
354
355 2002-04-16  Richard Henderson  <rth@redhat.com>
356
357         * config/mips/mips.c (override_options): Don't override N32 for
358         a 64-bit ISA.
359
360         PR 6202
361         * config/mips/mips.md (can_delay): Split out of existing define_delays.
362         (HILO_delay): Set can_delay false.
363
364 2002-04-16  Dale Johannesen <dalej@apple.com>
365
366         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
367         instruction addresses.
368         (rs6000_output_function_epilogue): Likewise.
369
370 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
371
372         * c-parse.in (poplevel, compstmt_start,
373         compstmt_primary_start): Add ending ';', in accordance
374         with POSIX.
375
376 2002-04-16  Richard Henderson  <rth@redhat.com>
377
378         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
379         Adjust tm_file order to get TARGET_DEFAULT set properly.
380         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
381         * doc/install.texi (sparc-solaris): Update.
382
383 2002-04-16  Dale Johannesen <dalej@apple.com>
384
385         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
386         comparison operands do not match each other or if modes of
387         conditions do not match result.
388
389 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
390
391         PR target/6305
392         * config/s390/s390.md (mulsidi3): Set both subregs of the
393         multiword register.
394
395 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
396
397         * config/rs6000/altivec.h (vec_addc): Type check.
398
399 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
400
401         PR middle-end/6279
402         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
403
404         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
405
406 2002-04-15  Richard Henderson  <rth@redhat.com>
407
408         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
409         call_really_used_regs too.
410
411 2002-04-15  Richard Henderson  <rth@redhat.com>
412
413         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
414
415 2002-04-15  David S. Miller  <davem@redhat.com>
416
417         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
418         as being CLOBBERed.
419
420 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
421
422         PR c/6290
423         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
424         CONST_VECTOR is { 0, ... 0 }.
425
426 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
427
428         * doc/install.texi (Installing GCC: Configuration): Clarify
429         the only supported ways to configure gcc.
430
431 2002-04-15  Roland McGrath  <roland@frob.com>
432
433         * config.gcc (alpha*-*-gnu*): New target configuration.
434         * config/alpha/gnu.h: New file for it.
435         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
436
437 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
438
439         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
440         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
441         * tree.h (expand_start_stmt_expr): Update prototype.
442         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
443         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
444         on the STMT_EXPR created for the inline function.
445
446 2002-04-15  Richard Henderson  <rth@redhat.com>
447
448         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
449         config/i386/linux-aout.h, config/i386/linux-oldld.h,
450         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
451         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
452         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
453         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
454         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
455         Define __gnu_linux__, not gnu_linux.
456         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
457
458 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
459
460         Remove Chill front end.
461         * gcc.c (default_compilers): Remove Chill entries.
462         * ch: Remove directory.
463         * doc/frontends.texi: Remove information about Chill.
464         * doc/sourcebuild.texi: Likewise.
465         * doc/standards.texi: Likewise.
466
467 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
468
469         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
470         (LONGLONG_STANDALONE): Define.
471
472 2002-04-15  David S. Miller  <davem@redhat.com>
473
474         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
475         Call emit_library_call with LCT_NORMAL.
476         (sparc_initialize_trampoline): Use LCT_foo instead of
477         magic constant in emit_library_call invocations.
478         (sparc64_initialize_trampoline): Likewise.
479         (sparc_profile_hook): Likewise.
480         * config/sparc/sparc.md: Likewise.
481
482         * config/sparc/sparc.c (sparc_extra_constraint_check):
483         Fix type of argument 'c'.
484         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
485         Likewise.
486
487 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
488
489         * diagnostic.h (output_buffer_state): Redefine.
490         (output_format_decoder): New macro.
491         (output_prefixing_rule): Likewise.
492         (output_line_cutoff): Likewise.
493         (diagnostic_format_decoder): Adjust.
494         (diagnostic_prefixing_rule): Likewise.
495         (diagnostic_line_cutoff): Likewise.
496         (diagnostic_state): Likewise.
497         (diagnostic_kind_count): Likewise.
498         (diagnostic_buffer): Now a macro.
499
500         * diagnostic.c (diagnostic_buffer): Remove definition.
501         (output_is_line_wrapping): Adjust.
502         (set_real_maximum_length): Likewise.
503         (output_set_maximum_length): Likewise.
504         (init_output_buffer): Likewise.
505         (lhd_print_error_function): Likewise.
506         (output_do_verbatim): Likewise.
507
508 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
509
510         * cpperror.c (print_location): Don't print include chain
511         if line == 0.
512         (cpp_begin_message): Update to use DL_ macros.
513         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
514         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
515         cpp_notice, cpp_notice_from_errno): Remove.
516         (cpp_error, cpp_error_with_line): Update to take a diagnostic
517         level.
518         (cpp_errno): New.
519         * cppexp.c (CPP_ICE): Remove.
520         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
521         lex, integer_overflow, _cpp_parse_expr): Update.
522         * cppfiles.c (read_include_file, find_include_file,
523         handle_missing_header, _cpp_read_file, remap_filename): Update.
524         * cpphash.h (enum error_type): Remove.
525         (_cpp_begin_message): Update.
526         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
527         cpp_handle_option, cpp_post_options): Update.
528         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
529         skip_whitespace, parse_identifier, parse_slow, parse_string,
530         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
531         cpp_interpret_charconst): Update.
532         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
533         lex_macro_node, do_undef, glue_header_name, parse_include,
534         do_include_common, read_flag, do_line, do_linemarker, do_ident,
535         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
536         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
537         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
538         _cpp_pop_buffer, do_diagnostic): Update.
539         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
540         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
541         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
542         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
543         cpp_notice, cpp_notice_from_errno): Remove.
544         (cpp_error, cpp_error_with_line): Update to take a diagnostic
545         level.
546         (cpp_errno): New.
547         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
548         collect_args, enter_macro_context, save_parameter, parse_params,
549         _cpp_create_definition, check_trad_stringification,
550         cpp_macro_definition): Update.
551         * cppmain.c (cpp_preprocess_file): Update.
552         * fix-header.c (read_scan_file): Update.
553
554 2002-04-14  Andreas Schwab  <schwab@suse.de>
555
556         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
557
558 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
559
560         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
561
562 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
563
564         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
565         not gnu_hurd.
566
567 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
568
569         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
570
571 2002-04-13      Joel Sherrill <joel@OARcorp.com>
572
573         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
574         sparc-elf and sparc-rtems targets.
575
576 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
577
578         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
579         defined, and __gnu_hurd__ wherever __GNU__ is defined.
580         * arm/linux-elf.h: Likewise.
581         * cris/aout.h: Likewise.
582         * cris/linux.h: Likewise.
583         * i370/linux.h: Likewise.
584         * i386/gnu.h: Likewise.
585         * i386/linux-aout.h: Likewise.
586         * i386/linux-oldld.h: Likewise.
587         * i386/linux.h: Likewise.
588         * i386/linux64.h: Likewise.
589         * ia64/linux.h: Likewise.
590         * m68k/linux-aout.h: Likewise.
591         * m68k/linux.h: Likewise.
592         * mips/linux.h: Likewise.
593         * pa/pa-linux.h: Likewise.
594         * pj/linux.h: Likewise.
595         * rs6000/sysv4.h: Likewise.
596         * s390/linux.h: Likewise.
597         * sh/linux.h: Likewise.
598         * sparc/linux-aout.h: Likewise.
599         * sparc/linux.h: Likewise.
600         * sparc/linux64.h: Likewise.
601         * xtensa/linux.h: Likewise.
602
603 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
604
605         * stmt.c (check_unique_operand_names): Expect operand names to
606         be strings rather than identifiers.  Use simple_cst_equal to
607         compare them.
608         (resolve_operand_name_1): Make same identifier to string change here.
609         * c-parse.in (asm_operand): Convert a named operand into a string.
610         * cp/parse.y (asm_operand): Likewise.
611
612 2002-04-13  Andreas Schwab  <schwab@suse.de>
613
614         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
615
616 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
617
618         Revert these changes:
619
620         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
621
622         PR c++/5571
623         * stor-layout.c (layout_decl): Reset the RTL for the decl.
624
625 2002-04-12  Richard Henderson  <rth@redhat.com>
626
627         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
628         (sparc*-*-solaris): Clean up header files.
629         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
630         and plan on generating 64-bit code.
631         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
632         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
633         * config/sparc/sol2-sld-64.h: Rename ...
634         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
635         for AS_SPARC64_FLAG not defined.
636         * config/sparc/sol2-gld-bi.h: New.
637         * config/sparc/sol2-sld.h: Remove.
638         * config/sparc/sol26-sld.h: New.
639         * config/sparc/sol2.h: Tidy comments.
640         * doc/install.texi: Document sparc-solaris configury changes.
641
642 2002-04-12  Richard Henderson  <rth@redhat.com>
643
644         * recog.c (offsettable_address_p): Match the logic in adjust_address.
645
646         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
647         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
648
649 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
650
651         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
652
653 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
654
655         * pa.c (pa_can_combine_p): Call extract_insn before calling
656         constrain_operands.
657
658 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
659
660         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
661         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
662         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
663         (CPP_PREDEFINES): Handle __declspec.
664         * config/i386/t-interix (USER_H): Remove.
665
666 2002-04-12  DJ Delorie  <dj@redhat.com>
667
668         * integrate.c (compare_blocks): Make comparisons safe for when
669         sizeof(int) < sizeof(char *).
670         (find_block): Likewise.
671
672 2002-04-12  Jan Hubicka  <jh@suse.cz>
673             David Edelsohn  <edelsohn@gnu.org>
674
675         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
676         registers.
677         (symbol_ref_operand): New.
678         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
679         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
680
681 2002-04-12  Andreas Schwab  <schwab@suse.de>
682
683         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
684         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
685         overrides the definition in config/svr4.h.
686
687 2002-04-12      Eric Norum <eric.norum@usask.ca>
688
689         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
690         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
691         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
692         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
693         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
694         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
695         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
696         definitions to config/rtems.h and make the targets more similar.
697
698 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
699
700         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
701         POINTERS_EXTEND_UNSIGNED.
702         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
703         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
704
705         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
706         not specified.
707
708 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
709
710         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
711         depends on TARGET_SHMEDIA, not TARGET_SH5.
712
713 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
714
715         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
716         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
717
718 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
719
720         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
721         no r0 clobber.
722
723 2002-04-12  Andreas Schwab  <schwab@suse.de>
724
725         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
726
727 2002-04-12  Richard Henderson  <rth@redhat.com>
728
729         PR bootstrap/4191
730         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
731
732         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
733         modes spanning multiple hard regs.
734
735         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
736
737 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
738
739         * pa.c (pa_output_function_prologue): Don't accumulate the total
740         number of code bytes when using TARGET_64BIT, or gas, SOM and not
741         the portable runtime.
742         (output_deferred_plabels): Handle 64bit plabels.
743         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
744         generating pic code using the GAS assembler for object formats that
745         are not SOM (ie., ELF32 and ELF64).
746         (output_millicode_call): Check attribute type if attribute length is 28.
747         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
748         dbr_sequence_length once.
749         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
750         dbr_sequence_length once.
751         * pa.h (TARGET_SOM): Define if not defined.
752         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
753         with GAS and not SOM.
754         (jump, call_internal_reg, call_value_internal_reg): Likewise.
755         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
756
757 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
758
759         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
760         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
761         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
762         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
763         elfos.h and dbxelf.h values are fine now.
764         * config/i386/freebsd.h, config/alpha/freebsd.h
765         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
766
767 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
768
769         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
770         or set Acpu or Amachine.  Reformat.
771         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
772         define.
773         (LINK_SPEC): Do not need to undef.
774         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
775         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
776         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
777         define.
778         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
779         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
780         (LINK_SPEC): Do not need to undef.
781         (DONT_USE_BUILTIN_SETJMP): Do not define.
782         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
783         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
784         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
785         Remove trailing spaces.
786         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
787         __ELF__, or set Acpu or Amachine.  Reformat.
788         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
789         define.
790
791 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
792
793         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
794         all other *-*-freebsd* targets.
795
796 2002-04-11  Richard Henderson  <rth@redhat.com>
797
798         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
799
800 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
801
802         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
803         Include {cpu}/{cpu}.h thru tm_file.
804         (alpha*-*-linux*ecoff): Remove target.
805         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
806         (LINK_SPEC): Remove, is not OS independent.
807         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
808         (LINK_SPEC): Do not need to #undef any longer.
809         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
810         any longer.
811         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
812         __ELF__.
813         (LINK_SPEC): Moved here from alpha/elf.h.
814         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
815         SUB_CPP_PREDEFINES.
816         * config/alpha/linux-ecoff.h: Remove.
817         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
818         (CPP_SPEC): Define _POSIX_SOURCE as needed.
819         (CPP_SUBTARGET_SPEC): Do not define.
820         (LINK_SPEC): Do not need to #undef any longer.
821         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
822         * config/alpha/vms.h: Likewise.
823
824 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
825
826         * doc/extend.texi: Remove old claim that typedefs cannot have
827         an alignment attribute.
828
829 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
830
831         PR optimization/6177
832         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
833         bitpos is 0 and bitsize CONCAT size.
834
835 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
836
837         PR c/6223
838         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
839
840 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
841
842         * config/alpha/freebsd.h: Minor reformatting.
843         (CPP_SPEC): Define ELF and add cpp_subtarget.
844         (ASM_SPEC): No longer needed.
845
846 2002-04-11  Richard Henderson  <rth@redhat.com>
847
848         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
849         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
850         (dimode mem/zero splitter): New.
851
852 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
853
854         * config/cris/cris.c (cris_override_options): Tweak error message
855         for PIC not implemented.
856
857         * config/cris/cris.h: Tweak comments related to parameter-passing.
858
859         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
860
861 2002-04-10  Richard Henderson  <rth@redhat.com>
862
863         * except.c (add_ehl_entry): Allow duplicates after landing pad
864         creation.
865
866 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
867
868         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
869
870 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
871
872         * c-decl.c (c_init_decl_processing): Move generation of
873         decls for g77_integer_type_node and friends from here ...
874         * c-common.c (c_common_nodes_and_builtins): ... to here.
875
876 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
877
878         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
879         is only used as frame pointer when frame_pointer_needed is true.
880
881 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
882
883         PR target/817
884         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
885         for the fact that the pool entry uses two words.
886         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
887         1k bytes.
888         (movdf_soft_insn): Similarly.
889         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
890         for the fact that the pool entry uses three words.
891
892 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
893
894         * config/mips/mips.c (mips_va_arg): When using the struct version
895         of the EABI va_list, allow arguments in the register save area to
896         take up less room than a stack argument.
897
898 2002-04-10  Richard Henderson  <rth@redhat.com>
899
900         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
901         if EXPAND_INITIALIZER.
902
903 2002-04-09  Richard Henderson  <rth@redhat.com>
904
905         * config/alpha/alpha.md (movdi_er_maybe_g): New.
906         * config/alpha/alpha.c (alpha_expand_mov): Use it.
907
908 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
909
910         PR optimization/6233
911         * rtlanal.c (pure_call_p): New function.
912         * rtl.h (pure_call_p): Declare.
913         * loop.c (prescan_loop): Use it to set has_nonconst_call.
914         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
915
916 2002-04-09  Eric Christopher  <echristo@redhat.com>
917
918         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
919         information to .comm directive.
920
921 2002-04-09  Richard Henderson  <rth@redhat.com>
922
923         PR c/5078
924         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
925
926 2002-04-09  Richard Henderson  <rth@redhat.com>
927
928         * basic-block.h (flow_delete_block_noexpunge): Declare.
929         (expunge_block_nocompact): Declare.
930         * cfg.c (expunge_block_nocompact): Split out from ...
931         (expunge_block): ... here.
932         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
933         (flow_delete_block_noexpunge): Split out from ...
934         (flow_delete_block): ... here.
935         * cfgcleanup.c (delete_unreachable_blocks): Compact while
936         removing dead blocks.
937         * except.c (exception_handler_labels): Remove.
938         (exception_handler_label_map): New.
939         (struct eh_region): Add aka member.
940         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
941         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
942         (for_each_eh_label, for_each_eh_label_1): New.
943         (init_eh): Register exception_handler_label_map.
944         (free_eh_status): Use free_region.
945         (find_exception_handler_labels): Use the map, not the list.
946         (remove_exception_handler_label): Likewise.
947         (maybe_remove_eh_handler): Likewise.
948         (remove_eh_handler): Use the region aka bitmap.
949         * except.h (exception_handler_labels): Remove.
950         (for_each_eh_label): Declare.
951         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
952         * loop.c (invalidate_loops_containing_label): New.
953         (find_and_verify_loops): Use it.  Use for_each_eh_label.
954         * sched-rgn.c (is_cfg_nonregular): Use
955         current_function_has_exception_handlers.
956
957 2002-04-09  Richard Henderson  <rth@redhat.com>
958
959         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
960         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
961         Do not return changed status.
962         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
963         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
964         New functions that do return changed status.
965         * sbitmap.h: Update decls.
966         * gcse.c, lcm.c: Use _cg functions as needed.
967
968 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
969
970         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
971         (sh64-*-elf*, sh-*-rtemself*): Likewise.
972         * config/sh/embed_bb.c: New file.
973         * config/sh/embed-elf.h: New file.
974         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
975         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
976         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
977         __PTRDIFF_TYPE__ .
978         (SUBTARGET_CPP_PTR_SPEC): Don't define.
979         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
980         Add subtarget_asm_endian_spec.
981         (ASM_SPEC): Use subtarget_asm_endian_spec.
982         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
983         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
984         (WCHAR_UNSIGNED): Define.
985         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
986         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
987         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
988         Fix value.
989         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
990         (sh_adjust_cost): Likewise.
991         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
992         __PTRDIFF_TYPE__ .
993         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
994         (WCHAR_TYPE_SIZE): Likewise.
995         (ASM_SPEC): Use subtarget_asm_endian_spec.
996         (SH_ELF_WCHAR_TYPE): #undef/ #define.
997         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
998         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
999         (MAX_WCHAR_TYPE_SIZE): Don't #define .
1000         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
1001         (USER_LABEL_PREFIX): Don't #undef /#define .
1002         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
1003         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
1004         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
1005         (ASM_SPEC): Likewise.
1006         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
1007         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
1008         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
1009         (LIB2FUNCS_EXTRA): Define.
1010         * t-sh64 (LIB2FUNCS_EXTRA): Define.
1011         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
1012         (LIB1ASMFUNCS_CACHE): Define.
1013         (LIB2FUNCS_EXTRA): Redefine empty.
1014
1015 2002-04-08  Richard Henderson  <rth@redhat.com>
1016
1017         * reorg.c (get_branch_condition): Use reversed_comparison_code.
1018
1019 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1020
1021         * config/m68hc11/larith.asm (__map_data_section): Fix condition
1022         and optimize for size.
1023         (__do_global_ctors): Fix pointer comparison.
1024         (__do_global_dtors): Likewise.
1025
1026 2002-04-09  David S. Miller  <davem@redhat.com>
1027
1028         * config/sparc/sparc.c (sparc_extra_constraint_check): New
1029         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
1030         allow reloading pseudos.
1031         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
1032         * config/sparc/sparc-protos.h: Declare it.
1033
1034         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
1035         unsigned comparison warning.
1036         (output_restore_regs): Mark leaf_function as unused.
1037
1038 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1039
1040         * expr.c (is_aligning_offset): New function.
1041         (expand_expr, case COMPONENT_EXPR): Call it.
1042
1043 2002-04-08  David S. Miller  <davem@redhat.com>
1044
1045         PR target/6082
1046         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
1047
1048         Make init_priority work on Sparc when using GNU ld.
1049         * config/sparc/linux.h, config/sparc/linux64.h,
1050         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
1051         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
1052         * config/sparc/sol2-gld.h: New file to do the same.
1053         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
1054         sparc/sol2-gld.h to tm_file.
1055
1056         PR optimization/4328
1057         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
1058         * doc/md.texi: Document it.
1059         * config/sparc/sparc.md (movdi_insn_sp64_novis,
1060         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
1061         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
1062         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
1063         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
1064
1065 2002-04-08  Andreas Jaeger  <aj@suse.de>
1066
1067         * stmt.c (expand_asm_operands): Revert last patch from Richard
1068         Henderson.
1069
1070 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1071
1072         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
1073         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
1074
1075 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1076
1077         * doc/contrib.texi (Contributors): Add David O'Brien.
1078
1079 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
1080
1081         * configure.in (auto-build.h): Use target_alias and build_alias
1082         when running configure.
1083         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
1084         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
1085         * configure: Regenerate.
1086
1087 2002-04-07  David S. Miller  <davem@redhat.com>
1088
1089         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
1090
1091 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1092
1093         PR 5933
1094         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
1095         generating 32-bit pic code.
1096
1097 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
1098
1099         * cppinit.c (cpp_create_reader): Initialize
1100         discard_comments_in_macro_exp.
1101         (COMMAND_LINE_OPTIONS): Add "-CC" option.
1102         (cpp_handle_option): Handle "-CC" option.
1103         * cpplex.c (save_comment): If saving a C++ comment in
1104         a directive, convert it to a C comment.
1105         (_cpp_lex_direct): Pass second comment start character to
1106         save_comment to indicate comment type.
1107         * cpplib.c (_cpp_handle_directive): If processing
1108         a "#define" directive and discard_comments_in_macro_exp
1109         is false,  re-enable saving of comments.
1110         (lex_macro_node): If discard_comments_in_macro_exp is false,
1111         discard any comments before the macro identifier.
1112         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
1113         member.
1114         * cppmacro.c (cpp_get_token): If expanding a macro while
1115         processing a directive, discard any comments we might encounter.
1116         (parse_params): If discard_comments_in_macro_exp is false,
1117         ignore comments in the macro parameter list.
1118         * gcc.c (cpp_unique_options): Add "-CC" option.
1119         (option_map): Map "--comments-in-macros" to "-CC".
1120         * doc/cppopts.texi: Document "-CC" option.
1121         * f/lang-specs.h: Add "-CC" option.
1122         * testsuite/gcc.dg/cpp/maccom1.c: New test.
1123         * testsuite/gcc.dg/cpp/maccom2.c: New test.
1124         * testsuite/gcc.dg/cpp/maccom3.c: New test.
1125         * testsuite/gcc.dg/cpp/maccom4.c: New test.
1126         * testsuite/gcc.dg/cpp/maccom5.c: New test.
1127         * testsuite/gcc.dg/cpp/maccom6.c: New test.
1128
1129 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1130
1131         PR middle-end/6180
1132         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
1133
1134 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
1135
1136         PR c++/5571
1137         * stor-layout.c (layout_decl): Reset the RTL for the decl.
1138
1139         PR opt/5120
1140         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
1141         RTX_UNCHANGING_P for the functions arguments when a tail call
1142         is made.
1143
1144 2002-04-06  Jason Merrill  <jason@redhat.com>
1145
1146         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
1147         (parse_options_and_default_flags): Set them appropriately.
1148         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
1149
1150 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
1151
1152         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
1153         here.
1154
1155         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
1156         semicolon.
1157
1158         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
1159         types come in by-reference.  Fix typo in comment.
1160
1161 2002-04-05  David S. Miller  <davem@redhat.com>
1162
1163         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
1164         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
1165         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
1166         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
1167
1168 2002-04-05  David S. Miller  <davem@redhat.com>
1169
1170         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
1171         are not going to emit return instructions, emit at least a nop
1172         for the sake of sane backtraces.
1173
1174 2002-04-05  Richard Henderson  <rth@redhat.com>
1175
1176         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
1177
1178 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
1179
1180         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
1181
1182 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
1183
1184         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
1185         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
1186         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
1187
1188 2002-04-05  Andreas Schwab  <schwab@suse.de>
1189
1190         * c-convert.c: Include c-common.h.
1191         * Makefile.in (c-convert.o): Updated.
1192
1193 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1194
1195         * mklibgcc.in: Use separate libgcc.map for each multilib.
1196         * Makefile.in (distclean): Don't remove libgcc.map here.
1197
1198 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1199
1200         * Makefile.in (s-mlib): Handle --disable-multilib by separate
1201         genmultilib invocation.
1202
1203 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
1204
1205         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
1206         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
1207         to num_gprs for symmetry.
1208         * config/mips/mips.c: Adjust accordingly.
1209
1210 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1211
1212         * c-common.c (truthvalue_conversion): Rename, update.
1213         * c-common.h (c_common_truthvalue_conversion): New.
1214         * c-convert.c (convert): Update.
1215         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1216         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
1217         * c-typeck.c (build_binary_op, build_unary_op,
1218         build_conditional_expr): Update.
1219         * fold-const.c (constant_boolean_node, fold): Use langhook.
1220         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
1221         * langhooks.h (struct lang_hooks): New hook.
1222         * stmt.c (expand_decl_cleanup): Use langhook.
1223         * tree.h (truthvalue_conversion): Remove.
1224 objc:
1225         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1226
1227 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
1228
1229         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
1230         Add rules to make null object file.
1231
1232 2002-04-04  Jim Blandy  <jimb@redhat.com>
1233
1234         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
1235         macro formal parameter names.
1236
1237 2002-04-04  David S. Miller  <davem@redhat.com>
1238
1239         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
1240
1241 2002-04-04  Richard Henderson  <rth@redhat.com>
1242
1243         PR middle-end/5099
1244         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
1245         Support copies into and out of memory.  Don't accept allows_reg
1246         and allows_mem as gospel.
1247
1248 2002-04-04  Richard Henderson  <rth@redhat.com>
1249
1250         PR opt/6165
1251         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
1252         (write_dependence_p): Likewise.
1253
1254 2002-04-04  Richard Henderson  <rth@redhat.com>
1255
1256         * predict.c (estimate_bb_frequencies): Do frequency calculation
1257         with a volatile temporary.
1258
1259 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
1260
1261         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
1262
1263 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1264
1265         PR c++/6119
1266         * final.c (final_start_function): Don't bump profile_label_no here...
1267         (final_end_function): ...but here.
1268
1269 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1270
1271         * config/sparc/sparc.md (pic): New attribute.
1272         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
1273         into stack slots.
1274         (split after do_builtin_setjmp_setup): New.
1275
1276 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1277
1278         PR fortran/6106
1279         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
1280         change.
1281
1282 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1283
1284         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
1285         UNITS_PER_WORD for zero sized aggregates.
1286
1287 2002-04-03  David S. Miller  <davem@redhat.com>
1288
1289         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
1290         one-character spec for this, just use %(link_gcc_c_sequence).
1291
1292 2002-04-03  David S. Miller  <davem@redhat.com>
1293
1294         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
1295         handling.
1296
1297 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1298
1299         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
1300         (DWARF_FRAME_RETURN_COLUMN): Move.
1301         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1302         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
1303         * pa.c (except.h, predict.h): Include.
1304         (FRP): Delete.
1305         (store_reg_modify, set_reg_plus_d): Revise prototypes.
1306         (output_ascii): Add cast.
1307         (store_reg_modify): Revise to add frame notes.
1308         (set_reg_plus_d): Likewise.
1309         (compute_frame_size): Include space for eh data registers in frame if
1310         the current function calls eh_return.
1311         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
1312         function calls eh_return.  Save eh data registers if the current
1313         function calls eh_return.  Fix code to add frame notes.  Emit
1314         blockage to prevent insns with frame notes being scheduled in the
1315         delay slot of calls.
1316         (hppa_expand_epilogue): Restore eh data registers and do final stack
1317         adjustment if the current function calls eh_return.  Don't add frame
1318         notes.
1319         (output_call): Revise for change in length of call insn.  Don't do
1320         return pointer adjustment for an unconditional jump in the delay slot
1321         of a call when using frame notes.
1322         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
1323         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
1324         (ARG_POINTER_CFA_OFFSET): Define.
1325         * pa.md (return_external_pic): New pattern.
1326         (prologue): Correct formatting.  Use return_external_pic if current
1327         function calls eh_return.
1328         (call_internal_symref, call_value_internal_symref,
1329         sibcall_internal_symref, sibcall_value_internal_symref): Change default
1330         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
1331         respectively.
1332         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
1333
1334         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
1335         list of targets to check using "nop" insn.
1336         * configure: Rebuilt.
1337
1338 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
1339
1340         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
1341
1342 2002-04-03  David S. Miller  <davem@redhat.com>
1343
1344         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
1345         library sequence passed to the linker.
1346         (LINK_COMMAND_SPEC): Use it.
1347         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
1348         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
1349         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1350
1351 2002-04-03  Jason Merrill  <jason@redhat.com>
1352
1353         * except.c (struct eh_status): Remove protect_list.
1354         (begin_protect_partials, end_protect_partials): Remove.
1355         (add_partial_entry): Remove.
1356         * except.h: Remove prototypes.
1357
1358         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
1359         expand_decl_cleanup_eh.
1360
1361         PR c++/5636
1362         * tree.h (CLEANUP_EH_ONLY): New macro.
1363         * stmt.c (expand_decl_cleanup_eh): New fn.
1364         (expand_cleanups): Check CLEANUP_EH_ONLY.
1365         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
1366         Use expand_decl_cleanup_eh.
1367         (expand_stmt): Adjust.
1368         * c-common.h: Adjust prototype.
1369
1370 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
1371
1372         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
1373         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
1374         (cris_target_asm_function_epilogue): Ditto.
1375         (cris_initial_frame_pointer_offset): Ditto.
1376         (cris_simple_epilogue): Ditto.
1377         (cris_expand_builtin_va_arg): Variable-size types come in
1378         by-reference.
1379
1380 2002-04-03  David S. Miller  <davem@redhat.com>
1381
1382         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
1383         little-endian.
1384         (set_fast_math): Correct 'fsr' type.
1385
1386 2002-04-03  Richard Henderson  <rth@redhat.com>
1387
1388         PR opt/3569
1389         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
1390         * toplev.c (check_global_declarations): Use it.
1391         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
1392         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1393         (LANG_HOOKS_DECLS): Add it.
1394         * langhooks.c (lhd_warn_unused_global_decl): New.
1395         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1396         * c-objc-common.c (c_warn_unused_global_decl): New.
1397         * c-tree.h (c_warn_unused_global_decl): Declare.
1398         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1399
1400 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1401
1402         * langhooks-def.h (lhd_set_decl_assembler_name,
1403         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1404         (LANG_HOOKS_INITIALIZER): Update.
1405         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
1406         * langhooks.h (struct lang_hooks): New hook.
1407         * tree.c (set_decl_assembler_name): Move to langhooks.c.
1408         (lang_set_decl_assembler_name): Remove.
1409         (init_obstacks): Don't set hook.
1410         (decl_assembler_name): New function.
1411         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
1412         (decl_assembler_name): New.
1413         (lang_set_decl_assembler_name): Remove.
1414
1415 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1416
1417         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
1418         works properly with .hidden symbols.
1419         * configure: Rebuilt.
1420         * config.in: Rebuilt.
1421         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1422         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
1423         properly with .hidden symbols.
1424
1425 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1426
1427         PR middle-end/6102
1428         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1429         USE argument.
1430
1431 2002-04-03  Richard Henderson  <rth@redhat.com>
1432
1433         PR opt/4120
1434         * sched-rgn.c (sets_likely_spilled): New.
1435         (sets_likely_spilled_1): New.
1436         (add_branch_dependences): Use it.
1437
1438 2002-04-02  Richard Henderson  <rth@redhat.com>
1439
1440         PR opt/4311
1441         * loop.h (LOOP_FIRST_PASS): New.
1442         * loop.c (strength_reduce): Mind it when deciding to unroll.
1443         * toplev.c (rest_of_compilation): Set it.
1444
1445 2002-04-02  David S. Miller  <davem@redhat.com>
1446
1447         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
1448         mems_ok_for_ldd_peep when the order of the loads being examined
1449         is reversed.
1450         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1451         existing comment to increase comprehension of this situation.
1452
1453 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
1454
1455         * config/sh/sh.md: Don't use union real_extract.
1456
1457 2002-04-02  Richard Henderson  <rth@redhat.com>
1458
1459         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1460
1461 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1462
1463         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
1464         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
1465         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
1466         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
1467         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
1468         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
1469         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
1470         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
1471         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
1472         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
1473         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
1474         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
1475         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
1476         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
1477         Include as many configury headers via tm_file as possible.  This
1478         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
1479         * config/openbsd-oldgas.h: New file.
1480         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
1481         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
1482         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
1483         config/i386/i386-coff.h, config/i386/i386-interix.h,
1484         config/i386/iscdbx.h, config/i386/linux-aout.h,
1485         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
1486         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
1487         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
1488         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
1489         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
1490         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
1491         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
1492         config/i386/vxi386.h: Do not directly include configury headers.
1493         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
1494         Directly include configury headers that are no longer automatically
1495         included by the above headers.
1496         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
1497         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
1498         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
1499         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
1500         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
1501         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
1502         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
1503         (TARGET_VERSION): Define.
1504         * config/i386/beos-elf.h, config/i386/freebsd.h,
1505         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
1506         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1507         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
1508         config/i386/sco5.h, config/i386/sysv4.h
1509         (TARGET_VERSION): Do not need to protect.
1510         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
1511         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
1512         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
1513         config/i386/i386-interix.h, config/i386/linux-aout.h,
1514         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
1515         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
1516         (YES_UNDERSCORES): Do not define - not needed.
1517         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
1518         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1519         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
1520         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
1521         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1522         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
1523         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
1524         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
1525
1526 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
1527             Richard Henderson  <rth@redhat.com>
1528
1529         PR c/5484
1530         * function.c (assign_temp): Accept either type or decl argument.
1531         Detect variables whose size is too large to fit into an integer.
1532         * stmt.c (expand_decl): Pass the decl, not the type.
1533
1534 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1535
1536         * protoize.c: Match include directory usage with cppdefault.c.
1537
1538 2002-04-03  Jeffrey A Law  (law@redhat.com)
1539             Hans-Peter Nilsson  <hp@bitrange.com>
1540
1541         * combine.c (simplify_comparison): Avoid narrowing a comparison
1542         with a paradoxical subreg when doing so would drop signficant bits.
1543
1544 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
1545
1546         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1547         if POINTERS_EXTEND_UNSIGNED is defined.
1548
1549 2002-04-02  Richard Henderson  <rth@redhat.com>
1550
1551         PR opt/3967
1552         * local-alloc.c (contains_replace_regs): LO_SUM may contain
1553         replace regs.
1554
1555 2002-04-02  Richard Henderson  <rth@redhat.com>
1556
1557         * doc/standards.texi: Document required freestanding libc entry points.
1558
1559 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
1560
1561         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1562         associated splitter.  Remove MQ constraint.
1563         (ctrdi_internal4): Correct CCmode clobber.
1564
1565 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1566
1567         * milli64.S ($$dyncall): New function.
1568         * t-linux (LIB1ASMFUNCS): Revise module list.
1569         (LIB1ASMSRC): Use pa/milli64.S.
1570
1571 2002-04-02  Richard Henderson  <rth@redhat.com>
1572
1573         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1574         rename solaris_sys_varargs_h.
1575
1576 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1577
1578         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1579         the same mode as its component.
1580
1581 2002-04-02  Richard Henderson  <rth@redhat.com>
1582
1583         PR opt/190
1584         * final.c (this_is_asm_operands): Export.
1585         * output.h (this_is_asm_operands): Declare.
1586         * config/i386/i386.c (print_operand): Error odd asm operands.
1587
1588 2002-04-02  Richard Henderson  <rth@redhat.com>
1589
1590         PR opt/420
1591         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1592
1593 2002-04-01  Richard Henderson  <rth@redhat.com>
1594
1595         PR target/1538
1596         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1597         * fixinc/fixincl.x: Rebuild.
1598
1599 2002-04-01  Richard Henderson  <rth@redhat.com>
1600
1601         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1602         (atomic_alloc, atomic_free): New.
1603         (SIZE, MASK_FOR, PTR_IN): New.
1604         (emergency_reg_state, emergency_reg_state_free): New.
1605         (emergency_labeled_state, emergency_labeled_state_free): New.
1606         (reg_state_alloced, labeled_state_alloced): New.
1607         (alloc_reg_state, free_reg_state): New.
1608         (alloc_label_state, free_label_state, free_label_states): New.
1609         (push, pop, dup_state_stack, free_state_stack): Use them.
1610         (desc_label_state): Likewise.
1611         (uw_frame_state_for): Free label states and state stack.
1612         (uw_update_reg_address): Eliminate warnings.
1613
1614 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1615
1616         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1617         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1618
1619 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1620
1621         * c-decl.c (grokdeclarator): Update.
1622         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1623         * c-tree.h (c_mark_addressable): New.
1624         * c-typeck.c (default_function_array_conversion, build_unary_op,
1625         build_array_ref, convert_for_assignment): Update.
1626         (mark_addressable): Rename.
1627         * calls.c (try_to_integrate, expand_call): Use langhook.
1628         * expr.c (expand_expr): Use langhook.
1629         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1630         * langhooks.h (struct lang_hooks): New hook.
1631         * stmt.c (expand_asm_operands): Use langhook.
1632         * tree.h (mark_addressable): Remove.
1633 objc:
1634         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1635
1636 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1637
1638         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1639         in previous change.
1640
1641 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1642
1643         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1644         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1645
1646 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1647
1648         * c-common.c (unsigned_conversion_warning, convert_and_check,
1649         unsigned_type, signed_type, shorten_compare,
1650         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1651         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1652         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1653         New.
1654         * c-decl.c (grokdeclarator): Update.
1655         * c-format.c (check_format_types): Update.
1656         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1657         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1658         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1659         * convert.c (convert_to_integer): Use new hooks.
1660         * expmed.c (make_tree): Use new hooks.
1661         * expr.c (store_expr): Use new hooks.
1662         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1663         all_ones_mask_p, unextend, fold): Use new hooks.
1664         * langhooks.h (struct lang_hooks_for_types): New hooks.
1665         * tree.h (signed_or_unsigned_type, signed_type,
1666         unsigned_type): Remove.
1667 objc:
1668         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1669         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1670
1671 2002-03-31  Richard Henderson  <rth@redhat.com>
1672
1673         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1674         (desc_frgr_mem): Fix reference to f16-f31.
1675
1676 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1677
1678         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1679         RTVEC_ELT): Const-ify.
1680         * varray.h (VARRAY_CHECK): Const-ify.
1681         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1682         ggc_mark_rtvec, ggc_mark): Const-ify.
1683
1684 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1685
1686         * diagnostic.c: Include langhooks-def.h.
1687         * Makefile.in (diagnostic.o): Update.
1688
1689 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1690
1691         * c-common.c (c_unsafe_for_reeval): Rename.
1692         * c-common.h (c_unsafe_for_reeval): Rename.
1693         * c-decl.c (finish_incomplete_decl): Rename.
1694         (c_init_decl_processing): Don't set langhook.
1695         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1696         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1697         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1698         * c-tree.h (finish_incomplete_decl): Rename.
1699         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1700         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1701         (LANG_HOOKS_INITIALIZER): Update.
1702         * langhooks.c (lhd_unsafe_For_reeval): New.
1703         * langhooks.h (struct langhooks): New hooks.
1704         * toplev.c (incomplete_decl_finalize_hook): Remove.
1705         (wrapup_global_declarations): Update.
1706         * tree.c (lang_unsafe_for_reeval): Remove.
1707         (unsafe_for_reeval): Update.
1708         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1709         Remove.
1710 objc:
1711         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1712         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1713
1714 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1715
1716         * diagnostic.c (print_error_function): Remove.
1717         (default_print_error_function): Rename.
1718         (report_error_function): Update.
1719         * diagnostic.h (print_error_function): Remove.
1720         (default_print_error_function): Remove.
1721         * langhooks-def.h (struct diagnostic_context): Predeclare.
1722         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1723         (LANG_HOOKS_INITIALIZER): Update.
1724         * langhooks.h (struct diagnostic context): Predeclare.
1725         (struct lang_hooks): New hook.
1726
1727 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1728
1729         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1730         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1731         !flag_pic.
1732         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1733         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1734         of PIC_OFFSET_TABLE_REGNUM thruout.
1735         * config/rs6000/rs6000.md: Likewise.
1736         * config/rs6000/darwin.h: Likewise.
1737
1738 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1739
1740         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1741         unsigned HOST_WIDE_INT, not unsigned int.
1742
1743 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1744
1745         PR middle-end/6096, middle-end/6098, middle-end/6099
1746         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1747         CODE_LABELs.
1748         (fill_slots_from_thread): Likewise.
1749
1750 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1751
1752         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1753         floating fields in float regs.
1754         (function_arg_record_value_2): Likewise.
1755
1756 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1757
1758         * config/mmix/mmix.md (define_constants): Remove misleading
1759         FIXME.  Add MMIX_fp_rO_OFFSET.
1760         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1761         saved rO as part of the pattern.  Remove FIXME.
1762         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1763         here, at output-time.
1764
1765 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1766
1767         PR middle-end/6100
1768         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1769         REG_BR_PRED.
1770         (output_v9branch): Likewise.
1771
1772 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1773
1774         * gcc.c: Revert previous patch for now.
1775         * config/i386/djgpp.h: Likewise.
1776
1777 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1778
1779         * config/mmix/crti.asm (_init): Register _fini with atexit.
1780         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1781
1782 2002-03-31  Richard Henderson  <rth@redhat.com>
1783
1784         PR target/3997
1785         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1786         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1787
1788 2002-03-31  Richard Henderson  <rth@redhat.com>
1789
1790         * libgcc2.c (__bb_exit_func): Make static.
1791
1792         * config/alpha/alpha.md (trap): New.
1793
1794 2002-03-31  Richard Henderson  <rth@redhat.com>
1795
1796         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1797         promoted argument types; build trap.
1798         (expand_builtin_trap): New.
1799         (expand_builtin): Use it.
1800         * stmt.c (expand_nl_goto_receivers): Likewise.
1801         * expr.h (expand_builtin_trap): Declare.
1802         * libfuncs.h (LTI_abort, abort_libfunc): New.
1803         * optabs.c (init_optabs): Init abort_libfunc.
1804
1805 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1806
1807         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1808         (LINK_COMMAND_SPEC): ... from here.
1809         (init_gcc_specs): Duplicate it here too, omitting
1810         shared_name in the second copy.
1811         (init_spec): Test for duplicate
1812         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1813
1814 2002-03-30  David S. Miller  <davem@redhat.com>
1815
1816         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1817         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1818
1819 2002-03-30  Roger Sayle <roger@eyesopen.com>
1820             Richard Henderson  <rth@redhat.com>
1821
1822         * regmove.c (combine_stack_adjustments_for_block): Avoid
1823         emitting a stack adjustment of zero bytes.  Let delete_insn
1824         update bb->head.
1825
1826 2002-03-30  Richard Henderson  <rth@redhat.com>
1827
1828         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1829         (sparc_emitting_epilogue): New.
1830         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1831         * config/sparc/sparc-protos.h: Update.
1832         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1833         (TARGET_SWITCHES): Update.
1834         * config/sparc/sparc.md (return): Remove.
1835         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1836         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1837         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1838         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1839         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1840         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1841         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1842         Remove MASK_EPILOGUE.
1843         * doc/invoke.texi: Update.
1844
1845 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1846
1847         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1848         CPP will start the file for us.
1849
1850 2002-03-30  Richard Henderson  <rth@redhat.com>
1851
1852         PR target/5446
1853         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1854         prologue_allocate_stack.
1855         (ia64_single_set): Use insn codes for recognition of special
1856         cases, not rtl matching.
1857         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1858
1859 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1860
1861         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1862
1863 2002-03-30  Richard Henderson  <rth@redhat.com>
1864
1865         PR target/6032
1866         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1867         or -fomit-frame-pointer with profiling.
1868         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1869         (FUNCTION_PROFILER): Do nothing.
1870         (PROFILE_HOOK): New.
1871         * config/sparc/sparc.c (sparc_override_options): Don't check
1872         code models for profiling.
1873         (sparc_function_profiler): Remove.
1874         (sparc_profile_hook): New.
1875         * config/sparc/sparc-protos.h: Update.
1876
1877 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1878
1879         PR optimization/6086
1880         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1881         of SUBREG of volatile MEM or because the MEM was mode dependent,
1882         return CLOBBER instead of unmodified SUBREG.
1883
1884 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1885
1886         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1887         when not optimizing.
1888
1889         * toplev.c (rest_of_compilation): Cann mark_constant_function
1890         only when optimizing.
1891
1892         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1893         are NULL.
1894
1895         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1896         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1897         (try_optimize_cfg): clear all AUX fields.
1898
1899         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1900         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1901         (ix86_address_cost): Be prepared for SUBREGed registers.
1902         (legitimate_address_p): Accept SUBREGed registers.
1903
1904 2002-03-29  Richard Henderson  <rth@redhat.com>
1905
1906         PR target/5672
1907         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1908
1909 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1910
1911         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1912         for aggregate and TFmode types.
1913
1914 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1915
1916         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1917
1918 2002-03-29  Richard Henderson  <rth@redhat.com>
1919
1920         PR target/5886
1921         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1922         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1923
1924 2002-03-29  Richard Henderson  <rth@redhat.com>
1925
1926         PR target/6041
1927         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1928         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1929         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1930         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1931         conditional.
1932         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1933
1934 2002-03-29  Dale Johannesen <dalej@apple.com>
1935
1936         * loop.c (combine_movables): Do allow combination of pseudos.
1937
1938 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1939
1940         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1941         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1942         No functional change except ...
1943         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1944         * doc/install.texi (*-*-freebsd*): Document port configuration.
1945
1946 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1947
1948         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1949         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1950         Use new hooks.
1951         * builtin-types.def (BT_PTRMODE): Update.
1952         * c-common.c (type_for_size): Rename c_common_type_for_size.
1953         (type_for_mode): Similarly.
1954         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1955         Use new hook.
1956         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1957         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1958         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1959         Redefine.
1960         * c-typeck.c (common_type, comptypes, default_conversion):
1961         Use new hooks.
1962         * calls.c: Include langhooks.h.
1963         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1964         calls.
1965         * convert.c: Include langhooks.h
1966         (convert_to_pointer, convert_to_integer): Use new hooks.
1967         * except.c (init_eh): Similarly.
1968         * expmed.c: Include langhooks.h.
1969         (expand_mult_add): Use new hooks.
1970         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1971         try_casesi): Similarly.
1972         * fold-const.c (optimize_bit_field_compare, make_range,
1973         decode_field_reference, fold_truthop, fold): Similarly.
1974         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1975         put_var_into_stack): Similarly.
1976         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1977         LANG_HOOKS_TYPE_FOR_SIZE): New.
1978         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1979         * langhooks.h (lang_hooks_for_types): New hooks.
1980         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1981         * tree.c (get_unwidened, get_narrower): Similarly.
1982         * tree.h (type_for_mode, type_for_size): Remove.
1983         * varasm.c (force_const_mem): Use new hooks.
1984         * utils2.c (nonbinary_modular_operation): Update.
1985 objc:
1986         * objc-act.c (handle_impent): Update.
1987         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1988         Redefine.
1989
1990 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
1991
1992         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
1993         * config/ia64/ia64.c (basereg_operand): New.
1994         * config/ia64/ia64-protos.h (basereg_operand): Declare.
1995         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
1996
1997 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1998
1999         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
2000         unwind information when frame_pointer_needed.
2001         (mmix_assemble_integer): Tweak wording in comment.
2002
2003 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2004
2005         * Makefile.in (except.o): Update.
2006         * except.c: Include langhooks.h.
2007         (init_eh): Use langhook.
2008         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
2009         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
2010         (LANG_HOOKS_INITIALIZER): Update.
2011         * langhooks.h (lang_hooks_for_types): New.
2012         (struct lang_hooks): Add it.
2013         * tree.c (make_lang_type_fn, make_lang_type): Remove.
2014         * tree.h (make_lang_type_fn, make_lang_type): Remove.
2015 config:
2016         * alpha/alpha.c: Include langhooks.h.
2017         (alpha_build_va_list): Use langhook.
2018         * d30v/d30v.c: Include langhooks.h.
2019         (d30v_build_va_list): Use langhook.
2020         * i386/i386.c: Include langhooks.h.
2021         (ix86_build_va_list): Use langhook.
2022         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
2023         * s390/s390.c: Include langhooks.h.
2024         (s390_build_va_list): Use langhook.
2025         * stormy16/stormy16.c: Include langhooks.h.
2026         (stormy16_build_va_list): Use langhook.
2027
2028 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2029
2030         PR c++/5964
2031         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
2032         attributes.
2033         (length): Compute variable length for branches/calls/jumps here.
2034         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
2035         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
2036         define branch_type attribute.
2037         (divsi3_sp32): Maximum length is 6 not 7.
2038         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
2039         call_address_untyped_struct_value_sp32,
2040         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
2041         * config/sparc/sparc.c (empty_delay_slot): New function.
2042         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
2043         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
2044
2045 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2046
2047         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
2048         nonzero_bits if not needed.
2049         (nonzero_bits) [XOR]: Likewise.
2050         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
2051         reg_last_set_mode and mode are both MODE_INT, but not equal.
2052         (record_value_for_reg): Compute reg_last_set_nonzero_bits
2053         in nonzero_bits_mode for MODE_INT modes.
2054
2055 2002-03-28  Richard Henderson  <rth@redhat.com>
2056
2057         PR target/5715
2058         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
2059         to GAS.  Correct drift between alternatives.
2060
2061 2002-03-28  Richard Henderson  <rth@redhat.com>
2062
2063         PR target/6087
2064         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
2065
2066 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
2067
2068         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
2069         emulation to the linker.
2070
2071 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
2072
2073         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
2074         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
2075
2076 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
2077
2078         * combine.c (simplify_and_const_int): Make sure to apply mask
2079         when force_to_mode returns a constant integer.  PR3311.
2080
2081 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2082
2083         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
2084
2085 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2086
2087         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
2088         and Objective-C Dialect Options.
2089
2090 2002-03-28  Richard Henderson  <rth@redhat.com>
2091
2092         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
2093         comparison should be done vs !=0 not >0 return code.  Tidy cases.
2094
2095 2002-03-28  Richard Henderson  <rth@redhat.com>
2096
2097         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
2098         on to c_expand_body.
2099         * c-tree.h (finish_function): Update decl.
2100         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
2101
2102 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2103
2104         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
2105
2106 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
2107
2108         * rtlanal.c: Include flags.h
2109         (may_trap_p): Do not mark FP operations if trapping
2110         if !flag_trapping_math
2111         * Makefile.in (rtlanal.o): Add dependency on flag.h
2112         * ifcvt.c (noce_operand_ok): Avoid the lameness.
2113
2114 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
2115
2116         * mips.md: Use dconst1, not 1.0, as first argument of
2117         REAL_VALUE_LDEXP.  Don't use union real_extract.
2118
2119 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
2120
2121         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
2122         rather than $target.  Heed program_prefix and
2123         program_transform_name.  Search for gas in cross-compiler case too.
2124         "test -x" rather than "test -f".
2125         (gcc_cv_ld): Likewise.
2126         (gcc_cv_nm): Heed program_prefix and program_transform_name.
2127         (gcc_cv_objdump): Likewise.
2128         * configure: Regenerate.
2129
2130 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2131
2132         * Makefile.in (attribs.o): Update.
2133         * attribs.c: Include langhooks.h.
2134         (decl_attributes): Use langhook.
2135         * c-decl.c (insert_default_attributes): Rename.
2136         * c-tree.h (c_insert_default_attributes): New.
2137         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
2138         (LANG_HOOKS_INITIALIZER): Update.
2139         * langhooks.h (struct lang_hooks): New hook.
2140         * tree.h (insert_default_attributes): Remove.
2141 objc:
2142         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
2143
2144 2002-03-27  Andreas Schwab  <schwab@suse.de>
2145
2146         * config/i386/i386.c (classify_argument): Also check for
2147         QUAL_UNION_TYPE.
2148
2149 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2150
2151         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
2152         any more.
2153
2154 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2155
2156         * i960.md (ret): Set PC.
2157         (nonlocal_goto): Fix expander.
2158         * builtins.c (epxand_builin_longjmp): Check that we've emitted
2159         some jump or call.
2160
2161 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
2162
2163         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
2164         of libcall regions.
2165
2166 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2167
2168         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
2169         assigning to BLOCK_FOR_INSN directly.
2170
2171 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
2172
2173         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
2174
2175 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2176
2177         * c-common.c (c_expand_expr): Fix prototype.
2178         * c-common.h (c_expand_expr): Always declare, update.
2179         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2180         * c-objc-common.c (c_objc_common_init): No global hook.
2181         * expr.c (expand_expr): Use langhook.
2182         * expr.h (enum expand_modifier): Conditionally declare.
2183         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
2184         (LANG_HOOKS_INITIALIZER): Update.
2185         * langhooks.c (lhd_expand_expr): New.
2186         * langhooks.h (struct lang_hooks): New hook.
2187         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
2188         (lang_independent_init): Don't default hook.
2189 objc:
2190         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2191
2192 2002-03-27  Richard Henderson  <rth@redhat.com>
2193
2194         PR target/6054
2195         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
2196         TARGET_CONST_GP.  Simplify conditions.
2197
2198 2002-03-27  Richard Henderson  <rth@redhat.com>
2199
2200         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
2201         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
2202         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
2203
2204 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
2205
2206         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
2207         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
2208         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
2209         Remove unnecessary masks.
2210         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
2211         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
2212         -mwindows, -mdll switches and their negations.
2213
2214 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2215
2216         * gcc-common.c (lang_mark_false_label_stack): Remove.
2217         * ggc.h (lang_mark_false_label_stack): Similarly.
2218
2219 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2220
2221         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
2222
2223         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
2224         or __rtems_ is defined.
2225
2226 2002-03-26  Richard Henderson  <rth@redhat.com>
2227
2228         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
2229         if a non-trivial load was emitted.
2230         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
2231         in high+extra+low case.
2232
2233 2002-03-26  Richard Henderson  <rth@redhat.com>
2234
2235         * config.gcc (sparc*-solaris): Use float_format=sparc.
2236
2237 2002-03-26  Richard Henderson  <rth@redhat.com>
2238
2239         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
2240         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
2241         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
2242         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
2243         (WINT_TYPE_SIZE): Fix at 32.
2244
2245 2002-03-26  Richard Henderson  <rth@redhat.com>
2246
2247         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
2248         until after eh landing pad generation.
2249         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
2250         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
2251
2252 2002-03-26  Richard Henderson  <rth@redhat.com>
2253
2254         * expr.h (ADD_PARM_SIZE): One more convert for INC.
2255
2256 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
2257
2258         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
2259         and warning switches.
2260         (cc1_options):  Likewise.
2261
2262 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
2263
2264         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
2265         Restore more of the signal context.  Set no_reg_stack_frame.
2266         * config/ia64/unwind-ia64.c (unw_state_record):
2267         Add no_reg_stack_frame, comments.
2268         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
2269         (uw_update_context): Adjust bsp when unwinding from leaf,
2270         but not signal frame.
2271
2272 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
2273
2274         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
2275
2276 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2277
2278         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
2279
2280 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2281
2282         PR target/5621
2283         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
2284         "Add a pool_range attribute", which was lost during the ARM/Thumb
2285         merge.
2286
2287 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2288
2289         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
2290         a register into the MAC16 accumulator.
2291
2292 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
2293
2294         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
2295         (Warning Options): Document -Wswitch-enum.
2296         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
2297         -Wswitch.
2298         (warn_switch_enum): Define variables.
2299         * flags.h (warn_switch_enum): Declare variables.
2300         * stmt.c (expand_end_case_type): When warn_switch_enum /
2301         -Wswitch-enum, perform switch checks.
2302         Fix PR c/5044.
2303
2304 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2305
2306         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
2307         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
2308         (reload_muladdsi_compare0_scratch): Delete.
2309
2310 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
2311
2312         * doc/install.texi (*-*-freebsd*): Update.
2313
2314 2002-03-26  Richard Henderson  <rth@redhat.com>
2315
2316         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
2317         (SUB_PARM_SIZE): Cast DEC to ssizetype.
2318
2319         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
2320         types from the normal argument frame.
2321
2322         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
2323         variable sized objects by reference.
2324         (sparc_va_arg): Receive them by reference too.
2325
2326 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
2327
2328         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
2329         code to not restoring global registers.
2330
2331 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2332
2333         * Makefile.in (ggc-common.o): Update.
2334         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
2335         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2336         * c-tree.h (c_mark_tree): New.
2337         * ggc-common.c: Include langhooks.h.
2338         (gcc_mark_trees): Use new langhook.
2339         * ggc-callbacks.c: Delete file.
2340         * ggc.h (lang_mark_tree): Remove.
2341         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
2342         (LANG_HOOKS_INITIALIZER): Update.
2343         * langhooks.h (struct lang_hooks): New hook.
2344 objc:
2345         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2346
2347 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2348
2349         * doc/cpp.texi: Exclude entire Top node from printed manual.
2350         Move option index after directive index.  Insert page breaks
2351         before GFDL and concept index.  Index environment variables
2352         with command line options.
2353         * doc/cppenv.texi: Use @vtable for environment variable list.
2354         Add paragraph explaining semantics of empty elements in path
2355         variables.  Exclude a cross-reference to Fishkill from the
2356         manpage.  Remove an unnecessary cross-reference of the entry
2357         right above the referer.  Don't use @anchor in text that goes
2358         into manpage.
2359         * doc/cppopts.texi: Cross-reference the environment variables
2360         section, not the specific environment variable, for consistency.
2361
2362 2002-03-25  Richard Henderson  <rth@redhat.com>
2363
2364         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
2365         anywhere in the block.  Don't refer to insns that have been
2366         removed from the chain.  Iterate backward through the new insns.
2367         Don't refer to edges that have been removed.
2368
2369 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
2370
2371         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
2372         test for overflow of constant.
2373
2374 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
2375
2376         PR target/2623
2377         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
2378         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
2379         these patterns on arm_archv4.
2380
2381 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
2382
2383         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
2384         int".
2385
2386 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2387
2388         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
2389         float_handled, float_handler, float_signal, set_float_handler,
2390         and do_float_handler.  Set handler for SIGFPE to crash_signal.
2391         * toplev.h: Don't prototype do_float_handler.
2392
2393         * c-lex.c: Fold parse_float into lex_number.  Make warning
2394         about portability of hex float constants more informative, and
2395         don't issue it on top of a syntax error.
2396         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
2397         their callers.
2398         * real.h: Define REAL_VALUE_ABS here...
2399         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
2400         simplify_unary_real, simplify_binary_real, and
2401         simplify_binary_is2orm1 into their callers.
2402         * tree.c: Fold build_real_from_int_cst_1 into caller.
2403
2404         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2405
2406         * tsystem.h: Include float.h here...
2407         * libgcc2.c: ... not here.
2408
2409 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
2410
2411         Fixes for: PR bootstrap/3591, target/5676
2412         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
2413         defined.  Do not disable exceptions or rtti.
2414         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
2415         mcore.h.  Disable exceptions and rtti, since they are not
2416         supported by EPOC.
2417
2418 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2419
2420         * c-decl.c (maybe_build_cleanup): Remove.
2421         * expr.c (expand_expr): Use langhook.
2422         * langhooks-def.h (lhd_return_null_tree,
2423         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
2424         (LANGHOOKS_INITIALIZER): Update.
2425         * langhooks.c (lhd_return_null_tree): New.
2426         * langhooks.h (struct lang_hooks): New hook.
2427         * tree-inline.c (initialize_inlined_parameters): Use langhook.
2428         * tree.h (maybe_build_cleanup): Remove.
2429
2430 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2431
2432         * regrename.c (build_def_use): Move recog_memoized
2433         before extract_insn.
2434
2435 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2436
2437         PR target/6043
2438         * expr.c (emit_group_store): Handle storing into CONCAT.
2439
2440 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2441
2442         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2443         corresponding MATCH_DUP.
2444
2445 2002-03-24  Richard Henderson  <rth@redhat.com>
2446
2447         * unroll.c (unroll_loop): Zero label_map.
2448
2449         * gcse.c: Include except.h.
2450         * Makefile.in (gcse.o): Update.
2451
2452 2002-03-24  Richard Henderson  <rth@redhat.com>
2453
2454         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2455         Do resolve_unique_section before shared data clause.
2456
2457 2002-03-24  Richard Henderson  <rth@redhat.com>
2458
2459         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2460
2461 2002-03-24  Richard Henderson  <rth@redhat.com>
2462
2463         * recog.c (peephole2_optimize): Split blocks when EH insns are
2464         generated in the middle of a block.  Do global life update if
2465         zapped EH edges.
2466
2467 2002-03-24  Richard Henderson  <rth@redhat.com>
2468
2469         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2470
2471 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2472
2473         preprocessor/3951
2474         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
2475         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
2476         (init_dependency_output): Don't make no_output decision here.
2477
2478 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
2479
2480         * stmt.c (check_for_full_enumeration_handling): Remove tests of
2481         warn_switch.  Update description.
2482         (expand_end_case_type): Call check_for_full_enumeration_handling
2483         when warn_switch.
2484
2485 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2486
2487         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
2488         (m68hc11_split_move): Call it to see if the source and destination
2489         operands use the same direction auto inc/dec mode, otherwise make the
2490         source an offsetable memory operand and generate an add.
2491
2492 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2493
2494         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
2495         register for operand 2.
2496         ("*subsi3_zero_extendqi"): Likewise.
2497         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
2498         bits so that it is compatible with a pop.
2499         ("*andhi3_gen"): Likewise.
2500         ("xorhi3"): Likewise.
2501
2502 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2503
2504         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2505         -pedantic here...
2506         (cpp_post_options): ... not here.
2507
2508 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2509             Aldy Hernandez  <aldyh@redhat.com>
2510
2511         Removal of separate preprocessor cpp0.
2512
2513         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
2514         cpp0, install-common): Update.
2515         * c-common.c (flag_preprocess_only): New.
2516         (c_common_init): Preprocess for -E.
2517         * c-common.h (flag_preprocess_only): New.
2518         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
2519         * c-objc-common.c (c_init_decl_processing): Exit quickly
2520         for NULL return from c_common_init.
2521         * cpplib.h (cpp_preprocess_file): New.
2522         * cppmain.c (main, general_init, pfile, progname): Remove.
2523         (do_preprocessing): Rename cpp_preprocess_file, don't call
2524         cpp_finish.  Don't close stdout here.
2525         (setup_callbacks): Update prototype.
2526         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
2527         Update.
2528         * tradcpp.c (main): Ignore -quiet.
2529 objc:
2530         * lang-specs.h (default_compilers): Preprocess with cc1obj.
2531
2532 2002-03-24  Richard Henderson  <rth@redhat.com>
2533
2534         PR optimization/5742
2535         * machmode.def: Add inner mode field to complex modes.
2536         * config/mips/mips.c (mips_function_value): Always define.  Add
2537         new argument to handle libcalls.
2538         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
2539         (FUNCTION_VALUE): Likewise.
2540         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
2541         * config/mips/mips-protos.h: Update.
2542
2543 2002-03-23  Richard Henderson  <rth@redhat.com>
2544
2545         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2546         * config/sparc/sparc-protos.h: Update.
2547         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2548
2549 2002-03-23  Richard Henderson  <rth@redhat.com>
2550
2551         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2552         _start or _init begins the text segment.
2553
2554 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
2555
2556         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
2557         not HOST_WIDEST_INT.
2558         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
2559
2560 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
2561
2562         PR java/5489
2563         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
2564         operand argument to output_return_instruction.
2565         * arm.c (arm_print_operand, case 'd'): If the operand is
2566         const_true_rtx then just return.
2567         (arm_print_operand, case 'D'): If the operand is const_true_rtx
2568         then abort.
2569
2570 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2571
2572         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2573         (Warning Options): Document -Wswitch-default.
2574         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2575         -Wswitch.
2576         (warn_switch_default): Define variable.
2577         (warn_switch): Update comment.
2578         * flags.h (warn_switch_default): Declare variable.
2579         (warn_switch): Update comment.
2580         * stmt.c (expand_end_case): Check for and, when
2581         warn_switch_no_default, warn of a missing default case.
2582
2583 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2584
2585         * real.h (N): Special case 128 bit doubles.
2586
2587         * combine.c (simplify_comparison): When widening modes, ignore
2588         sign extension on CONST_INTs.
2589
2590 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2591
2592         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2593         passed to adjust_address.  Fix comment formatting.
2594
2595
2596 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2597
2598         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2599         Always make REAL_VALUE_TYPE a struct containing an array of
2600         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2601         big it is.  Don't declare or use union real_extract.
2602
2603         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2604         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2605         (print_operand), config/arm/arm.c (output_move_double),
2606         config/arm/arm.md (consttable_4, consttable_8),
2607         config/romp/romp.c (output_fpops), config/s390/s390.h
2608         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2609         (xtensa_output_literal): Don't use union real_extract.
2610
2611         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2612         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2613         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2614         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2615         (PRINT_OPERAND): Don't use local version of union
2616         real_extract.
2617
2618         * config/convex/convex.c (check_float_value), config/vax/vax.c
2619         (vax_float_literal), config/m88k/m88k.md (divdf3),
2620         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2621         config/pdp11/pdp11.c (output_move_quad): Don't do host
2622         arithmetic on target floating point quantities.
2623
2624         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2625         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2626
2627         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2628         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2629
2630         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2631         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2632         INFINITY.
2633         * print-rtl.c (print_rtx): Disable code which needs
2634         floating-point emulator.
2635         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2636         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2637         depending on HOST_FLOAT_FORMAT to be defined properly.
2638
2639         * config/1750a/1750a.c (get_double, float_label): Delete.
2640         (print_operand): Delete huge commented-out chunk.  Use
2641         REAL_VALUE_TO_DECIMAL.
2642         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2643         functions.
2644         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2645         IEEE_FLOAT_FORMAT.
2646         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2647         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2648         * config/m88k/m88k.c (real_power_of_2_operand,
2649         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2650         real_extract out of the union; run the input through
2651         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2652         from that into the union.
2653         * config/pdp11/pdp11.c (output_move_double): Rearrange
2654         parentheses to make automatic indenter happy.
2655
2656         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2657         Point" and rewrite to describe current situation.  Also adjust
2658         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2659         match code.
2660         * doc/rtl.texi: Adjust cross reference.
2661
2662 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2663
2664         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2665         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2666         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2667         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2668         prevent use of sp as a reload register.
2669         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2670         non_acc_reg_operand.
2671         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2672         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2673         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2674         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2675
2676 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2677
2678         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2679         * cpplex.c (unterminated): Delete.
2680         (parse_string): No string literal may extend over multiple
2681         lines.  Suppress the error when preprocessing assembly.
2682         * cppmain.c (scan_translation_unit): Strings are single-line.
2683
2684         * doc/cpp.texi: Update to match.
2685
2686 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2687
2688         PR optimization/5854
2689         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2690         Shut up warnings.
2691         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2692         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2693         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2694         const0 if scratch register was not allocated.
2695         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2696         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2697         with GEN_INT (...).
2698         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2699         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2700         with GEN_INT (...) everywhere.  Remove constraints in define_split
2701         patterns.
2702         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2703         require scratch register for setting 0 into regs/non-pushable memory.
2704
2705 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2706
2707         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2708         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2709
2710 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2711
2712         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2713         * cppinit.c (cpp_create_reader):  On by default.
2714         (cpp_handle_option):  Handle -W[no-]endif-labels.
2715         (cpp_post_options):  Also enable if -pedantic.
2716         * cpplib.c (do_else):  Use it.
2717         (do_endif):  Likewise.
2718         * doc/cppopts.texi:  Document new option.
2719         * doc/invoke.texi:  Document new option.
2720
2721 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2722
2723         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2724         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2725
2726 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2727
2728         * flow.c (calculate_global_regs_live): Clear aux fields of
2729         ENTRY and EXIT.
2730
2731 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2732
2733         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2734         REG or MEM subregs, pass rtx * instead of rtx to it.
2735         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2736         rtx * instead of rtx to alter_subreg.
2737         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2738         * config/pj/pj.c (pj_output_rval): Likewise.
2739
2740 2002-03-22  Richard Henderson  <rth@redhat.com>
2741
2742         PR target/3177
2743         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2744         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2745         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2746         (ia64_expand_prologue): Look at int_regs, not words, for number
2747         of incomming int regs.
2748
2749 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2750
2751         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2752
2753 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2754
2755         * toplev.c (flag_loop_optimize, flag_crossjumping):
2756         New static variables.
2757         (rest_of_compilation): Conditionalize crossjumping and
2758         loop optimizer.
2759         (parse_options_and_default_flags): Default loop_optimize and
2760         crossjumping.
2761         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2762         * invoke.texi (crossjumping, loop-optimize): Document.
2763
2764 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2765
2766         * real.c (eiisneg): Move outside #ifdef NANS.
2767
2768 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2769
2770         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2771         frequencies match; avoid match on different loop depths.
2772         (try_crossjump_to_bb): Kill tests that no longer brings time
2773         savings.
2774         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2775         updating code.
2776         (split_edge): Likewise.
2777
2778         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2779         variable.
2780
2781         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2782         * cfgrtl.c: Include insn-config.h
2783         (split_block) Dirtify block in presence of conditional execution
2784
2785 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2786
2787         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2788         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2789         (function_arg): Constify CUMULATIVE_ARGS.
2790         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2791         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2792         (UNITS_PER_DOUBLE): New macro.
2793         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2794         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2795         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2796         fp_regs and stack_words.
2797         (EABI_FLOAT_VARARGS_P): New macro.
2798         * config/mips/mips.c (struct mips_arg_info): New.
2799         (mips_arg_info): New function.
2800         (function_arg_advance): Use it.  Add adjustment instructions here
2801         rather than in function_arg.
2802         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2803         for VOIDmode at the beginning of the function.
2804         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2805         (function_arg_pass_by_reference): Likewise.
2806         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2807         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2808         (mips_va_start): Likewise.  Use the new stack_words field of
2809         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2810         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2811         doubles and other types, aligning the overflow pointer for non-doubles
2812         too.  Remove some code duplication.  Replace hard-coded constants.
2813
2814 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2815
2816         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2817         (CLASS_UNITS): Undefine.
2818         (CLASS_MAX_NREGS): Use FP_INC.
2819         * config/mips/mips.c (compute_frame_size): Likewise.
2820         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2821
2822 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2823
2824         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2825         prototype, and handle lexing numbers and identifiers.
2826         (parse_identifier): Update to new form of parse_slow.
2827         (parse_number): Fast path only, use parse_slow otherwise.
2828         (_cpp_lex_direct): Update calls to parse_number.
2829
2830 2002-03-21  DJ Delorie  <dj@redhat.com>
2831
2832         * bb-reorder.c (make_reorder_chain_1): Protect against
2833         when redundant edges are omitted.
2834         * predict.c (dump_prediction): Likewise.
2835
2836 2002-03-21  Richard Henderson  <rth@redhat.com>
2837
2838         PR target/5996
2839         * fixinc/inclhack.def (solaris_stdio_tag): New.
2840         * fixinc/fixincl.x: Regenerate.
2841
2842 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2843
2844         PR c/5597
2845         * c-typeck.c (process_init_element): Flag non-static
2846         initialization of a flexible array member as illegal.
2847
2848 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2849
2850         * config/rs6000/t-linux64: New.
2851         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2852         t-ppccomm.  Use t-rs6000 and t-linux64.
2853         (powerpc64-*-gnu* <tmake_file>): Likewise.
2854         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2855         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2856         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2857
2858 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2859
2860         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2861         flag_really_no_inline instead of optimize == 0.
2862
2863         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2864
2865         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2866
2867         * flags.h (flag_really_no_inline): New.
2868
2869         * c-common.c (c_common_post_options): Initialize
2870         flag_really_no_inline.
2871
2872         * toplev.c (flag_really_no_inline): New.
2873
2874 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2875
2876         * config/avr/avr.md (length): Fix length computation for
2877         conditional branches.
2878
2879 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2880
2881         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2882         sdbout.o, profile.o): Update.
2883         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2884         langhook.
2885         * c-common.h (gettags): Move here from tree.h.
2886         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2887         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2888         * dbxout.c (dbxout_init): Use getdecls langhook.
2889         * expr.c (expand_expr): Use insert_block langhook.
2890         * fold-const.c: Include langhooks.h.
2891         (fold_range_test, fold_binary_op_with_conditional_arg,
2892         fold): Use global_bindings_p langhook.
2893         * integrate.c (expand_inline_function): Use insert_block langhook.
2894         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2895         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2896         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2897         LANG_HOOKS_GETDECLS): New.
2898         (LANG_HOOKS_INITIALIZER): Update.
2899         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2900         langhook.
2901         * langhooks.h (struct lang_hooks_for_decls): New.
2902         (struct lang_hooks): Update.
2903         * profile.c: Include langhooks.h.
2904         (output_func_start_profiler): Use new langhooks.
2905         * sdbout.c: Include langhooks.h.
2906         (sdbout_init, sdbout_finish): Use getdecls langhook.
2907         * stmt.c: Include langhooks.h.
2908         (expand_fixup, fixup_gotos): Use new langhooks.
2909         * stor-layout.c: Include langhooks.h.
2910         (variable_size): Use global_bindings_p langhook.
2911         * toplev.c (compile_file): Use getdecls langhook.
2912         * tree-inline.c (remap_block): Use insert_block langhook.
2913         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2914         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2915
2916 2002-03-21  Richard Henderson  <rth@redhat.com>
2917
2918         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2919         constants in .data when -fpic.
2920
2921 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2922
2923         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2924         where appropriate.
2925
2926 2002-03-21  Tom Tromey  <tromey@redhat.com>
2927
2928         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2929
2930 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2931
2932         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2933
2934         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2935
2936 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2937             Richard Henderson  <rth@redhat.com>
2938
2939         PR c/5354
2940         * c-common.c (c_expand_expr): Preserve result of a statement
2941         expression if needed.
2942
2943 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2944
2945         PR bootstrap/4195
2946         * genrecog.c (maybe_both_true_mode): Remove.
2947         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2948         * machmode.def (Pmode): Likewise.
2949
2950 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2951
2952         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2953         (nonlocal_mentioned_p_1): New function.
2954         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2955         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2956         (mark_constant_function): Recognize pure functions.
2957         * rtl.h (global_reg_mentioned_p): New prototype.
2958         * rtlanal.c (global_reg_mentioned_p,
2959         global_reg_mentioned_p_1): New function.
2960
2961 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2962
2963         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2964         UNIX assert.h.
2965         * fixinc/fixincl.x: Regenerate.
2966
2967 2002-03-20  Jason Merrill  <jason@redhat.com>
2968
2969         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2970
2971 2002-03-20  Michael Meissner  <meissner@redhat.com>
2972
2973         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2974         -fstrict-aliasing.
2975
2976 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2977
2978         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2979         ".literal_position" directive before the constant pool.
2980
2981 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2982
2983         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2984         Add Craig Rodrigues.
2985         Add Brad Lucier to testers.
2986
2987 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2988
2989         PR target/4792
2990         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
2991         to if_then_else.
2992         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
2993         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
2994         instead of insn_extract.
2995
2996 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2997
2998         PR bootstrap/4192
2999         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
3000
3001         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
3002         stmt if some case has been output.
3003
3004 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3005
3006         PR c/5972
3007         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
3008         movsfcc_1, movdfcc_1): Add %O2.
3009         * config/i386/i386.c (print_operand): Handle %ON.
3010         Print . before float condition codes in Sun as cmov syntax.
3011         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
3012         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
3013         no longer true.
3014
3015 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
3016
3017         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
3018         return instruction if PC was popped.
3019
3020 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
3021
3022         * config/xtensa/xtensa.md: Remove unused type attributes.
3023         (adddi_carry, subddi_carry): Change type attribute to "multi".
3024
3025 2002-03-19  Dale Johannesen  <dalej@apple.com>
3026
3027         PR optimization/5999, middle-end/5731
3028         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
3029         multiplications by reciprocals.
3030
3031 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3032
3033         * Makefile.in: Update.
3034         * c-common.c: Include langhooks.h.
3035         (inline_forbidden_p): Use new hook.
3036         * diagnostic.c: Include langhooks.h.
3037         (format_with_decl, announce_function,
3038         default_print_error_function): Use new hook.
3039         * dwarf2out.c (dwarf2_name): Use new hook.
3040         * function.c: Include langhooks.h.
3041         (init_function_start): Use new hook.
3042         * langhooks-def.h (lhd_decl_printable_name): New.
3043         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
3044         (LANGHOOKS_INITIALIZER): Update.
3045         * langhooks.c (lhd_decl_printable_name): New.
3046         * langhooks.h (struct lang_hooks): New hook.
3047         * toplev.c (decl_name, decl_printable_name): Remove.
3048         (open_dump_file): Use new hook.
3049         (process_options): Remove old hook.
3050         * tree.h (decl_printable_name): Remove.
3051 objc:
3052         * objc-act.c (objc_init): Remove old hook.
3053         (objc_printable_name): Export.
3054         * objc-act.h (objc_printable_name): New.
3055         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
3056
3057 2002-03-19  Jim Blandy  <jimb@redhat.com>
3058
3059         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
3060         the start_source_file debug hook, not the current line number.
3061
3062 2002-03-19  Richard Henderson  <rth@redhat.com>
3063
3064         * flow.c (EH_USES): Provide default.
3065         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
3066         * doc/tm.texi (EH_USES): New.
3067
3068         * config/ia64/ia64.c (ia64_eh_uses): New.
3069         * config/ia64/ia64-protos.h: Update.
3070         * config/ia64/ia64.h (EH_USES): New.
3071
3072 2002-03-19  Richard Henderson  <rth@redhat.com>
3073
3074         * varasm.c (output_constant_def): Fix stupid typo.
3075
3076 2002-03-19  Richard Henderson  <rth@redhat.com>
3077
3078         PR 5879
3079         * except.c (current_function_has_exception_handlers): New.
3080         * except.h: Declare it.
3081         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
3082         Combine tests that disable all sibcalls for the function.
3083
3084 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
3085
3086         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
3087         for INTEGER_CST.
3088
3089 2002-03-19  Richard Henderson  <rth@redhat.com>
3090
3091         PR 5977, 5991
3092         * config/ia64/ia64.c: Revert 2002-03-01 patch.
3093         * config/ia64/ia64.h (INIT_EXPANDERS): New.
3094
3095 2002-03-19  Jim Blandy  <jimb@redhat.com>
3096
3097         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
3098         name, even if the replacement list contains no tokens, as required
3099         by Dwarf.
3100
3101 2002-03-19  Jason Merrill  <jason@redhat.com>
3102
3103         * varasm.c (globalize_decl): Get the name from the RTL, not
3104         DECL_ASSEMBLER_NAME.
3105
3106         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
3107
3108 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
3109
3110         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
3111         subdi_carry): Define.
3112
3113 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3114
3115         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
3116         about -fpic/-fPIC if extra_warnings set.
3117
3118 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3119
3120         * expr.c (expand_expr): Sign-extend CONST_INT generated from
3121         TREE_STRING_POINTER.
3122         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
3123
3124 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3125
3126         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
3127         in favor of SP if FRAME_POINTER_REQUIRED is false.
3128
3129 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
3130
3131         * emit-rtl.c (gen_int_mode): New function.
3132         * rtl.h: Prototype for it.
3133         * combine.c (make_extraction, simplify_comparison), expmed.c
3134         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
3135         (convert_modes, store_field), optabs.c (expand_fix),
3136         simplify-rtx.c (neg_const_int, simplify_unary_real),
3137
3138         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
3139         Use it instead of GEN_INT (trunc_int_for_mode (...)).
3140
3141 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR c/5656
3144         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
3145         convert_parm_for_inlining.
3146         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3147         Define.
3148         * langhooks-def.h: Likewise.
3149         * objc/objc-lang.c: Likewise.
3150         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
3151         function.
3152         * tree-inline.c (initialize_inlined_parameters):
3153         Call convert_parm_for_inlining lang hook if needed.
3154         * c-typeck.c (c_convert_parm_for_inlining): New function.
3155         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
3156
3157 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
3158
3159         * calls.c (precompute_arguments): Do not assume that temporaries
3160         can be destroyed after expanding the argument.
3161         (expand_call): Likewise.
3162
3163 2002-03-15  Eric Christopher  <echristo@redhat.com>
3164
3165         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
3166         Fix register preference on last change.
3167         * config/mips/mips.c (mips_return_in_memory): New function.
3168         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
3169         * config/mips/mips-protos.h: Declare.
3170         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
3171         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
3172
3173 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
3174
3175         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
3176         a register too.
3177         (anddi3, iorsi3): Likewise.
3178
3179         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
3180         use %gprel for symbols that are going to be placed in linkonce
3181         sections.
3182
3183         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
3184         RETURN_ADDRESS_POINTER_REGNUM to $ra.
3185         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
3186         not needed.  Disregard leaf_function_p().
3187         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
3188         mips16 frame pointer.
3189         * config/mips/mips.md (store ra): Only to small SP offsets.
3190         2001-08-22  Graham Stott  <grahams@redhat.com>
3191         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
3192         return a REG rtx for the return address register.
3193
3194 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
3195
3196         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
3197         constant-pool addresses as "mode-dependent".
3198         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
3199
3200 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
3201
3202         PR target/5740
3203         * expr.c (emit_group_load): Use extract_bit_field if
3204         needed for CONCAT arguments.
3205
3206 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
3207
3208         PR target/4863
3209         * arm.md (tablejump): Make this a define_expand.  For PIC add the
3210         offset to the base of the table.
3211         (thumb_tablejump): Matcher for Thumb tablejump insn.
3212         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
3213         as the difference of two labels.
3214         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3215         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
3216         tables in the code.
3217         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3218         * arm.c (get_jump_table_size): If the table is not in the text
3219         section, return zero.
3220
3221 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
3222
3223         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
3224         of gen_rtx_SUBREG.
3225         (arm_reload_out_hi): Use gen_lowpart instead of
3226         gen_rtx_SUBREG to access QImode components.
3227         * config/arm/arm.md: Disable zero_extend split for QImode
3228         subregs in BIG_ENDIAN mode.
3229         (storehi_bigend): Match use of least significant byte.
3230         (storeinthi): Remove extraneous SUBREG.
3231         Add missing construction of operands[2].
3232         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
3233         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
3234         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
3235
3236 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
3237
3238         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
3239         any_operand.
3240
3241 2002-03-17  Richard Henderson  <rth@redhat.com>
3242
3243         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
3244         explicitly.
3245
3246 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3247
3248         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
3249         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
3250
3251 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3252
3253         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
3254
3255         * predict.c (estimate_bb_frequencies): Delete unused variables.
3256
3257 2002-03-17  Richard Henderson  <rth@redhat.com>
3258
3259         * config/ia64/ia64.c (ia64_attribute_table): Move before
3260         targetm definition.  Make static.
3261
3262 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3263
3264         * c-common.h (yyparse, c_common_parse_file): New.
3265         * c-lang.c: Include c-common.h.
3266         (LANG_HOOKS_PARSE_FILE): Redefine.
3267         * c-lex.c: Include c-common.h.
3268         (yyparse): Rename c_common_parse_file.  Call yyparse.
3269         * c-parse.in (yyparse): Remove macro.
3270         * c-tree.h (yyparse_1): Remove.
3271         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
3272         (LANG_HOOKS_INITIALIZER): Update.
3273         * langhooks.h (struct lang_hoooks): New hook parse_file.
3274         * toplev.c (compile_file): Use parse_file hook.
3275         * tree.h (yyparse): Remove.
3276         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
3277
3278 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3279
3280         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
3281         float_truncate, not fix.
3282         ("*truncdfsf2_real"): Ditto.
3283         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
3284
3285         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
3286
3287 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
3288
3289         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
3290         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
3291         where appropriate.  Make the second reference to
3292         leaf_function_p a function call, as intended.  Reindented.
3293
3294         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
3295         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
3296
3297         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
3298         add register to non-constant into sp.
3299
3300         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
3301         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
3302         (mips16_gp_pseudo_rtx): Lose.
3303         (INIT_EXPANDERS): Deleted.
3304         * config/mips/mips.c (mips_init_machine_status): New.
3305         (mips_free_machine_status): New.
3306         (mips_mark_machine_status): New.
3307         (override_options): Set them.
3308         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
3309         (struct machine_function): ... new.  Replaced all references.
3310         (mips_add_gc_roots): Don't mark them.
3311         (embedded_pic_fnaddr_reg): New, extracted from...
3312         (embedded_pic_offset): ... here.
3313         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
3314         (movsi): Likewise.
3315
3316 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3317
3318         * cppinit.c: Revert -MD removal.
3319
3320 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3321
3322         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
3323         soft registers by default for 68HC12.
3324         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
3325         when compiling with -fomit-frame-pointer.
3326         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
3327         (expand_epilogue): Likewise.
3328         (m68hc11_gen_rotate): Use exg when rotating by 8.
3329
3330 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3331
3332         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
3333         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
3334         (splits): Remove unused add splits.
3335         ("*addhi3_68hc12"): Tune constraints.
3336         ("addhi_sp"): Try to use X instead of Y in all cases and if the
3337         constant fits in 8-bits and D is dead use abx/aby instructions.
3338         ("*addhi3"): Remove extern declaration of ix_reg.
3339         ("*subsi3"): Optimize and provide new split.
3340         ("subhi3"): Cleanup.
3341         ("*subhi3_sp"): Avoid saving X if we know it is dead.
3342         (arith splits): For 68hc12 save the address register on the stack
3343         and do the arithmetic operation with a pop.
3344
3345 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3346
3347         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
3348         allocating QImode in address registers.
3349         ("*movqi_m68hc11"): Likewise.
3350
3351 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
3352
3353         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
3354
3355 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3356
3357         * cppinit.c (print_help): Display -MD and -MMD.
3358         Don't display usage string.  Update assertion syntax and
3359         typo.
3360         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
3361         (cpp_handle_option): Update.
3362
3363 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
3364
3365         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
3366         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
3367         and define it so that regardless of target CPU size,
3368         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
3369         of "int" rather than "long."
3370
3371 2002-03-15  Richard Henderson  <rth@redhat.com>
3372
3373         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
3374         size as a tree.
3375
3376 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3377
3378         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
3379         ("tstqi" split): Avoid using memory for tstqi on address register.
3380         (splits): Remove constraints.
3381         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
3382         ("cmpdf", "cmpsf"): Remove since not used.
3383         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
3384         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
3385
3386 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3387
3388         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
3389         ("neghi2"): Tighten constraints.
3390         ("one_cmplsi2"): Optimize and simplify split.
3391         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
3392
3393 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3394
3395         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
3396         and split of AND operation to clear the upper bits.
3397         ("*logicalsi3_zextqi"): Likewise.
3398         ("*logicallhi3_zexthi_ashift8"): Likewise.
3399         ("*logicalsi3_silshr16"): Likewise.
3400         ("logicalsi3_silshl16"): Likewise.
3401         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
3402
3403 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3404
3405         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
3406         (m68hc11_indirect_p): New function.
3407         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
3408         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
3409         TARGET_M6812.
3410         (asm_print_register): Likewise.
3411         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
3412         (m68hc11_indirect_p): Declare.
3413         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
3414         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
3415         (TARGET_SWITCHES): New option -mrelax.
3416         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
3417         destination.
3418         ("iorsi3", "xorsi3"): Likewise.
3419         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
3420         ("*andhi3_mem"): New to handle destination in memory with bclr
3421         and a scratch register.
3422         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
3423         ("*andhi3_const"): New when operand2 is constant.
3424         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
3425         ("*andhi3_gen"): Cleanup of the old "andhi3".
3426         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
3427         ("xorqi3"): Update constraints.
3428
3429 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3430
3431         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
3432         for reg_equiv_memory_loc when the operand is a register that does
3433         not get a hard register (stack location).
3434         (tst_operand): After reload, accept all memory operand.
3435         (symbolic_memory_operand): Fix detection of symbolic references.
3436         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
3437         accept symbols and any constant.
3438
3439 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3440
3441         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
3442         note on the insn that sets the soft frame register.
3443         (must_parenthesize): ix and iy are also reserved names.
3444         (print_operand_address): One more place where parenthesis are required
3445         to avoid confusion with register names.
3446         (m68hc11_gen_movhi): Allow push of stack pointer.
3447         (m68hc11_check_z_replacement): Fix handling of parallel with a
3448         clobber.
3449         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
3450         the replacement register is.
3451         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
3452         and D8_REGS classes.
3453         (MODES_TIEABLE_P): All modes are tieable except QImode.
3454
3455 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3456
3457         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
3458         (___subdi3): Likewise.
3459         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
3460         (__map_data_section): Optimize 68hc11 case.
3461
3462 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3463
3464         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
3465         than a shift to avoid adding a register with itself.
3466         (m68hc11_memory_move_cost): Take into account NO_REGS.
3467         (m68hc11_register_move_cost): Update and use memory move cost
3468         for soft registers.
3469         (m68hc11_address_cost): Make cost of valid offset not 0 so that
3470         it gives more opportunities to cse to optimize.
3471         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
3472         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
3473
3474 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
3475
3476         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
3477         * c-common.def (CLEANUP_STMT): New tree node.
3478         * c-common.h (CLEANUP_DECL): New macro.
3479         (CLEANUP_EXPR): Likewise.
3480         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
3481         * expr.c (expand_expr): Tidy.
3482         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
3483         * tree-inline.c (initialize_inlined_parameters): Clean up
3484         new local variables.
3485
3486 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3487
3488         PR bootstrap/4128
3489         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
3490         before movrXX only, use reg_overlap_mentioned_p.
3491         Only special case NE if just one insn can be generated.
3492
3493 2002-03-15  Jason Merrill  <jason@redhat.com>
3494
3495         * varasm.c (assemble_variable): Call resolve_unique_section before
3496         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
3497         of error_mark_node.
3498
3499 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3500
3501         PR target/5170
3502         * arm.md (split pattern for thumb shiftable immediates): Add comment
3503         explaining non-obvious test.
3504
3505 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3506
3507         PR target/5712
3508         * arm.md (movaddr, movaddr_insn): Delete.
3509
3510 2002-03-15  Jason Merrill  <jason@redhat.com>
3511
3512         * toplev.c (wrapup_global_declarations): Clarify variable handling.
3513         -fkeep-static-consts doesn't apply to comdats.
3514
3515 2002-03-14  Richard Henderson  <rth@redhat.com>
3516
3517         * c-decl.c: Include c-pragma.h.
3518         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
3519         (finish_function): Tidy.
3520         * c-pragma.c: Include c-common.h.
3521         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
3522         (handle_pragma_weak): Use them.
3523         (init_pragma): Register pending_weaks.
3524         * c-pragma.h (maybe_apply_pragma_weak): Declare.
3525         * print-tree.c (print_node): Print DECL_WEAK.
3526         * varasm.c (mark_weak_decls): Remove.
3527         (remove_from_pending_weak_list): Remove.
3528         (add_weak): Remove.
3529         (asm_emit_uninitialised): Call globalize_decl for weak commons.
3530         (weak_decls): Make a tree_list.
3531         (declare_weak): Cons weak_decls directly.
3532         (globalize_decl): Remove weak_decls elements directly.
3533         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
3534         symbols.  Don't pretend to handle aliases.
3535         (init_varasm_once): Update weak_decls registry.
3536         * Makefile.in: Update dependencies.
3537
3538 2002-03-14  Richard Henderson  <rth@redhat.com>
3539
3540         PR target/5312
3541         * config/ia64/ia64.c: Include tm_p.h last.
3542         (gen_nop_type): Remove duplicate definition.
3543         (cycle_end_fill_slots): Set sched_data for second L slot.
3544         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
3545         (nop_cycles_until): Fix typos.
3546
3547 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3548
3549         PR optimization/5891
3550         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
3551
3552 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
3553
3554         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
3555           descriptors correctly.
3556
3557 2002-03-14  Michael Meissner  <meissner@redhat.com>
3558
3559         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
3560         100, allowing MAX_UNROLLED_INSNS to be overridden.
3561
3562         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
3563         --param.
3564
3565         * unroll.c (params.h): Include.
3566         (MAX_UNROLLED_INSNS): Delete, now in params.h.
3567
3568         * doc/invoke.texi (--param max-unroll-insns): Document.
3569
3570         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
3571
3572 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3573
3574         * arm.md: Fix warnings about constraints in peepholes and splits.
3575
3576 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
3577
3578         * cpphash.h (struct lexer_state): Remove line_extension member.
3579         * cpplib.c (dequote_string, do_linemarker): New functions.
3580         (linemarker_dir): New data object.
3581         (DIRECTIVE_TABLE): No longer need to interpret #line in
3582         preprocessed source.  Delete obsolete comment about return
3583         values of handlers.
3584         (end_directive, directive_diagnostics, _cpp_handle_directive):
3585         Don't muck with line_extension.
3586         (directive_diagnostics): No need to issue warnings for
3587         linemarkers here.
3588         (_cpp_handle_directive): Issue warnings for linemarkers here,
3589         when appropriate.  Dispatch linemarkers to do_linemarker, not
3590         do_line.
3591         (do_line): Code to handle linemarkers split out to do_linemarker.
3592         Convert escape sequences in filename argument, both places.
3593
3594         * cppmacro.c (quote_string): Rename cpp_quote_string and
3595         export.  All callers changed.
3596         * cpplib.h (cpp_quote_string): Prototype.
3597         * cppmain.c (print_line): Call cpp_quote_string on to_file
3598         before printing it.
3599
3600         * doc/cpp.texi: Document that escapes are now interpreted in
3601         #line and in linemarkers, and that non-printing characters are
3602         converted to octal escapes when linemarkers are generated.
3603
3604 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
3605
3606         * emit-rtl.c (try_split): Use delete_insns.
3607         * recog.c (split_all_insns): Fix terminating condition.
3608
3609 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3610             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
3611
3612         PR target/5828
3613         * arm.c (arm_output_epilogue): Fix floating-point register save
3614         adjustment when using a frame pointer.
3615
3616 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
3617
3618         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
3619         * config/mips/mips.c (compute_frame_size): Retrofit them here.
3620         (save_restore_insns, mips_expand_epilogue): And here.
3621         (build_mips16_call_stub): And here.
3622         (mips_function_value): Use the new macros to decide whether a single
3623         or complex float can be returned in floating-point registers.  Return
3624         a parallel rtx in the complex case.
3625
3626 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
3627
3628         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
3629         call after liveness analysis.
3630
3631         * recog.c (split_insn): Use delete_insn_and_edges.
3632
3633         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
3634         instructions to have branch prediction notes.
3635         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
3636
3637 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
3638
3639         * configure.in: Don't pass -Wno-long-long to a ADA compiler
3640         that doesn't support it.
3641         * configure: Regenerate.
3642
3643 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3644
3645         PR target/5626
3646         * config/sparc/sparc.md (normal_branch, inverted_branch,
3647         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3648         inverted_fp_branch): Adjust calls to output_cbranch.
3649         Set length attribute.
3650         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
3651         output_v9branch.  Set length attribute.
3652         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
3653         predicates.
3654         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
3655         (output_cbranch): Likewise.  Handle far branches.
3656         (output_v9branch): Handle far branches.
3657         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
3658         Adjust prototypes.
3659         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
3660         noov_compare64_op predicates.
3661
3662 2002-03-13  Jason Merrill  <jason@redhat.com>
3663
3664         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
3665         into the function and constify it.
3666         * gthr-dce.h, gthr-solaris.h: Likewise.
3667
3668 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
3669
3670         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
3671         * config/rs6000/rs6000.c (rs6000_va_arg): Use
3672         std_expand_builtin_va_arg if not ABI_V4.
3673
3674 2002-03-13  Jason Merrill  <jason@redhat.com>
3675
3676         * varasm.c (globalize_decl): New fn.
3677         (assemble_start_function): Use it.
3678         (asm_emit_uninitialized): Use it.
3679         (assemble_alias): Use it.
3680         (assemble_variable): Use it.
3681
3682 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
3683
3684         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
3685         2002-03-12 internal visibility change.
3686         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
3687         visibility into SYMBOL_REF_FLAG.
3688
3689 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
3690
3691         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
3692         VOIDmode operand.  Add compile-time optimization for constant results.
3693
3694 2002-03-12  Jason Merrill  <jason@redhat.com>
3695
3696         * c-typeck.c (convert_for_assignment): Don't allow conversions
3697         between pointers and references.  Only allow lvalues to convert to
3698         reference.
3699
3700 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
3701
3702         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
3703         before prologue, to avoid scheduling problems.
3704
3705 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3706
3707         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3708         (ELIMINABLE_REGS): Add sfp->sp.
3709         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
3710
3711 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3712
3713         PR optimization/5892
3714         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
3715
3716 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3717
3718         * loop.c (basic_induction_var): Don't call convert_modes if mode
3719         classes are different.
3720
3721 2002-03-12  Richard Henderson  <rth@redhat.com>
3722
3723         PR optimization/5901
3724         * function.c (reposition_prologue_and_epilogue_notes): Position
3725         the markers after/before the last/first insn not deleted.
3726
3727 2002-03-12  Richard Henderson  <rth@redhat.com>
3728
3729         PR optimization/5878
3730         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
3731         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
3732         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3733
3734         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
3735         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
3736         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
3737
3738         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
3739         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
3740         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
3741         also.  Don't set it if not flag_pic.
3742         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
3743         to be INVALID_REGNUM when not used.
3744
3745 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
3746
3747         * expmed.c (store_bit_field): Reset alias set for memory.
3748         (extract_bit_field): Same.
3749
3750 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3751
3752         * c-common.c (c_tree_code_type, c_tree_code_length,
3753         c_tree_code_name, add_c_tree_codes): Delete.
3754         * c-common.h (add_c_tree_codes): Delete.
3755         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
3756         Define.
3757         * c-objc-common.c (c_objc_common_init): Don't call
3758         add_c_tree_codes, instead set lang_unsafe_for_reeval.
3759         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3760         objc_tree_code_name, add_objc_tree_codes): Delete.
3761         (objc_init): Don't call add_objc_tree_codes.
3762         * objc/objc-lang.c (tree_code_type, tree_code_length,
3763         tree_code_name): Define.
3764         * toplev.c (lang_independent_init): Don't set
3765         tree_code_length[IDENTIFIER_NODE].
3766         * tree.c (tree_code_type, tree_code_length, tree_code_name):
3767         Delete definitions, moved to language front-ends.
3768         * tree.def (IDENTIFIER_NODE): Hardwire the length.
3769         * tree.h (tree_code_type, tree_code_length, tree_code_name):
3770         Const-ify.
3771         (tree_code_length): Change type to unsigned char.
3772
3773 2002-03-12  Richard Henderson  <rth@redhat.com>
3774
3775         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
3776         internal visibility change.
3777
3778 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3779
3780         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
3781         validize_mem() instead of change_address to avoid clobbering
3782         memory attributes.
3783
3784 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3785
3786         * c-lex.h (position_after_whitespace): Remove.
3787
3788 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
3789
3790         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
3791         (lex_string): Use unsigned char pointers.
3792
3793 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3794
3795         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3796         is not a valid memory_operand.
3797
3798 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3799
3800         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3801         * config/xtensa/lib1funcs.asm: Fix copyright to include
3802         special case for libgcc files.
3803         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3804         (__divsi3): Likewise.
3805         (__umodsi3): Likewise.
3806         (__modsi3): Likewise.
3807         * config/xtensa/lib2funcs.S: Fix copyright to include
3808         special case for libgcc files.
3809
3810 2002-03-12  Tom Rix  <trix@redhat.com>
3811
3812         * collect2.c (resolve_lib_name): Move outside of
3813         OBJECT_FORMAT_COFF ifdef.
3814         (ignore_library): Same.
3815
3816 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3817
3818         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3819
3820 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3821
3822         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3823         to function_section before writing out the constant pool.
3824
3825 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
3826
3827         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3828         zero_constant.
3829         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3830
3831 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
3832
3833         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3834         (adddi3): Likewise.
3835         (movdf): Likewise.
3836         (movdi): Likewise.
3837         (cmpsi splitter): Likewise.
3838         (modsi3): Fail if <= 0.
3839         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3840         redundant test when HOST_BITS_PER_WIDE_INT != 32.
3841         (reg_or_sub_cint64_operand): Likewise.
3842         (num_insns_constant_wide): Optimize sign extension.
3843         (rs6000_legitimize_address): Likewise.
3844
3845 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3846
3847         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3848         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3849
3850 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3851
3852         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3853         address calculation.
3854
3855 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3856
3857         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3858         scratch register to DImode / TImode.
3859         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3860         register used does not overlap the target.
3861
3862 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3863
3864         * Makefile.in (debug.o): Depend on debug.h.
3865         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3866         * debug.c (do_nothing_debug_hooks): Likewise.
3867         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3868         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3869         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3870         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3871         * dwarfout.c (dwarf_debug_hooks): Likewise.
3872         * integrate.c (output_inline_function): Likewise.
3873         * objc/objc-act.c (synth_module_prologue): Likewise.
3874         * sdbout.c (sdb_debug_hooks): Likewise.
3875         * toplev.c (debug_hooks): Likewise.
3876         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3877
3878 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3879
3880         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3881         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3882         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3883         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3884         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3885         * defaults.h (POINTER_SIZE): Define.
3886         * doc/tm.texi (POINTER_SIZE): Document default.
3887
3888 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3889
3890         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3891
3892 2002-03-11  Richard Henderson  <rth@redhat.com>
3893
3894         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3895         if rebuild_label_notes_after_reload.
3896
3897 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
3898
3899         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
3900         emit pic register load if "internal" visibility.
3901         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3902         (cris_expand_builtin_va_arg): Do all computations on trees.
3903
3904 2002-03-11  Richard Henderson  <rth@redhat.com>
3905
3906         * rtlanal.c: Include recog.h.
3907         (keep_with_call_p): Fix thinko.
3908         * Makefile.in (rtlanal.o): Update dependencies.
3909
3910 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
3911
3912         * genflags.c (gen_insn): Use IS_VSPACE.
3913         * genoutput.c (output_insn_data): Likewise.
3914         (process_template): Likewise.
3915
3916 2002-03-11  Richard Henderson  <rth@redhat.com>
3917
3918         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3919
3920 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3921
3922         * Makefile.in: Update.
3923         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3924         Update documentation.
3925         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3926         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3927
3928 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
3929
3930         * Makefile.in: Give texi2pod its input file as a command line
3931         argument, not on stdin.
3932
3933 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
3934             Daniel Berlin  <dan@dberlin.org>
3935
3936         C++ alias analysis improvement.
3937         * alias.c (record_component_aliases): Record aliases for base
3938         classes too.
3939
3940 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3941
3942         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3943
3944 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
3945
3946         * toplev.c (vms_fopen): Remove, not needed.
3947
3948         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3949
3950         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3951
3952         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3953         for FP, already done later.
3954
3955         * toplev.c (debug_args): Add entry for VMS_DEBUG.
3956         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3957
3958 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
3959
3960         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3961         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3962         LARGEST_EXPONENT_IS_NORMAL for the given mode.
3963         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3964         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3965         (ediv, emul, eldexp, esqrt): Likewise.
3966         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3967         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3968         (saturate): New function.
3969         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3970         (make_nan): Use a saturation value instead of a NaN if
3971         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
3972         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3973         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
3974         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
3975         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3976         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3977         !ROUND_TOWARDS_ZERO.
3978         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3979         (ROUND_TOWARDS_ZERO): Document.
3980
3981 2002-03-11  Andreas Jaeger  <aj@suse.de>
3982
3983         * cfg.c (dump_flow_info): Remove unused variable.
3984
3985 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
3986
3987         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
3988         computations on trees.
3989
3990 2002-03-10  Richard Henderson  <rth@redhat.com>
3991
3992         PR 5693:
3993         * reload.c (copy_replacements_1): New.
3994         (copy_replacements): Use it to recurse through the rtx.
3995
3996 2002-03-10  Richard Henderson  <rth@redhat.com>
3997
3998         * loop.c (strength_reduce): Compute number of iterations as
3999         unsigned HOST_WIDE_INT.
4000
4001 2002-03-10  Richard Henderson  <rth@redhat.com>
4002
4003         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
4004         to move away from the end of the block.
4005
4006 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4007
4008         PR preprocessor/5899
4009         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
4010
4011 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4012
4013         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
4014
4015         * attribs.c (decl_attributes): Fix signed/unsigned warning.
4016
4017 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
4018
4019         * config/mmix/mmix.c: Improve comments.
4020         (mmix_target_asm_function_prologue): Drop variable
4021         empty_stack_frame.  Don't allocate unused slot above fp.
4022         (mmix_target_asm_function_epilogue): Mirror prologue changes.
4023         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
4024         brace in first column.
4025         (enum reg_class): Ditto.
4026         (FIRST_PARM_OFFSET): Now 0.
4027         (USER_LABEL_PREFIX): Remove #if 0:d definition.
4028
4029 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4030
4031         * combine.c (make_extraction): Fix error in last change.
4032
4033 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4034
4035         * c4x.c (c4x_fp_reglist): Const-ify.
4036         * cris.c (cris_print_operand): Likewise.
4037         * i386.c (ix86_va_arg): Likewise.
4038         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
4039         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
4040         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
4041         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
4042         * mcore.h (regno_reg_class): Likewise.
4043         * mips.c (gen_int_relational): Likewise.
4044         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
4045         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
4046         * pdp11.c (move_costs): Likewise.
4047         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
4048         * s390.c (s390_branch_condition_mnemonic, regclass_map):
4049         Likewise.
4050         * s390.h (regclass_map): Likewise.
4051         * sh.c (shift_amounts): Likewise.
4052         * sh.md (rotlsi3): Likewise.
4053
4054 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
4055
4056         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
4057         (ne0+5): Use new clobber to generate proper shift pattern.
4058         Patch by Michael Matz <matz@kde.org>.
4059
4060 2002-03-09  Andreas Schwab  <schwab@suse.de>
4061
4062         * gcc.c (validate_all_switches): Also handle `%W{...}'.
4063
4064 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
4065
4066         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
4067
4068 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
4069
4070         PR middle-end/5877
4071         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
4072         even for non-representable constants.
4073
4074 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4075
4076         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
4077         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
4078         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
4079         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
4080         (pop_function_context): Compute MAY_SHARE parameter for
4081         fixup_var_refs.
4082         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
4083         (gen_mem_addressof): Call fixup_var_refs with new parm.
4084
4085         * combine.c (make_extraction): Don't make extension of CONST_INT.
4086
4087 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
4088
4089         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
4090         in o32 and o64 ABIs.
4091         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
4092         but getting fixed-size structs passed in registers regardless of
4093         padding in o32 and o64 ABIs.
4094
4095         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
4096         offset before loading address of argument passed by transparent
4097         reference.
4098
4099 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4100
4101         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
4102
4103 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
4104
4105         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
4106         marker such that registers after it are saved.
4107
4108 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4109
4110         * sparc.c (arith_4096_operand): Fix error in last change.
4111
4112 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
4113
4114         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
4115         defaults for MEABI.
4116
4117 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
4118
4119         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
4120         vectors.
4121
4122 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
4123
4124         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
4125
4126 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
4127
4128         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
4129         removed; fix return value.
4130         * combine.c (combine_instructions): Dirtify blocks where we failed to
4131         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
4132         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
4133
4134 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4135
4136         * gcse.c (insert_insn_end_bb): Fix typo in last change.
4137
4138 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
4139
4140         * recog.c (peephole2_optimize): Re-distribute EH edges.
4141
4142 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4143
4144         * expr.c (expand_expr): Use unsave lang hook.
4145         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
4146         (LANG_HOOKS_INITIALIZER): Update.
4147         * langhooks.h (struct lang_hooks): New hook unsave.
4148         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
4149         (unsave_expr_1): Remove unused lang_unsave_expr_now.
4150         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
4151         (unsave_expr_now): Remove.
4152         * tree.h (unsave_expr_now, lang_unsave,
4153         lang_unsave_expr_now): Remove.
4154         (lhd_unsave): New.
4155
4156 2002-03-08  Andreas Jaeger  <aj@suse.de>
4157
4158         * flow.c (propagate_block_delete_insn): Remove unused variable.
4159
4160 2002-03-08  Kazu Hirata  <kazu@hxi.com>
4161
4162         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
4163         insn length for memory load/store.
4164
4165 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4166
4167         * doc/install.texi (--with-libiconv-prefix): Document.
4168
4169 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
4170
4171         * doc/sourcebuild.texi: Fix typo.
4172
4173 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
4174
4175         PR c/3711
4176         * builtins.c (std_expand_builtin_va_arg): Do all computations on
4177         trees.
4178
4179 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4180
4181         * rtl.c (copy_most_rtx): Move from here ...
4182         * emit-rtl.c (copy_most_rtx): ... to here.
4183
4184 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
4185
4186         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
4187         SUBTARGET_CPP_SIZE_SPEC.
4188         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
4189
4190         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
4191
4192 2002-03-07  Matt Hiller  <hiller@redhat.com>
4193
4194         * gensupport.c (first_dir_md_include): Renamed from include;
4195         change all references.
4196         (last_dir_md_include): Renamed from last_include; change all
4197         references.
4198         (init_md_reader): Unconditionally initialize base_dir whether or
4199         not filename is a relative path.
4200
4201 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
4202
4203         * config/fp-bit.c (_unord_f2): Compile it in even if
4204         US_SOFTWARE_GOFAST is enabled.
4205
4206         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
4207         NULL_RTX.  Set all HFmode operations as NULL_RTX.
4208         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
4209         NULL_RTX, try reversing the comparison and the operands.
4210
4211 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4212
4213         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
4214         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
4215         and MATCH_OP_DUP.
4216
4217 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
4218
4219         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
4220
4221 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4222
4223         * basic-block.h (fixup_abnormal_edges): Declare.
4224         * reload1.c (fixup_abnormal_edges): New function.
4225         * reg-stack.c (convert_regs): Use it.
4226
4227         * gcse.c (insert_insn_end_bb): Handle trapping insns.
4228
4229         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
4230
4231 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
4232
4233         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
4234         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
4235         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
4236         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
4237         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
4238         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
4239         unless x and y could be infinite.
4240         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
4241         Check that the common type of both arguments is a real, even for
4242         targets without unordered comparisons.  Allow an integer argument
4243         to be compared against a real.
4244         (expand_tree_builtin): Use expand_unordered_cmp.
4245         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
4246         * cse.c (fold_rtx): Likewise.  Fix indentation.
4247         * fold-const.c (fold_real_zero_addition_p): New.
4248         (fold): Use it, and the new HONOR_... macros.
4249         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
4250         * jump.c (reversed_comparison_code_parts): After searching for
4251         the true comparison mode, use HONOR_NANS to decide whether it
4252         can be safely reversed.
4253         (reverse_condition_maybe_unordered): Remove IEEE check.
4254         * simplify-rtx.c (simplify_binary_operation): Use the new macros
4255         to decide which simplifications are valid.  Allow the following
4256         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
4257         and (a - -b) to (a + b).
4258         (simplify_relational_operation): Use HONOR_NANS.
4259         * doc/tm.texi: Document the MODE_HAS_... macros.
4260
4261 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
4262
4263         * combine.c (simplify_comparison): If simplifying a logical shift
4264         right and compare with constant, force the comparison to unsigned.
4265
4266 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
4267
4268         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
4269
4270         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
4271         -mabi=no-altivec
4272         (alt_reg_names): Remove % for vrsave.
4273
4274 2002-03-06  Richard Henderson  <rth@redhat.com>
4275
4276         PR optimization/5844
4277         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
4278         if used indicates we've already emitted one copy of an operand.
4279         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
4280         (gen_split): Supply a non-null used.
4281
4282 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
4283
4284         * reload1.c (reload): Unshare all rtl after reload is done.
4285
4286         * simplify-rtx.c (simplify_plus_minus): Do not abort,
4287         but simply fail if the expression is too complex to simplify.
4288         (simplify_gen_binary): Handle simplify_plus_minus failures.
4289
4290 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
4291
4292         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
4293         consistently call delete_trivially_dead_insns after CSE and GCSE;
4294         fix DFI_life dumping; do jump threading after liveness; do crossjumping
4295         after liveness2; update comment in last crossjumping.
4296         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
4297
4298 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
4299
4300         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
4301         after completing fast dead code elimination.
4302
4303         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
4304         COMPARE operator.
4305
4306 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
4307
4308         * version.c:  Fix misplaced leading blanks on first line.
4309
4310 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
4311
4312         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
4313
4314 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
4315
4316         * cfgcleanup.c (mentions_nonequal_regs): New function.
4317         (thread_jump): Use it.
4318         * toplev.c (rest_of_compilation): Run jump threading after
4319         liveness.
4320
4321 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
4322
4323         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
4324         patch.
4325
4326 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4327
4328         * predict.c (estimate_bb_frequencies): Do not reload the
4329         frequencies from notes.
4330
4331 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
4332
4333         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
4334         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
4335
4336         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
4337         delete_noop_moves): Return indeger.
4338         * flow.c (ndead): New variable.
4339         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
4340         BB argument; update callers.
4341         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
4342         (life_analysis): Do not call purge_all_dead_edges.
4343         (update_life_info): Return number of deleted insns; print statistics.
4344         (update_life_info_in_dirty_blocks): likewise.
4345         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
4346         return number of insns deleted.
4347
4348         * cse.c: Include timevar.h
4349         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
4350         iterate until stabilizes; print statistics; return number of killed
4351         insns.
4352         * Makefile.in: (cse.o): Add timevar.h dependency
4353         * rtl.h (delete_trivially_dead_insns): New.
4354         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
4355         * toplev.c (rest_of_compilation): Update callers.
4356
4357         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
4358         (try_optimize_cfg): Do not update liveness.
4359         (cleanup-cfg): Loop until try_optimize_cfg and dead code
4360         removal stabilizes; use delete_trivially_dead_insns.
4361
4362         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
4363
4364 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
4365
4366         * cppmain.c (setup_callbacks): Disable #pragma and #ident
4367         callbacks when processing assembly language.
4368
4369 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4370
4371         * pa.h (ASM_FILE_END): Define.
4372         * som.h (ASM_FILE_END): Delete.
4373
4374         * pa.c (function_arg): Don't pass floats in general registers in
4375         indirect calls if TARGET_ELF32.
4376
4377 2002-03-05  Richard Henderson  <rth@redhat.com>
4378
4379         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
4380
4381 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
4382
4383         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
4384
4385 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4386
4387         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
4388         -r command line.  Don't hide any symbols if not building
4389         shared libgcc.
4390
4391 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
4392
4393         * cfg.c (dump_flow_info): Warn about profile mismatches.
4394         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
4395         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
4396
4397 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4398
4399         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
4400         wide volatile memory by parts.
4401
4402 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4403
4404         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
4405         is NULL.
4406
4407 2002-03-05  Richard Henderson  <rth@redhat.com>
4408
4409         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
4410
4411 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4412
4413         * toplev.c (documented_lang_options): Document more
4414         language-specific options.
4415         * doc/invoke.texi (Warning Options): Correct documentation for
4416         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
4417         * c-decl.c (c_decode_option): Use a table to handle warning options.
4418
4419 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
4420
4421         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
4422         parameter to mmix_encode_section_info.
4423         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
4424         relocatably.  Always produce ELF, not mmo if linking relocatably.
4425         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
4426         first is non-zero, don't add symbol prefix.
4427         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
4428         prototype accordingly.
4429
4430 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
4431
4432         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
4433
4434 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4435
4436         * configure.in: Increase required makeinfo version to 4.1.
4437         * configure: Regenerate.
4438
4439 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4440
4441         * .cvsignore: Remove *.info* and genrtl*; these files are generated
4442         elsewhere now.
4443
4444 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4445
4446         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
4447         * doc/invoke.texi: Fix @math uses.
4448
4449 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4450
4451         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
4452         removal
4453
4454 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
4455
4456         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
4457         (powerpc-*-eabisimaltivec*): Same.
4458
4459         * config/rs6000/t-ppcendian: New.
4460
4461 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4462
4463         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
4464         nonimmediate_src_operand and nonimmediate_lsrc_operand to
4465         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
4466
4467 2002-03-03  Richard Henderson  <rth@redhat.com>
4468
4469         * toplev.c (rest_of_decl_compilation): Revert last two changes.
4470
4471 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
4472
4473         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
4474         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
4475         tree.c, config/m68k/m68k.c:
4476         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
4477         REAL_ARITHMETIC blocks unconditional.  Delete some further
4478         #ifdef blocks predicated on REAL_ARITHMETIC.
4479         * flags.h, toplev.c: Delete remaining references to
4480         flag_pretend_float.
4481
4482         * doc/invoke.texi: Remove documentation of -fpretend-float.
4483         * doc/tm.texi: Describe the various REAL_* macros as provided by
4484         real.h, not by the target configuration files.
4485
4486         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
4487         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
4488         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
4489         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
4490         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
4491         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
4492         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
4493         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
4494         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
4495         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
4496         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
4497         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
4498         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
4499         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
4500         config/xtensa/xtensa.h:
4501         Do not define, undefine, or mention in comments any of
4502         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
4503         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
4504         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
4505         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
4506         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
4507         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
4508         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
4509         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
4510         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
4511
4512 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4513
4514         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
4515         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
4516         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
4517         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
4518         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
4519         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
4520         Delete.
4521         * defaults.h (BITS_PER_WORD): Define.
4522         * doc/tm.texi (BITS_PER_WORD): Document default value.
4523
4524         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
4525         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
4526         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
4527
4528 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4529
4530         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
4531         lieu of explicit sizeof/sizeof.
4532         * i386.c (override_options, ix86_init_mmx_sse_builtins,
4533         ix86_expand_builtin): Likewise.
4534         * mips.c (mips_add_gc_roots): Likewise.
4535         * mmix.c (mmix_output_condition): Likewise.
4536         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
4537         altivec_init_builtins): Likewise.
4538         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
4539         * cppexp.c (Nsuff, parse_number): Likewise.
4540         * cppinit.c (builtin_array_end): Likewise.
4541         * gcc.c (n_default_compilers, process_command): Likewise.
4542         * genpreds.c (output_predicate_decls): Likewise.
4543         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
4544         * lcm.c (N_ENTITIES): Likewise.
4545         * stor-layout.c (set_sizetype): Likewise.
4546
4547 2002-03-03  Richard Henderson  <rth@redhat.com>
4548
4549         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
4550         for types or labels.
4551
4552 2002-03-03  Richard Henderson  <rth@redhat.com>
4553
4554         * c-decl.c (start_decl): Initialized variables are not common.
4555
4556 2002-03-02  Per Bothner  <per@bothner.com>
4557
4558         * gcc.c (option_map):  Suport new --bootclasspath option.
4559         --CLASSPATH is now just an alias for --classpath.
4560
4561 2002-03-02  Richard Henderson  <rth@redhat.com>
4562
4563         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
4564         load if "internal" visibility.
4565         * doc/extend.texi: Document visibility meanings.
4566
4567 2002-03-02  Richard Henderson  <rth@redhat.com>
4568
4569         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
4570         to functions as well.
4571
4572 2002-03-02  Richard Henderson  <rth@redhat.com>
4573
4574         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
4575         (handle_visibility_attribute): Don't call assemble_visibility.
4576         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
4577         without asmspec.  Invoke assemble_alias when needed.
4578         * varasm.c (maybe_assemble_visibility): New.
4579         (assemble_start_function, assemble_variable, assemble_alias): Use it.
4580
4581 2002-03-02  Richard Henderson  <rth@redhat.com>
4582
4583         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
4584         invoke ENCODE_SECTION_INFO with first call flag.
4585
4586         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
4587         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4588         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
4589         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
4590         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
4591         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
4592         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
4593         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
4594         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
4595         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
4596         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4597         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
4598         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
4599         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
4600         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4601         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
4602         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
4603         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
4604         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
4605         config/sh/sh.h, config/sparc/sparc.h,
4606         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
4607         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
4608         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
4609         FIRST argument.  As needed, examine it and do nothing.
4610
4611         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
4612         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
4613         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
4614
4615         * config/arm/t-pe (pe.o): Add dependencies.
4616
4617 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4618
4619         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
4620         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
4621         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
4622         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
4623         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
4624         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
4625         * defaults.h (BITS_PER_UNIT): Define.
4626         * doc/tm.texi (BITS_PER_UNIT): Document default value.
4627
4628 2002-03-02  Kazu Hirata  <kazu@hxi.com>
4629
4630         * config/h8300/h8300-protos.h: Add a prototype for
4631         compute_a_shift_length.
4632         * config/h8300/h8300.c (h8300_asm_insn_count): New.
4633         (compute_a_shift_length): Likewise.
4634         (h8300_adjust_insn_length): Do not adjust insn length of shift
4635         insns.
4636         * config/h8300/h8300.md (anonymous shift patterns): Use
4637         compute_a_shift_length.
4638
4639 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4640
4641         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
4642         trunc_int_for_mode.
4643
4644         * emit-rtl.c (offset_address): Call update_temp_slot_address.
4645
4646 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4647
4648         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
4649         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
4650         * flags.h (flag_zero_initialized_in_bss): Declare.
4651         * toplev.c (flag_zero_initialized_in_bss): New flag.
4652         (lang_independent_options): Add flag_zero_initialized_in_bss.
4653         * tree.c (initializer_zerop): New function.
4654         * tree.h (initializer_zerop): Declare.
4655         * varasm.c (assemble_variable): If we can emit bss, put zero
4656         initializers in the bss section.
4657
4658 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
4659
4660         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
4661         like more than one symbol per .weak directive.
4662
4663 2002-03-01  Richard Henderson  <rth@redhat.com>
4664
4665         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
4666         adjust argument_pointer by pretend_args_size.
4667         (ia64_va_start): Adjust va_start address by -pretend_args_size.
4668
4669 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4670
4671         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
4672
4673 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
4674
4675         * toplev.c (rest_of_compilation): Delete dead jumptables before
4676         loop.
4677         * flow.c (delete_dead_jumptables): Make global.
4678         * rtl.h (delete_dead_jumptables): Declare.
4679
4680 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
4681
4682         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
4683         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
4684         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
4685
4686 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4687
4688         * config/h8300/h8300-protos.h: Fix formatting.
4689         * config/h8300/h8300.c: Likewise.
4690         * config/h8300/h8300.h: Likewise.
4691
4692 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4693
4694         * config/h8300/h8300.c (print_operand): Support 16-bit
4695         constant addresses.
4696         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
4697
4698 2002-02-28  Richard Henderson  <rth@redhat.com>
4699
4700         * expmed.c (store_bit_field): Prevent generation of CONCATs;
4701         pun complex values as integers; use gen_lowpart instead of
4702         gen_rtx_SUBREG.
4703         (extract_bit_field): Likewise.
4704
4705 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
4706             David Edelsohn  <edelsohn@gnu.org>
4707
4708         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
4709         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
4710         (SUPPORTS_WEAK): Likewise.
4711         * output.h (add_weak): Add tree param.
4712         * varasm.c (add_weak): Likewise.  Save decl.
4713         (struct weak_syms): Add decl field.
4714         (mark_weak_decls): New function.
4715         (init_varasm_once): ggc_add_root mark_weak_decls.
4716         (assemble_start_function): Use ASM_WEAKEN_DECL.
4717         (assemble_variable): Likewise.
4718         (assemble_alias): Likewise.
4719         (declare_weak): Pass decl to add_weak.
4720         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
4721         (remove_from_pending_weak_list): Declare and define for
4722         ASM_WEAKEN_DECL.
4723         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
4724         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
4725         * defaults.h (SUPPORTS_WEAK): Likewise.
4726         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4727         .weak for code sym.  Do emit .size for descriptor sym.
4728         (ASM_DECLARE_FUNCTION_SIZE): Define.
4729         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
4730         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
4731         .lglobl unless TARGET_XCOFF.  Formatting fixes.
4732         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4733         .weak for code sym.
4734         (HANDLE_PRAGMA_WEAK): Remove.
4735         (ASM_WEAKEN_LABEL): Remove.
4736         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
4737
4738 2002-03-01  Jason Merrill  <jason@redhat.com>
4739
4740         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
4741         (TARGET_EXPR_CLEANUP): New macro.
4742
4743 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
4744
4745         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
4746         to take ptr_extend into account as third type of extension.
4747         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
4748         fields used by SUBREG_PROMOTED_UNSIGNED_P.
4749         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
4750         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
4751         * calls.c (precompute_arguments): Use new macro.
4752         (expand_call): Ditto.
4753         * combine.c (nonzero_bits): Ditto.
4754         (record_promoted_value): Ditto.
4755         * expr.c (store_expr): Ditto.
4756         (expand_expr): Ditto.
4757         * function.c (assign_parms): Ditto.
4758
4759 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
4760
4761         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
4762         override -shared and -shared-libgcc.
4763
4764 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
4765
4766         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
4767         of "ultrasparc".
4768         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
4769         to be broken.
4770
4771 2002-02-28  Richard Henderson  <rth@redhat.com>
4772
4773         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
4774         4 cycle latency from MM producers.
4775         (ia64_internal_sched_reorder): Likewise with pipeline flush.
4776
4777 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
4778
4779         * mklibgcc.in: Don't use GNU make extension.
4780
4781 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4782
4783         * c-parse.in (STATIC): New terminal.
4784         (scspec): New non-terminal.  Update productions accordingly.
4785         (program): Remove bogus ifc / end ifc.
4786         (array_declarator): Simplify production using STATIC.
4787
4788 2002-02-28  Jim Meyering  <meyering@lucent.com>
4789
4790         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
4791         \a still means TARGET_BELL.
4792
4793 2002-02-28  Richard Henderson  <rth@redhat.com>
4794
4795         * haifa-sched.c (sched_emit_insn): New.
4796         (schedule_block): Use last_scheduled_insn to track last insn.
4797         * sched-int.h (sched_emit_insn): Prototype.
4798         * config/ia64/ia64.c (last_issued): Remove.
4799         (ia64_variable_issue): Don't set it.
4800         (nop_cycles_until): Use sched_emit_insn.
4801
4802 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
4803
4804         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
4805         extended constants.
4806
4807 2002-02-28  Kazu Hirata  <kazu@hxi.com>
4808
4809         * config/h8300/h8300.c: Fix formatting.
4810         * config/h8300/h8300.h: Likewise.
4811
4812 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4813
4814         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
4815         which may overwrite the high byte of the frame pointer.
4816
4817 2002-02-28  Bo Thorsen  <bo@suse.de>
4818
4819         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
4820         (STARTFILE_SPEC): Add 64 bit files.
4821         (ENDFILE_SPEC): Likewise.
4822
4823 2002-02-28  Jason Merrill  <jason@redhat.com>
4824
4825         * c-decl.c (finish_function): Only warn about missing return
4826         statement with -Wreturn-type.
4827
4828 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4829
4830         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
4831
4832         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
4833         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
4834
4835 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4836
4837         * basic-block.h (BB_REACHABLE): Renumber.
4838         (BB_DIRTY, BB_NEW): New flags.
4839         (clear_bb_flags): Declare.
4840         (update_life_info_in_dirty_blocks): Declare.
4841         * cfg.c (clear_bb_flags): New function.
4842         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
4843         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
4844         reorder_insns, emit_insn_after): Mark block as dirty.
4845         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
4846         (update_life_info_in_dirty_blocks): New function.
4847         * recog.c (apply_change_group): Dirtify block.
4848
4849         * cse.c (cse_insn): Reorder emitting of jump insn to keep
4850         cfg consistent.
4851         * gcse.c (delete_null_pointer_checks): Likewise.
4852
4853         * toplev.c (dump_file_index): Move cse2 after bp,
4854         add DFI_null
4855         (dump_file_info): Similary.
4856         (rest_of_compilation): Avoid most of CFG rebuilds;
4857         do first if converision after null pointer checks, do cse2
4858         after branch prediction; avoid full liveness rebuild after
4859         initializing subregs.
4860         * invoke.texi (-d options): Document -du, renumber.
4861
4862         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
4863         (notice_new_block): Do not set BB_UPDATE_LIFE.
4864         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
4865          merge_blocks_move_successor_nojumps, merge_blocks,
4866          try_crossjump_to_edge): Likewise.
4867         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
4868         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
4869         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
4870         (merge_of_block): Do not use life_data_ok.
4871         (find_if_case_1): Do not use SET_UPDATE_LIFE.
4872         (if_convert): Use BB_DIRTY mechanizm to update life.
4873         * lcm.c (optimize_mode_switching): Update
4874         update_life_info_in_dirty_blocks
4875
4876 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4877
4878         * Makefile.in (integrate.o): Update.
4879         * c-decl.c (copy_lang_decl): Rename.
4880         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4881         * integrate.c: Include langhooks.h.
4882         (copy_decl_for_inlining): Update to use langhook.
4883         * langhooks-def.h (lhd_do_nothing_t,
4884         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
4885         (LANG_HOOKS_INITIALIZER): Update.
4886         * langhooks.c (lhd_do_nothing_t): New.
4887         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
4888         * tree.h (copy_lang_decl): Remove.
4889 objc:
4890         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4891
4892 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
4893
4894         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
4895         POST_DEC, and POST_MODIFY.
4896
4897 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4898
4899         * c-typeck.c (digest_init): Remove unused parameter; all
4900         callers changed.
4901
4902 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
4903
4904         * expmed.c (expand_shift): Correctly test for low part of a
4905         subreg.
4906
4907 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
4908
4909         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
4910         insn UIDs with insn addresses.
4911
4912 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4913
4914         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
4915         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
4916         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
4917         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
4918         gcc.c, toplev.c: Delete code implementing -traditional mode.
4919
4920         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
4921         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
4922         Document removal of -traditional mode for compilation, and
4923         remove documentation only relevant to that mode.
4924
4925         * config/nextstep.h, config/ptx4.h, config/svr4.h,
4926         config/convex/convex.h, config/d30v/d30v.h,
4927         config/i386/dgux.h, config/i386/osf1elf.h,
4928         config/i386/osfelf.h, config/i386/osfrose.h,
4929         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
4930         config/m68k/hp310.h, config/m88k/dgux.h,
4931         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
4932         config/m88k/m88k.h, config/m88k/openbsd.h,
4933         config/mips/abi64.h, config/mips/osfrose.h,
4934         config/mips/svr4-5.h, config/mips/svr4-t.h,
4935         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
4936         config/stormy16/stormy16.h: Remove all references to
4937         -traditional from target specs.  Delete all mention of the
4938         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
4939         delete a couple of commented-out definitions of
4940         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
4941         to -traditional.
4942
4943         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
4944         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
4945
4946 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4947
4948         * mklibgcc.in: Don't use \n in a line subject to
4949         interpretation by echo.
4950
4951 2002-02-27  Graham Stott  <grahams@redhat.com>
4952
4953         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
4954         Constify NAME.
4955
4956         * loop.c (prescan_loop): Handle PARALLEL.
4957
4958         * unroll.c (loop_iterations): Return 0 if the add_val for
4959         a BIV is REG.
4960
4961         * final.c (output_operand_lossage): Constify PFX_STR.
4962
4963         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
4964
4965 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4966
4967         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
4968         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
4969
4970 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
4971
4972         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4973
4974 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4975
4976         * cpplex.c (_cpp_lex_token): Handle directives in macro
4977         arguments.
4978         * cpplib.c (_cpp_handle_directive): Save and restore state
4979         if parsing macro args when entering a directive.
4980         * cppmacro.c (collect_args): No need to handle directives
4981         in macro arguments.
4982         (enter_macro_context, replace_args): Use the original macro
4983         definition in case it was redefined whilst collecting arguments.
4984 doc:
4985         * cpp.texi: Update.
4986
4987 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
4988
4989         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
4990         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
4991         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
4992         method on AIX.
4993         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
4994         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
4995         (load_toc_v4_PIC_2): Same.
4996
4997 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
4998
4999         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
5000
5001 2002-02-26  Richard Henderson  <rth@redhat.com>
5002
5003         * config/alpha/alpha.md (ashldi_se): Re-enable.
5004
5005 2002-02-26  Richard Henderson  <rth@redhat.com>
5006
5007         * config/alpha/alpha.c (alpha_encode_section_info): Examine
5008         MODULE_LOCAL_P; improve commentary.
5009
5010 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
5011
5012         * doc/cpp.texi: Clarify documentation of relationship between
5013         #line and #include.
5014
5015 2002-02-26  Kazu Hirata  <kazu@hxi.com>
5016
5017         * config/h8300/h8300-protos.h: Update the prototype for
5018         compute_logical_op_length.  Add the prototype for
5019         compute_logical_op_cc.
5020         * config/h8300/h8300.c (compute_logical_op_length): Figure out
5021         code from operands.
5022         (compute_logical_op_cc): New.
5023         * config/h8300/h8300.md: Combine all the logical op patterns
5024         in HImode and SImode.  Use compute_logical_op_cc.
5025
5026 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
5027
5028         * config/i386/i386.c (print_operand): Don't append ATT-style
5029         length suffixs to x87 opcodes when in Intel mode.
5030
5031 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
5032
5033         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
5034         (init_emit_once): Update calls.
5035         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
5036         (init_syntax_once): Prototype.
5037
5038 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5039
5040         * pa-linux.h (LIB_SPEC): Update definition.
5041         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
5042
5043 2002-02-26  Richard Henderson  <rth@redhat.com>
5044
5045         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
5046         if we emitted a stop bit.
5047
5048 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
5049
5050         * configure.in (libgcc_visibility): Substitute.
5051         * configure: Rebuilt.
5052         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
5053         defined symbols .hidden.
5054
5055 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
5056
5057         * attribs.c (c_common_attribute_table): Add visibility.
5058         (handle_visibility_attribute): New function.
5059         * varasm.c (assemble_visibility): New function.
5060         * output.h (assemble_visibility): Add prototype.
5061         * tree.h (MODULE_LOCAL_P): Define.
5062         * crtstuff.c (__dso_handle): Use visibility attribute.
5063         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
5064         for MODULE_LOCAL_P symbols too.
5065         * config/ia64/ia64.c (ia64_encode_section_info): Handle
5066         MODULE_LOCAL_P symbols the same way as local symbols.
5067         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
5068         into .sdata/.sbss by the user.
5069         * doc/extend.texi (Function Attributes): Document visibility
5070         attribute.
5071
5072 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
5073
5074         PR debug/5770
5075         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
5076         STRING_CST initializer spanning the whole variable without
5077         embedded zeros.
5078         If expand_expr returned MEM, don't use it.
5079
5080 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
5081
5082         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
5083         generate a die for the lexical block.
5084
5085 2002-02-26  Kazu Hirata  <kazu@hxi.com>
5086
5087         * config/h8300/h8300-protos.h: Add a prototype for
5088         compute_logical_op_length.
5089         * config/h8300/h8300.c (compute_logical_op_length): New.
5090         * config/h8300/h8300.md (anonymous logical patterns): Use
5091         compute_logical_op_length for length.
5092
5093 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
5094
5095         * dwarf2out.c (modified_type_die): Do not call type_main_variant
5096         for vectors.
5097         (gen_type_die): Same.
5098
5099         * attribs.c (handle_vector_size_attribute): Set debug information.
5100
5101 2002-02-26  Daniel Egger  <degger@fhm.edu>
5102
5103         * config/rs6000/rs6000.md: Swap define_insn attributes to
5104         fix incorrect generation of merge high instructions instead
5105         of merge low.
5106
5107 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
5108
5109         * c-typeck.c (really_start_incremental_init): Use
5110         bitsize_zero_node for vectors.
5111
5112 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
5113
5114         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
5115         ("*set_vrsave_internal"): Same.
5116
5117 2002-02-25  Richard Henderson  <rth@redhat.com>
5118
5119         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
5120         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
5121
5122 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
5123
5124         PR target/5755
5125         * config/i386/i386.c (ix86_return_pops_args): Only pop
5126         fake structure return argument if it was passed on the stack.
5127
5128 2002-02-25  Jason Merrill  <jason@redhat.com>
5129
5130         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
5131         RESULT_DECL.
5132
5133 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
5134
5135         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
5136         link with shared_name only.
5137         * doc/invoke.texi (Link Options): Document new behavior.
5138
5139 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
5140
5141         * c-typeck.c (push_init_level): Handle vectors.
5142
5143 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
5144
5145         * config/sparc/sparc.c (const64_high_operand): Zero-extend
5146         operands of SPARC_SETHI_P.
5147         (input_operand): Likewise.
5148         (sparc_emit_set_const32): Likewise.
5149         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
5150         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
5151         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
5152         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
5153         (movdi_insn_sp64_vis): Likewise.
5154         (movdi split, movdf split): Use SETHI32.
5155         * doc/md.texi: Document SPARC constraints L, M and N.
5156
5157 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
5158
5159         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
5160         ("*set_vrsave_internal"): use mfspr for Darwin.
5161
5162         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
5163         gen_get_vrsave_internal.
5164
5165 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5166
5167         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
5168
5169 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5170
5171         * cpplex.c (cpp_interpret_charconst): Get signedness or
5172         otherwise of wide character constants correct.
5173         * cppexp.c (lex): Get signedness of wide charconsts correct.
5174
5175 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5176
5177         * optabs.c (widen_operand): Only call convert_modes for
5178         promoted SUBREG if signedness matches.
5179         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
5180
5181 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5182
5183         * cpplib.c (glue_header_name): Use local buffer to build up
5184         header name.
5185
5186 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5187
5188         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
5189
5190 2002-02-23  Kazu Hirata  <kazu@hxi.com>
5191
5192         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
5193         H8/300[HS] separately.
5194         * config/h8300/h8300.md: Remove the early clobber constraint
5195         from bit field patterns.
5196
5197 2002-02-23  Kazu Hirata  <kazu@hxi.com>
5198
5199         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
5200         register_operand.
5201         (mulhisi3): Likewise.
5202         (umulqisi3): Likewise.
5203         (umulhisi3): Likewise.
5204
5205 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5206
5207         * cppinit.c (output_deps): Correct test for stdout output.
5208         (init_dependency_output): Cure warning.
5209
5210 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5211
5212         * expr.c (store_expr): When converting expression to promoted
5213         equivalent type, allow using SUBREG_REG of TARGET as the target
5214         of the expansion of EXP.
5215         * loop.c (basic_induction_var, case SUBREG): Always look inside.
5216         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
5217         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
5218         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
5219         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
5220
5221 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
5222
5223         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
5224         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
5225         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
5226
5227 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
5228
5229         PR optimization/5747
5230         * loop.c (scan_loop): Update reg info if move_movables created new
5231         pseudos.
5232
5233 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
5234
5235         * gcc.c (init_gcc_spec): Revert last change.
5236
5237 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
5238
5239         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
5240         gpc_reg_operand constraint.
5241
5242 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
5243
5244         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
5245         Simplify comparison of `low'.
5246         (add_operand): Fix formatting.
5247         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
5248         (mask_operand): Disallow mask to wrap in 64-bit mode.
5249         (rs6000_stack_info): Remove redundant test setting push_p.
5250         (output_toc): Fix formatting.
5251         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
5252         cc_reg_not_cr0_operand constraint.
5253         (booldi3, boolcdi3 splitters): Same.
5254
5255 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
5256
5257         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
5258
5259 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
5260
5261         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
5262         gcc invoked with -shared-libgcc.
5263
5264 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
5265
5266         PR c++/5748
5267         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
5268         decl if any of elements was TREE_USED.
5269
5270 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
5271
5272         * config/sparc/sol2.h: Don't include sys/mman.h.
5273         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
5274         (arith_4096_operand): Don't throw high bits away.
5275         (const64_operand): Take sign extension of CONST_INTs into account.
5276         (const64_high_operand, sparc_emit_set_const32): Likewise.
5277         (GEN_HIGHINT64): Likewise.
5278         (sparc_emit_set_const64_quick1): Likewise.
5279         (const64_is_2insns): Likewise.
5280         (print_operand): Use trunc_int_for_mode for sign extension.
5281         * config/sparc/sparc.h (SMALL_INT32): Likewise.
5282         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
5283         chars.  Assume CONST_INT is already properly sign-extended.
5284         (movdi split): Sign-extend each SImode part.
5285         (andsi3 split): Don't mask high bits off, so that result
5286         remains properly sign-extend.
5287         (iorsi3 split): Likewise.
5288         (xorsi3 split): Likewise.
5289
5290 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
5291
5292         * fold-const.c (fold): Fix typo in comments.
5293
5294 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
5295
5296         * Makefile.in (langhooks.o): Update dependencies.
5297
5298 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
5299
5300         * langhooks.c: Include flags.h.
5301
5302 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
5303
5304         * testsuite/gcc.dg/attr-alwaysinline.c: New.
5305
5306         * c-common.c (c_common_post_options): Set inline trees by
5307         default.
5308
5309         * doc/extend.texi (Function Attributes): Document always_inline
5310         attribute.
5311         Update documentation about inlining when not optimizing.
5312
5313         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
5314
5315         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
5316         unless DECL_ALWAYS_INLINE.
5317
5318         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
5319         unless DECL_ALWAYS_INLINE.
5320         (c_disregard_inline_limits): Disregard if always_inline set.
5321
5322         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
5323         Disregard if always_inline set.
5324         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
5325         unless DECL_ALWAYS_INLINE.
5326
5327         * attribs.c (handle_always_inline_attribute): New.
5328         (c_common_attribute_table): Add always_inline.
5329
5330         * config/rs6000/altivec.h: Add prototypes for builtins
5331         requiring the always_inline attribute.
5332
5333 2002-02-21  Eric Christopher  <echristo@redhat.com>
5334
5335         * expmed.c (store_bit_field): Try to simplify the subreg
5336         before generating a new one when when the mode size of
5337         value is less than maxmode.
5338
5339 2002-02-21  Richard Henderson  <rth@redhat.com>
5340
5341         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
5342         than gen_rtx_PLUS to form the sum.
5343         * explow.c (force_reg): Rearrange to not allocate new pseudo
5344         when force_operand returns a register.
5345         * expr.c (expand_assignment): Allow offset_rtx expansion to
5346         return a sum.  Do not force addresses into registers.
5347         (expand_expr): Likewise.
5348         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
5349         to canonicalize arithmetic that didn't simpify.
5350         (simplify_plus_minus): New argument force; update
5351         all callers.  Don't split CONST unless we can do something with it,
5352         and wouldn't lose the constness of the operands.
5353
5354         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
5355         that we generated earlier.
5356
5357 2002-02-21  Tom Tromey  <tromey@redhat.com>
5358
5359         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5360         (output_line_info): Use constant `1', with a long explanatory
5361         comment.
5362         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
5363
5364 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
5365
5366         * jump.c (redirect_jump): If old label has no UID, don't try to
5367         delete it.
5368
5369 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
5370
5371         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
5372         If input is constant, do shifts at compile time.
5373
5374 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5375
5376         * doc/extend.texi: Fix some more overfull hboxes.
5377
5378 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5379
5380         PR optimization/4994
5381         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
5382         register moves.
5383
5384 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5385
5386         PR c++/4574
5387         * expr.h (expand_and): Add mode argument.
5388         * expmed.c (expand_and): Add mode argument.
5389         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
5390         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
5391         * except.c (expand_builtin_extract_return_addr): Likewise.
5392         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5393         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
5394         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
5395         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
5396         * config/c4x/c4x.md: Use GEN_INT (x) instead of
5397         gen_rtx (CONST_INT, VOIDmode, x).
5398
5399 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5400
5401         PR c/4697:
5402         * stmt.c (warn_if_unused_value): Move side effects test once more.
5403
5404 2002-02-20  Torbjorn Granlund  <tege@swox.com>
5405
5406         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
5407         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
5408
5409 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
5410
5411         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
5412         SUBREG or ZERO_EXTEND.
5413
5414 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
5415
5416         * sh.h (current_function_anonymous_args): Remove.
5417         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
5418         of current_function_varargs and current_function_stdarg is set.
5419         * sh.c (sh_expand_prologue): Check current_function_varargs /
5420         current_function_stdarg / TARGET_SH5 instead of
5421         current_function_anonymous_args.
5422
5423         * sh64.h (TARGET_VERSION): Define.
5424
5425 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
5426
5427         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
5428         VRSAVE_REGNO on TARGET_ALTIVEC.
5429
5430 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
5431
5432         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
5433         bits of SImode const_int.
5434         (includes_rshift_p): Likewise.
5435         (print_operand): Call mask_operand and mask64_operand with correct
5436         mode.
5437         (rs6000_output_function_epilogue): Pad traceback table to word.
5438         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
5439         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
5440         mask64_operand with correct mode.
5441         (FUNCTION_ARG_REGNO_P): Correct parentheses.
5442
5443 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5444
5445         PR debug/4461
5446         * varasm.c (get_pool_constant_mark): New.
5447         * rtl.h (get_pool_constant_mark): Add prototype.
5448         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
5449         be represented if it has not been output.
5450
5451 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5452
5453         * combine.c (do_SUBST): Sanity check substitutions of
5454         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
5455         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
5456         CONST_INT into its operand.
5457         (known_cond): Likewise, for ZERO_EXTEND.
5458         * simplify-rtx.c (simplify_unary_operation): Fix condition to
5459         allow for simplification of wide modes.  Reject CONST_INTs in
5460         ZERO_EXTEND when their actual mode is not given.
5461
5462 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5463
5464         * c-decl.c (pushdecl): If no global declaration is found for an
5465         extern declaration in block scope, try a limbo one.
5466
5467 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5468
5469         PR c++/4401
5470         * c-common.c (pointer_int_sum): Moved from...
5471         * c-typeck.c (pointer_int_sum): ...here.
5472         * c-common.h (pointer_int_sum): Add prototype.
5473
5474 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5475
5476         PR c++/5713
5477         * c-decl.c (duplicate_decls): Return 0 if issued error about
5478         redeclaration.
5479
5480 2002-02-20  Roger Sayle  <roger@eyesopen.com>
5481             Jakub Jelinek  <jakub@redhat.com>
5482
5483         PR c/4389
5484         * tree.c (host_integerp): Ensure that the constant integer is
5485         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
5486         when pos is zero or non-zero respectively.  Clarify comment.
5487         * c-format.c (check_format_info_recurse): Fix host_integerp
5488         usage; the pos argument should be zero when assigning to a
5489         signed HOST_WIDE_INT.
5490
5491 2002-02-20  Richard Henderson  <rth@redhat.com>
5492
5493         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
5494         of the operand, rather than assuming TImode.
5495         (ix86_expand_binop_builtin): Cope with commutative patterns
5496         using nonimmediate_operand for both operands.
5497         (ix86_expand_timode_binop_builtin): Likewise.
5498         (ix86_expand_store_builtin): Validate operand 1.
5499         (ix86_expand_unop1_builtin): Likewise.
5500
5501 2002-02-20  Philip Blundell  <philb@gnu.org>
5502
5503         PR 5705
5504         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
5505
5506 2002-02-20  Richard Henderson  <rth@redhat.com>
5507
5508         PR c/5615
5509         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
5510
5511 2002-02-20  Tom Tromey  <tromey@redhat.com>
5512
5513         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5514         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5515         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5516         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5517         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
5518         unconditionally.
5519
5520 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
5521
5522         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
5523           for (const_int 0) in X not just INTVAL.
5524
5525 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5526
5527         * doc/extend.texi: Avoid or reduce overfull hboxes.
5528
5529 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
5530
5531         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
5532         operations if the field does not start at a mode boundary.
5533
5534 2001-02-20      Joel Sherrill <joel@OARcorp.com>
5535
5536         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
5537         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
5538         Also done for -Acpu and -Amachine.
5539
5540 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5541
5542         * cppinit.c (init_dependency_output): Take deps output file
5543         from -o if none given with -MF.  Suppress normal output.
5544         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
5545         * doc/cpp.texi, doc/invoke.texi: Update.
5546
5547 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5548
5549         * toplev.c (output_quoted_string): Write unprintable
5550         characters with octal escapes.
5551
5552 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5553
5554         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
5555         really_call_used[VRSAVE_REGNO] if not Altivec.
5556
5557 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
5558
5559         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
5560         MODE_MASK.
5561         (constant_pool_expr_1): Fix formatting.
5562         (rs6000_legitimize_reload_address): Likewise.
5563
5564 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5565
5566         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
5567         now that we have one.
5568
5569 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5570
5571         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
5572         end of first block of bitfields (which was only seven bits);
5573         rename dummy to unused_1; remove comment which is no longer true.
5574
5575 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5576
5577         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
5578
5579 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5580
5581         PR 5399
5582         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
5583         if generating PIC.
5584
5585         PR 5054
5586         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
5587         arm_is_longcall_p rather than inspecting call-type cookie
5588         directly.
5589         (call_value_insn) [TARGET_THUMB]: Likewise.
5590
5591 2002-02-19  Graham Stott  <grahams@redhat.com>
5592
5593         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
5594
5595 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5596
5597         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
5598         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
5599         (FP_SAVE_INLINE): Delete.
5600
5601         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
5602         * config/rs6000/eabi.asm: Remove ABI save restore routines.
5603         * config/rs6000/t-ppccomm: Build crtsavres.o.
5604         * config/rs6000/crtsavres.asm: New file.
5605
5606 2002-02-19  Philip Blundell  <philb@gnu.org>
5607
5608         * config/arm/arm.c (use_return_insn): Don't reject interrupt
5609         functions.
5610         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
5611         (output_return_instruction): Allow interrupt functions to return with
5612         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
5613         (arm_expand_prologue): Subtract 4 before stacking LR in an
5614         interrupt function.
5615
5616 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5617
5618         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
5619         decl, not just FUNCTION_DECL.
5620         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
5621         (arm_assemble_integer): Likewise.
5622         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
5623         marked local.
5624
5625 2002-02-19  matthew green  <mrg@eterna.com.au>
5626
5627         * config.gcc (sparc-*-netbsdelf*): Enable target.
5628         (sparc64-*-netbsd*): New target.
5629         * config/sparc/netbsd-elf.h: New file.
5630         * config/sparc/t-netbsd64: New file.
5631
5632 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5633
5634         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
5635
5636 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
5637
5638         * doc/invoke.texi: explicitly list the style guidelines that
5639         -Weffc++ checks for.
5640
5641 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
5642
5643         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
5644
5645 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5646
5647         PR other/5718
5648         * gcc.c (cpp_unique_options): Treat -o as indicating object file
5649         only if not -E.  If -E, pass -o through to the preprocessor.
5650
5651 2002-02-19  Kazu Hirata  <kazu@hxi.com>
5652
5653         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
5654         register number with an appropriate macro.
5655
5656 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5657
5658         * doc/rtl.texi (Constants): Close @code tag.
5659
5660 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
5661
5662         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
5663         ("mmx_uavgv4hi3"): Same.
5664         ("pmulhrwv4hi3"): Same.
5665
5666         * tree-inline.c (walk_tree): Handle vectors.
5667
5668         * c-common.c (constant_expression_warning): Handle vectors.
5669         (overflow_warning): Same.
5670
5671         * sched-deps.c (sched_analyze_2): Handle vectors.
5672
5673         * rtlanal.c (rtx_unstable_p): Handle vectors.
5674         (rtx_varies_p): Same.
5675         (count_occurrences): Same.
5676         (regs_set_between_p): Same.
5677         (modified_between_p): Same.
5678         (modified_in_p): Same.
5679         (volatile_insn_p): Same.
5680         (volatile_refs_p): Same.
5681         (side_effects_p): Same.
5682         (may_trap_p): Same.
5683         (inequality_comparisons_p): Same.
5684         (replace_regs): Same.
5685         (computed_jump_p_1): Same.
5686
5687         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
5688         argument.
5689         (inner_mode_array): New.
5690         (copy_rtx): Handle vectors.
5691         (copy_most_rtx): Same.
5692         (rtx_equal_p): Same.
5693         (get_mode_alignment): Adjust for vectors.
5694
5695         * resource.c (mark_referenced_resources): Handle vectors.
5696         (mark_set_resources): Same.
5697
5698         * reload1.c (eliminate_regs): Handle vectors.
5699         (elimination_effects): Same.
5700         (scan_paradoxical_subregs): Same.
5701
5702         * reload.c (subst_reg_equivs): Handle vectors.
5703
5704         * regrename.c (scan_rtx): Handle vectors.
5705
5706         * regclass.c (reg_scan_mark_refs): Handle vectors.
5707
5708         * recog.c (find_single_use_1): Handle vectors.
5709
5710         * local-alloc.c (equiv_init_varies_p): Handle vectors.
5711         (contains_replace_regs): Same.
5712         (memref_referenced_p): Same.
5713
5714         * integrate.c (copy_rtx_and_substitute): Handle vectors.
5715         (subst_constants): Same.
5716
5717         * genattrtab.c (attr_copy_rtx): Handle vectors.
5718         (encode_units_mask): Same.
5719         (clear_struct_flag): Same.
5720         (count_sub_rtxs): Same.
5721
5722         * gcse.c (want_to_gcse_p): Handle vectors.
5723         (oprs_unchanged_p): Same.
5724         (hash_expr_1): Same.
5725         (oprs_not_set_p): Same.
5726         (expr_killed_p): Same.
5727         (compute_transp): Same.
5728         (store_ops_ok): Same.
5729
5730         * function.c (purge_addressof_1): Do not allow paradoxical subregs
5731         of vectors.
5732         (fixup_var_refs_1): Same.
5733         (instantiate_virtual_regs_1): Same.
5734
5735         * fold-const.c (operand_equal_p): Handle vectors.
5736         (fold): Same.
5737         (rtl_expr_nonnegative_p): Same.
5738
5739         * flow.c (mark_used_regs): Handle vectors.
5740
5741         * df.c (df_uses_record): Handle vectors.
5742
5743         * cselib.c (cselib_subst_to_values): Handle vectors.
5744         (cselib_mem_conflict_p): Same.
5745         (hash_rtx): Same.
5746
5747         * cse.c (canon_reg): Handle vectors.
5748         (fold_rt): Same.
5749         (cse_process_notes): Same.
5750         (count_reg_usage): Same.
5751         (canon_hash): Same.
5752
5753         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
5754
5755         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
5756
5757         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
5758         (gen_rtx): Handle CONST_VECTOR.
5759         (gen_const_vector_0): New.
5760         (copy_rtx_if_shared): CONST_VECTORs can be shared.
5761         (reset_used_flags): Same.
5762         (copy_insn_1): Same.
5763         (initializer_constant_valid_p): Handle VECTOR_CST.
5764
5765         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
5766
5767         * doc/rtl.texi (Constants): Document const_vector.
5768         (CONST0_RTX): Update for vectors.
5769         (RTL sharing): Same.
5770
5771         * print-tree.c (print_node): Add case for VECTOR_CST.
5772
5773         * tree.h (TREE_VECTOR_CST_ELTS): New.
5774         (struct tree_vector): New.
5775         (union tree_node): Add vector node.
5776         (build_vector): Add prototype.
5777
5778         * tree.def (VECTOR_CST): New.
5779
5780         * tree.c (build_vector): New.
5781
5782         * expmed.c (make_tree): Handle CONST_VECTOR.
5783
5784         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
5785         (CONST_VECTOR_ELT): New.
5786         (CONST_VECTOR_NUNITS): New.
5787
5788         * machmode.h (GET_MODE_INNER): New.
5789         (DEF_MACHMODE): Accept 8th arg.
5790
5791         * machmode.def: Add 8th argument for vector inner mode.
5792         Add inner vector modes for vectors.
5793
5794         * rtl.def (VEC_CONST): Remove.
5795         (CONST_VECTOR): New.
5796
5797         * expr.c (clear_storage): Allow vectors.
5798         (is_zeros_p): Handle VECTOR_CST.
5799
5800         * varasm.c (output_constant_pool): Handle vectors.
5801         (rtx_const): Add veclo and vechi fields.
5802         (kind): Add RTX_VECTOR.
5803         (decode_rtx_const): Add case for vector.
5804
5805         * config/rs6000/rs6000-protos.h: Add zero_constant.
5806
5807         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
5808         constants.  Force easy vector constants into memory.
5809         (easy_vector_constant): New.
5810         (emit_easy_vector_constant): New.
5811         (rs6000_legitimize_reload_address): Do not generate bad reloads on
5812         darwin.
5813
5814         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
5815         instruction does.
5816         ("altivec_lvxl"): Same.
5817         (altivec_lvebx): Same.
5818         (altivec_lvehx): Same.
5819         (altivec_lvewx): Same.
5820         ("*movv4si_const0"): New.
5821         ("*movv4sf_const0"): New.
5822         ("*movv8hi_const0"): New.
5823         ("*movv16qi_const0"): New.
5824
5825 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5826
5827         * config/h8300/h8300.c (notice_update_cc): Use
5828         cc_status.value2.
5829
5830 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5831
5832         * config/h8300/h8300.md (divmod patterns): Change the
5833         constraints for operands[1] to register_operand.
5834
5835 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5836
5837         * config/h8300/h8300-protos.h: Remove the prototype for
5838         p_operand.
5839         * config/h8300/h8300.c (p_operand): Remove.
5840         * config/h8300/h8300.md: Replace p_operand with
5841         const_int_operand.
5842
5843 2002-02-18 Philip Blundell <pb@nexus.co.uk>
5844
5845         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
5846         comment.
5847         (output_return_instruction): Allow use of LDR to unstack
5848         return addresss even for interrupt handlers or when
5849         interworking.  If compiling for ARMv5, use interworking-safe
5850         return instructions by default.  Remove duplicated code and
5851         lengthy "strcat" sequences.
5852
5853 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5854
5855         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
5856         (LINK_EH_SPEC): Define.
5857         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
5858
5859 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5860
5861         * config/s390/s390.c (s390_emit_prologue): Do not set the
5862         frame_related flag for call-clobbered registers.
5863
5864 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
5865
5866         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
5867         (construct_container): Fix handling of SSE operands.
5868         (ix86_expand_builtin): Fix handling of 64bit pointers.
5869         (mmx_maskmovq_rex): New pattern.
5870
5871 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
5872
5873         * regrename.c (kill_set_value): Handle subregs properly.
5874
5875 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
5876
5877         * objc/objc-act.c (handle_impent): Remove leading '*'
5878         from objc_class_name.
5879
5880 2002-02-17  Richard Henderson  <rth@redhat.com>
5881
5882         * config/alpha/alpha.c (some_small_symbolic_operand,
5883         some_small_symbolic_operand_1, split_small_symbolic_operand,
5884         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
5885         Handle small SYMBOL_REFs anywhere, not just inside memories.
5886         * config/alpha/alpha-protos.h: Update.
5887         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5888         * config/alpha/alpha.md (small symbolic operand splitter): Update.
5889
5890 2002-02-17  Roland McGrath  <roland@frob.com>
5891
5892         * config.gcc (powerpc-*-gnu-gnualtivec*,
5893         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
5894         * config/rs6000/gnu.h: New file.
5895         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
5896         Grok "gnu" in rs6000_abi_name.
5897         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
5898         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
5899         Grok -mcall-gnu analogous to -mcall-linux et al.
5900         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5901         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
5902         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
5903
5904 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
5905
5906         PR c/3444:
5907         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
5908         shortening.
5909
5910 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5911
5912         * config/cris/cris.h: Undefine STARTFILE_SPEC and
5913         ENDFILE_SPEC before (re)defining them.
5914
5915 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5916
5917         * config/h8300/h8300.c: Fix formatting.
5918         * config/h8300/h8300.h: Likewise.
5919
5920 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5921
5922         * doc/tm.texi: Explain why empty strings should not be
5923         marked for translation.
5924
5925 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5926
5927         * final.c (output_operand_lossage): Changed to accept
5928         printf style arguments. Change calls where necessary.
5929         * output.h (output_operand_lossage): Change declaration
5930         accordingly. Update copyright.
5931         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
5932         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
5933         Update copyright date where necessary.
5934
5935         * config/i386/i386.c (print_operand): Likewise. Remove use of
5936         sprintf.
5937
5938         * config/cris/cris.c (cris_operand_lossage): Likewise.
5939         Rename parameter so that exgettext recognizes it as
5940         translatable message.
5941         (LOSE_AND_RETURN): Rename parameter to msgid.
5942
5943 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5944
5945         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
5946         hard coded register number with an appropriate macro.
5947         (HARD_REGNO_MODE_OK): Likewise.
5948         (ARG_POINTER_REGNUM): Likewise.
5949         (STATIC_CHAIN_REGNUM): Likewise.
5950         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5951         * config/h8300/h8300.md (define_constants): Define more
5952         register numbers.
5953
5954 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5955
5956         * config/i386/i386.h: Don't mark empty strings for translation.
5957
5958 2002-02-16  H.J. Lu <hjl@gnu.org>
5959
5960         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
5961
5962 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
5963
5964         * cppinit.c (merge_include_chains): Check for brack being
5965         NULL before attempting to merge it with qtail.
5966
5967 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
5968
5969         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
5970         DBX_DEBUG.
5971
5972 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5973
5974         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
5975
5976 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5977
5978         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
5979         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
5980         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
5981
5982 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5983
5984         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
5985         now only if !TARGET_FIX.
5986         (*movsi_nt_vms_fix): New pattern.
5987
5988 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
5989
5990         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
5991         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
5992         (alpha_sa_mask, alpha_sa_size): Reflect above change.
5993         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
5994         (alpha_start_function, alpha_expand_epilogue): Likewise.
5995         (unicosmk_gen_dsib): Likewise.
5996
5997 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5998
5999         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
6000
6001 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
6002
6003         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
6004         check_and_change_labels, s390_final_chunkify): Delete.
6005         (s390_split_branches, s390_chunkify_pool): New functions.
6006         (s390_function_prologue): Call them.
6007
6008         * config/s390/s390.h (S390_REL_MAX): Delete.
6009         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
6010
6011         * config/s390/s390.md (cjump, icjump, jump): Fix length
6012         attribute calculation.
6013
6014
6015 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
6016
6017         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
6018         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
6019
6020 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6021
6022         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
6023         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
6024         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
6025
6026 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
6027
6028         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
6029
6030 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
6031
6032         * reload.c (find_dummy_reload): Check that an output register
6033         is valid for its mode.
6034
6035 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
6036
6037         * combine.c (known_cond): After replacing the REG of a SUBREG, try
6038         to simplify it.
6039
6040         * function.c (assign_parms): Demote promoted argument passed by
6041         transparent reference.
6042
6043 2001-02-14      Joel Sherrill <joel@OARcorp.com>
6044
6045         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
6046         -Acpu() and -Amachine() to eliminate warnings.
6047
6048 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
6049
6050         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
6051
6052 2002-02-14  Kazu Hirata  <kazu@hxi.com>
6053
6054         * config/h8300/h8300-protos.h: Update the prototype for
6055         const_costs.
6056         * config/h8300/h8300.c (const_costs): Treat SET as a little
6057         more expensive operation.
6058         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
6059         reference to const_costs.
6060
6061 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
6062
6063         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
6064
6065 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
6066
6067         PR c/5503:
6068         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
6069         use arguments from newtype.
6070
6071 2002-02-13  Eric Christopher  <echristo@redhat.com>
6072
6073         * config/mips/mips.c (override_options): Add check for march/mipsX
6074         on the same command line. Fix error message in cpu processing.
6075         Remove architecture and ISA checks.
6076
6077 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
6078
6079         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
6080
6081         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
6082
6083 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
6084
6085         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
6086         alternatives.
6087         ("*movv8hi_internal1"): Same.
6088         ("*movv16qi_internal1"): Same.
6089         ("*movv4sf_internal1"): Same.
6090
6091         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
6092         not push_reload for altivec modes.
6093
6094 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
6095
6096         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
6097         all RTEMS targets including removal of #includes from config/*/rtems*.h
6098         file and adding them to tm_file setting. Added xm_defines=POSIX to
6099         many targets.
6100         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
6101         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
6102         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
6103         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
6104         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
6105         config/m68k/rtemself.h: Ditto.
6106         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
6107         config/mips/rtems64.h: Ditto.
6108         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
6109         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
6110         Ditto.
6111         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
6112         config/sparc/rtemself.h: Ditto.
6113         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
6114         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
6115         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
6116         more like arm-elf.
6117         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
6118         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
6119         target made more similar to i386-elf.
6120         * config/i386/t-rtems-i386: Added soft float support and multilibs.
6121         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
6122         be similar to config/m68k/t-m68kelf.
6123         * gthr-rtems.h: Encapsulate with extern "C" for C++.
6124
6125 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
6126
6127         * regmove.c (kill_value): Handle subregs.
6128
6129 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6130
6131         * i386.md (mul patterns): Allow memory operand to be first;
6132         add expanders where needed; fix constraints.
6133         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
6134         Allow memory operand to be the first.
6135
6136         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
6137         operands.
6138
6139 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
6140
6141         PR c/5681:
6142         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
6143         GET_MODE (x).
6144
6145 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
6146
6147         PR optimization/5547:
6148         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
6149         all valid IA-32 address modes involving non-scaled %ebx and
6150         GOT/GOTOFF as displacement.
6151
6152 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6153
6154         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
6155         after emitting ltorg insns.
6156
6157         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
6158         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
6159         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
6160         *abssf2): Fix "op_type" attribute.
6161
6162 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
6163
6164         * mkconfig.sh: Avoid using a subshell redirect.
6165         ($output.T): Change to $(output)T.
6166         (ENABLE_NLS): Remove unneeded undef.
6167
6168         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
6169         * config/alpha/x-vms (libsubdir): Define.
6170
6171         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
6172         register frame procedures. Optimize retrieving context.
6173
6174         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
6175         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
6176         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
6177
6178 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6179
6180         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
6181         Make same change as for find_base_value.
6182
6183 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6184
6185         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
6186         of QImode and SImode.
6187
6188 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6189
6190         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
6191         length computation of movsi.
6192         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
6193
6194 2002-02-13  Kazu Hirata  <kazu@hxi.com>
6195
6196         * config/h8300/h8300.md (subqi3): Tighten the predicate for
6197         operands[2] to register_operand.
6198
6199 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
6200
6201         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
6202
6203 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
6204
6205         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
6206         for altivec_lvx* and altivec_stvx*.
6207         ("*movv4si_internal"): Add constraint for loading from GPRs.
6208         ("*movv8hi_internal1"): Same.
6209         ("*movv16qi_internal1"): Same.
6210         ("*movv4sf_internal1"): Same.
6211
6212         * config/rs6000/rs6000.c (altivec_register_operand): New.
6213
6214         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
6215         altivec_register_operand.
6216
6217 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
6218
6219         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
6220         handle SYMBOL_REF.
6221
6222 2002-02-13  Stan Shebs  <shebs@apple.com>
6223
6224         * c-typeck.c (digest_init): Handle vectors.
6225         (really_start_incremental_init): Same.
6226         (pop_init_level): Same.
6227         (process_init_element): Same.
6228
6229         * varasm.c (output_constant): Same.
6230
6231         * expr.c (clear_storage): Same.
6232         (store_constructor): Same.
6233
6234 2002-02-12  Eric Christopher  <echristo@redhat.com>
6235
6236         * explow.c (hard_function_value): Add comment explaining
6237         signed/unsigned comparison.
6238
6239 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
6240
6241         * jump.c (never_reached_warning): Add finish argument.
6242         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
6243         real insn after end.
6244         * rtl.h (never_reached_warning): Adjust prototype.
6245         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
6246         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
6247         never_reached_warning.
6248
6249 2002-02-12  Graham Stott  <grahams@redhat.com>
6250
6251         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
6252
6253 2002-02-12  Kazu Hirata  <kazu@hxi.com>
6254
6255         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
6256         logical shifts on H8/300.
6257         (shift_alg_si): Improve several shifts on H8/300.
6258         (get_shift_alg): Likewise.
6259
6260 2002-02-12  Graham Stott  <grahams@redhat.com>
6261
6262         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
6263
6264 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6265
6266         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
6267         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
6268
6269 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
6270
6271         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
6272         non-CONST_INT through default_assemble_integer.
6273         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
6274         <case 8>: Abort for CONST_DOUBLE.
6275
6276 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6277
6278         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
6279         is specified.
6280         * config/pa/pa-linux.h (LIB_SPEC): Delete.
6281         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6282
6283 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
6284
6285         * config/stormy16/stormy16.md (zero_extendqihi2): New.
6286
6287 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
6288
6289         * regrename.c (regrename_optimize): Don't accept a
6290         part-clobbered register if the replaced register is not part
6291         clobbered.
6292
6293         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
6294         take padding into account when computing the argument value.
6295
6296         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
6297
6298         * combine.c (try_combine): Apply substitutions in
6299         CALL_INSN_FUNCTION_USAGE too.
6300
6301 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
6302
6303         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
6304         __builtin_altivec_abs*.
6305         (bdesc_abs): New.
6306
6307         * config/rs6000/rs6000.h (rs6000_builtins): Add
6308         ALTIVEC_BUILTIN_ABS*.
6309
6310         * config/rs6000/altivec.h: Use const char for builtins expecting
6311         literals.
6312         (vec_abs): New versions for C and C++.
6313         (vec_abss): Same.
6314
6315 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6316
6317         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
6318         using Pmode.
6319
6320 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6321
6322         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
6323         constant definition from h8300.md.
6324         (FRAME_POINTER_REGNUM): Likewise.
6325         * config/h8300/h8300.md (define_constants): Add FP_REG.
6326
6327 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6328
6329         * config/h8300/h8300.c (print_operand): Remove redundant code.
6330
6331 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6332
6333         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
6334         * config/h8300/h8300.c (byte_reg): Make it static.
6335
6336 2002-02-10  Richard Henderson  <rth@redhat.com>
6337
6338         PR c/5623
6339         * c-typeck.c (incomplete_type_error): Handle flexible array members.
6340
6341 2002-02-10  Richard Henderson  <rth@redhat.com>
6342
6343         PR c++/5624
6344         * tree.c (append_random_chars): Don't abort if main_input_filename
6345         does not exist.
6346
6347 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
6348
6349         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
6350
6351 2002-02-10  Kazu Hirata  <kazu@hxi.com>
6352
6353         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
6354         (pushhi1): Likewise.
6355
6356 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6357
6358         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
6359         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
6360
6361 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
6362
6363         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
6364         remove MASK_VIS.
6365         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
6366
6367 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6368
6369         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
6370         a half of an SImode register on H8/300.
6371
6372 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
6373
6374         * i386.md (movdi_2): Add missing '!'.
6375
6376 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6377
6378         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
6379         definitions.
6380
6381 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6382
6383         * config/h8300/h8300.md (length): Correct the distance valid
6384         for the short branch.
6385
6386 2002-02-09  Kazu Hirata  <kazu@hxi.com>
6387
6388         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
6389
6390 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6391
6392         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
6393         registers in SImode.
6394         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
6395         part-clobbered.
6396
6397         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
6398         patch.
6399
6400         Contribute sh64-elf.
6401         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6402         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
6403         (sh_cannot_modify_jumps_p): New function.
6404         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
6405         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
6406         (sh_ms_bitfield_layout_p): New function.
6407         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
6408                     Zack Weinberg  <zack@codesourcery.com>
6409         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
6410         expand_simple_binop instead of expand_binop.
6411         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
6412         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
6413         use of .quad and .uaquad.
6414         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
6415         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
6416         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6417         * config/sh/sh.md (movdi_const, movdi_const_32bit,
6418         movdi_const_16bit): Make sure all CONSTs have modes.
6419         (sym2PIC): Ditto, but by adjusting all callers.
6420         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
6421         if the prologue calls the SHmedia argument decoder or register
6422         saver.
6423         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6424         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
6425         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
6426         (sh_expand_epilogue): Don't emit USE of return target register.
6427         (prepare_move_operands): Legitimize DImode PIC addresses.
6428         (sh_media_register_for_return): Skip tr0, used to initialize the
6429         PIC register.
6430         (sh_expand_prologue): Remove explicit USE of return register.
6431         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
6432         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
6433         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
6434         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
6435         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
6436         EXTRA_CONSTRAINT_T.
6437         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
6438         (MOVI_SHORI_BASE_OPERAND_P): New.
6439         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
6440         (EXTRA_CONSTRAINT_T): Define in terms of them.
6441         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
6442         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
6443         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
6444         alternatives supporting TARGET_REGS.
6445         (UNSPEC_GOTPLT): New constant.
6446         (movdi split): Move incrementing of LABEL_NUSES...
6447         (movdi_const, movdi_const_32bit): Here.  Use
6448         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
6449         (movdi_const_16bit): New.
6450         (call, call_value) [flag_pic]: Use GOTPLT.
6451         (call_pop, call_value_pop): New expands.
6452         (call_pop_compact, call_pop_rettramp): New insns.
6453         (call_value_pop_compact, call_value_pop_rettramp): New insns.
6454         (sibcall) [flag_pic]: Use GOT.
6455         (builtint_setjmp_receiver): Remove bogus, unused expand.
6456         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
6457         (*pt, *ptb, ptrel): New insns.
6458         (sym2GOT): Handle DImode GOT.
6459         (sym2GOTPLT, symGOTPLT2reg): New expands.
6460         (sym2PIC): New expand.
6461         (shcompact_return_tramp): Use GOTPLT to return trampoline.
6462         (shcompact_return_tramp_i): Use return register explicitly.
6463         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
6464         disable flag_reorder_blocks.
6465         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
6466         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
6467         clobbers, for clarity.
6468         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
6469         restoring of r0 in macl as MAYBE_DEAD.
6470         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
6471         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
6472         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
6473         alter_subreg all over.
6474         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
6475         reload, instead of emitting instructions that would require
6476         reloading.
6477         (casesi_load_media): Add missing modes.
6478         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
6479         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
6480         as used if the argument decoder is called.
6481         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6482         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
6483         Pmode, then extend it to DImode if necessary.
6484         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6485         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
6486         constants in FPU-enabled SHmedia, let them be loaded from memory.
6487         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6488         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
6489         Adjust whitespace in assembly output templates.
6490         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6491         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
6492         mode of if_then_else.
6493         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
6494         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
6495         sh.h.
6496         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
6497                     Joern Rennecke <amylaar@redhat.com>
6498         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
6499         (SUBTARGET_CPP_PTR_SPEC): New.
6500         (SUBTARGET_CPP_SPEC): Remove.
6501         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6502         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6503         Fix typo in previous checkin.
6504         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
6505         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
6506         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
6507                     Alexandre Oliva  <aoliva@redhat.com>
6508         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
6509         what single FP register can hold for SHmedia target.
6510         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6511                     Alexandre Oliva  <aoliva@redhat.com>
6512         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6513         Do not split into SUBREG.
6514         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
6515         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
6516         and added new functions as specified in SH5 ABI r9.
6517         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
6518         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
6519         8-byte boundary.
6520         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
6521         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
6522         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
6523         and consttable_window_ends.
6524         2001-06-03  Graham Stott  <grahams@redhat,com>
6525         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
6526         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
6527         * config/sh/sh.c (print_operand): Handle floating-point pair,
6528         vector and matrix registers.
6529         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
6530         vector modes into account.
6531         * config/sh/sh.md (movv2sf): Split move between registers into
6532         movdf.
6533         (movv4sf, movv16sf): Introduce insns that get split only after
6534         reload.
6535         * config/sh/shmedia.h: Fix Copyright dates.
6536         * config/sh/ushmedia.h: Likewise.  Move loop counter
6537         declarations into conditionals that uses them.
6538         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
6539         loop boundary.
6540         * config/sh/sshmedia.h: Fix Copyright dates.
6541         (sh_media_PUTCFG): Fix constraints.
6542         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
6543         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
6544         ptrmemfunc_vbit_in_delta for SH5.
6545         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
6546         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
6547         * invoke.texi: Likewise.
6548         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
6549         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
6550         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
6551         GCC_pop_shmedia_regs_nofpu): New global symbols.
6552         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
6553         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
6554         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
6555         compact function with nonlocal labels.
6556         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
6557         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
6558         (initial_elimination_offset): Account for their stack space.
6559         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
6560         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
6561         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
6562         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
6563         least one of the operands to be a register.
6564         (movv2sf): Likewise.  Renamed to movv2sf_i.
6565         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
6566         prepare_move_operands() before emitting SHmedia insns.
6567         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
6568         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
6569         Don't save nor initialize r12.  Don't mis-align the stack.
6570         Pad the code with a nop.
6571         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
6572         stack.
6573         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
6574         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
6575         [__SHMEDIA__]: Implement.
6576         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
6577         * config/sh/sh.md: Set latency of `pt' closer to reality.
6578         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
6579         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
6580         Set move, load and store type attributes.
6581         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
6582         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
6583         profiling.
6584         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
6585         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
6586         * config/sh/sh.c (sh_media_register_for_return): New function.
6587         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
6588         branch-target register.
6589         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
6590         * config/sh/sh.md (return_media_i): Use any call-clobbered
6591         branch-target register.
6592         (return_media): If r18 wasn't copied in the prologue, copy it
6593         here.
6594         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
6595         Clear class FP0_REGS.
6596         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
6597         from elf.h.
6598         2001-03-08  DJ Delorie  <dj@redhat.com>
6599         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
6600         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
6601         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
6602         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
6603         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
6604         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
6605         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
6606         return value correctly for call_cookie.
6607         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
6608         * config/sh/crt1.asm (start): Modified so as to call
6609         ___setup_argv_and_call_main.
6610         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
6611         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
6612         SHmedia mode.
6613         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
6614         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
6615         (STRIP_NAME_ENCODING): Use it.
6616         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
6617         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
6618         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
6619         prepare_scc_operands().
6620         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
6621         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
6622         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
6623         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
6624         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
6625         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
6626         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
6627         used in shcompact_incoming_args.
6628         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
6629         change.
6630         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
6631         mode.
6632         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
6633         Adjust accordingly.
6634         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6635         Simplify.  Adjust.  Add sanity check.
6636         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
6637         FPU_SINGLE_BIT.
6638         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
6639         TARGET_SHCOMPACT.
6640         (udivsi3, divsi3): Use them.
6641         (force_mode_for_call): New insn.
6642         (call, call_value, sibcall_value): Emit it before SHcompact
6643         calls.
6644         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
6645         * config/sh/sh.md (call, call_value, sibcall): Make sure the
6646         call cookie is non-NULL before taking its value.
6647         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
6648         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
6649         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
6650         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
6651         block.
6652         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
6653         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
6654         temporary for stack adjusts.  Use MACL and MACH to pass
6655         arguments to shcompact_incoming_args.
6656         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
6657         clobber r1.
6658         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
6659         (nested_trampoline): Load static chain address into r1.
6660         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
6661         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
6662         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
6663         fp_arith_reg_operand().
6664         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
6665         * config/sh/sh.md (casesi): Sign-extend the first two operands,
6666         and use signed compares for them.
6667         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
6668         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
6669         ones properly aligned.
6670         (find_barrier): Account for extra alignment needed for 8-byte wide
6671         constants.
6672         (machine_dependent_reorg): Require a label for the second 4-byte
6673         constant after an 8-byte one.
6674         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
6675         change.
6676         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6677         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
6678         last_float when switching float modes.
6679         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
6680         auto-increment for general-purpose registers.
6681         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
6682         result.
6683         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
6684         for stack adjust.
6685         * config/sh/sh.c (sh_builtin_saveregs): Support using all
6686         registers for varargs.
6687         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
6688         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
6689         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
6690         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
6691         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
6692         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
6693         call_cookie accordingly.
6694         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
6695         (SHCOMPACT_BYREF): Likewise.
6696         (SHCOMPACT_FORCE_ON_STACK): New macro.
6697         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
6698         (sh_builtin_saveregs): Likewise.
6699         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6700         shcompact_incoming_args): Use new shift values.  Support
6701         sequences of consecutive and non-consecutive pushes/pops.
6702         * config/sh/sh.md (return): Don't explicitly use PR_REG.
6703         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
6704         * config/sh/sh.h (TEXT_SECTION): Define.
6705         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
6706         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6707         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
6708         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
6709         return values on FPU-enabled SHmedia.
6710         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
6711         FPU-enabled SHmedia.
6712         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
6713         value is returned in a non-FP reg and is not returned by
6714         reference.
6715         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
6716         jump_ind.
6717         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
6718         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
6719         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
6720         quad-aligned to be passed by callee-copy reference.
6721         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
6722         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
6723         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
6724         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
6725         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
6726         copying low-numbered FP regs to r7 and r8.
6727         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
6728         FP regs to general-purpose regs only if the copy was passed on the
6729         stack.
6730         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
6731         copying FP reg to r9.
6732         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
6733         copy FP regs to general-purpose regs only in outgoing calls.
6734         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
6735         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
6736         HOST_WIDE_INT.
6737         * config/sh/sh.h (struct sh_args): Document all fields.
6738         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
6739         passed partially on the stack should not consider making
6740         sibcalls.
6741         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
6742         stack_regs only for incoming calls.  When passing FP args,
6743         make sure there are FP regs available before modifying
6744         call_cookie.
6745         (SHCOMPACT_BYREF): Pass double args in general-purpose
6746         registers by reference.
6747         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
6748         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
6749         attempt to generate sibcalls if the caller got any arguments
6750         by reference.
6751         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
6752         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
6753         to 8-byte boundaries.
6754         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
6755         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
6756         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
6757         stored in the stack.
6758         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
6759         for the offsets to have the ISA bit set.
6760         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
6761         invocation.  Use beq instead of bgt to mark end of sequence of
6762         loads.
6763         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
6764         bgt to mark end of sequence of stores.
6765         * config/sh/sh.c (arith_operand): Don't check whether
6766         CONST_OK_FOR_J for now.
6767         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
6768         instead of long for conversion.
6769         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
6770         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
6771         before passing it to fprintf.
6772         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
6773         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
6774         Call set_fpscr before reading/writing SR.
6775         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
6776         Call set_fpscr.
6777         * config/sh/lib1funcs.asm: Add `.align 2' directives before
6778         SHmedia code.
6779         (FMOVD_WORKS): Define on SH5 with FPU.
6780         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
6781         setting.
6782         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
6783         _fpscr_values.
6784         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
6785         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
6786         address.
6787         (ia_main_table): Ditto.
6788         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
6789         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
6790         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
6791         the definitions from sh.h.
6792         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
6793         TARGET_SH5.
6794         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
6795         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
6796         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6797         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
6798         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
6799         Increment LABEL_NUSES.
6800
6801         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
6802         TARGET_SH5.
6803         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
6804         defined.
6805         * config/sh/elf.h (SIZE_TYPE): Likewise.
6806         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6807         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6808         shcompact_incoming_args): Load switch table addresses using
6809         datalabel.
6810         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6811         (NO_BUILTIN_SIZE_TYPE): Define.
6812         (SIZE_TYPE): Don't define.
6813         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6814         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
6815         definition of __SH5__=32 for -m5-compact-nofpu.
6816         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
6817         ADDR_DIFF_VEC.
6818         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
6819         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
6820         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
6821         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
6822         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
6823         (INSN_LENGTH_ALIGNMENT): Likewise.
6824         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6825         * config/sh/sh.md (call, call_value, sibcall): Simplify
6826         copying of non-branch-target register.
6827         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6828         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
6829         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
6830         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6831         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
6832         floating-point values as structs.
6833         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
6834         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
6835         general-purpose register.
6836         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
6837         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6838         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
6839         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
6840         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
6841         (ENCODE_SECTION_INFO): Enclose variables and constants in
6842         DATALABEL unspecs.
6843         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
6844         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
6845         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
6846         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
6847         only for LABEL_REFs.  For SYMBOL_REFs, prepend
6848         SH_DATALABEL_ENCODING to the symbol name.
6849         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
6850         convert_mode().
6851         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6852         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
6853         UNSPEC_DATALABEL.
6854         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
6855         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
6856         (DATALABEL_REF_P): Don't require CONST.
6857         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
6858         REL label.
6859         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
6860         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
6861         right.
6862         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6863         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
6864         Use shallow_copy_rtx and PUT_MODE to change the mode of
6865         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
6866         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
6867         on SHmedia using GENERAL_REGs.
6868         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6869         bltu_media_i): Fix reversion of conditions.
6870         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6871         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
6872         * config/sh/sh.c (output_far_jump): Save r13 in macl.
6873         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
6874         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
6875         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
6876         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
6877         (GCC_nested_trampoline): Likewise.
6878         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
6879         * config/sh/sh.c (gen_datalabel_ref): Define.
6880         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
6881         (INITIALIZE_TRAMPOLINE): Likewise.
6882         (TRAMPOLINE_ADJUST_ADDRESS): Define.
6883         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
6884         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
6885         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
6886         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
6887         (ic_invalidate): Adjust for SH5.
6888         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
6889         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
6890         _nested_trampoline.
6891         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
6892         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
6893         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
6894         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6895         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
6896         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
6897         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6898         * config/sh/sh.c (target_reg_operand): Match only target-branch
6899         registers and pseudos that aren't virtual registers.
6900         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6901         Copy operands that don't match target_reg_operand to pseudos.
6902         (call_media, call_value_media, sibcall_media): Use
6903         target_reg_operand instead of target_operand.
6904         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
6905         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
6906         * config/sh/sh.c (target_reg_operand): Match hardware registers
6907         other than branch-target registers.
6908         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
6909         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
6910         (fpscr_values) [SH5 == 32]: Define.
6911         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
6912         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6913         Handle function addresses coming in SUBREGs.
6914         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
6915         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6916         shcompact_return_trampoline): Use datalabel where appropriate.
6917         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
6918         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
6919         general-purpose register to copy one branch-target register to
6920         another.
6921         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6922         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
6923         SYMBOL_REFs with VOIDmode.
6924         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6925         bltu_media_i): New insns.
6926         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6927         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
6928         (INIT_CUMULATIVE_ARGS): Likewise.
6929         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
6930         * machmode.def (V16SFmode): New mode.
6931         * c-common.c (type_for_mode): Support V2SF and V16SF.
6932         * tree.c (build_common_tree_nodes_2): Likewise.
6933         * tree.h (tree_index): Likewise.
6934         * calls.c (emit_call_1): Take args_so_far.  Adjust all
6935         callers.  Introduce CALL_POPS_ARGS.
6936         * tm.texi (CALL_POPS_ARGS): Document.
6937         * config/sh/crt1.asm: Implement in SHmedia mode.
6938         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
6939         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
6940         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
6941         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
6942         Implement divsi and udivsi in SHmedia mode.  Introduce
6943         SHcompact trampolines.
6944         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
6945         only in SHmedia64.
6946         (regno_reg_class): Rewrite.
6947         (fp_reg_names): Remove.
6948         (sh_register_names, sh_additional_register_names): New.
6949         (print_operand): Added `u'.  Support SUBREGs in addresses.
6950         Add parentheses around shifted CONSTs.
6951         (output_file_start): Output .mode and .abi directives.
6952         (shiftcosts, addsubcosts, multcosts): Adjust.
6953         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
6954         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
6955         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
6956         bytes, not registers.  Take into account the need for the
6957         SHcompact incoming args trampoline.  Adjust all callers.
6958         (sh_expand_prologue): Take stack_regs into account.  Call
6959         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
6960         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
6961         stack aligned as per SH5 ABI.
6962         (sh_builtin_saveregs): Support SH5 ABI.
6963         (sh_build_va_list, sh_va_start): Likewise.
6964         (initial_elimination_offset): Take alignment into account.
6965         Compute location of PR according to the SH5 stack frame.
6966         (arith_reg_operand): Reject branch-target registers.
6967         (shmedia_6bit_operand): New.
6968         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
6969         (target_reg_operand): Match DImode only.  Accept SUBREGs.
6970         (target_operand): New.
6971         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
6972         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
6973         SIBCALL_REGS for SHmedia.
6974         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
6975         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
6976         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
6977         (TARGET_SWITCHES): New SH5 flags.
6978         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
6979         VALID_REGISTER_P to disable unsupported registers.
6980         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
6981         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
6982         (FUNCTION_ARG_PADDING): Define.
6983         (FASTEST_ALIGNMENT): Adjust.
6984         (SH_REGISTER_NAMES_INITIALIZER): New.
6985         (sh_register_names): Declare.
6986         (DEBUG_REGISTER_NAMES): Define.
6987         (REGISTER_NAMES): Define based on sh_register_names.
6988         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
6989         (sh_additional_register_names): Declare.
6990         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
6991         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
6992         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
6993         (REGISTER_NATURAL_MODE): Define.
6994         (FIRST_PSEUDO_REGISTER): Adjust.
6995         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
6996         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
6997         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
6998         (VECTOR_MODE_SUPPORTED_P): Define.
6999         (REG_CLASS_CONTENTS): Adjust.
7000         (SMALL_REGISTER_CLASSES): Adjust.
7001         (REG_ALLOC_ORDER): Adjust.
7002         (INDEX_REG_CLASS): Adjust.
7003         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
7004         (CONST_OK_FOR_LETTER_P): Adjust.
7005         (PREFERRED_RELOAD_CLASS): Adjust.
7006         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
7007         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
7008         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
7009         (FIRST_FP_PARM_REG): Adjust.
7010         (CALL_POPS_ARGS): Define.
7011         (FUNCTION_ARG_REGNO_P): Adjust.
7012         (struct sh_args): New fields.
7013         (GET_SH_ARG_CLASS): Adjust.
7014         (INIT_CUMULATIVE_ARGS): Adjust.
7015         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
7016         (FUNCTION_ARG_ADVANCE): Adjust.
7017         (FUNCTION_ARG): Adjust.
7018         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
7019         (FUNCTION_ARG_CALLEE_COPIES): Define.
7020         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
7021         (STRICT_ARGUMENT_NAMING): Define.
7022         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
7023         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
7024         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
7025         (SETUP_INCOMING_VARARGS): Adjust.
7026         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
7027         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
7028         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
7029         (SUBREG_OK_FOR_INDEX_P): Adjust.
7030         (EXTRA_CONSTRAINT_S): Update.
7031         (EXTRA_CONSTRAINT_T): New.
7032         (EXTRA_CONSTRAINT): Adjust.
7033         (GO_IF_LEGITIMATE_INDEX): Adjust.
7034         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
7035         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
7036         (MOVE_MAX): Adjust.
7037         (MAX_MOVE_MAX): Define.
7038         (Pmode): Adjust.
7039         (CONST_COSTS): Adjust.
7040         (REGISTER_MOVE_COST): Adjust.
7041         (BRANCH_COST): Adjust.
7042         (TEXT_SECTION_ASM_OP): Adjust.
7043         (DBX_REGISTER_NUMBER): Adjust.
7044         (ASM_OUTPUT_DOUBLE_INT): New.
7045         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
7046         (PREDICATE_CODES): Adjust.
7047         (PROMOTE_MODE): Adjust.
7048         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
7049         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
7050         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
7051         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
7052         (DR0_REG, DR2_REG, DR4_REG): Renumber.
7053         (TR0_REG, TR1_REG, TR2_REG): New.
7054         (XD0_REG): Renumber.
7055         (UNSPEC_COMPACT_ARGS): New.
7056         (type): Added pt and ptabs.
7057         (length): Default to 4 on SHmedia.  Default pt length to 12
7058         and     20 on SHmedia32 and SHmedia64, respectively.
7059         (pt): New function unit.
7060         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
7061         Add whitespace between operands of SHmedia instructions.
7062         (movdicc): Fix.
7063         (adddi3_media, addsi3_media): Adjust constraints.
7064         (subsi3) [SHmedia]: Force operand 1 into a register.
7065         (udivsi3_i1_media, udivsi3_i4_media): New.
7066         (udivsi3): Support SHmedia.
7067         (divsi3_i1_media, divsi3_i4_media): New.
7068         (divsi3): Support SHmedia.
7069         (anddi3, iordi3, xordi3): Adjust constraints.
7070         (zero_extendhidi2, zero_extendqidi2): New.
7071         (extendsidi2, extendhidi2, extendqidi2): New.
7072         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
7073         (pop_e, pop_fpul, pop_4): Likewise.
7074         (movsi_media): Support FP and BT registers.
7075         (movsi_media_nofpu): New.  Adjust splits to DImode.
7076         (lduw, ldub): Renamed to zero_extend* above.
7077         (movqi_media): Fix typo.
7078         (movdi_media): Support FP and BT registers.
7079         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
7080         (movdi_const_32bit): New.
7081         (shori_media): Require immediate operand.  Use `u' for output.
7082         (movdf_media, movsf_media): Simplified.
7083         (movdf_media_nofpu, movsf_media_nofpu): New.
7084         (movdf, movsf): Adjust
7085         (movv2sf, movv2sf, movv16sf): New.
7086         (beq_media, beq_media_i): Adjust constraints.  Don't use
7087         scratch BT register.
7088         (bne_media, bne_media_i): Likewise.
7089         (bgt_media, bgt_media_i): Likewise.
7090         (bge_media, bge_media_i): Likewise.
7091         (bgtu_media, bgtu_media_i): Likewise.
7092         (bgeu_media, bgeu_media_i): Likewise.
7093         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
7094         bunordered): Emit jump insn.  Force operands to registers when
7095         needed.
7096         (jump_media, jump): Simplify.
7097         (call_compact, call_compact_rettramp): New.
7098         (call_value_compact, call_value_compact_rettramp): New.
7099         (call_media, call_value_media): Simplify.
7100         (sibcall_compact, sibcall_media): New.
7101         (call, call_value): Adjust for SHmedia and SHcompact.
7102         (sibcall, sibcall_value, untyped_call): Likewise.
7103         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
7104         (indirect_jump): Adjust for SHmedia.
7105         (casesi_jump_media): New.
7106         (nop): Re-enable for SHmedia.
7107         (call_site): Restrict to SH1.
7108         (casesi): Adjust for SHmedia.
7109         (casesi_shift_media, casesi_load_media): New.
7110         (return): Explicitly use PR register.  Call return trampoline
7111         on SHcompact.
7112         (return_i): Explicitly use PR register.
7113         (shcompact_return_tramp, shcompact_return_tramp_i): New.
7114         (return_media): Adjust.
7115         (shcompact_incoming_args): New.
7116         (epilogue): Adjust.
7117         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
7118         (movstrsi): Disable on SH5.
7119         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
7120         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
7121         (subsf3, subsf3_media): Likewise.
7122         (mulsf3, mulsf3_media, mac_media): Likewise.
7123         (divsf3, divsf3_media): Likewise.
7124         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
7125         (floatsisf2, fux_truncsfsi2): Likewise.
7126         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
7127         constraints.
7128         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
7129         (cmpunsf_media, cmpsf): Likewise.
7130         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
7131         (abssf2, abssf2_media): Likewise.
7132         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
7133         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
7134         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
7135         (floatsidf2, fix_truncdfsi2): Likewise.
7136         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
7137         constraints.
7138         (cmpeqdf_media, cmpgtdf_media): Likewise.
7139         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
7140         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
7141         (absdf2, absdf2_media): Likewise.
7142         (extendsfdf2, extendsfdf2_media): Likewise.
7143         (truncsfdf2, truncsfdf2_media): Likewise.
7144         * config/sh/sh64.h: New file.
7145         * config/sh/t-sh64: New file.
7146         * config/sh/shmedia.h: New file.
7147         * config/sh/ushmedia.h: New file.
7148         * config/sh/sshmedia.h: New file.
7149         * configure.in: Added sh64-*-elf.
7150         * configure: Rebuilt.
7151         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
7152         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
7153         (reg_class_from_letter): Use `b' for TARGET_REGS.
7154         (print_operand): Support `%M', `%m', `AND' and
7155         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
7156         (andcosts): Adjust for SHmedia.
7157         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
7158         Likewise.
7159         (target_reg_operand): New function.
7160         * config/sh/sh-protos.h (target_reg_operand): Declare.
7161         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
7162         FP registers on SH5.
7163         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
7164         on SH4.
7165         (TARGET_REGISTER_P): New macro.
7166         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
7167         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
7168         (EXTRA_CONSTRAINT_S): New macro.
7169         (EXTRA_CONSTRAINT): Adjust.
7170         (FLOAT_TYPE_SIZE): Define to 32.
7171         (Pmode): DImode on SHmedia.
7172         (CONST_COSTS): Adjust for SHmedia literals.
7173         (PREDICATE_CODES): Added target_reg_operand.
7174         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
7175         * config/sh/sh.md: Remove all attrs from SHmedia insns.
7176         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
7177         (cmpdi): Accept SHmedia.
7178         (movdicc_false, movdicc_true): New insns.
7179         (movdicc): New expand.
7180         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
7181         no_new_pseudos.
7182         (addsi3_media): Match `S' constraint.
7183         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
7184         (negdi2): Expand for SHmedia.
7185         (one_cmpldi2): New expand.
7186         (zero_extendsidi2): Change from expand to insn.
7187         (extendsidi2): Add constraints.
7188         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
7189         LD/ST address.  Fix SI immediate loading split.
7190         (movhi_media, movqi_media, lduw, ldub): New insns.
7191         (movhi, movqi): Accept SHmedia.
7192         (shori_media, movdi_media): Relax input constraints.  Split
7193         symbolic constants.
7194         (movdf_media, movsf_media): New insn.  New split to movdi.
7195         (movdf, movsf): Match on SHmedia.
7196         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
7197         bgeu_media): New insns and splits.  New insns with `_i' suffix.
7198         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
7199         (bunordered): New expand.
7200         (jump_compact): Renamed from `jump'.
7201         (jump_media): New insn.
7202         (jump): New expand.
7203         (call_media, call_value_media): New insns.
7204         (call, call_value): Adjust.
7205         (indirect_jump_compact): Renamed from `indirect_jump'.
7206         (indirect_jump_media): New insn.
7207         (indirect_jump): New expand.
7208         (untyped_call, return): Accept SHmedia.
7209         (return_media): New insn.
7210         (prologue, epilogue, blockage): Accept SHmedia.
7211         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
7212         (sunordered): New expand.
7213         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
7214         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
7215         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
7216         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
7217         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
7218         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
7219         abssf2_media): New insns.
7220         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
7221         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
7222         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
7223         floatdidf2, floatsidf2_media, fix_truncdfdi2,
7224         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
7225         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
7226         absdf2_media): New insns.
7227         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
7228         (extendsfdf2_media, truncdfsf2_media): New insns.
7229         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
7230         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
7231         * config/sh/sh.h (CONST_OK_FOR_J): Document.
7232         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
7233         * config/sh/sh.md (adddi3): New expand.
7234         (adddi3_media, adddi3z_media): New insns.
7235         (adddi3_compact): Renamed from adddi3.
7236         (addsi3_media): Use add.l r63 to add constant zero.
7237         (subdi3): New expand.
7238         (subdi3_media): New insn.
7239         (subdi3_compact): Renamed from subdi3.
7240         (mulsidi3): New expand.
7241         (mulsidi3_media): New insn.
7242         (mulsidi3_compact): Renamed from mulsidi3.
7243         (umulsidi3): New expand.
7244         (umulsidi3_media): New insn.
7245         (umulsidi3_compact): Renamed from umulsidi3.
7246         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
7247         (ashlsi3, ashrsi3, lshrsi3): Use them.
7248         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
7249         (ashldi3, ashrdi3, lshrdi3): Use them.
7250         (zero_extendsidi2): New expand.
7251         (extendsidi2): New insn.
7252         (movsi_media): New insn.  Split to movdi to load constants.
7253         (movsi): Enable for shmedia.
7254         (movdi_media): New insn.  Use shori_media to load wide constants.
7255         (short_media): New insn.
7256         (movdi): Enable for shmedia.
7257         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
7258         * config/sh/sh.h (CPP_SPEC): Added `m5'.
7259         (SUBTARGET_CPP_SPEC): Added `!m5'.
7260         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
7261         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
7262         to all other SH variants.
7263         (TARGET_DEFAULT): Set to SH1_BIT.
7264         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
7265         (BITS_PER_WORD): Raise to 64 on shmedia.
7266         (MAX_BITS_PER_WORD): Change to 64.
7267         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
7268         (INT_TYPE_SIZE): Keep as 32.
7269         (UNITS_PER_WORD): Raise to 8 on shmedia.
7270         (MIN_UNITS_PER_WORD): Keep as 4.
7271         (POINTER_SIZE): Raise to 64 on shmedia.
7272         (CONST_OK_FOR_J): New macro.
7273         (CONST_OK_FOR_LETTER_P): Use it.
7274         (processor_type): Add PROCESSOR_SH5.
7275         * config/sh/sh.md: Conditionalize all expands, insns and
7276         splits to TARGET_SH1.
7277         (cpu): Added sh5.
7278         (addsi3_compact): Renamed from...
7279         (addsi3): Now an expand.
7280         (addsi3_media, subsi3_media): New insns.
7281         (subsi3): Don't negate constants with SHmedia.
7282
7283         * hooks.c: New file.
7284         * hooks.h: New file.
7285         * Makefile.in (HOOKS_H): New.
7286         (TARGET_DEF_H): Added $(HOOKS_H).
7287         (OBJS): Added hooks.o.
7288         (cfgcleanup.o, bb-reorder.o): Added target.h.
7289         (hooks.o): Added dependencies.
7290         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
7291         (TARGET_INITIALIZER): this.
7292         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
7293         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
7294         * bb-reorder.c: Include target.h.
7295         (reorder_basic_blocks): Skip if cannot modify jumps.
7296         * cfgcleanup.c: Include target.h.
7297         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
7298
7299 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
7300
7301         * config/mips/mips.md (casesi_internal, casesi_internal_di):
7302         Protect jump delay slot instructions with .set noreorder and
7303         .set nomacro.
7304
7305 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
7306
7307         * config/mips/mips.md (casesi_internal_di): Calculate
7308         the index into the target offset table correctly.
7309
7310 2002-02-08  Richard Henderson  <rth@redhat.com>
7311
7312         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
7313         * final.c (output_addr_const): Accept and discard SUBREG.
7314         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
7315         mark them unknown instead.
7316         (simplify_subtraction): Handle RTX_UNKNOWN.
7317         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
7318
7319 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
7320
7321         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
7322
7323 2002-02-08  Richard Henderson  <rth@redhat.com>
7324
7325         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
7326
7327 2002-02-08  Andreas Jaeger  <aj@suse.de>
7328
7329         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
7330         * config/i386/t-linux64: New file.
7331
7332 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
7333
7334         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
7335         * c-parse.in (compstmt): Clear last_expr_type.
7336
7337 2002-02-07  Richard Henderson  <rth@redhat.com>
7338
7339         * loop.c (strength_reduce): Sink final_value when not
7340         eliminating a biv.
7341
7342 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
7343
7344         * config/sparc/freebsd.h: Fix mismatched spec {.
7345
7346 2002-02-07  Richard Henderson  <rth@redhat.com>
7347
7348         * cfgrtl.c: Include recog.h and insn-config.h.
7349         (keep_with_call_p): Fix general_operand invocation.
7350         * Makefile.in (cfgrtl.o): Update dependencies.
7351
7352 2002-02-07  Kazu Hirata  <kazu@hxi.com>
7353
7354         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
7355         comment.  Accept HImode only if TARGET_H8300.
7356
7357 2002-02-07  Eric Christopher  <echristo@redhat.com>
7358
7359         * config/mips/crtn.asm: Cleanup #ifdefs.
7360
7361 2002-02-07  Eric Christopher  <echristo@redhat.com>
7362
7363         * config/mips/crti.asm: Add changes for mips16. mips16 uses
7364         register 7 as RA instead of $31.
7365         * config/mips/crtn.asm: Ditto.
7366         * config/mips/mips.c (mips_move_2words): Add case for
7367         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
7368         (compute_frame_size): Fix typo.
7369         (save_restore_insns): Ditto.  Make documentation about using
7370         register $7 as return register more precise.
7371         (mips_expand_epilogue): Fix comment. Add code to work around not
7372         being able to add to the stack pointer directly.
7373         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
7374         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
7375         epilogue.
7376
7377 2002-02-07  Tom Rix  <trix@redhat.com>
7378
7379         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
7380         immediates in ldu and stdu DS opcode field.
7381         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
7382         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
7383         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
7384
7385 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
7386
7387         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
7388         offset for stack bias.
7389
7390 2002-02-07  H.J. Lu <hjl@gnu.org>
7391
7392         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
7393
7394 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
7395
7396         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
7397
7398 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
7399
7400         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
7401         * i386.c (x86_order_regs_for_local_alloc): New global function.
7402         * i386.h (REG_ALLOC_ORDER): CLeanup.
7403         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
7404
7405 2002-02-07  Richard Henderson  <rth@redhat.com>
7406
7407         PR optimization/2463
7408         * alias.c (find_base_value): Recall base values for fixed hard regs.
7409         * loop.c (loop_regs_update): Don't use single_set on non-insns.
7410
7411 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
7412
7413         * config/mips/mips.md (define_delay) [mips16]: Adjust required
7414         length.
7415
7416 2002-02-06  Richard Henderson  <rth@redhat.com>
7417
7418         PR c/5609
7419         * stmt.c (resolve_operand_name_1): Take more care with mixed
7420         named and unnamed operands.
7421
7422 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
7423             Jan Hubicka  <jh@suse.cz>
7424
7425         * loop.c (remove_constant_addition): Avoid clobbering a shared
7426         CONST expression.
7427
7428 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7429
7430         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
7431         * config/s390/t-linux64: New file.
7432         * config/s390/libgcc-glibc.ver: New file.
7433
7434 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7435
7436         * config/s390/linux64.h: Delete file.
7437         * config/s390/s390x.h: New file.
7438         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
7439         as target header file.
7440         * config/s390/linux.h (TARGET_VERSION): Define depending on
7441         DEFAULT_TARGET_64BIT.
7442         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
7443         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
7444         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
7445         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
7446         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
7447         (EXTRA_SPEC): New define.
7448         * config/s390/s390.h (TARGET_VERSION): Define depending on
7449         DEFAULT_TARGET_64BIT.
7450         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
7451
7452 2002-02-06  Jason Merrill  <jason@redhat.com>
7453
7454         * c-decl.c (finish_function): Warn about a non-void function with
7455         no return statement and no abnormal exit.
7456         (current_function_returns_abnormally): New variable.
7457         (start_function): Clear it.
7458         (struct c_language_function): Add returns_abnormally.
7459         (push_c_function_context): Save it.
7460         (pop_c_function_context): Restore it.
7461         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
7462         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
7463         an explicit return type.
7464         * c-tree.h: Declare current_function_returns_abnormally.
7465         (C_FUNCTION_IMPLICIT_INT): New macro.
7466         * c-typeck.c (build_function_call): Set it.
7467         (c_expand_return): Set current_function_returns_value even if the
7468         value is erroneous.
7469
7470 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7471
7472         PR c/5420:
7473         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
7474         unsafe for reevaluation.
7475
7476 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7477
7478         PR c/5482:
7479         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
7480         EXPR_STMT, but COMPOUND_STMT, recurse into it.
7481
7482 2002-02-06  Richard Henderson  <rth@redhat.com>
7483
7484         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
7485         be a general_operand.  Dest for function value must be a pseudo.
7486
7487 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
7488
7489         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
7490         as SYMBOL_REFs from the constant pool.
7491
7492 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
7493
7494         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
7495         passed by invisible reference.
7496
7497 2002-02-05  Richard Henderson  <rth@redhat.com>
7498
7499         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
7500
7501 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
7502
7503         Implement using "base addresses" in insn operands as default.
7504         * config/mmix/mmix.c (mmix_conditional_register_usage): if
7505         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
7506         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
7507         used to read the rtx value.
7508         (mmix_target_asm_function_epilogue): Fix spacing.
7509         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
7510         (mmix_legitimate_address): Ditto.
7511         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
7512         should be loaded with a GETA insn.  Don't allocate needless extra
7513         char for nul termination and fix misleading comment.
7514         (mmix_print_operand_address): Handle constants if
7515         TARGET_BASE_ADDRESSES.
7516         (mmix_output_register_setting): Use base addressing if
7517         TARGET_BASE_ADDRESSES and the number of insns is 3.
7518         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
7519         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
7520         to use R as constraint, add LDA to match s.
7521         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
7522         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
7523         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
7524         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
7525         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
7526         order with other fixed registers.
7527         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
7528         other parameter/call-clobbered registers.
7529         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
7530         -mbase-addresses, -mno-base-addresses.
7531         (MMIX Options): Ditto.
7532
7533 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7534
7535         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
7536
7537 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
7538
7539         * config/rs6000/altivec.h: Change elem to _S_elem.
7540
7541 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7542
7543         * config/netbsd.h (WCHAR_TYPE): Define.
7544         (WCHAR_TYPE_SIZE): Ditto.
7545         (WINT_TYPE): Ditto.
7546         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
7547         (WCHAR_UNSIGNED): Ditto.
7548         (WCHAR_TYPE_SIZE): Ditto.
7549         (WINT_TYPE): Ditto.
7550         * config/arm/netbsd.h: Likewise.
7551         * config/i386/netbsd-elf.h: Likewise.
7552         * config/i386/netbsd.h: Likewise.
7553         * config/m68k/netbsd-elf.h: Likewise.
7554         * config/m68k/netbsd.h: Likewise.
7555         * config/ns32k/netbsd.h: Likewise.
7556         * config/sparc/netbsd.h: Likewise.
7557         * config/vax/netbsd.: Likewise.
7558
7559 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
7560
7561         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
7562         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
7563         (TARGET_INITIALIZER): this.
7564         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
7565         (BITFIELD_NBYTES_LIMITED): Markup fix.
7566         * tree.h (default_ms_bitfield_layout_p): Declare.
7567         (record_layout_info): Added prev_field.
7568         * tree.c (default_ms_bitfield_layout_p): New fn.
7569         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
7570         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
7571         * stor-layout.c: Include target.h.
7572         (start_record_layout): Initialize prev_field.
7573         (place_field): Handle MS bit-field layout, and disregard
7574         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
7575         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
7576         * Makefile.in (stor-layout.o): Adjust dependencies.
7577
7578 2002-02-05  Jason Merrill  <jason@redhat.com>
7579
7580         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
7581
7582 2002-02-05  Andreas Jaeger  <aj@suse.de>
7583
7584         * crtstuff.c: Fix comments.
7585
7586 2002-02-05  Richard Henderson  <rth@redhat.com>
7587
7588         PR fortran/3393
7589         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
7590         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
7591
7592         PR fortran/3392
7593         * config/mips/mips.c (function_arg): Handle TImode.
7594         (function_arg_advance): Likewise.
7595
7596 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7597
7598         * config/rs6000/altivec.h (vec_step_help): Rename to
7599         __vec_step_help.
7600
7601 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7602
7603         * config/rs6000/altivec.h: Fix typos.
7604
7605 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7606
7607         * config/arm/netbsd.h: Correct a comment.
7608
7609 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7610
7611         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
7612         building void typed builtins.
7613
7614         * config/rs6000/altivec.h (vec_ld*): Fix typos.
7615         (vec_step): Implement for C++.
7616
7617 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7618
7619         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
7620
7621 2002-02-04  Richard Henderson  <rth@redhat.com>
7622
7623         * combine.c (nonzero_bits): Re-introduce special case for
7624         sp/fp/ap wrt REGNO_POINTER_ALIGN.
7625
7626 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7627
7628         * doc/extend.texi: Warn about unsupported usage of altivec
7629         builtins.
7630
7631         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
7632         (altivec_predicate_*): New.
7633
7634         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
7635         Add C++ version of vec_*() functions.
7636
7637         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
7638         (bdesc_2arg): Remove altivec predicates.
7639         (altivec_expand_builtin): Handle predicates.
7640         (altivec_init_builtins): Handle predicates.
7641         (altivec_expand_predicate_builtin): New.
7642
7643 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7644
7645         * pa.c (DO_FRAME_NOTES): Move forward.
7646         (store_reg): Revise handling of frame notes.
7647         (load_reg): Likewise.
7648         (set_reg_plus_d): Likewise.
7649         (hppa_expand_prologue): Likewise.
7650         (hppa_expand_epilogue): Likewise.
7651
7652 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7653
7654         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
7655
7656 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7657
7658         PR c/4475, c++/3780:
7659         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
7660         * c-common.h (SWITCH_TYPE): Define.
7661         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
7662         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
7663         Rename spareness variable to sparseness.
7664         (expand_end_case_type): Renamed from expand_end_case, use orig_type
7665         if non-NULL instead of TREE_TYPE (orig_index).
7666         * tree.h (expand_end_case_type): Renamed from expand_end_case.
7667         (expand_end_case): Define using expand_end_case_type.
7668         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
7669         to expand_end_case_type.
7670         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
7671
7672 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7673
7674         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
7675         (BIGGEST_ALIGNMENT): Change to 128.
7676
7677 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7678
7679         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
7680
7681 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7682
7683         * pa.md (call_internal_reg_64bit): Remove unused variable.
7684
7685 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
7686
7687         * config/arm/arm.h (machine_function): Add uses_anonymous_args
7688         field.
7689         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
7690         * config/arm/arm.c (current_function_anonymous_args): Delete,
7691         replace uses with cfun->machine->uses_anonymous_args.
7692         (arm_reorg): Do not reset uses_anonymous_args.
7693
7694         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
7695         any geenral register.
7696
7697 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
7698
7699         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
7700         the entry block.
7701
7702 2002-02-04  Richard Henderson  <rth@redhat.com>
7703
7704         * combine.c (force_to_mode): Remove STACK_BIAS code.
7705         (nonzero_bits): Likewise.  Replace sp/fp special case with
7706         REGNO_POINTER_ALIGN.
7707
7708         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
7709         (HARD_FRAME_POINTER_REGNUM): New.
7710         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
7711         (FIXED_REGS, CALL_USED_REGS): Update.
7712         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
7713         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
7714         (HARD_REGNO_NREGS): Update for SFP.
7715         (STACK_POINTER_OFFSET): Include bias here ...
7716         (FIRST_PARM_OFFSET): ... not here.
7717         (STACK_BIAS): Remove.
7718         (INIT_EXPANDERS): New.
7719         (STARTING_FRAME_OFFSET): Do not include bias.
7720         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
7721         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
7722         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
7723         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
7724         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
7725         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
7726         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
7727         (MUST_SAVE_REGISTER): Likewise.
7728         (sparc_flat_function_prologue): Likewise.
7729         (sparc_flat_function_epilogue): Likewise.
7730         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
7731         (sparc_init_modes): SFP is GENERAL_REGS.
7732         (sparc_builtin_saveregs): SFP does not have bias applied.
7733
7734 2002-02-04  Richard Henderson  <rth@redhat.com>
7735
7736         * config/alpha/alpha.c (current_function_is_thunk): Don't check
7737         current_function_is_thunk.
7738         (alpha_sa_mask): Distinguish between current_function_is_thunk
7739         called from ASM_OUTPUT_MI_THUNK and not.
7740         (alpha_does_function_need_gp): Thunks always need gp.
7741         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7742         (alpha_output_mi_thunk_osf): New.
7743         * config/alpha/alpha-protos.h: Update.
7744         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
7745
7746 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
7747
7748         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
7749         function types, not when they're taken away.
7750
7751 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
7752
7753         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
7754         CODE_LABEL and jump table when replacing a table jump with a
7755         simple jump.
7756
7757 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7758
7759         * config/s390/s390-protos.h (legitimize_la_operand,
7760         s390_secondary_input_reload_class, s390_plus_operand,
7761         s390_expand_plus_operand): Add prototypes.
7762
7763         config/s390/s390.c (s390_secondary_input_reload_class,
7764         s390_plus_operand, s390_expand_plus_operand): New functions.
7765
7766         (struct s390_address): New member 'pointer'.
7767         (s390_decompose_address): Compute it.
7768         (legitimate_la_operand_p): Use it.
7769         (legitimize_la_operand): New function.
7770         (movti, movdi, movdf splitters): Call it.
7771
7772         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
7773         (PREDICATE_CODES): Add s390_plus_operand.
7774
7775         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
7776         (la_ccclobber): Allow GENERAL_REGS as output operand.
7777
7778         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
7779         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
7780         (*la_64, *la_31, reload_indi, reload_insi): ... these.
7781
7782 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7783
7784         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
7785         register names for regular asm () construct.
7786
7787 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7788
7789         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
7790         registers.
7791
7792 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7793
7794         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
7795         pat for recog.
7796
7797 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
7798
7799         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
7800         constant pool to be identical by string address and index.
7801
7802 2002-02-04  Anthony Green  <green@redhat.com>
7803
7804         * output.h (SECTION_OVERRIDE): Define.
7805         * varasm.c (named_section): Obey SECTION_OVERRIDE.
7806
7807 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7808
7809         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
7810         by existing arm*-*-netbsd* (a.out) target.
7811         (ns32k-*-netbsdelf*): Likewise.
7812         (sparc-*-netbsdelf*): Likewise.
7813         (vax-*-netbsdelf*): Likewise.
7814
7815 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
7816
7817         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
7818         headers and libobjc headers.
7819
7820 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
7821
7822         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
7823         (_mingw.h): Remove duplicate include.
7824
7825 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7826
7827         * config.gcc: Set cpu_type to m68k for 68010, as well.
7828         (m68010-*-netbsdelf*): New...
7829         (m68k*-*-netbsdelf*): ...targets.
7830         * config/m68k/netbsd-elf.h: New file.
7831
7832 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7833
7834         * config/h8300/h8300.c (hand_list): Move inside function_arg.
7835
7836 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7837
7838         * config/h8300/h8300.c (h8_push_ops): Move inside
7839         h8300_init_once.
7840         (h8_pop_ops): Likewise.
7841         (h8_move_ops): Likewise.
7842
7843 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7844
7845         * config/h8300/h8300.c (os_task): Make it static.
7846         (monitor): Likewise.
7847         (pragma_saveall): Likewise.
7848
7849 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
7850
7851         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
7852         constant is a valid sign-extension for Pmode.
7853
7854 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7855
7856         * config/h8300/h8300.c: Fix formatting.
7857
7858 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7859
7860         * config/h8300/h8300.md: Fix formatting.
7861
7862 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7863
7864         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
7865         predicates of operands[1].  Split the patterns for each
7866         processor variant.
7867
7868 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7869
7870         * config/h8300/h8300.md (xor patterns): Tighten the predicates
7871         of operands[1] to register_operand.
7872
7873 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7874
7875         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
7876         * cpphash.c (_cpp_init_hashtable): Similarly.
7877         * cppinit.c (cpp_create_reader): Default the signed_char flag.
7878         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
7879         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
7880         (cpp_handle_option): Handle the new options.
7881         * cpplex.c (cpp_interpret_charconst): Use new flag.
7882         * cpplib.h (struct cpp_options): New member signed_char.
7883         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
7884         (cpp_options): Handle -fsigned-char and -funsigned-char.
7885         (static_specs): Remove signed_char_spec.
7886         (do_spec1): Don't handle %c.
7887         * system.h: Poison SIGNED_CHAR_SPEC.
7888         * tradcif.y (yylex): Use flag_signed_char.
7889         * tradcpp.h (flag_signed_char): New.
7890         * tradcpp.c (flag_signed_char): New.
7891         (main): Handle new command-line options.
7892         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
7893 config:
7894         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
7895         * avr/avr.h: Remove old comments.
7896         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
7897         (CC1_SPEC): Pass -fsigned-char if -mic*.
7898         (SIGNED_CHAR_SPEC): Remove.
7899 doc:
7900         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
7901
7902 2002-02-01  Eric Christopher  <echristo@redhat.com>
7903
7904         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
7905         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
7906         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
7907         (ASM_OUTPUT_REG_POP): Ditto.
7908
7909 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7910
7911         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
7912         patch.
7913
7914 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7915
7916         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
7917
7918 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7919
7920         PR c/5304:
7921         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
7922         unconditionally.
7923
7924 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7925
7926         * cfganal.c: Include tm_p.h.
7927         (keep_with_call_p): Fix the test that determines if a register holds
7928         the return value of a call.
7929
7930 2002-02-01  DJ Delorie  <dj@redhat.com>
7931
7932         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
7933         we are given conflicting registers, switch to the other one we
7934         had allocated for us.
7935         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
7936         as TImode so we know when the "other" register is available.
7937
7938 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
7939
7940         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
7941         sparc/sparc_bi.h.
7942
7943 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7944
7945         * cfganal.c (keep_with_call_p): New function.
7946         (flow_call_edges_add): Prevent splitting a block between a call and
7947         a single-set instruction that should be kept in the same block.
7948
7949 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7950
7951         * doc/install.texi (avr): Update outdated URL.
7952
7953 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
7954
7955         * config/stormy16/stormy16.md (pushqi): New.
7956         (popqi): New.
7957         (pushhi): New.
7958         (pophi): New.
7959         (movhi): Remove stack operands.
7960         (movqi): Likewise.
7961         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
7962         nonimmediate_nonstack_operand.
7963         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
7964         New.
7965         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
7966         New.
7967
7968 2002-01-31  Jason Merrill  <jason@redhat.com>
7969
7970         * Makefile.in (c-parse.c): Handle .output file.
7971         * objc/Make-lang.in (objc-parse.c): Likewise.
7972
7973 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
7974
7975         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
7976         the -me[lb] option is given.  Don't output the default flag
7977         twice.
7978
7979 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
7980
7981         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
7982         the primary source file; this has not been done yet.
7983         * c-decl.c (c_expand_body): Reset input_filename from
7984         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
7985
7986 2002-01-31  Kazu Hirata  <kazu@hxi.com>
7987
7988         * rtlanal.c (subreg_regno_offset): Do not use
7989         SUBREG_REGNO_OFFSET.
7990         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
7991         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
7992
7993 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7994
7995         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
7996         version rather than GNATS version in --version output.
7997
7998 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
7999
8000         * ifcvt.c (noce_process_if_block): Make a copy of the destination
8001         when copying back from a temporary.
8002
8003 2002-01-30  Richard Henderson  <rth@redhat.com>
8004
8005         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
8006         and new_dest are the same.
8007
8008 2002-01-30  Richard Henderson  <rth@redhat.com>
8009
8010         PR opt/5076
8011         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
8012         * rtl.c (note_insn_name): Update.
8013         * emit-rtl.c (remove_unnecessary_notes): Kill it.
8014         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
8015         to perform loop rotation.
8016         (expand_exit_loop_top_cond): New.
8017         * tree.h (expand_exit_loop_top_cond): Declare it.
8018         * c-semantics.c (genrtl_while_stmt): Use it.
8019         (genrtl_for_stmt): Likewise.
8020
8021 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
8022
8023         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
8024         arguments to 64-bit boundaries on 64-bit ABIs.
8025
8026 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
8027
8028         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
8029
8030 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8031
8032         * c-decl.c (grokdeclarator): Handle type being a typedef for an
8033         invalid type.
8034
8035 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
8036
8037         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
8038         * config/sparc/sparc_bi.h: Remove file.
8039         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
8040
8041 2002-01-30  Richard Henderson  <rth@redhat.com>
8042
8043         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
8044
8045 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
8046
8047         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
8048
8049 2002-01-30  Jason Merrill  <jason@redhat.com>
8050
8051         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
8052         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
8053         (reg_save): Use DW_CFA_offset_extended_sf instead.
8054
8055         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
8056
8057 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
8058
8059         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
8060         in cselib_lookup.
8061
8062 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
8063
8064         * rs6000.md ("*call_value_local32"): Remove constraints.
8065         ("*call_value_local64"): Same.
8066         ("*call_value_indirect_nonlocal_aix32"): Same.
8067         ("*call_value_nonlocal_aix32"): Same.
8068         ("*call_value_indirect_nonlocal_aix64"): Same.
8069         ("*call_value_nonlocal_aix64"): Same.
8070         ("*call_value_nonlocal_sysv"): Same.
8071
8072 2002-01-29  Richard Henderson  <rth@redhat.com>
8073
8074         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
8075
8076 2002-01-29  Richard Henderson  <rth@redhat.com>
8077
8078         * expr.c (force_operand): Ignore flag_pic for detecting pic
8079         address loads.
8080         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
8081         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
8082         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
8083         instead of open-coded loop.
8084         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
8085         be fixed when in use.
8086
8087 2002-01-29  Richard Henderson  <rth@redhat.com>
8088
8089         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
8090         * sched-rgn.c (propagate_deps): Update them.
8091         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
8092         clobbers list when either gets too long.
8093
8094 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
8095
8096         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
8097         and INDEX_REGS the same as GENERAL_REGS.
8098         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
8099
8100 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8101
8102         * tree.c (build_nonstandard_integer_type): Correct prototype.
8103
8104 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
8105
8106         * config/s390/s390.md (movstrsico, movstrdix_64,
8107         movstrsix_31): Remove, replace by ...
8108         (movstrdi_short, movstrsi_short, movstrdi_long,
8109         movstrsi_long): ... these.  New.
8110         (movstrdi, movstrsi): Adapt.
8111
8112         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
8113         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
8114         Remove unnecessary CC clobber.
8115         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
8116         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
8117
8118         (divmoddi4): Don't partially initialize TImode register.
8119
8120 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
8121
8122         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
8123
8124 2002-01-29  Richard Henderson  <rth@redhat.com>
8125
8126         * flow.c (print_rtl_and_abort): Remove.
8127         (print_rtl_and_abort_fcn): Remove.
8128         (verify_local_live_at_start): Use dump_bb instead.
8129         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
8130         (verify_wide_reg_1): Return 2 on mode test failure.
8131
8132 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8133
8134         PR c/3325, c/3326, c/2511, c/3347
8135         * c-decl.c (enum_decl_context): Remove BITFIELD.
8136         (grokdeclarator): Take bitfield width as an input.
8137         Ensure bitfields are given the correct type.  Perform
8138         bitfield width validation with build_bitfield_integer_type
8139         rather than waiting for finish_struct.
8140         (grok_typename, grok_typename_in_parm_context, start_decl,
8141         push_parmdecl, grokfield, start_function): Update calls to
8142         grokdeclarator.
8143         (build_bitfield_integer_type): New function.
8144         (finish_struct): Move bitfield validation to grokdeclarator
8145         and build_bitfield_integer_type.
8146         * tree.c (build_nonstandard_integer_type): New function.
8147         * tree.h (build_nonstandard_integer_type): New prototype.
8148 objc:
8149         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
8150
8151 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
8152
8153         PR other/1502:
8154         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
8155         don't ignore unrecognized -W* options.
8156         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
8157         * cpplib.h (cpp_handle_option): Adjust prototype.
8158         * c-decl.c (c_decode_options): Pass 0 as last argument to
8159         cpp_handle_option.
8160
8161         PR c/2896:
8162         * gcc.c (cpp_unique_options): Split from cpp_options.
8163         (cpp_options): Source cpp_unique_options.
8164         (default_compilers): Use cpp_unique_options instead of cpp_options
8165         when used together with cc1_options.
8166         (static_specs): Add cpp_unique_options.
8167         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
8168         when used together with cc1_options.
8169
8170 2002-01-29  Kazu Hirata  <kazu@hxi.com>
8171
8172         * config/h8300/h8300-protos.h: Update the prototype of
8173         output_a_shift.
8174         * config/h8300/h8300.c (output_a_shift): Remove an unused
8175         argument 'insn'.  Remove redundant code.
8176         * config/h8300/h8300.md: Adust to the new prototype of
8177         output_a_shift.
8178
8179 2002-01-29  Kazu Hirata  <kazu@hxi.com>
8180
8181         * config/h8300/h8300-protos.h: Update the prototypes of
8182         emit_a_rotate and expand_a_rotate.
8183         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
8184         first argument to 'enum rtx_code'.
8185         (expand_a_rotate): Likewise.
8186
8187 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8188
8189         * config/h8300/h8300-protos.h: Update the prototype of
8190         output_simode_bld.
8191         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
8192         'log2'.
8193         * config/h8300/h8300.md: Adjust to the new prototype.
8194
8195 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8196
8197         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
8198         redundant code.
8199
8200 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8201
8202         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
8203         is a fixed register before returning pic_offset_table_rtx.
8204         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
8205         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
8206
8207 2002-01-28  Jason Merrill  <jason@redhat.com>
8208
8209         * dwarf2.h: Sync with src version.
8210
8211 2002-01-28  Paul Koning  <pkoning@equallogic.com>
8212
8213         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
8214         BT_FN_VOID_PTR_VAR.
8215         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
8216         * doc/extend.texi (__builtin_prefetch): Update documentation:
8217         first argument is now const void ptr.
8218
8219 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8220
8221         * config/h8300/h8300-protos.h: Remove an unused prototype.
8222
8223 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
8224
8225         * toplev.c (lang_independent_init): Round up identifier size.
8226
8227 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
8228
8229         * config.gcc: Revert previous change.
8230
8231 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
8232
8233         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
8234
8235 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
8236
8237         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
8238         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
8239         other non-elf netbsd config frags.
8240         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
8241         collect2 will does that.
8242         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
8243         shared-lib frobbing will work.
8244
8245 2002-01-28  Kazu Hirata  <kazu@hxi.com>
8246
8247         * config/h8300/h8300.h: Fix formatting.
8248         * config/h8300/h8300.md: Likewise.
8249
8250 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
8251
8252         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
8253         the old, removed AAA_standards fix.
8254         * fixinc/fixincl.x: Rebuilt.
8255
8256 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
8257
8258         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
8259         atexit call in crtbegin, hooked in after call to frame_dummy;
8260         register EH before registering __fini__start.
8261
8262 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
8263
8264         * config/rs6000/altivec.h: Remove spurious semicolons.
8265
8266 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8267
8268         * config/h8300/h8300.md: Replace dead bit extraction patterns
8269         with ones that work.
8270
8271 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8272
8273         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
8274         if not STRICT_ALIGNMENT.
8275         * rtl.h (MEM_ALIGN): Likewise.
8276
8277 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8278
8279         * doc/invoke.texi (-fdump-translation-unit): Revert this
8280         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8281
8282 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8283
8284         * config/h8300/h8300.md (define_constants): New.
8285         (anonymous patterns) Use defined constants appropriately.
8286
8287 2002-01-27  Kazu Hirata  <kazu@hxi.com>
8288
8289         * config/h8300/h8300.c (function_arg): Remove redundant code.
8290
8291 2002-01-26  Richard Henderson  <rth@redhat.com>
8292
8293         * sched-deps.c (reg_pending_uses_head): New.
8294         (reg_pending_barrier): Rename from reg_pending_sets_all.
8295         (find_insn_list): Don't mark inline.
8296         (find_insn_mem_list): Remove.
8297         (add_dependence_list, add_dependence_list_and_free): New.
8298         (flush_pending_lists): Replace only_write param with separate
8299         for_read and for_write parameters.  Update all callers.  Use
8300         add_dependence_list_and_free.
8301         (sched_analyze_1): Do not add reg dependencies here; just set
8302         the pending bits.  Use add_dependence_list.
8303         (sched_analyze_2): Likewise.
8304         (sched_analyze_insn): Replace schedule_barrier_found with
8305         reg_pending_barrier.  Add all dependencies for pending reg
8306         uses, sets, and clobbers.
8307         (sched_analyze): Don't add reg dependencies for calls, just
8308         set pending bits.  Use regs_invalidated_by_call.  Treat
8309         sched_before_next_call as a normal list, not a fake insn.
8310         (init_deps): No funny init for sched_before_next_call.
8311         (free_deps): Free pending mems lists.  Don't zero reg_last.
8312         (init_deps_global): Init reg_pending_uses.
8313         (finish_deps_global): Free it.
8314         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
8315         (find_insn_mem_list): Remove.
8316         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
8317         (propagate_deps): Use them.  Zero temp mem lists.
8318
8319 2002-01-26  Richard Henderson  <rth@redhat.com>
8320
8321         * Makefile.in (CRTSTUFF_CFLAGS): New.
8322         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
8323         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
8324         crtstuff.c instead of alpha assembly version.
8325         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
8326         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
8327         not FORCE_{INIT,FINI}_SECTION_ALIGN.
8328         (__do_global_dtors_aux): Mark used.
8329         (frame_dummy, __do_global_ctors_aux): Mark used.
8330         (fini_dummy, init_dummy): Remove.
8331
8332         * config/alpha/crtbegin.asm: Remove file.
8333         * config/alpha/crtend.asm: Remove file.
8334         * config/alpha/t-crtbe: Remove file.
8335         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
8336         (LINK_EH_SPEC): New.
8337
8338         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
8339         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
8340         calling constructors.
8341         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
8342
8343         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
8344         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
8345         CRT_END_INIT_DUMMY hack.
8346         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
8347         FORCE_{INIT,FINI}_SECTION_ALIGN.
8348
8349         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
8350         FORCE_{INIT,FINI}_SECTION_ALIGN.
8351
8352         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
8353         invocation sequence.
8354         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
8355
8356         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
8357         (FORCE_CODE_SECTION_ALIGN): New.
8358
8359 2002-01-26  Richard Henderson  <rth@redhat.com>
8360
8361         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
8362
8363 2002-01-26  Richard Henderson  <rth@redhat.com>
8364
8365         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
8366         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
8367
8368 2002-01-26  Kazu Hirata  <kazu@hxi.com>
8369
8370         * config/h8300/h8300.md: Remove bit extraction patterns that
8371         cannot be triggered.
8372         Restrict each bit extraction pattern to a variant on which the
8373         pattern is tested.
8374
8375 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
8376
8377         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
8378
8379 2002-01-26  Kazu Hirata  <kazu@hxi.com>
8380
8381         * config/h8300/h8300.md: Remove bit test patterns that cannot
8382         be triggered.
8383         Restrict each bit test pattern to a variant on which the
8384         pattern is tested.
8385
8386 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8387
8388         * builtins.c (expand_builtin_strncat): Remove redundant check for
8389         INTEGER_CST.
8390
8391 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8392
8393         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
8394         default setting.
8395         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
8396         existing setting.
8397
8398 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8399
8400         * dbxout.c (dbxout_init): Use assemble_name rather than just
8401         stripping off the first character.
8402         (dbxout_source_file): Likewise.
8403
8404 2002-01-25  DJ Delorie  <dj@redhat.com>
8405
8406         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
8407         using rtx_equal_p, not by comparing pointers.
8408
8409 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
8410
8411         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
8412         for PIC_OFFSET_TABLE_REGNUM.
8413         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
8414
8415 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8416
8417         * config.gcc (x86_64-*-freebsd*): New target.
8418         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
8419         value.
8420         (i[34567]86-*-freebsd*): Don't include svr4.h.
8421         * config/i386/freebsd64.h: New file.
8422
8423 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
8424
8425         * config/alpha/x-vms (version): Make static.
8426
8427         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
8428         in previous checkin.
8429
8430         * Makefile.in (install-headers-cp): New target.
8431         * config.gcc (alpha-dec-*vms*): Install headers with
8432         install-headers-cp
8433
8434 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
8435
8436         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
8437         avoid it's copies.
8438
8439 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8440
8441         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
8442         of compare_tree_int.
8443         (expand_builtin_strncat): Likewise.
8444         * c-decl.c (finish_struct): Use tree_low_cst.
8445         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
8446         * tree.c (compare_tree_int): Likewise.
8447
8448 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
8449
8450         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
8451         adjustments even if they are implemented by more than two insns.
8452
8453 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
8454
8455         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
8456         * df.h (struct ref): Kill B.
8457         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
8458
8459         * basic-block.h (PROP_EQUAL_NOTES): New flag.
8460         * flow.c (propagate_one_insn): Use it.
8461         (mark_used_regs): Handle NIL.
8462
8463 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8464
8465         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
8466         to help folding.
8467
8468 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
8469
8470         * rs6000.md (prefetch): Make address V4SI mode so that the address
8471         is restricted to legitimate form for instruction.
8472
8473 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
8474
8475         * doc/install.texi (xtensa-*-elf): New target.
8476         (xtensa-*-linux*): New target.
8477         * doc/contrib.texi: Add myself.
8478
8479 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
8480
8481         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
8482         purpose register to hold an SImode (or smaller) value.
8483
8484 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
8485
8486         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
8487         registry only.
8488         * crtstuff.c: Likewise.
8489
8490 2002-01-25  Kazu Hirata  <kazu@hxi.com>
8491
8492         * config/h8300/h8300.md (negation patterns): Tighten
8493         predicates to register_operand.
8494
8495 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
8496
8497         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
8498         mode, not Pmode.
8499
8500         * builtins.c (expand_builtin_prefetch): Same.
8501
8502 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8503
8504         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
8505         modes.
8506
8507 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8508
8509         * config/h8300/h8300.c (print_operand): Remove support for
8510         operand character 'A'.
8511         * config/h8300/h8300.md (three anonymous patterns): Replace
8512         operand character 'A' with either 'T' or 'S'.
8513
8514 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8515
8516         * config/h8300/h8300.c (print_operand): Remove support for
8517         operand character 'U'.
8518
8519 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
8520
8521         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
8522
8523 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
8524
8525         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
8526         values to be assigned to the stack pointer.
8527
8528 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
8529
8530         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
8531         to const_double needs to be done right for big-endian systems.
8532
8533 2002-01-24  Jason Merrill  <jason@redhat.com>
8534
8535         PR c++/2432
8536         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
8537         to can_throw_internal.
8538
8539 2002-01-23  Richard Henderson  <rth@redhat.com>
8540
8541         * fold-const.c (fold): Change UINT_MAX test to check vs precision
8542         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
8543
8544 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8545
8546         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
8547         (symGOT2reg): Use them, then set as GOT value as unchanging.
8548         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
8549         as a temporary, if possible.
8550         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
8551         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
8552
8553 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8554
8555         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
8556         accept to accept 0x80 as operands[2].
8557
8558 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8559
8560         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
8561
8562 2002-01-23  Richard Henderson  <rth@redhat.com>
8563
8564         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
8565
8566 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
8567
8568         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
8569         (parmlist_or_identifiers_1): Verify that only a parmlist follows
8570         an attribute.
8571
8572 2002-01-23  Richard Henderson  <rth@redhat.com>
8573
8574         * expr.c (move_by_pieces_1): Extend size before negation.
8575
8576         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
8577         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
8578         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
8579         * config/m68k/t-m68kelf: Likewise.
8580
8581 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
8582
8583         * config/xtensa/elf.h: New file.
8584         * config/xtensa/lib1funcs.asm: New file.
8585         * config/xtensa/lib2funcs.S: New file.
8586         * config/xtensa/linux.h: New file.
8587         * config/xtensa/t-xtensa: New file.
8588         * config/xtensa/xtensa-config.h: New file.
8589         * config/xtensa/xtensa-protos.h: New file.
8590         * config/xtensa/xtensa.c: New file.
8591         * config/xtensa/xtensa.h: New file.
8592         * config/xtensa/xtensa.md: New file.
8593         * config.gcc (xtensa-*-elf*): New target.
8594         (xtensa-*-linux*): New target.
8595         * cse.c (canon_hash): Compare rtx pointers instead of register
8596         numbers.  This is required for the Xtensa port.
8597         * integrate.c (copy_insn_list): Handle case where the static
8598         chain is in memory and the memory address has to be copied to
8599         a register.
8600         * doc/invoke.texi (Option Summary): Add Xtensa options.
8601         (Xtensa Options): New node.
8602         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
8603
8604 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8605
8606         * diagnostic.c (internal_error): Do ICE suppression only
8607         when ENABLE_CHECKING is not defined.
8608
8609         * c-typeck.c (require_complete_type): Return error_mark_node
8610         if type is error_mark_node.
8611
8612 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
8613
8614         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
8615         -Os and issue a warning.
8616
8617 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8618
8619         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
8620         current (lack of) need for host configuration by hand.
8621
8622         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
8623         references.  Documentation of some target macros moved from
8624         hostconfig.texi to tm.texi.
8625
8626 2002-01-23  Will Cohen  <wcohen@redhat.com>
8627
8628         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
8629         defined.
8630
8631 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8632
8633         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
8634         operand[3].
8635
8636 2002-01-23  Jason Merrill  <jason@redhat.com>
8637
8638         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
8639
8640         * function.c (assign_parms): Don't put args of inline functions
8641         into registers when not optimizing.
8642
8643 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
8644
8645         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
8646         (prologue_use): New pattern.
8647         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
8648         preference to gen_rtx_USE.
8649         (thumb_expand_prologue): Use gen_prologue_use in preference to
8650         gen_rtx_USE.
8651         (thumb_expand_epilogue): Use gen_prologue_use in preference to
8652         gen_rtx_USE.
8653
8654 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
8655
8656         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
8657
8658 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8659
8660         PR c/3504
8661         * doc/extend.texi: Correct documentation of __alignof__.
8662
8663 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
8664
8665         * params.h: Rename arguments of DEFPARAM so that it will be
8666         recognized as a translation keyword.
8667
8668 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8669
8670         * extend.texi: Document altivec functions.
8671         Fix N-bit adjectives in X86 builtin documentation.
8672
8673 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8674
8675         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
8676         auto_inc_dec values.
8677
8678 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
8679
8680         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
8681         after backslash.
8682         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
8683
8684 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8685
8686         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
8687
8688 2002-01-22  Richard Henderson  <rth@redhat.com>
8689
8690         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
8691         copy_insn not copy_rtx.
8692
8693 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
8694
8695         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
8696         "nonzero" as that might add "1" bits.  Ensure "constop" is
8697         properly sign extened.
8698         (force_to_mode): Tweak for sign extended constop.
8699
8700 2002-01-22  Richard Henderson  <rth@redhat.com>
8701
8702         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
8703         for_each_rtx instead of assuming we're already looking at the MEM.
8704         (split_small_symbolic_mem_operand): Likewise.
8705         * config/alpha/alpha.h (PREDICATE_CODES): Update.
8706         * config/alpha/alpha.md (small symbolic memory splitters): Update.
8707
8708 2002-01-22  Richard Henderson  <rth@redhat.com>
8709
8710         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
8711         sequence number for the literal.
8712         (divmoddi_internal_er): Likewise.
8713
8714 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8715
8716         PR java/4972
8717         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
8718         in LIBICONV variable.
8719         * configure: Regenerated.
8720
8721 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
8722
8723         * dependence.c (build_def_use): Remove array_idx.
8724
8725         * dwarfout.c (last_filename): Remove.
8726         (output_compile_unit_die): Remove last_filename.
8727
8728 2002-01-22  Roger Sayle  <roger@eyesopen.com>
8729             Richard Henderson  <rth@redhat.com>
8730
8731         PR opt/3640
8732         * fold-const.c (fold): Optimize unsigned comparisons against
8733         UINT_MAX (and similar unsigned constants).
8734
8735 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
8736
8737         * Makefile.in (loop.o): Depend on OPTABS_H.
8738         * loop.c (emit_prefetch_instructions): Check the prefetch operand
8739         against the predicate.
8740
8741         PR target/5379
8742         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
8743         for the address operand.
8744
8745 2002-01-22  Richard Henderson  <rth@redhat.com>
8746
8747         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
8748
8749 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8750
8751         PR other/5450
8752         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
8753         preprocessor flags.
8754
8755 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
8756
8757         * config.gcc (x86_64-*-netbsd*): New target.
8758         * config/i386/netbsd64.h: New file.
8759
8760 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8761
8762         * regrename.c (kill_value): Fix typo.
8763
8764 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8765
8766         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
8767
8768         * config/rs6000/rs6000.h: Same.
8769
8770         * function.c (instantiate_virtual_regs): Remove
8771         STARTING_FRAME_PHASE.
8772         (assign_stack_local_1): Same.
8773         Calculate frame phase.
8774
8775 2002-01-22  Nick Clifton  <nickc@redhat.com>
8776
8777         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
8778         variable declaration to outer scope in order to simplify
8779         future extensions.
8780         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
8781         arm_hard_regno_mode_ok.
8782         * config/arm/arm-protos.h: Add a prototype for
8783         arm_hard_regno_mode_ok.
8784         * config/arm/arm.c (soft_df_operand): Remove now redundant
8785         check for DImode values using IP_REGNUM.
8786         (nonimmediate_soft_df_operand): Remove now redundant check for
8787         DImode values using IP_REGNUM.
8788         (arm_hard_regno_mode_ok): New function. New check: make sure
8789         that DImode values are not stored in IP_REGNUM.
8790
8791         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
8792         note with a USE.
8793         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
8794
8795 2002-01-22  Jason Merrill  <jason@redhat.com>
8796
8797         * c-semantics.c (genrtl_compound_stmt): Only check nesting
8798         consistency if this COMPOUND_STMT is scoped.
8799
8800 2002-01-22  Kazu Hirata  <kazu@hxi.com>
8801
8802         * predict.c: Fix formatting.
8803         * print-tree.c: Likewise.
8804         * protoize.c: Likewise.
8805         * real.h: Likewise.
8806         * rtl.h: Likewise.
8807         * sbitmap.h: Likewise.
8808         * scan.c: Likewise.
8809         * sched-deps.c: Likewise.
8810         * sched-vis.c: Likewise.
8811         * sdbout.c: Likewise.
8812         * sibcall.c: Likewise.
8813         * ssa.c: Likewise.
8814         * ssa-ccp.c: Likewise.
8815         * ssa-dce.c: Likewise.
8816         * stmt.c: Likewise.
8817         * stor-layout.c: Likewise.
8818         * system.h: Likewise.
8819
8820 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8821
8822         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
8823         if fits in bounds of base type.
8824
8825         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
8826         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
8827         (add_bound_info, default): If can't find a context, make a
8828         SAVE_EXPR.
8829         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
8830
8831 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
8832
8833         * c-typeck.c (parser_build_binary_op): If result from
8834         build_binary_op is ERROR_MARK just return error_mark_node without
8835         further processing.
8836
8837 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
8838
8839         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
8840         Split a.out-specific bits into...
8841         * config/netbsd-aout.h: ...this.
8842         * config/netbsd-elf.h: New file.
8843         * config/alpha/netbsd-elf.h: Remove.
8844         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
8845         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
8846         (STARTFILE_SPEC): Remove redundant definition.
8847         (ENDFILE_SPEC): Likewise.
8848         (LINK_SPEC): Likewise.
8849         (CPP_SPEC): Likewise.
8850         (ASM_SPEC): Likewise.
8851         (LIB_SPEC): Likewise.
8852         (SWITCH_TAKES_ARG): Likewise.
8853         (TARGET_MEM_FUNCTIONS): Likewise.
8854         (CPP_PREDEFINES): Redefine.
8855         (ASM_FINAL_SPEC): Remove redefinition.
8856         (ASM_COMMENT_START): Redefine.
8857         (FUNCTION_PROFILER): Define.
8858         (TARGET_VERSION): Redefine.
8859         Comment and formatting cleanup.
8860         * config/i386/netbsd.h: Include <netbsd-aout.h>.
8861         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
8862         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
8863         big- or little-endian.
8864         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
8865         * config.gcc (*-*-netbsd*): Add definitions common to all
8866         NetBSD configs.
8867         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
8868         gnu_ld definitions.  Add netbsd-elf.h to and remove
8869         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
8870         tmake_file, and don't lose previous tmake_file contents.
8871         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
8872         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
8873         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
8874         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
8875         (mipsel-*-netbsd*): Rename this to...
8876         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
8877         mips/little.h to tm_file for mips*el-*.
8878         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
8879         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
8880         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
8881
8882 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8883
8884         * pa-protos.h (reg_before_reload_operand): New function prototype.
8885         * pa.c (reg_before_reload_operand): New function implementation.
8886         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
8887         contraints to "*m".
8888
8889 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8890
8891         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
8892
8893 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8894
8895         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
8896         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
8897         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
8898         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
8899         (ENDFILE_SPEC): Undefine.
8900         (STARTFILE_SPEC): Redefine for PA.
8901
8902 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8903
8904         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
8905
8906 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
8907
8908         * config.gcc: Add entries to supported PowerPC --with-cpu
8909         types.
8910
8911 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
8912
8913         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
8914         true for 64-bit mode only SSE registers in 32-bit mode.
8915
8916 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8917
8918         * unwind-dw2.c: Fix formatting.
8919         * unwind-dw2-fde.c: Likewise.
8920         * unwind-dw2-fde.h: Likewise.
8921         * unwind-pe.h: Likewise.
8922         * varasm.c: Likewise.
8923         * varray.h: Likewise.
8924
8925 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
8926
8927         Remove workaround for register stack overwrite bug in mmix.
8928         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
8929         support for TARGET_REG_STACK_FILL_BUG.
8930         * config/mmix/mmix.h: Remove member has_call_without_parameters.
8931         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
8932         Delete.
8933         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
8934         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
8935         -mno-reg-stack-fill-bug-workaround.
8936         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
8937         machine member has_call_without_parameters.
8938         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
8939         -mreg-stack-fill-bug-workaround and
8940         -mno-reg-stack-fill-bug-workaround.
8941         (MMIX Options): Ditto.
8942
8943 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8944
8945         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
8946         as appropriate.
8947         Remove redundant code.
8948
8949 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8950
8951         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
8952         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8953         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8954         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
8955         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
8956         out target macro definitions and non-target-specific comments
8957         mostly taken from old versions of the manual.
8958
8959 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8960
8961         * config/h8300/h8300.h: Fix comment formatting.
8962         * config/ia64/aix.h: Likewise.
8963         * config/ia64/ia64-protos.h: Likewise.
8964         * config/ia64/ia64.c: Likewise.
8965         * config/ia64/ia64.h: Likewise.
8966         * config/ia64/ia64intrin.h: Likewise.
8967         * config/ia64/linux.h: Likewise.
8968         * config/ia64/unwind-aix.c: Likewise.
8969         * config/ia64/unwind-ia64.c: Likewise.
8970
8971 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8972
8973         * config/h8300/h8300.c: Revise comments about shift code.
8974
8975 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8976
8977         * config/h8300/h8300.c (function_arg): Update a comment.
8978
8979 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8980
8981         * config/h8300/h8300.md: Update the comments at the beginning
8982         of the file.
8983
8984 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8985
8986         * config/i370/i370.c: Fix comment formatting.
8987         * config/i370/i370.h: Likewise.
8988         * config/i370/i370.md: Likewise.
8989         * config/i370/linux.h: Likewise.
8990
8991 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8992
8993         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
8994
8995         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
8996         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
8997         in incomplete case.
8998
8999 2002-01-20  Graham Stott  <grahams@redhat.com>
9000
9001         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
9002
9003 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9004
9005         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
9006
9007 2002-01-19  Tom Rix  <trix@redhat.com>
9008
9009         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
9010
9011 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
9012
9013         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
9014
9015         * function.c (assign_stack_local_1): Adjust x_frame_offset with
9016         STARTING_FRAME_PHASE.
9017         (STARTING_FRAME_PHASE): New.
9018         (instantiate_virtual_regs): Check saneness of
9019         STARTING_FRAME_PHASE.
9020
9021         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
9022
9023 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
9024
9025         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
9026
9027 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9028
9029         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
9030         be used for bootstrapping GCC 3.0.
9031
9032 2002-01-18  Kazu Hirata  <kazu@hxi.com>
9033
9034         * config/h8300/h8300.md: Fix an insn length.
9035
9036 2002-01-18  Kazu Hirata  <kazu@hxi.com>
9037
9038         * bitmap.h: Fix comment formatting.
9039         * combine.c: Likewise.
9040         * cppfiles.c: Likewise.
9041         * c-pragma.h: Likewise.
9042         * c-typeck.c: Likewise.
9043         * df.c: Likewise.
9044         * dwarf2out.c: Likewise.
9045         * function.c: Likewise.
9046         * gcc.c: Likewise.
9047         * genattrtab.c: Likewise.
9048         * gthr-win32.h: Likewise.
9049         * haifa-sched.c: Likewise.
9050         * predict.c: Likewise.
9051         * rtlanal.c: Likewise.
9052         * rtl.h: Likewise.
9053         * unwind-dw2-fde.h: Likewise.
9054         * unwind-pe.h: Likewise.
9055         * vmsdbgout.c: Likewise.
9056
9057 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9058
9059         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
9060         if type_required and passed decl.
9061
9062 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
9063
9064         * config.gcc (cpu_type): Include altivec.h in powerpc
9065         extra_headers.
9066         Same for darwin.
9067
9068         * config/rs6000/altivec.h: New.
9069
9070 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
9071
9072         * doc/install.texi (*-ibm-aix*): Update assembler and exception
9073         handling information.
9074         * doc/trouble.texi (Interoperation): Add libstdc++ information
9075         for AIX.
9076         (Misunderstandings): Add template instantiation and static template
9077         member information for AIX.
9078
9079 2002-01-17  Jason Merrill  <jason@redhat.com>
9080
9081         * dbxout.c (dbxout_type): Support const and volatile.
9082
9083         * except.c (add_partial_entry): Remove backwards compatibility code.
9084         (end_protect_partials): Likewise.
9085
9086 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
9087
9088         * config/ia64/ia64.md (prologue_use): New.
9089         * config/ia64/ia64.c (ia64_expand_prologue): Use
9090         gen_prologue_use instead of gen_rtx_USE.
9091         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
9092         as CODE_FOR_pred_rel_mutex.
9093         (ia64_sched_reorder2): Likewise.
9094
9095 2002-01-16  Eric Christopher  <echristo@redhat.com>
9096
9097         * config/mips/r3900.h: Reformat.
9098         (SUBTARGET_CPP_SIZE_SPEC): Remove.
9099         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
9100         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
9101         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
9102         * config/mips/t-elf: Remove mips3 multilib.
9103
9104 2002-01-16  H.J. Lu <hjl@gnu.org>
9105
9106         * config/mips/linux.h: Include "mips/abi64.h".
9107
9108 2002-01-16  H.J. Lu <hjl@gnu.org>
9109
9110         * config/mips/t-linux: New.
9111
9112         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
9113
9114         * config/mips/linux.h: Don't include "gofast.h".
9115         (INIT_SUBTARGET_OPTABS): Removed.
9116
9117 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9118
9119         * config/h8300/h8300-protos.h: Replace emit_a_shift with
9120         output_a_shift.
9121         * config/h8300/h8300.c: Likewise.
9122         * config/h8300/h8300.md: Likewise.
9123
9124 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9125
9126         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
9127         spaces after an opcode name.
9128         (pushqi1_h8300hs): Likewise.
9129         (pushhi1_h8300hs): Likewise.
9130
9131 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9132
9133         * doc/extend.texi: Replace "option" with "attribute"
9134         appropriately.
9135
9136 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9137
9138         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
9139         (and:DI () (const_int -8)).
9140         (split_small_symbolic_mem_operand): Split
9141         (mem (and:DI () (const_int -8)).
9142
9143 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9144
9145         PR target/5309:
9146         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
9147         same way as TYPE_IMUL.
9148         (ultrasparc_sched_reorder): Likewise.
9149         * config/sparc/sparc.md (type): Add comment to update
9150         ultrasparc_sched_reorder when making changes.
9151
9152 2002-01-16  Kazu Hirata  <kazu@hxi.com>
9153
9154         * doc/invoke.texi: Change the dump file name of block
9155         reordering pass from 28.bbro to 29.bbro.
9156         Mention -dk option.
9157
9158 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
9159
9160         * i386.md (minsf splitter): Fix pasto.
9161
9162 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
9163
9164         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
9165         to frame pointer initialisation instruction.
9166         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
9167         initialisation instruction.
9168         (soft_df_operand): Do not accept the IP register.
9169         (nonimmediate_soft_df_operand): Do not accept the IP register.
9170
9171 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
9172
9173         PR target/5357:
9174         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
9175         MASK_V8 being both set.
9176
9177 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
9178
9179         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
9180         insn for GOT register; add REG_MAYBE_DEAD notes instead.
9181         config/s390/s390.md (call, call_value): Add GOT register to
9182         CALL_INSN_FUNCTION_USAGE where needed.
9183         (call_exp, call_value_exp): New.
9184
9185 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
9186
9187         * config/arm/arm.c: General formatting tidy up.
9188
9189 2002-01-16  Graham Stott  <grahams@redhat.com>
9190
9191         * calls.c (try_to_integrate): Use "(size_t)" intermediate
9192         cast and when casting an integer literal to "rtx" pointer.
9193         (expand_call): Likewise.
9194         * flow.c (try_pre_increment): Likewise.
9195         (find_use_as_address): Likewise.
9196         * integrate.c (expand_iline_function): Likewise.
9197         * regmove.c (try_auto_increment): Likewise.
9198
9199 2002-01-16  Graham Stott  <grahams@redhat.com>
9200
9201         * sched-rgn.c (passed): Use sbitmap_free.
9202         (header): Likewise.
9203         (inner): Likewise.
9204         (in_queue): Likewise.
9205         (in_stack): Likewise.
9206
9207 2002-01-15  Eric Christopher  <echristo@redhat.com>
9208
9209         * flow.c (propagate_one_insn): Change to use fatal_insn.
9210
9211 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9212
9213         * expmed.c (extract_fixed_bit_field): Remove unused code.
9214         * system.h: Poison SLOW_ZERO_EXTEND.
9215         * doc/tm.texi: Remove.
9216         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
9217         * config/arm/arm.h: Likewise.
9218         * config/avr/avr.h: Likewise.
9219         * config/clipper/clipper.h: Likewise.
9220         * config/convex/convex.h: Likewise.
9221         * config/d30v/d30v.h: Likewise.
9222         * config/dsp16xx/dsp16xx.h: Likewise.
9223         * config/elxsi/elxsi.h: Likewise.
9224         * config/fr30/fr30.h: Likewise.
9225         * config/h8300/h8300.h: Likewise.
9226         * config/i370/i370.h: Likewise.
9227         * config/i386/i386.h: Likewise.
9228         * config/m68k/m68k.h: Likewise.
9229         * config/mips/mips.h: Likewise.
9230         * config/ns32k/ns32k.h: Likewise.
9231         * config/pdp11/pdp11.h: Likewise.
9232         * config/pj/pj.h: Likewise.
9233         * config/s390/s390.h: Likewise.
9234         * config/sh/sh.h: Likewise.
9235         * config/stormy16/stormy16.h: Likewise.
9236         * config/v850/v850.h: Likewise.
9237         * config/vax/vax.h: Likewise.
9238         * config/we32k/we32k.h: Likewise.
9239
9240 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
9241
9242         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
9243         (altivec_lvsl): Change constraint to b.
9244         (altivec_lvsr): Same.
9245         (altivec_lvebx): Same.
9246         (altivec_lvehx): Same.
9247         (altivec_lvewx): Same.
9248         (altivec_lvxl): Same.
9249         (altivec_lvx): Same.
9250         (altivec_stvx): Add parallel.
9251         (altivec_stvxl): Same.
9252         (altivec_stvehx): Same.
9253         (altivec_stvebx): Same.
9254         (altivec_stvebx): Same.
9255
9256 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
9257
9258         * config.gcc: Change altivec.h to altivec-defs.h.
9259
9260         * config/rs6000/altivec.h: Delete.
9261
9262         * config/rs6000/altivec-defs.h: Add.
9263
9264 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9265
9266         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
9267         and UMOD modes.
9268
9269         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
9270         less than or equal to eight bytes.
9271
9272         * vax.md (andsi3): Remove constraints and change SET destination
9273         operand type to nonimmediate_operand.
9274         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
9275         when it is a CONST_INT.
9276
9277 2002-01-15  Jason Merrill  <jason@redhat.com>
9278
9279         * c-common.def (FILE_STMT): New code.
9280         * c-common.c (statement_code_p): It's a statement.
9281         * c-common.h (stmt_tree_s): Add x_last_filename.
9282         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
9283         (last_expr_filename): New macro.
9284         * c-semantics.c (begin_stmt_tree): Initialize it.
9285         (add_stmt): If the filename changed, also insert a
9286         FILE_STMT.
9287         (expand_stmt): Handle seeing one.
9288
9289 2002-01-15  Eric Christopher  <echristo@redhat.com>
9290
9291         * flow.c (propagate_one_insn): Add error message and print out
9292         insn for debugging.
9293
9294 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9295
9296         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
9297         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
9298         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
9299         TRAMPOLINE_ALIGNMENT.
9300         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
9301         to be in bits.
9302         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
9303         PCC_BITFIELD_TYPE_MATTERS.
9304         * config/interix.h (STDC_VALUE): Remove.  Use
9305         STDC_0_IN_SYSTEM_HEADERS.
9306         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
9307         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
9308         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
9309
9310 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9311
9312         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
9313         not work on this platform currently.
9314
9315 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9316
9317         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
9318         readonly_warning in _().
9319
9320 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
9321
9322         * gcc.c (delete_if_ordinary): Backout previous change.
9323
9324 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9325
9326         * config/h8300/h8300.c (print_operand): Remove support for
9327         unused operand characters.
9328
9329         * read-rtl.c: Fix formatting.
9330         * real.c: Likewise.
9331         * recog.c: Likewise.
9332         * regclass.c: Likewise.
9333         * regmove.c: Likewise.
9334         * reg-stack.c: Likewise.
9335         * reload1.c: Likewise.
9336         * rtlanal.c: Likewise.
9337
9338 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9339
9340         * config/i386/i386.c: Fix formatting.
9341
9342 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
9343
9344         * c-typeck.c (process_init_element): Don't save_expr
9345         COMPOUND_LITERAL_EXPR if just its initializer will be used.
9346
9347 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
9348
9349         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
9350         emit optional traceback table if optimize_size or TARGET_ELF.
9351         * config/rs6000/rs6000.md (prefetch): New.
9352
9353 2002-01-15  Andreas Jaeger  <aj@suse.de>
9354
9355         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
9356
9357 2002-01-15  Kazu Hirata  <kazu@hxi.com>
9358
9359         * mips-tfile.c: Fix formatting.
9360
9361 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9362
9363         * unroll.c (final_reg_note_copy): Fix previous commit.
9364
9365 2002-01-14  Kazu Hirata  <kazu@hxi.com>
9366
9367         * config/h8300/h8300-protos.h: Remove the prototype for
9368         eq_operator.
9369         * config/h8300/h8300.c (eq_operator): Remove.
9370
9371 2002-01-14  Richard Henderson  <rth@redhat.com>
9372
9373         * config/i386/i386.md (prefetch): Tidy.
9374         (prefetch_3dnow): Fix locality operand.
9375
9376 2002-01-14  Richard Henderson  <rth@redhat.com>
9377
9378         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
9379         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
9380
9381 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
9382
9383         * reload1.c (reload_combine): Pass reg_sum replacement through
9384         copy_rtx in loop performing multiple changes.
9385
9386 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
9387
9388         * except.c (remove_unreachable_regions): New.
9389         (free_eh_status): Clear exception_handler_labels.
9390         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
9391         (find_exception_handler_labels): Don't add the same label more than
9392         once.
9393         (remove_exception_handler_label): Don't die if
9394         find_exception_handler_labels hasn't been called for the current
9395         function yet.
9396
9397 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
9398
9399         * toplev.c (rest_of_compilation): Rebuild jump labels after
9400         gcse.
9401
9402 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
9403
9404         * doc/extend.texi: Move documentation of X86 built-in functions
9405         here.
9406         * doc/invoke.texi: From here.
9407         * doc/sourcebuild.texi: Document location of documentation for
9408         machine built-in functions.
9409
9410 2002-01-13  Christopher Faylor  <cgf@redhat.com>
9411
9412         * cppfiles.c (TEST_THRESHOLD): New macro.
9413         (SHOULD_MMAP): Ditto.
9414         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
9415         be used.
9416
9417 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
9418
9419         * unroll.c (final_reg_note_copy): Properly handle
9420         REG_LABEL
9421         (unroll_loops): Fix LOOP_CONDITION heuristics.
9422
9423 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
9424
9425         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
9426         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
9427
9428 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9429
9430         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
9431         threaded loop.
9432
9433 2002-01-14  Tom Rix  <trix@redhat.com>
9434
9435         * config/rs6000/rs6000.md: Fix typo with sradi.
9436
9437 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
9438
9439         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
9440         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
9441         (clrstrdi, clrstrsi): Adapt callers.
9442
9443         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
9444
9445         (movti splitter): Never use register 0 as base register.
9446
9447 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
9448
9449         * combine.c (simplify_shift_const): Always generate new rtx
9450         for shift expression instead of reusing given expression.
9451
9452 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9453
9454         * config/alpha/alpha.c (alpha_expand_mov): Don't call
9455         alpha_legitimize_address unless mode is Pmode.
9456
9457 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
9458
9459         * doc/md.texi (Modifiers): Document the '*' constraint for the
9460         user.
9461
9462         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
9463         * doc/extend.texi (Function Attributes): 'interrupt' is valid
9464         for xstormy16 too.
9465
9466 2002-01-13  Richard Henderson  <rth@redhat.com>
9467
9468         * reload.c (find_reloads): Use a hard reg destination as reload reg
9469         for an input reload of the source.
9470
9471 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9472
9473         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
9474         more generic.
9475
9476 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
9477
9478         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9479         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9480
9481         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
9482
9483 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9484
9485         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
9486
9487 2002-01-12  Tom Rix  <trix@redhat.com>
9488
9489         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
9490         TARGET_POWERPC64.
9491
9492 2002-01-12  Richard Henderson  <rth@redhat.com>
9493
9494         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
9495
9496         * doc/invoke.texi: Update Alpha options.
9497
9498         * doc/invoke.texi: Update i386 built-in function lists.
9499
9500 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9501
9502         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
9503         referencing outside.
9504
9505 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9506
9507         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
9508         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
9509         offsets, and change line folding.
9510         * optabs.c (expand_binop): Remove warnings.
9511         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
9512
9513 2002-01-12  Graham Stott <grahams@redhat.com>
9514
9515         * attribs.c (handle_deprecated_attribute): constify WHAT.
9516         * diagnostic.c (warn_deprecated_use): Add braces, fixes
9517         dangling else warning and constify WHAT.
9518         * except.h (struct function, struct inline_remap): Move
9519         struct tag forward defs before all prototypes.
9520         (duplicate_eh_regions): Whitespace.
9521
9522 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
9523
9524         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9525         MODE_BASE_REG_CLASS.
9526         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
9527
9528 2002-01-12  Richard Henderson  <rth@redhat.com>
9529
9530         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
9531         (ix86_expand_vector_move): New.
9532         (bdesc_2arg): Remove andps, andnps, orps, xorps.
9533         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
9534         Remove old prefetch builtins.  Special case the logicals removed above.
9535         (ix86_expand_builtin): Likewise.
9536         (safe_vector_operand): Use V4SFmode, not TImode.
9537         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
9538         (ix86_expand_timode_binop_builtin): New.
9539         * config/i386/i386-protos.h: Update.
9540         * config/i386/i386.h (enum ix86_builtins): Update.
9541         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
9542         Use ix86_expand_vector_move in vector move expanders.
9543         (movti_internal, movti_rex64): Add xorps alternative.
9544         (sse_clrv4sf): Rename and adjust from sse_clrti.
9545         (prefetch): Don't work so hard.
9546         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
9547         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
9548         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
9549
9550 2002-01-11  Richard Henderson  <rth@redhat.com>
9551
9552         * config/i386/mmintrin.h: New file.
9553         * config/i386/xmmintrin.h: New file.
9554         * config.gcc (i?86-*-*): Add extra_headers.
9555         * simplify-rtx.c (simplify_unary_operation): Handle saturating
9556         truncation codes.
9557         (simplify_binary_operation): Handle saturating arithmetic codes.
9558         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
9559         not the lowpart subreg.
9560         (ix86_expand_builtin): Return a TImode dummy register instead of 0
9561         on error.
9562         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
9563
9564 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9565
9566         * conflict.c (conflict_graph_compute): Free regsets when finished.
9567         * ssa.c (compute_coalesced_reg_partition): Likewise.
9568
9569 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9570
9571         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
9572         every where we allocate a register.
9573
9574 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9575
9576         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
9577         * lcm.c (compute_earliest, compute_farthest): Likewise.
9578
9579 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9580
9581         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
9582
9583 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9584
9585         * doc/rtl.texi (Insns): Fix 2 typos.
9586
9587 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
9588
9589         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
9590         options.  Use @table @gcctabopt for MMIX options.  Add index
9591         entries for MMIX options.  Start new paragraph with first
9592         heading of the machine-dependent options.
9593
9594 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9595
9596         PR other/5299
9597         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
9598         * combine.c (force_to_mode): Same.
9599         * reload1.c (clear_reload_reg_in_use): Same.
9600
9601 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
9602
9603         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
9604         and 'subtargets'.
9605
9606 2002-01-11  Andreas Jaeger  <aj@suse.de>,
9607             Brad Lucier <lucier@math.purdue.edu>
9608
9609         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
9610         mcpu.
9611
9612 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
9613
9614         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
9615         Protect with IN_LIBGCC.
9616         (LINK_EH_SPEC): Add required trailing space.
9617
9618 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9619
9620         * c-tree.h: Move function declarations so that they are listed
9621         under the filename which contains them.
9622         (check_identifier, finish_decl_top_level,
9623         lookup_name_current_level_global, shadow_record_fields): Remove.
9624
9625 2002-01-11  Andreas Jaeger  <aj@suse.de>
9626
9627         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
9628         march.
9629
9630 2002-01-10  Richard Henderson  <rth@redhat.com>
9631
9632         * config/alpha/alpha.c (print_operand): Add 'J'.
9633         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
9634         new operand with the sequence number for the lituse.  When splitting
9635         the insns, use gen_movdi_er_high_g and generate a sequence number.
9636         (gen_movdi_er_high_g): Print the sequence number if non-zero.
9637
9638 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
9639
9640         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
9641         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
9642         stvxl.
9643         (altivec_expand_builtin): Same.
9644         (altivec_expand_stv_builtin): New.
9645
9646         * config/rs6000/rs6000.h (rs6000_builtins): Same.
9647
9648         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
9649         ("altivec_lvehx"): New.
9650         ("altivec_lvewx"): New.
9651         ("altivec_lvxl"): New.
9652         ("altivec_lvx"): New.
9653         ("altivec_stvx"): New.
9654         ("altivec_stvebx"): New.
9655         ("altivec_stvehx"): New.
9656         ("altivec_stvewx"): New.
9657         ("altivec_stvxl"): New.
9658
9659 2002-01-10  Richard Henderson  <rth@redhat.com>
9660
9661         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
9662         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
9663         care not to delete instructions twice.
9664
9665 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9666
9667         * toplev.c: Don't declare environ (it's not used anywhere).
9668         * configure.in: Don't check for declaration of environ.
9669         * config/i386/xm-mingw32.h: Don't #define environ.
9670         * config.in, configure: Regenerate.
9671
9672 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9673
9674         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
9675         * configure: Regenerate.
9676
9677         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
9678         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
9679         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
9680         alpha/xm-vms.h.
9681         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
9682         LIMITS_H_TEST here, not in m68k/x-next.
9683         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
9684         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
9685
9686         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
9687         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
9688         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
9689
9690         * config/i386/x-djgpp: Renamed i386/t-djgpp.
9691         * config/m88k/x-dolph: Renamed m88k/t-dolph.
9692         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
9693         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
9694         replacement of quadlib.asm with quadlib.c.
9695
9696         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
9697         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
9698         config/rs6000/xm-beos.h: Delete file.
9699
9700         * config.gcc: Update to match above changes.
9701
9702 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9703
9704         * config/h8300/h8300.h: Fix comment typos.
9705         * config/h8300/h8300.md: Likewise.
9706         * config/h8300/lib1funcs.asm: Likewise.
9707
9708 2002-01-10  Dale Johannesen  <dalej@apple.com>
9709
9710         PR optimization/5269
9711         * unroll.c (precondition_loop_p): Make *increment be the correct
9712         sign when n_iterations known, to avoid confusing caller.
9713
9714 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9715
9716         * doc/extend.texi (deprecated): Fix a typo.
9717
9718 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9719
9720         * basic-block.h (update_br_prob_note): Declare.
9721         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
9722         (try_forward_edges): Care negative frequencies and update note.
9723         (outgoing_edges_match): Tweek conditional merging heuristics.
9724         (try_crossjump_to_edge): use update_br_prob_note.
9725         * cfglayout.c (fixup_reorder_chain): Likewise.
9726         * cfrtl.c (update_br_prob_note): New.
9727         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
9728
9729         * i386.c (ix86_decompose_address): Return -1 if address contains
9730         shift.
9731         (legitimate_address_p): Require ix86_decompose_address to return 1.
9732
9733         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
9734         (cprop_insn): Likewise.
9735
9736 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9737
9738         * toplev.c: Fix formatting.
9739         * tree.c: Likewise.
9740         * tree-dump.c: Likewise.
9741         * unroll.c: Likewise.
9742         * unwind-dw2.c: Likewise.
9743         * unwind-dw2-fde.c: Likewise.
9744         * unwind-dw2-fde-glibc.c: Likewise.
9745         * unwind-sjlj.c: Likewise.
9746
9747 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9748
9749         * doc/invoke.texi: Document PDP-11 options.
9750
9751 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9752
9753         * config/h8300/h8300.h: Fix formatting.
9754
9755 2002-01-10  Ira Ruben   <ira@apple.com>
9756
9757         Add __attribute__ ((deprecated)).
9758         * extend.texi: Document __attribute__ ((deprecated)).
9759         * invoke.texi: Document -Wno-deprecated-declarations.
9760         * testsuite/g++.dg/other/deprecated.C: New C++ test.
9761         * testsuite/gcc.dg/deprecated.c: New C test.
9762         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
9763         (c_common_attribute_table): Add "deprecated" entry.
9764         (handle_deprecated_attribute): New function.
9765         * c-decl.c (deprecated_states): New enum.
9766         deprecated_state: State of "deprecated" handling.
9767         (start_decl): Set deprecated_state based on attributes.
9768         (grokdeclarator): Test for deprecated uses, propagate attribute.
9769         * c-typeck.c (build_component_ref): Test for deprecated fields.
9770         (build_external_ref): Test for deprecated primaries.
9771         * diagnostic.c (warn_deprecated_use) New function to issue
9772         warnings about __attribute__ ((depricated)) references.
9773         * flags.h (warn_deprecated_decl): Extern declared for
9774         -W[no-]deprecated-declarations option.
9775         * print-tree.c (print_node): Show deprecated flag status.
9776         * toplev.c (warn_deprecated_decl): Defined.
9777         (W_options): Added "deprecated-declaration".
9778         * toplev.h (warn_deprecated_use): Extern declared.
9779         * tree.h (struct tree_common): Define deprecated_flag.
9780         (TREE_DEPRECATED): New macro to access flag.
9781         * cp/call.c (build_call): Test for deprecated calls.
9782         * cp/class.c (add_implicitly_declared_members): Set global
9783         flag to tell grokdeclarator to not issue deprecated warnings.
9784         * cp/cp-tree.h: Add extern for adding_implicit_members.
9785         * cp/decl.c (deprecated_states): New enum.
9786         (start_decl): Set deprecated_state based on attributes.
9787         (grokdeclarator): Test for deprecated uses, propagate attribute.
9788         * cp/lex.c (do_identifier): Test for deprecated primaries.
9789         * cp/typeck.c (build_component_ref): Test for deprecated fields.
9790
9791 2002-01-10  Ira Ruben   <ira@apple.com>
9792
9793         Fix to assign attributes to inline member functions.
9794         * cp/decl.c (start_method): Handle attrlist.
9795
9796 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9797
9798         * combine.c (expand_field_assignment): Use subreg_lsb().
9799
9800 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
9801
9802         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
9803         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
9804         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
9805         Recurse for any operand of AND as long as constant is non-zero.
9806
9807 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9808
9809         * config/h8300/h8300.md: Remove constraints from expanders.
9810
9811 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9812
9813         * varasm.c: Fix formatting.
9814         * varray.c: Likewise.
9815         * vmsdbgout.c: Likewise.
9816         * xcoffout.c: Likewise.
9817
9818 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9819
9820         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
9821         update edge probabilities to match.
9822
9823 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9824
9825         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
9826         dependencies.
9827         * doc/languages.texi, doc/sourcebuild.texi: New files.
9828         * doc/configfiles.texi: Make a subsubsection.  Update.
9829         * doc/configterms.texi: Add @node.  Remove warning that this isn't
9830         instructions for building GCC.
9831         * doc/makefile.texi: Make a subsection.
9832         * doc/gccint.texi: Update.
9833
9834 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
9835
9836         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
9837
9838 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9839
9840         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
9841
9842 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
9843
9844         * optabs.c (expand_fix): Look for wider integer modes first.
9845
9846         * i386.md (mov?f): Avoid the fake const double trick for medium
9847         memory model.
9848         (min?f*/max?f*): Prohibit memory operands for i387 variant.
9849         (fop_df_4): Disable for SSE compilation.
9850
9851 2002-01-10  Graham Stott  <grahams@redhat.com>
9852
9853         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
9854         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
9855
9856 2002-01-10  Richard Henderson  <rth@redhat.com>
9857
9858         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
9859
9860 2002-01-10  Richard Henderson  <rth@redhat.com>
9861
9862         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
9863         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
9864
9865 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9866
9867         * combine.c (can_combine_p): Fix a comment typo.
9868
9869 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
9870
9871         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
9872         empty list correctly.  Change loop index $t to $f for
9873         consistency with rest of Makefile.
9874
9875 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
9876
9877         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
9878         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9879
9880         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
9881         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
9882         (altivec_init_builtins): Same.
9883         (altivec_expand_unop_builtin): Return NULL_RTX on error.
9884         (altivec_expand_binop_builtin): Same.
9885         (altivec_expand_ternop_builtin): Same.
9886         (bdesc_dst): New.
9887
9888         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
9889         ("altivec_vctuxs"): Fix typo.
9890         ("altivec_vnmsubfp"): Same.
9891         ("altivec_dssall"): New.
9892         ("altivec_mfvscr"): New.
9893         ("altivec_dss"): New.
9894         ("altivec_lvsl"): New.
9895         ("altivec_lvsr"): New.
9896         ("altivec_dstt"): New.
9897         ("altivec_dstst"): New.
9898         ("altivec_dststt"): New.
9899         ("altivec_dst"): New.
9900
9901         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
9902         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9903
9904 2002-01-09  Richard Henderson  <rth@redhat.com>
9905
9906         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
9907
9908 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
9909
9910         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
9911         function.
9912         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
9913         prototype.
9914         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
9915
9916 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9917
9918         * read-rtl.c: Fix formatting.
9919         * real.c: Likewise.
9920         * regclass.c: Likewise.
9921         * regrename.c: Likewise.
9922         * reg-stack.c: Likewise.
9923         * reload1.c: Likewise.
9924         * reload.c: Likewise.
9925         * rtl.c: Likewise.
9926
9927 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9928
9929         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
9930         to extract items in the expr_list chain.
9931
9932 2002-01-09  Richard Henderson  <rth@redhat.com>
9933
9934         * config/vax/vax.c (vax_rtx_cost): Never abort.
9935
9936         * config/vax/vax.h (REAL_ARITHMETIC): Define.
9937
9938 2002-01-09  Jan Hubicka  <jh@suse.cz>
9939
9940         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
9941
9942 2002-01-09  Richard Henderson  <rth@redhat.com>
9943
9944         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
9945         Unify code from various alternatives.
9946
9947 2002-01-09  Richard Henderson  <rth@redhat.com>
9948
9949         * regrename.c (copy_value): Ignore the copy if the source register
9950         is present in the value chain with a narrower mode.
9951
9952 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9953
9954         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
9955         for the c4x target. Also improve layout.
9956
9957 2002-01-09  Richard Henderson  <rth@redhat.com>
9958
9959         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
9960         * config/m32r/m32r.md (and ior xor splitters): Swap operands
9961         to match insn patterns.
9962
9963 2002-01-09  Richard Henderson  <rth@redhat.com>
9964
9965         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
9966         (copyprop_hardreg_forward_1): Likewise.
9967
9968 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9969
9970         * pa.md (decrement_and_branch_until_zero): Change predicate for
9971         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
9972
9973 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9974
9975         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
9976         gets undefined. For Darwin.
9977
9978 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9979
9980         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
9981
9982 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9983
9984         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
9985
9986 2002-01-08  Richard Henderson  <rth@redhat.com>
9987
9988         * regrename.c (copy_value): Ignore overlapping copies.
9989
9990 2002-01-08  Richard Henderson  <rth@redhat.com>
9991
9992         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
9993         as needed to avoid shared structure.
9994
9995 2002-01-08  Kazu Hirata  <kazu@hxi.com>
9996
9997         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
9998         H8/300H and H8/S.
9999
10000 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10001
10002         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
10003         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
10004         documentation of obsolete macros.
10005         * system.h: Poison these macros.
10006         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
10007         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
10008         config/c4x/c4x.h, config/clipper/clipper.h,
10009         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
10010         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
10011         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
10012         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
10013         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
10014         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
10015         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
10016         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
10017         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
10018         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
10019         config/sparc/sparc.h, config/stormy16/stormy16.h,
10020         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
10021         definitions and commented out definitions of obsolete macros.
10022         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
10023         of MAX_INT_TYPE_SIZE.
10024
10025 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
10026
10027         * config/s390/s390.c (s390_preferred_reload_class): Never
10028         return ADDR_REGS if it isn't a subset of the given class.
10029         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
10030         FP_REGS, but all superclasses as well.
10031
10032         * config/s390/s390.c (s390_function_profiler): Fix thinko.
10033
10034         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
10035         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
10036         must not be a const_int.
10037
10038 2002-01-08  Richard Henderson  <rth@redhat.com>
10039
10040         * Makefile.in (toplev.o): Depend on options.h.
10041         (gcc.o): Depend on specs.h.
10042
10043 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
10044
10045         * expr.c (store_expr): Convert VOIDmode constants back to target's
10046         mode.
10047
10048 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10049
10050         * doc/invoke.texi: Markup gcc as @command.  Refer to
10051         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
10052         of http://gcc.gnu.org/thanks.html.
10053
10054 2002-01-08  Dale Johannesen  <dalej@apple.com>
10055
10056         * config/rs6000/rs6000.md: Add missing int register
10057         target case to movdf_low.
10058
10059 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
10060
10061         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
10062         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
10063         (cppinit.o): Depend on except.h.
10064         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
10065         s-specs): New rules.
10066
10067         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
10068         Don't create specs.h/options.h/gencheck.h here.  Remove
10069         unnecessary variable settings from last argument of AC_OUTPUT.
10070         * config.in, configure: Regenerate.
10071         * intl.c: Hardcode package name as "gcc".
10072
10073         * cppinit.c: Include except.h.
10074         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
10075         appropriate.
10076         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
10077         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
10078         (!)USING_SJLJ_EXCEPTIONS.
10079         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
10080
10081 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10082
10083         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
10084         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
10085         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
10086         documentation of obsolete macros.
10087         * system.h: Poison these macros.
10088         * config/d30v/d30v.h, config/ns32k/encore.h,
10089         config/stormy16/stormy16.h: Remove definitions and commented out
10090         definitions of obsolete macros.
10091
10092 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
10093
10094         * objc/objc-act.c (handle_class_ref): Mark the declaration of
10095         %sobjc_class_ref_%s as used - to prevent unwanted compiler
10096         warnings.
10097
10098 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
10099
10100         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
10101         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
10102         to insn adjusting stack/frame pointer.
10103         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
10104         accept operands that cause the insn to be non-splittable.
10105
10106 2002-01-08  Graham Stott  <grahams@redhat.com>
10107
10108         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
10109         (C_TYPE_FIELDS_VOLATILE): Likewise.
10110         (C_TYPE_BEING_DEFINED): Likewise.
10111         (C_IS_RESERVED_WORD): Likewise.
10112         (C_TYPE_VARIABLE_SIZE): Likewise.
10113         (C_DECL_VARIABLE_SIZE): Likewise.
10114         (C_MISSING_PROTOTYPE_WARNED): Likewise.
10115         (C_SET_EXP_ORIGINAL_CODE): Likewise.
10116         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
10117         parenthesis.
10118         (C_DECL_ANTICIPATED): Likewise.
10119         (c_build_type_variant): Add parenthesis.
10120
10121 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10122
10123         * gcc.c (option_map): Remove --version.
10124         (process_command): Handle -fversion following the GNU Coding
10125         Standards.  Partially addresses PR other/704.
10126
10127 2002-01-08  Graham Stott  <grahams@redhat.com>
10128
10129         * combine.c (combine_instructions): Fix typo.
10130
10131 2002-01-08  Graham Stott  <grahams@redhat.com>
10132
10133         * debug.h: Use "tree" and "rtx" throughout.
10134
10135         * debug.c: Likewise.
10136
10137 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
10138
10139         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
10140         constant pool, use the pool's version of the symbol instead.
10141
10142 2002-01-07  Richard Henderson  <rth@redhat.com>
10143
10144         * regrename.c (find_oldest_value_reg): Ignore the value chain if
10145         the original register was copied in a mode with a fewer number of
10146         hard registers than the desired mode.
10147         (copyprop_hardreg_forward_1): Likewise.
10148         (debug_value_data): Fix loop test.
10149         * toplev.c (parse_options_and_default_flags): Reenable
10150         -fcprop-registers at -O1.
10151
10152 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10153
10154         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
10155         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
10156
10157         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
10158         predicates.
10159
10160         * config/rs6000/rs6000.md: Add altivec predicate patterns.
10161
10162 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10163
10164         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
10165         (pa_output_function_prologue): Output local label at the beginning of
10166         the prologue when profiling.
10167         (hppa_profile_hook): Use the local label rather than the function label.
10168         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
10169
10170 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10171
10172         * config/rs6000/rs6000.c (print_operand): Remove extra space.
10173         (altivec_expand_unop_builtin): Fix thinko.
10174         (altivec_expand_binop_builtin): Same.
10175         (altivec_expand_ternop_builtin): Same.
10176         (altivec_expand_builtin): Same.
10177
10178 2002-01-07  Richard Henderson  <rth@redhat.com>
10179
10180         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
10181
10182 2002-01-07  Jason Merrill  <jason@redhat.com>
10183
10184         * unwind-dw2.c (execute_cfa_program): Use < again.
10185
10186 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
10187
10188         * predict.c (combine_predictions_for_insn): Avoid division by zero.
10189
10190 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
10191
10192         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
10193         Don't allow -1 - x -> ~x simplifications in the first pass.
10194
10195 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
10196
10197         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
10198         arguments.
10199         (altivec_expand_binop_builtin): Same.
10200         (altivec_expand_unop_builtin): Same.
10201         (print_operand): Fix typo.
10202         (bdesc_1arg): Add vupk* variants.
10203
10204         * rs6000.h (rs6000_builtins): Add vupk* enums.
10205
10206         * rs6000.md: Add altivec_vupk* variants.
10207
10208 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10209
10210         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
10211         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
10212         and last update dates.
10213
10214 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
10215
10216         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
10217
10218 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10219
10220         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
10221         * config/avr/avr.h (CPP_SPEC): Likewise.
10222         (LINK_SPEC): Likewise.
10223         (CRT_BINUTILS_SPECS): Likewise.
10224         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10225         * doc/invoke.texi (AVR Options): Document them.
10226
10227 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
10228
10229         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
10230         LABEL_NUSES.
10231
10232 2002-01-07  Graham Stott  <grahams@redhat.com>
10233
10234         * config/i386/i386.h: Update copyright date.
10235         (HALF_PIC_PTR): Add parenthesis.
10236         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
10237         (CONSTANT_ALIGNMENT): Add parenthesis.
10238         (DATA_ALIGNMENT): Likewise.
10239         (LOCAL_ALIGNMENT): Likewise.
10240         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
10241         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
10242         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
10243         (HARD_REGNO_NREGS): Add paranethesis.
10244         (VALID_SSE_REG_MODE): Whitespace.
10245         (VALID_MMX_REG_MODE): Whitespace.
10246         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
10247         (ix86_hard_regno_mode_ok): Add parenthesis.
10248         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
10249         (RETURN_IN_MEMORY): Whitespace.
10250         (N_REG_CLASSES): Add parenthesis.
10251         (INTEGER_CLASS_P): Add parenthesis and wrap.
10252         (FLOAT_CLASS_P): Likewise.
10253         (SSE_CLASS_P): Likewise.
10254         (MMX_CLASS_P): Likewise.
10255         (MAYBE_INTEGER_CLASS_P): Likewise.
10256         (MAYBE_FLOAT_CLASS_P): Likewise.
10257         (MAYBE_SSE_CLASS_P): Likewise.
10258         (MAYBE_MMX_CLASS_P): Likewise.
10259         (Q_CLASS_P): Likewise.
10260         (GENERAL_REGNO_P): Uppercase macro parameter.
10261         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
10262         (FP_REGNO_P): Likewise.
10263         (ANY_FP_REGNO_P): Uppercase macro parameter.
10264         (SSE_REGNO_P): Likewise.
10265         (SSE_REGNO): Likewise.
10266         (SSE_REG_P): Likewise.
10267         (SSE_FLOAT_MODE_P): Likewise.
10268         (MMX_REGNO_P): Likewise.
10269         (MMX_REG_P):Likewise.
10270         (STACK_REG_P): Likewise.
10271         (NON_STACK_REG_P): Likewise.
10272         (STACK_TOP_P): Likewise.
10273         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
10274         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
10275         (SECONDARY_MEMORY_NEEDED): Likewise.
10276         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
10277         (MD_ASM_CLOBBERS): Whitespace and wrap.
10278         (MUST_PASS_IN_STACK): Whitespace and wrap.
10279         (RETURN_POPS_ARGS): Add parenthesis.
10280         (INIT_CUMULATIVE_ARGS): Likewise.
10281         (FUNCTION_ARG): Likewise.
10282         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
10283         (SETUP_INCOMING_VARARGS): Likewise.
10284         (BUILD_VA_LIST_TYPE):  Add parenthesis.
10285         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
10286         parenthsis.
10287         (EXPAND_BUILTIN_VA_ARG): Likewise.
10288         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
10289         (INITIALIZE_TRAMPOLINE): Add parenthesis.
10290         (INITIAL_ELIMINATION_OFFSET): Likewise.
10291         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
10292         (REGNO_OK_FOR_BASE_P): Likewise.
10293         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
10294         (REGNO_OK_FOR_DIREG_P): Likewise.
10295         (REG_OK_FOR_INDEX_P): Whitespace.
10296         (REG_OK_FOR_BASE_P): Whitespace.
10297         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
10298         parenthesis.
10299         (FIND_BASE_TERM): Fix typo.
10300         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
10301         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
10302         (SYMBOLIC_CONST; Whitespace.
10303         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
10304         (ENCODE_SECTION_INFO): Whitespace.
10305         (FINALIZE_PIC): Remove do { ... } while (0).
10306         (PROMOTE_MODE): Wrap in do { ... } while (0).
10307         (CONST_COSTS): Whitespace.
10308         (RTX_COSTS): Add paramethesis, whitespace and wrap.
10309         (REGISTER_MOVE_COST): Add parenthesis.
10310         (MEMORY_MOVE_COST): Likewise.
10311         (EXTRA_CC_MODES): Whitespace.
10312         (SELECT_CC_MODE): Add parenthesis and whitespace.
10313         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
10314         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
10315         (ASM_OUTPUT_LABEL): Add paramethesis.
10316         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
10317         (ASM_OUTPUT_REG_POP): Likewise.
10318         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
10319         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10320
10321         * config/i386/i386.c: Update copyright.
10322         (CHECK_STACK_LIMIT): Add parenthesis.
10323         (AT_BP): Uppercase macro parameter.
10324         (x86_64_int_parameter_registers): Constify.
10325         (x86_64_int_return_registers): Likewise.
10326         (ix86_compare_op0): Use rtx.
10327         (construct_container): Constify INTREG parameter.
10328         (function_arg): Use rtx.
10329
10330         * diagnostic.h: Update copyright date.
10331         (output_buffer_state): Add parenthesis.
10332         (output_buffer_format_args): Likewise.
10333
10334         * combine.c (combine_instructions): Replace XEXP (links, 0)
10335         with link.
10336
10337 2002-01-06  H.J. Lu <hjl@gnu.org>
10338
10339         * cfgcleanup.c (thread_jump): Fix 2 typos.
10340
10341 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
10342
10343         * config.gcc: Add support for --enable-altivec.
10344
10345 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10346
10347         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
10348
10349 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
10350
10351         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
10352         __objc_class_name_*.
10353
10354 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10355
10356         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
10357
10358 2002-01-06  Richard Henderson  <rth@redhat.com>
10359
10360         * reorg.c (emit_delay_sequence): Remove death notes, not merely
10361         nop them out.  Increment label reference count for REG_LABEL.
10362         (fill_slots_from_thread): Frob label reference count around
10363         delete_related_insns.
10364
10365 2002-01-05  Richard Henderson  <rth@redhat.com>
10366
10367         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
10368         jump threading.
10369
10370 2002-01-05  Richard Henderson  <rth@redhat.com>
10371
10372         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
10373         * integrate.c (output_inline_function): Likewise.
10374         * toplev.c (rest_of_compilation): Do it here instead.  Move call
10375         to remove_unnecessary_notes after emitting abstract instance.
10376         Force an emitted nested function to have its parent emited as well.
10377         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
10378         for null.
10379         (rtl_for_decl_location): Do not look at reload data structures
10380         before reload has run.
10381
10382 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10383
10384         * cse.c: Fix formatting.
10385         * dwarf2asm.c: Likewise.
10386         * dwarf2out.c: Likewise.
10387         * explow.c: Likewise.
10388         * expmed.c: Likewise.
10389         * function.c: Likewise.
10390         * gcov.c: Likewise.
10391         * gencheck.c: Likewise.
10392         * genrecog.c: Likewise.
10393         * ggc-common.c: Likewise.
10394         * ggc-page.c: Likewise.
10395         * global.c: Likewise.
10396
10397 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10398
10399         * combine.c: Fix formatting.
10400
10401 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
10402
10403         PR middle-end/1557
10404         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
10405
10406 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
10407
10408         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
10409         as 1 for __powerpc64__ as well.
10410
10411         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
10412
10413         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
10414         return it.
10415
10416 2002-01-05  Daniel Berlin  <dan@dberlin.org>
10417
10418         * lcm.c: Revert change, due to performance regression it causes on
10419         SPEC because it's slightly more conservative (sigh, I hate
10420         edge-based LCM).
10421
10422 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10423
10424         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
10425
10426 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10427
10428         * doc/cppinternals.texi: Update.
10429
10430 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
10431
10432         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
10433         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
10434         negatives.
10435         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
10436         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
10437         kludge for pre-october-14th mmix versions to handle new-found bug
10438         with PUSHJ/PUSHGO and the register stack.
10439         * config/mmix/mmix.h (struct machine_function): Rename member
10440         has_call_value_without_parameters to has_call_without_parameters.
10441         All referers changed.
10442         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
10443         TARGET_MASK_BRANCH_PREDICT): New macros.
10444         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
10445         -mno-reg-stack-fill-bug-workaround.
10446         * config/mmix/mmix.md ("call"): Set struct machine member
10447         has_call_without_parameters.
10448
10449 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10450
10451         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
10452
10453 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
10454
10455         * cfgcleanup.c: Include tm_p.h
10456         (mark_effect): Fix handling of hard register; fix handling of SET
10457
10458 2002-01-04  Kazu Hirata  <kazu@hxi.com>
10459
10460         * config/h8300/h8300.md (anonymous patterns): Check that
10461         operands are registers before using REGNO on them.
10462
10463 2002-01-03  Roland McGrath  <roland@frob.com>
10464
10465         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
10466
10467 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
10468
10469         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
10470         * c-common.h (genrtl_expr_stmt_value): Likewise.
10471         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
10472         (expand_expr_stmt_value): Add maybe_last argument.
10473         Don't warn about statement with no effect if it is the last statement
10474         in expression statement.
10475         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
10476         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
10477         expand_expr_stmt_value.
10478         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
10479         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
10480         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
10481         as maybe_last to expand_expr_stmt_value.
10482
10483 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
10484
10485         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
10486         be passed in, do not build it.
10487         (c_begin_if_stmt): New function.
10488         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10489         * c-common.h (c_expand_start_cond): Update prototype.
10490         (c_begin_if_stmt): Prototype new function.
10491         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10492         * c-parse.in (if_prefix): Use c_begin_if_stmt,
10493         c_begin_while_stmt and c_finish_while_stmt_cond.
10494
10495 2002-01-04  William Cohen  <wcohen@redhat.com>
10496
10497         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
10498         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10499         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10500         * config/pa/som.h (ASM_FILE_START): Likewise.
10501
10502 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
10503
10504         * lcm.c: Include df.h.
10505         Add available_transfer_function prototype.
10506         (compute_available): Rework to use iterative dataflow framework.
10507         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
10508         with bb_info in df.h
10509         (available_transfer_function): New function.
10510
10511         * Makefile.in (lcm.o): add df.h to dependencies.
10512
10513 2002-01-04  Richard Henderson  <rth@redhat.com>
10514
10515         * config/alpha/alpha.c (some_operand): Accept HIGH.
10516         (input_operand): Likewise; accept simple references to globals.
10517         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
10518         (alpha_const_double_ok_for_letter_p): Likewise.
10519         (alpha_extra_constraint): Likewise.
10520         (alpha_preferred_reload_class): Likewise.  Do not force
10521         symbolic constants to memory.
10522         (alpha_legitimate_address_p): Accept simple references
10523         to small_symbolic_operand.
10524         (alpha_legitimize_address): New arg scratch.  Be prepared to be
10525         called when no_new_pseudos.  Emit simple symbolic references.
10526         Split integers into low, high, and rest.
10527         (alpha_expand_mov): Use alpha_legitimize_address.
10528         (some_small_symbolic_mem_operand): New.
10529         (split_small_symbolic_mem_operand): New.
10530         * config/alpha/alpha-protos.h: Update.
10531         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
10532         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
10533         (EXTRA_CONSTRAINT): Likewise.
10534         (PREFERRED_RELOAD_CLASS): Likewise.
10535         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
10536         (PREDICATE_CODES): Update.
10537         * config/alpha/alpha.md: New post-reload splitters to convert
10538         simplfied symbolic operands to the form that references $29.
10539         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
10540         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
10541
10542 2002-01-03  Richard Henderson  <rth@redhat.com>
10543
10544         * local-alloc.c (function_invariant_p): Update commentary.
10545
10546 2002-01-04  H.J. Lu <hjl@gnu.org>
10547
10548         * toplev.c (rest_of_compilation): Fix a typo when calling
10549         cleanup_cfg.
10550
10551 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10552
10553         * c-common.c: Fix formatting.
10554         * diagnostic.c: Likewise.
10555         * doloop.c: Likewise.
10556         * dwarf2out.c: Likewise.
10557
10558 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10559
10560         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
10561         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
10562
10563 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10564
10565         * cpperror.c: Update comments and copyright.
10566         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
10567         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
10568
10569 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10570
10571         * collect2.c (main): Use strcmp when testing for "-shared".
10572
10573 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10574
10575         * cppmacro.c: Don't include intl.h.  Update comments.
10576         (new_number_token): Allocate enough buffer for 64-bit unsigned
10577         integers; update prototype.
10578         * cppmain.c: Update comments.
10579
10580 2002-01-03  William Cohen  <wcohen@redhat.com>
10581
10582         * function.h (struct function): Add profile.
10583         (current_function_profile): New.
10584         doc/extend.texi: Update documentation.
10585         * final.c (final_start_function): Use current_function_profile
10586         instead of profile_flag.
10587         (profile_after_prologue): Likewise.
10588         * function.c (expand_function_start): Likewise.
10589         (expand_function_start): Likewise.
10590         * config/alpha/alpha.c (direct_call_operand):
10591         (alpha_does_function_need_gp): Likewise.
10592         (alpha_expand_prologue): Likewise.
10593         * config/arm/arm.c (arm_expand_prologue): Likewise.
10594         thumb_expand_prologue: Likewise.
10595         * config/d30v/d30v.c (d30v_stack_info): Likewise.
10596         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
10597         (fr30_expand_prologue): Likewise.
10598         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
10599         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
10600         * config/i386/i386.h (FINALIZE_PIC): Likewise.
10601         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
10602         * config/i960/i960.c (i960_output_function_prologue): Likewise.
10603         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10604         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
10605         (m32r_expand_prologue): Likewise.
10606         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
10607         (m88k_expand_prologue): Likewise.
10608         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
10609         * config/mips/mips.c (compute_frame_size): Likewise.
10610         (mips_expand_prologue): Likewise.
10611         (mips_can_use_return_insn): Likewise.
10612         * config/pa/elf.h (ASM_FILE_START): Likewise.
10613         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10614         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10615         * config/pa/som.h (ASM_FILE_START): Likewise.
10616         * config/romp/romp.c (romp_using_r14): Likewise.
10617         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
10618         (rs6000_stack_info): Likewise.
10619         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10620         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
10621         * config/v850/v850.c (compute_register_save_size): Likewise.
10622
10623 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
10624
10625         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
10626         gen_lowpart_common fails, use gen_lowpart_SUBREG.
10627
10628 2002-01-03  Turly O'Connor  <turly@apple.com>
10629
10630         * darwin.c (machopic_output_possible_stub_label): Don't generate
10631         stub routines for pseudo-stubs which we've just defined.
10632
10633 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10634
10635         * builtins.c: Fix formatting.
10636         * c-typeck.c: Likewise.
10637         * combine.c: Likewise.
10638         * expr.c: Likewise.
10639         * loop.c: Likewise.
10640
10641 2002-01-03  Andreas Schwab  <schwab@suse.de>
10642
10643         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
10644         and return true if _cpp_push_next_buffer pushed a new include
10645         file.
10646         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
10647         _cpp_pop_file_buffer did not push a new file.
10648         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
10649
10650 2002-01-02  Eric Christopher  <echristo@redhat.com>
10651
10652         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
10653         FIND_REG_INC_NOTE call. Update copyright.
10654         * loop.c (canonicalize_condition): Ditto.
10655         * reorg.c (delete_scheduled_jump): Ditto.
10656
10657 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10658
10659         * gcse.c: Fix formatting.
10660
10661 2002-01-03  Graham Stott  <grahams@redhat.com>
10662
10663         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
10664         forward defs for struct tags rtx_def, union_tree, rtvec_def
10665         also output corresponding typedefs for rtx, tree, and rtvec.
10666
10667         * system.h: Move forward defs for struct tags rtx_def, union_tree,
10668         rtvec_def along with corresponding typedefs for rtx, tree, and
10669         rtvec to config.h, hconfig.h, tconfig.h.
10670
10671 2002-01-03  Graham Stott  <grahams@redhat.com>
10672
10673         * tree.h: Update copyright date.
10674         (IS_EXPR_CODE_CLASS): Add parenthesis.
10675         (TREE_SET_CODE): Add whitespace.
10676         (TREE_CHECK): Add parenthesis.
10677         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
10678         (CST_OR_CONSTRUCTOR_CHECK):
10679         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
10680         (TREE_SYMBOL_REFERENCED): Whitespace.
10681         (INT_CST_LT): Likewise.
10682         (INT_CST_LT_UNSIGNED): Likewise.
10683         (tree_real_cst): Unwrap comment.
10684         (tree_string): Likewise.
10685         (tree_complex): Likewise.
10686         (IDENTIFIER_POINTER): correct cast.
10687         (SAVE_EXPR_CONTEXT): Whitespace.
10688         (EXPR_WFL_FILENAME_NODE): Likewise.
10689         (EXPR_WFL_FILENAME): Remove parenthesis.
10690         (DECL_ORIGIN): Add parenthesis.
10691         (DECL_FROM_INLINE): Use NULL_TREE.
10692         (build_int_2): Whitespace.
10693         (build_type_variant): Add parenthesis.
10694
10695         * gcc/jcf-parse.c: Update copyright date.
10696         (yyparse): Constify resource_filename.
10697
10698 2002-01-03  Graham Stott  <grahams@redhat.com>
10699
10700         * rtl.h: Update copyright date.
10701         (RTL_CHECK1): Wrap long line.
10702         (RTL_CHECK2): Likewise.
10703         (RTL_CHECKC1): Wrap long line and whitespace.
10704         (RTL_CHECKC2): Likewise.
10705         (XWINT): Whitespace.
10706         (XINT): Likewise.
10707         (XSTR): Likewise.
10708         (XEXP): Likewise.
10709         (XVEC): Likewise.
10710         (XMODE): Likewise.
10711         (XBITMAP): Likewise.
10712         (XTREE): Likewise.
10713         (XBBDEF): Likewise.
10714         (XTMPL): Likewise.
10715         (X0WINT): Likewise.
10716         (X0INT):Likewise.
10717         (X0UINT): Likewise.
10718         (X0STR): Likewise.
10719         (X0EXP): Likewise.
10720         (X0VEC): Likewise.
10721         (X0MODE): Likewise.
10722         (X0BITMAP): Likewise.
10723         (X0TREE): Likewise.
10724         (X0BBDEF): Likewise.
10725         (X0ADVFLAGS): Likewise.
10726         (X0CSELIB): Likewise.
10727         (X0MEMATTR): Likewise.
10728         (XCWINT): Likewise.
10729         (XCINT): Likewise.
10730         (XCUINT): Likewise.
10731         (XCSTR): Likewise.
10732         (XCEXP): Likewise.
10733         (XCVEC): Likewise.
10734         (XCMODE): Likewise.
10735         (XCBITMAP): Likewise.
10736         (XCTREE): Likewise.
10737         (XCBBDEF): Likewise.
10738         (XCADVFLAGS): Likewise.
10739         (XCCSELIB): Likewise.
10740         (XC2EXP): Likewise.
10741         (INSN_UID): Likewise.
10742         (PREV_INSN): Likewise.
10743         (PATTERN): Likewise.
10744         (INSN_CODE): Likewise.
10745         (PUT_REG_NOTE_KIND): Likewise.
10746         (CODE_LABEL_NUMBER): Likewise.
10747         (NOTE_SOURCE_FILE): Likewise.
10748         (NOTE_BLOCK): Likewise.
10749         (NOTE_EH_HANDLER): Likewise.
10750         (NOTE_RANGE_INFO): Likewise.
10751         (NOTE_LIVE_INFO): Likewise.
10752         (NOTE_BASIC_BLOCK): Likewise.
10753         (NOTE_EXPECTED_VALUE): Likewise.
10754         (NOTE_LINE_NUMBER): Likewise.
10755         (LABEL_NAME): Likewise.
10756         (LABEL_NUSES): Likewise.
10757         (LABEL_ALTERNATE_NAME): Likewise.
10758         (ADDRESSOF_DECL): Likewise.
10759         (JUMP_LABEL): Likewise.
10760         (LABEL_NEXTREF): Likewise.
10761         (REGNO): Likewise.
10762         (ORIGINAL_REGNO: Likewise.
10763         (HARD_REGISTER_NUM_P): Add parenthesis.
10764         (SUBREG_REG): Whitespace.
10765         (SUBREG_BYTE): Likewise.
10766         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
10767         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
10768         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
10769         (ASM_OPERANDS_INPUT_VEC): Likewise.
10770         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
10771         (ASM_OPERANDS_INPUT): Likewise.
10772         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
10773         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
10774         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
10775         (ASM_OPERANDS_INPUT_MODE): Likewise.
10776         (ASM_OPERANDS_SOURCE_FILE): Likewise.
10777         (ASM_OPERANDS_SOURCE_LINE): Likewise.
10778         (MEM_SET_IN_STRUCT_P): Minor reformat.
10779         (TRAP_CONDITION): Whitespace.
10780         (TRAP_CODE): Likewise.
10781         (COND_EXEC_TEST): Likewise.
10782         (COND_EXEC_CODE): Likewise.
10783         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
10784         (PHI_NODE_P): Add parenthesis.
10785         (plus_constant): Whitespace and add parenthesis.
10786
10787 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10788
10789         * config/avr/avr.c: Fix comment typos.
10790         * config/c4x/c4x.md: Likewise.
10791         * config/dsp16xx/dsp16xx.h: Likewise.
10792         * config/dsp16xx/dsp16xx.md: Likewise.
10793         * config/i386/i386.md: Likewise.
10794         * config/ia64/ia64.c: Likewise.
10795         * config/m32r/m32r.h: Likewise.
10796         * config/m68hc11/m68hc11.md: Likewise.
10797         * config/mmix/mmix.c: Likewise.
10798         * config/mn10200/mn10200.c: Likewise.
10799         * config/romp/romp.c: Likewise.
10800         * config/sh/sh.c: Likewise.
10801         * config/stormy16/stormy16.c: Likewise.
10802         * config/stormy16/stormy16.h: Likewise.
10803         * config/stormy16/stormy16.md: Likewise.
10804
10805 2002-01-03  Graham Stott  <grahams@redhat.com>
10806
10807         * loop.h: Update copyright date.
10808         (LOOP_MOVABLES): Fix typo.
10809         (LOOP_REGS): Likewise.
10810         (LOOP_IVS): Likewise.
10811
10812 2002-01-03  Graham Stott  <grahams@redhat.com>
10813
10814         * cppinit.c: Update copyright date.
10815         Don't include output.h
10816         * Makefile.in: Update copyright date.
10817         Update dependency.
10818
10819 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10820
10821         PR c/5226
10822         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
10823         (-pthread) Add to RS/6000 options.
10824
10825 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10826
10827         * except.c: Fix comment typos.
10828         * loop.c: Likewise.
10829         * varasm.c: Likewise.
10830         * doc/tm.texi: Fix a typo.
10831
10832 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
10833
10834         * c-typeck.c (output_init_element): Allow initializing static storage
10835         duration objects with compound literals.
10836
10837 2002-01-02  Richard Henderson  <rth@redhat.com>
10838
10839         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
10840         after abusing it.
10841
10842 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10843
10844         * gcc.c (default_compilers): Const-ify.
10845         * mips-tdump.c (stab_names): Likewise.
10846         * mips-tfile.c (map_coff_types, map_coff_storage,
10847         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
10848         pseudo_ops_t, pseudo_ops): Likewise.
10849         * protoize.c (default_include): Likewise
10850
10851         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
10852         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
10853         Add array size in declaration.
10854         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
10855         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
10856         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
10857         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
10858         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
10859         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
10860         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
10861         emtens, make_nan): Const-ify.
10862         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
10863         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
10864
10865 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10866
10867         * config.gcc (ia64-*-*): Set extra_headers.
10868         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
10869         * config/alpha/t-osf: Remove.
10870         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
10871
10872 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
10873
10874         * config/rs6000/t-aix43: Revert previous change.
10875
10876 2002-01-02  Jason Merrill  <jason@redhat.com>
10877
10878         * c-decl.c (c_expand_body): Call outlining_inline_function when
10879         emitting an inline function out of line.
10880
10881 2002-01-02  Richard Henderson  <rth@redhat.com>
10882
10883         * dwarf2out.c (limbo_die_node): Add created_for member.
10884         (new_die): New argument created_for.  Update all callers.
10885         (mark_limbo_die_list): New.
10886         (dwarf2out_init): Register limbo_die_list as a root.
10887         (dwarf2out_finish): Force insert limbo dies into their function
10888         context.
10889
10890 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
10891
10892         PR c++/5089
10893         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
10894
10895 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10896
10897         * config/h8300/fixunssfsi.c: Update copyright.
10898         Fix comment typos.
10899         Fix formatting.
10900         * config/h8300/h8300.c: Update copyright.
10901         Eliminate warnings.
10902
10903 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10904
10905         * config/romp/romp.c: Fix comment formatting.
10906         * config/romp/romp.h: Likewise.
10907         * config/romp/romp.md: Likewise.
10908         * config/s390/s390.c: Likewise.
10909         * config/stormy16/stormy16.c: Likewise.
10910         * config/stormy16/stormy16.h: Likewise.
10911
10912 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
10913
10914         * c-common.h (genrtl_expr_stmt_value): Declare.
10915         * c-semantics.c (genrtl_goto_stmt): Redirect to...
10916         (genrtl_goto_stmt_value): ... this new function.  Pass new
10917         argument down to expand_expr_stmt_value, taking
10918         TREE_ADDRESSABLE into account.
10919         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
10920         STMT_EXPR as addressable, i.e., one whose result we want.
10921         * expr.c (expand_expr): Don't save expression statement value
10922         of labeled_blocks or loop_exprs.
10923         * stmt.c (expand_expr_stmt): Redirect to...
10924         (expand_expr_stmt_value): ... this new function.  Use new
10925         argument to tell whether to save expression value.
10926         (expand_end_stmt_expr): Reset last_expr_type and
10927         last_expr_value if we don't have either.
10928         * tree-inline.c (declare_return_variable): Mark its use
10929         statement as addressable.
10930         * tree.h: Document new use of TREE_ADDRESSABLE.
10931         (expand_expr_stmt_value): Declare.
10932
10933 2002-01-01  Tom Rix  <trix@redhat.com>
10934
10935         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
10936         rs6000_emit_allocate_stack.
10937
10938 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10939
10940         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
10941         ${srcdir}/ginclude/ to every entry in extra_headers.
10942         * configure: Regenerate.
10943         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
10944         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
10945         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
10946         * ginclude/proto.h: Rename to config/convex/proto.h.
10947
10948 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10949
10950         * attribs.c (handle_vector_size_attribute): Use host_integerp
10951         and tree_int_cst; remove warnings.
10952         * caller-save.c (insert_restore): Add cast to get rid of warning.
10953         (insert_save): Likewise.
10954         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
10955         * regmove.c (find_matches): Add temporary var to kill a warning.
10956
10957 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
10958
10959         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
10960         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
10961         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
10962         (vms-dwarf2eh.o): Add Makefile rule.
10963         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
10964         * config/alpha/vms-dwarf2eh.asm: New file.
10965
10966         * gcc.c (delete_if_ordinary): Delete all versions.
10967
10968 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
10969
10970         * config/mmix/mmix.md: Update FIXME to not mention
10971         define_constants.
10972         (MMIX_rJ_REGNUM): New define_constants constant.
10973         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
10974         "*movdicc_real"): Adjust contraints formatting.
10975         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
10976         for branch prediction.
10977         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
10978         output template.
10979         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
10980         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
10981         number.  Delete related FIXMEs.
10982         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
10983         from number to MMIX_rJ_REGNUM.
10984         (TARGET_MASK_BRANCH_PREDICT): New.
10985         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
10986         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
10987         value.  Add -mbranch-predict and -mno-branch-predict.
10988         (TARGET_VERSION): Drop date.
10989         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
10990         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
10991         for finding out global symbols.
10992         (mmix_asm_output_labelref): Revert condition for global symbol.
10993         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
10994         (mmix_print_operand_punct_valid_p): A '+' is valid.
10995
10996 See ChangeLog.6 for earlier changes.