OSDN Git Service

2002-04-22 Joel Sherrill <joel@OARcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-22      Joel Sherrill <joel@OARcorp.com>
2
3         * gthr-rtems.h: Correct prototypes to remove warnings.
4
5 2002-04-22  Richard Henderson  <rth@redhat.com>
6
7         PR c/6344
8         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
9
10         * gcse.c (free_insn_expr_list_list): New.
11         (clear_modify_mem_tables): Use it.  Fix bit set usage.
12         (canon_list_insert): Use EXPR_LISTs for expressions.
13         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
14
15 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
16
17         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
18         file change and include code to _cpp_pop_buffer.
19         * cpphash.h (struct pending_option): Predeclare.
20         (struct cpp_reader): New member next_include_file.
21         (_cpp_pop_file_buffer): Update.
22         (_cpp_push_next_buffer): Update, rename.
23         * cppinit.c (cpp_destroy): Free include chain and pending here.
24         (cpp_finish_options): Simplify.
25         (_cpp_push_next_buffer): Rename and clean up.
26         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
27         Clarify.
28         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
29
30 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
31
32         * config/rs6000/altivec.h (vec_xor): Add variant for both args
33         being vector signed int.
34         (vec_andc): Same.
35         (vec_xor): Add variant for both args being vector signed char.
36         Remove redundant variant.
37         (vec_andc): Same.
38
39 2002-04-21  David S. Miller  <davem@redhat.com>
40
41         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
42         compare mode in output RTL.
43
44 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
45
46         * config/rs6000/rs6000.c (rs6000_override_options): Correct
47         style and formatting of previous patch.
48
49 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
50
51         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
52         flag_pic for ABI_AIX.
53
54 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
55
56         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
57         * cppfiles.c (read_include_file): Similarly.
58         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
59         uxstrdup ustrchr, ufputs): Similarly.
60         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
61         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
62         cpp_ideq, parse_identifier, parse_number): Similarly.
63         * cpplib.c (struct directive, dequote_string, D, run_directive,
64         cpp_push_buffer): Similarly.
65         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
66         _cpp_create_definition, check_trad_stringification,
67         cpp_macro_definition): Similarly.
68
69 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
70
71         * cppmacro.c (funlike_invocation_p): Don't step back
72         over CPP_EOF.
73
74 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
75
76         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
77         labelno.
78
79 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
80
81         * doc/invoke.texi: Remove Chill references.
82         * doc/gcc.texi: Update last modified date.
83
84 2002-04-20  Kazu Hirata  <kazu@hxi.com>
85
86         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
87         push and pop.  Replace add.l with add.w.
88
89 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
90
91         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
92         multiply instructions for H8/300H case.
93
94 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
95
96         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
97         Bum three instructions from each routine.
98
99 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
100
101         * Makefile.in: Update.
102         * decl.c (push_c_function_context, pop_c_function_context,
103         mark_c_function_context): Rename for consistency.
104         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
105         * c-tree.h (push_c_function_context, pop_c_function_context,
106         mark_c_function_context): Rename for consistency.
107         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
108         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
109         * function.c (init_lang_status, save_lang_status,
110         restore_lang_status, mark_lang_status, free_lang_status):
111         Move to langhooks.h.
112         (push_function_context_to, pop_function_context_from,
113         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
114         Update.
115         * function.h (init_lang_status, save_lang_status,
116         restore_lang_status, mark_lang_status, free_lang_status):
117         Move to langhooks.h.
118         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
119         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
120         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
121         LANG_HOOKS_FUNCTION_INITIALIZER): New.
122         (LANG_HOOKS_INITIALIZER): Update.
123         (lhd_do_nothing_f): New.
124         * langhooks.h (struct lang_hooks_for_functions): New.
125         (struct lang_hooks): New hooks.
126         * langhooks.c (lhd_do_nothing_f): New.
127 objc:
128         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
129         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
130
131 2002-04-19  David S. Miller  <davem@redhat.com>
132
133         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
134         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
135
136 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
137
138         PR optimization/3756
139         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
140         x = ((int) y < 0) ? cst1 : cst2.
141
142 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
143
144         PR c/6358
145         * function.c: Reapply patch for c/6358.
146         (expand_function_end): Copy decl_rtl's mode, not
147         current_function_return_rtx mode.
148
149 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
150
151         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
152         targets.
153
154 2002-04-19  Tom Tromey  <tromey@redhat.com>
155
156         * doc/install.texi (Specific): Update status of Solaris 2.8.
157         For PR libgcj/6158.
158
159 2002-04-19  Andreas Schwab  <schwab@suse.de>
160
161         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
162         (PUT_REAL): Restore old definition.
163
164 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
165             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
166
167         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
168         binutils 2.11.2 and higher generate smaller binaries than Sun's
169         native tools.
170
171 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
172
173         PR c++/6352
174         * toplev.c (rest_of_compilation): Do not defer functions for which
175         TREE_SYMBOL_REFERENCED has already been set.
176
177 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
178
179         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
180         alternative.
181
182 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
183
184         * builtins.c: Include langhooks.h.
185         (lang_type_promotes_to): Remove.
186         (expand_builtin_va_arg): Use new hook.
187         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
188         (simple_type_promotes_to): Move to c-typeck.c.
189         * c-common.h (simple_type_promotes_to): Remove.
190         * c-decl.c (duplicate_decls, grokdeclarator): Update.
191         * c-format.c: Include langhooks.h.
192         (check_format_types): Update.
193         * c-tree.h (c_type_promotes_to): New.
194         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
195         (type_lists_compatible_p): Update.
196         * langhooks-def.h (lhd_type_promotes_to): New.
197         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
198         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
199         * langhooks.c (lhd_type_promotes_to): New.
200         * langhooks.h (struct lang_hooks_for_types): New hook.
201         * tree.h (lang_type_promotes_to): Remove.
202 objc:
203         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
204
205 2002-04-18  Richard Henderson  <rth@redhat.com>
206
207         * function.c: Revert patch for c/6358.
208
209 2002-04-18  Richard Henderson  <rth@redhat.com>
210
211         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
212         blocks.  Handle multiple references to the TRAP block.  Handle
213         non-adjacent THEN and OTHER blocks.
214
215 2002-04-18  Richard Henderson  <rth@redhat.com>
216
217         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
218         crash with no type for by-mode libcalls.
219
220         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
221
222 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
223
224         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
225         __xtensa_nonlocal_goto): Use a syscall instructions to flush
226         the register windows.
227
228 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
229
230         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
231         appropriate.  Document need for extended precision even when
232         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
233         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
234         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
235         instead of relying on later syntax error when REAL_WIDTH > 5.
236         * real.c: Define NE based only on whether or not we have a
237         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
238         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
239         define GET_REAL and PUT_REAL as simple memcpy operations; no
240         need to byteswap or round.
241         Use #error instead of #ifdef-ing out the entire file, for
242         prompt error detection.
243
244         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
245
246 2002-04-18  David S. Miller  <davem@redhat.com>
247
248         * config/sparc/sparc.h (BRANCH_COST): Define.
249
250         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
251         does it.
252
253 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
254
255         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
256         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
257         propagate_block calls after relaxation loop using new variable
258         stabilized_prop_flags.
259
260 2002-04-18  Richard Henderson  <rth@redhat.com>
261
262         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
263         (ia64_va_arg): Expect variable sized types by reference.
264         * config/ia64/ia64-protos.h: Update.
265         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
266         ia64_function_arg_pass_by_reference.
267
268 2002-04-18  Richard Henderson  <rth@redhat.com>
269
270         * ifcvt.c: Include except.h.
271         (block_has_only_trap): Break out from find_cond_trap.
272         (find_cond_trap): Use it.  Always delete the trap block.
273         (merge_if_block): Allow then block null.  Be less simplistic about
274         what insns can end a block.
275         * Makefile.in (ifcvt.o): Depend on except.h.
276
277         * config/ia64/ia64.md (trap, conditional_trap): New.
278
279 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
280
281         PR c/6358
282         * function.c (assign_parms): Assign hard current_function_return_rtx
283         register here...
284         (expand_function_end): ...not here.
285
286 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
287
288         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
289         * c-tree.h (c_incomplete_type_error): New.
290         * c-typeck.c (require_complete_type, build_component_ref): Update.
291         (incomplete_type_error): Rename.
292         * langhooks-def.h (lhd_incomplete_type_error): New.
293         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
294         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
295         * langhooks.c (lhd_incomplete_type_error): New.
296         * langhooks.h (struct lang_hooks_for_types): New hook.
297         * tree.c (size_in_bytes): Use new hook.
298         * tree.h (incomplete_type_error): Remove.
299 objc:
300         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
301
302 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
303
304         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
305         TARGET_FLOAT_FORMAT blocks.
306
307 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
308
309         * doc/install.texi (Downloading the source): Do not mention Chill
310         any longer, but mention Ada.
311         (Configuration): Do not mention Chill any longer.
312
313 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
314
315         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
316
317 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
318
319         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
320         in last patch.
321
322 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
323
324         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
325         instead of unsigned_type.
326
327 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
328
329         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
330         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
331         later.
332
333 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
334
335         * attribs.c (vector_type_node_list): New static variable.
336         (handle_vector_size_attribute): Use it to avoid generating a
337         new type node each time we are called.
338
339         * combine.c (subst): Avoid trying to make a vector mode subreg of
340         an integer constant.
341         (gen_lowpart_for_combine): Likewise.
342
343 2002-04-18  Roger Sayle  <roger@eyesopen.com>
344             Jakub Jelinek  <jakub@redhat.com>
345
346         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
347         for integer constant c (if x has unsigned type or sign bit is not
348         set in c).  This folds the zero/sign extension into the bit-wise and
349         operation.
350
351 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
352
353         PR middle-end/6205
354         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
355         otherwise xorps.
356
357 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
358
359         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
360
361 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
362
363         * gcc.c (read_specs): Detect and fail if an attempt is made to
364         rename a spec string to an already existing string.
365
366 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
367
368         * config/s390/s390.c (legitimize_pic_address): Do not generate
369         illegal address constant without CONST.
370
371 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
372
373         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
374         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
375
376 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
377
378         PR optimization/6305
379         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
380         to make sure previous reloads are taken into account.  Generate
381         better code if one operand is an in-range immediate constant.
382
383 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
384
385         * doc/install.texi (Building): libgcj requires GNU make.
386
387 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
388
389         PR bootstrap/6315
390         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
391         even if hard quad and register is not floating.
392         (movtf reg<-mem split): Disallow splitting if hard quad and
393         register is floating.
394         (movtf mem<-reg split): Likewise.
395         * config/sparc/sparc.c (fp_register_operand): New predicate.
396         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
397
398 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
399
400         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
401         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
402         (unprotoize.o): Ditto.  Build from protoize.c.  Define
403         UNPROTOIZE on command line.
404         * protoize.c: Include cppdefault.h.  Delete include_defaults.
405         (in_system_include_dir): Use cpp_include_defaults (defined in
406         cppdefault.o).
407         * unprotoize.c: Delete file.
408
409 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
410
411         * config/rs6000/altivec.h (vec_ld): Add array variants.
412         (vec_lde): Same.
413         (vec_ldl): Same.
414
415 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
416             Aldy Hernandez <aldyh@redhat.com>
417
418         * config/rs6000/altivec.h: Define __ALTIVEC__.
419         (bool): New.
420         (__pixel): New.
421         (pixel): New.
422         (vec_cfux): New.
423         (vec_vmaddfp): New.
424         (vec_vsldoi): New.
425         Add parentheses to all macro arguments.
426
427 2002-04-16  Richard Henderson  <rth@redhat.com>
428
429         PR c++/6320
430         * except.c (remove_eh_handler): Insert inner regions at beginning
431         of sibling chain.  Refactor expressions.
432
433 2002-04-16  Richard Henderson  <rth@redhat.com>
434
435         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
436         * config/sparc/sol2-gas-bi.h: New file.
437         * config.gcc (sparc*-solaris): Add it as needed.
438         * configure.in (AS_SPARC64_FLAG): Remove check.
439         * config.in, configure: Regenerate.
440
441         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
442
443 2002-04-16  Richard Henderson  <rth@redhat.com>
444
445         * config/mips/mips.c (override_options): Don't override N32 for
446         a 64-bit ISA.
447
448         PR 6202
449         * config/mips/mips.md (can_delay): Split out of existing define_delays.
450         (HILO_delay): Set can_delay false.
451
452 2002-04-16  Dale Johannesen <dalej@apple.com>
453
454         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
455         instruction addresses.
456         (rs6000_output_function_epilogue): Likewise.
457
458 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
459
460         * c-parse.in (poplevel, compstmt_start,
461         compstmt_primary_start): Add ending ';', in accordance
462         with POSIX.
463
464 2002-04-16  Richard Henderson  <rth@redhat.com>
465
466         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
467         Adjust tm_file order to get TARGET_DEFAULT set properly.
468         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
469         * doc/install.texi (sparc-solaris): Update.
470
471 2002-04-16  Dale Johannesen <dalej@apple.com>
472
473         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
474         comparison operands do not match each other or if modes of
475         conditions do not match result.
476
477 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
478
479         PR target/6305
480         * config/s390/s390.md (mulsidi3): Set both subregs of the
481         multiword register.
482
483 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
484
485         * config/rs6000/altivec.h (vec_addc): Type check.
486
487 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
488
489         PR middle-end/6279
490         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
491
492         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
493
494 2002-04-15  Richard Henderson  <rth@redhat.com>
495
496         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
497         call_really_used_regs too.
498
499 2002-04-15  Richard Henderson  <rth@redhat.com>
500
501         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
502
503 2002-04-15  David S. Miller  <davem@redhat.com>
504
505         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
506         as being CLOBBERed.
507
508 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
509
510         PR c/6290
511         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
512         CONST_VECTOR is { 0, ... 0 }.
513
514 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
515
516         * doc/install.texi (Installing GCC: Configuration): Clarify
517         the only supported ways to configure gcc.
518
519 2002-04-15  Roland McGrath  <roland@frob.com>
520
521         * config.gcc (alpha*-*-gnu*): New target configuration.
522         * config/alpha/gnu.h: New file for it.
523         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
524
525 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
526
527         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
528         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
529         * tree.h (expand_start_stmt_expr): Update prototype.
530         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
531         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
532         on the STMT_EXPR created for the inline function.
533
534 2002-04-15  Richard Henderson  <rth@redhat.com>
535
536         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
537         config/i386/linux-aout.h, config/i386/linux-oldld.h,
538         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
539         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
540         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
541         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
542         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
543         Define __gnu_linux__, not gnu_linux.
544         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
545
546 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
547
548         Remove Chill front end.
549         * gcc.c (default_compilers): Remove Chill entries.
550         * ch: Remove directory.
551         * doc/frontends.texi: Remove information about Chill.
552         * doc/sourcebuild.texi: Likewise.
553         * doc/standards.texi: Likewise.
554
555 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
556
557         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
558         (LONGLONG_STANDALONE): Define.
559
560 2002-04-15  David S. Miller  <davem@redhat.com>
561
562         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
563         Call emit_library_call with LCT_NORMAL.
564         (sparc_initialize_trampoline): Use LCT_foo instead of
565         magic constant in emit_library_call invocations.
566         (sparc64_initialize_trampoline): Likewise.
567         (sparc_profile_hook): Likewise.
568         * config/sparc/sparc.md: Likewise.
569
570         * config/sparc/sparc.c (sparc_extra_constraint_check):
571         Fix type of argument 'c'.
572         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
573         Likewise.
574
575 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
576
577         * diagnostic.h (output_buffer_state): Redefine.
578         (output_format_decoder): New macro.
579         (output_prefixing_rule): Likewise.
580         (output_line_cutoff): Likewise.
581         (diagnostic_format_decoder): Adjust.
582         (diagnostic_prefixing_rule): Likewise.
583         (diagnostic_line_cutoff): Likewise.
584         (diagnostic_state): Likewise.
585         (diagnostic_kind_count): Likewise.
586         (diagnostic_buffer): Now a macro.
587
588         * diagnostic.c (diagnostic_buffer): Remove definition.
589         (output_is_line_wrapping): Adjust.
590         (set_real_maximum_length): Likewise.
591         (output_set_maximum_length): Likewise.
592         (init_output_buffer): Likewise.
593         (lhd_print_error_function): Likewise.
594         (output_do_verbatim): Likewise.
595
596 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
597
598         * cpperror.c (print_location): Don't print include chain
599         if line == 0.
600         (cpp_begin_message): Update to use DL_ macros.
601         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
602         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
603         cpp_notice, cpp_notice_from_errno): Remove.
604         (cpp_error, cpp_error_with_line): Update to take a diagnostic
605         level.
606         (cpp_errno): New.
607         * cppexp.c (CPP_ICE): Remove.
608         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
609         lex, integer_overflow, _cpp_parse_expr): Update.
610         * cppfiles.c (read_include_file, find_include_file,
611         handle_missing_header, _cpp_read_file, remap_filename): Update.
612         * cpphash.h (enum error_type): Remove.
613         (_cpp_begin_message): Update.
614         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
615         cpp_handle_option, cpp_post_options): Update.
616         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
617         skip_whitespace, parse_identifier, parse_slow, parse_string,
618         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
619         cpp_interpret_charconst): Update.
620         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
621         lex_macro_node, do_undef, glue_header_name, parse_include,
622         do_include_common, read_flag, do_line, do_linemarker, do_ident,
623         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
624         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
625         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
626         _cpp_pop_buffer, do_diagnostic): Update.
627         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
628         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
629         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
630         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
631         cpp_notice, cpp_notice_from_errno): Remove.
632         (cpp_error, cpp_error_with_line): Update to take a diagnostic
633         level.
634         (cpp_errno): New.
635         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
636         collect_args, enter_macro_context, save_parameter, parse_params,
637         _cpp_create_definition, check_trad_stringification,
638         cpp_macro_definition): Update.
639         * cppmain.c (cpp_preprocess_file): Update.
640         * fix-header.c (read_scan_file): Update.
641
642 2002-04-14  Andreas Schwab  <schwab@suse.de>
643
644         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
645
646 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
647
648         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
649
650 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
651
652         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
653         not gnu_hurd.
654
655 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
656
657         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
658
659 2002-04-13      Joel Sherrill <joel@OARcorp.com>
660
661         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
662         sparc-elf and sparc-rtems targets.
663
664 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
665
666         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
667         defined, and __gnu_hurd__ wherever __GNU__ is defined.
668         * arm/linux-elf.h: Likewise.
669         * cris/aout.h: Likewise.
670         * cris/linux.h: Likewise.
671         * i370/linux.h: Likewise.
672         * i386/gnu.h: Likewise.
673         * i386/linux-aout.h: Likewise.
674         * i386/linux-oldld.h: Likewise.
675         * i386/linux.h: Likewise.
676         * i386/linux64.h: Likewise.
677         * ia64/linux.h: Likewise.
678         * m68k/linux-aout.h: Likewise.
679         * m68k/linux.h: Likewise.
680         * mips/linux.h: Likewise.
681         * pa/pa-linux.h: Likewise.
682         * pj/linux.h: Likewise.
683         * rs6000/sysv4.h: Likewise.
684         * s390/linux.h: Likewise.
685         * sh/linux.h: Likewise.
686         * sparc/linux-aout.h: Likewise.
687         * sparc/linux.h: Likewise.
688         * sparc/linux64.h: Likewise.
689         * xtensa/linux.h: Likewise.
690
691 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
692
693         * stmt.c (check_unique_operand_names): Expect operand names to
694         be strings rather than identifiers.  Use simple_cst_equal to
695         compare them.
696         (resolve_operand_name_1): Make same identifier to string change here.
697         * c-parse.in (asm_operand): Convert a named operand into a string.
698         * cp/parse.y (asm_operand): Likewise.
699
700 2002-04-13  Andreas Schwab  <schwab@suse.de>
701
702         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
703
704 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
705
706         Revert these changes:
707
708         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
709
710         PR c++/5571
711         * stor-layout.c (layout_decl): Reset the RTL for the decl.
712
713 2002-04-12  Richard Henderson  <rth@redhat.com>
714
715         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
716         (sparc*-*-solaris): Clean up header files.
717         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
718         and plan on generating 64-bit code.
719         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
720         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
721         * config/sparc/sol2-sld-64.h: Rename ...
722         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
723         for AS_SPARC64_FLAG not defined.
724         * config/sparc/sol2-gld-bi.h: New.
725         * config/sparc/sol2-sld.h: Remove.
726         * config/sparc/sol26-sld.h: New.
727         * config/sparc/sol2.h: Tidy comments.
728         * doc/install.texi: Document sparc-solaris configury changes.
729
730 2002-04-12  Richard Henderson  <rth@redhat.com>
731
732         * recog.c (offsettable_address_p): Match the logic in adjust_address.
733
734         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
735         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
736
737 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
738
739         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
740
741 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
742
743         * pa.c (pa_can_combine_p): Call extract_insn before calling
744         constrain_operands.
745
746 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
747
748         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
749         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
750         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
751         (CPP_PREDEFINES): Handle __declspec.
752         * config/i386/t-interix (USER_H): Remove.
753
754 2002-04-12  DJ Delorie  <dj@redhat.com>
755
756         * integrate.c (compare_blocks): Make comparisons safe for when
757         sizeof(int) < sizeof(char *).
758         (find_block): Likewise.
759
760 2002-04-12  Jan Hubicka  <jh@suse.cz>
761             David Edelsohn  <edelsohn@gnu.org>
762
763         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
764         registers.
765         (symbol_ref_operand): New.
766         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
767         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
768
769 2002-04-12  Andreas Schwab  <schwab@suse.de>
770
771         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
772         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
773         overrides the definition in config/svr4.h.
774
775 2002-04-12      Eric Norum <eric.norum@usask.ca>
776
777         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
778         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
779         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
780         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
781         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
782         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
783         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
784         definitions to config/rtems.h and make the targets more similar.
785
786 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
787
788         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
789         POINTERS_EXTEND_UNSIGNED.
790         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
791         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
792
793         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
794         not specified.
795
796 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
797
798         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
799         depends on TARGET_SHMEDIA, not TARGET_SH5.
800
801 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
802
803         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
804         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
805
806 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
807
808         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
809         no r0 clobber.
810
811 2002-04-12  Andreas Schwab  <schwab@suse.de>
812
813         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
814
815 2002-04-12  Richard Henderson  <rth@redhat.com>
816
817         PR bootstrap/4191
818         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
819
820         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
821         modes spanning multiple hard regs.
822
823         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
824
825 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
826
827         * pa.c (pa_output_function_prologue): Don't accumulate the total
828         number of code bytes when using TARGET_64BIT, or gas, SOM and not
829         the portable runtime.
830         (output_deferred_plabels): Handle 64bit plabels.
831         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
832         generating pic code using the GAS assembler for object formats that
833         are not SOM (ie., ELF32 and ELF64).
834         (output_millicode_call): Check attribute type if attribute length is 28.
835         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
836         dbr_sequence_length once.
837         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
838         dbr_sequence_length once.
839         * pa.h (TARGET_SOM): Define if not defined.
840         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
841         with GAS and not SOM.
842         (jump, call_internal_reg, call_value_internal_reg): Likewise.
843         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
844
845 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
846
847         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
848         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
849         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
850         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
851         elfos.h and dbxelf.h values are fine now.
852         * config/i386/freebsd.h, config/alpha/freebsd.h
853         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
854
855 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
856
857         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
858         or set Acpu or Amachine.  Reformat.
859         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
860         define.
861         (LINK_SPEC): Do not need to undef.
862         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
863         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
864         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
865         define.
866         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
867         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
868         (LINK_SPEC): Do not need to undef.
869         (DONT_USE_BUILTIN_SETJMP): Do not define.
870         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
871         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
872         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
873         Remove trailing spaces.
874         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
875         __ELF__, or set Acpu or Amachine.  Reformat.
876         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
877         define.
878
879 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
880
881         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
882         all other *-*-freebsd* targets.
883
884 2002-04-11  Richard Henderson  <rth@redhat.com>
885
886         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
887
888 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
889
890         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
891         Include {cpu}/{cpu}.h thru tm_file.
892         (alpha*-*-linux*ecoff): Remove target.
893         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
894         (LINK_SPEC): Remove, is not OS independent.
895         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
896         (LINK_SPEC): Do not need to #undef any longer.
897         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
898         any longer.
899         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
900         __ELF__.
901         (LINK_SPEC): Moved here from alpha/elf.h.
902         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
903         SUB_CPP_PREDEFINES.
904         * config/alpha/linux-ecoff.h: Remove.
905         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
906         (CPP_SPEC): Define _POSIX_SOURCE as needed.
907         (CPP_SUBTARGET_SPEC): Do not define.
908         (LINK_SPEC): Do not need to #undef any longer.
909         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
910         * config/alpha/vms.h: Likewise.
911
912 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
913
914         * doc/extend.texi: Remove old claim that typedefs cannot have
915         an alignment attribute.
916
917 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
918
919         PR optimization/6177
920         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
921         bitpos is 0 and bitsize CONCAT size.
922
923 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
924
925         PR c/6223
926         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
927
928 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
929
930         * config/alpha/freebsd.h: Minor reformatting.
931         (CPP_SPEC): Define ELF and add cpp_subtarget.
932         (ASM_SPEC): No longer needed.
933
934 2002-04-11  Richard Henderson  <rth@redhat.com>
935
936         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
937         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
938         (dimode mem/zero splitter): New.
939
940 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
941
942         * config/cris/cris.c (cris_override_options): Tweak error message
943         for PIC not implemented.
944
945         * config/cris/cris.h: Tweak comments related to parameter-passing.
946
947         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
948
949 2002-04-10  Richard Henderson  <rth@redhat.com>
950
951         * except.c (add_ehl_entry): Allow duplicates after landing pad
952         creation.
953
954 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
955
956         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
957
958 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
959
960         * c-decl.c (c_init_decl_processing): Move generation of
961         decls for g77_integer_type_node and friends from here ...
962         * c-common.c (c_common_nodes_and_builtins): ... to here.
963
964 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
965
966         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
967         is only used as frame pointer when frame_pointer_needed is true.
968
969 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
970
971         PR target/817
972         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
973         for the fact that the pool entry uses two words.
974         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
975         1k bytes.
976         (movdf_soft_insn): Similarly.
977         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
978         for the fact that the pool entry uses three words.
979
980 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
981
982         * config/mips/mips.c (mips_va_arg): When using the struct version
983         of the EABI va_list, allow arguments in the register save area to
984         take up less room than a stack argument.
985
986 2002-04-10  Richard Henderson  <rth@redhat.com>
987
988         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
989         if EXPAND_INITIALIZER.
990
991 2002-04-09  Richard Henderson  <rth@redhat.com>
992
993         * config/alpha/alpha.md (movdi_er_maybe_g): New.
994         * config/alpha/alpha.c (alpha_expand_mov): Use it.
995
996 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
997
998         PR optimization/6233
999         * rtlanal.c (pure_call_p): New function.
1000         * rtl.h (pure_call_p): Declare.
1001         * loop.c (prescan_loop): Use it to set has_nonconst_call.
1002         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
1003
1004 2002-04-09  Eric Christopher  <echristo@redhat.com>
1005
1006         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
1007         information to .comm directive.
1008
1009 2002-04-09  Richard Henderson  <rth@redhat.com>
1010
1011         PR c/5078
1012         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
1013
1014 2002-04-09  Richard Henderson  <rth@redhat.com>
1015
1016         * basic-block.h (flow_delete_block_noexpunge): Declare.
1017         (expunge_block_nocompact): Declare.
1018         * cfg.c (expunge_block_nocompact): Split out from ...
1019         (expunge_block): ... here.
1020         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
1021         (flow_delete_block_noexpunge): Split out from ...
1022         (flow_delete_block): ... here.
1023         * cfgcleanup.c (delete_unreachable_blocks): Compact while
1024         removing dead blocks.
1025         * except.c (exception_handler_labels): Remove.
1026         (exception_handler_label_map): New.
1027         (struct eh_region): Add aka member.
1028         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
1029         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
1030         (for_each_eh_label, for_each_eh_label_1): New.
1031         (init_eh): Register exception_handler_label_map.
1032         (free_eh_status): Use free_region.
1033         (find_exception_handler_labels): Use the map, not the list.
1034         (remove_exception_handler_label): Likewise.
1035         (maybe_remove_eh_handler): Likewise.
1036         (remove_eh_handler): Use the region aka bitmap.
1037         * except.h (exception_handler_labels): Remove.
1038         (for_each_eh_label): Declare.
1039         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
1040         * loop.c (invalidate_loops_containing_label): New.
1041         (find_and_verify_loops): Use it.  Use for_each_eh_label.
1042         * sched-rgn.c (is_cfg_nonregular): Use
1043         current_function_has_exception_handlers.
1044
1045 2002-04-09  Richard Henderson  <rth@redhat.com>
1046
1047         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
1048         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
1049         Do not return changed status.
1050         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
1051         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
1052         New functions that do return changed status.
1053         * sbitmap.h: Update decls.
1054         * gcse.c, lcm.c: Use _cg functions as needed.
1055
1056 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1057
1058         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
1059         (sh64-*-elf*, sh-*-rtemself*): Likewise.
1060         * config/sh/embed_bb.c: New file.
1061         * config/sh/embed-elf.h: New file.
1062         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
1063         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
1064         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
1065         __PTRDIFF_TYPE__ .
1066         (SUBTARGET_CPP_PTR_SPEC): Don't define.
1067         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
1068         Add subtarget_asm_endian_spec.
1069         (ASM_SPEC): Use subtarget_asm_endian_spec.
1070         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
1071         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
1072         (WCHAR_UNSIGNED): Define.
1073         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
1074         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
1075         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
1076         Fix value.
1077         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
1078         (sh_adjust_cost): Likewise.
1079         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
1080         __PTRDIFF_TYPE__ .
1081         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
1082         (WCHAR_TYPE_SIZE): Likewise.
1083         (ASM_SPEC): Use subtarget_asm_endian_spec.
1084         (SH_ELF_WCHAR_TYPE): #undef/ #define.
1085         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
1086         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
1087         (MAX_WCHAR_TYPE_SIZE): Don't #define .
1088         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
1089         (USER_LABEL_PREFIX): Don't #undef /#define .
1090         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
1091         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
1092         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
1093         (ASM_SPEC): Likewise.
1094         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
1095         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
1096         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
1097         (LIB2FUNCS_EXTRA): Define.
1098         * t-sh64 (LIB2FUNCS_EXTRA): Define.
1099         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
1100         (LIB1ASMFUNCS_CACHE): Define.
1101         (LIB2FUNCS_EXTRA): Redefine empty.
1102
1103 2002-04-08  Richard Henderson  <rth@redhat.com>
1104
1105         * reorg.c (get_branch_condition): Use reversed_comparison_code.
1106
1107 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1108
1109         * config/m68hc11/larith.asm (__map_data_section): Fix condition
1110         and optimize for size.
1111         (__do_global_ctors): Fix pointer comparison.
1112         (__do_global_dtors): Likewise.
1113
1114 2002-04-09  David S. Miller  <davem@redhat.com>
1115
1116         * config/sparc/sparc.c (sparc_extra_constraint_check): New
1117         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
1118         allow reloading pseudos.
1119         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
1120         * config/sparc/sparc-protos.h: Declare it.
1121
1122         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
1123         unsigned comparison warning.
1124         (output_restore_regs): Mark leaf_function as unused.
1125
1126 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1127
1128         * expr.c (is_aligning_offset): New function.
1129         (expand_expr, case COMPONENT_EXPR): Call it.
1130
1131 2002-04-08  David S. Miller  <davem@redhat.com>
1132
1133         PR target/6082
1134         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
1135
1136         Make init_priority work on Sparc when using GNU ld.
1137         * config/sparc/linux.h, config/sparc/linux64.h,
1138         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
1139         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
1140         * config/sparc/sol2-gld.h: New file to do the same.
1141         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
1142         sparc/sol2-gld.h to tm_file.
1143
1144         PR optimization/4328
1145         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
1146         * doc/md.texi: Document it.
1147         * config/sparc/sparc.md (movdi_insn_sp64_novis,
1148         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
1149         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
1150         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
1151         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
1152
1153 2002-04-08  Andreas Jaeger  <aj@suse.de>
1154
1155         * stmt.c (expand_asm_operands): Revert last patch from Richard
1156         Henderson.
1157
1158 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1159
1160         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
1161         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
1162
1163 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1164
1165         * doc/contrib.texi (Contributors): Add David O'Brien.
1166
1167 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
1168
1169         * configure.in (auto-build.h): Use target_alias and build_alias
1170         when running configure.
1171         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
1172         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
1173         * configure: Regenerate.
1174
1175 2002-04-07  David S. Miller  <davem@redhat.com>
1176
1177         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
1178
1179 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1180
1181         PR 5933
1182         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
1183         generating 32-bit pic code.
1184
1185 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
1186
1187         * cppinit.c (cpp_create_reader): Initialize
1188         discard_comments_in_macro_exp.
1189         (COMMAND_LINE_OPTIONS): Add "-CC" option.
1190         (cpp_handle_option): Handle "-CC" option.
1191         * cpplex.c (save_comment): If saving a C++ comment in
1192         a directive, convert it to a C comment.
1193         (_cpp_lex_direct): Pass second comment start character to
1194         save_comment to indicate comment type.
1195         * cpplib.c (_cpp_handle_directive): If processing
1196         a "#define" directive and discard_comments_in_macro_exp
1197         is false,  re-enable saving of comments.
1198         (lex_macro_node): If discard_comments_in_macro_exp is false,
1199         discard any comments before the macro identifier.
1200         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
1201         member.
1202         * cppmacro.c (cpp_get_token): If expanding a macro while
1203         processing a directive, discard any comments we might encounter.
1204         (parse_params): If discard_comments_in_macro_exp is false,
1205         ignore comments in the macro parameter list.
1206         * gcc.c (cpp_unique_options): Add "-CC" option.
1207         (option_map): Map "--comments-in-macros" to "-CC".
1208         * doc/cppopts.texi: Document "-CC" option.
1209         * f/lang-specs.h: Add "-CC" option.
1210         * testsuite/gcc.dg/cpp/maccom1.c: New test.
1211         * testsuite/gcc.dg/cpp/maccom2.c: New test.
1212         * testsuite/gcc.dg/cpp/maccom3.c: New test.
1213         * testsuite/gcc.dg/cpp/maccom4.c: New test.
1214         * testsuite/gcc.dg/cpp/maccom5.c: New test.
1215         * testsuite/gcc.dg/cpp/maccom6.c: New test.
1216
1217 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1218
1219         PR middle-end/6180
1220         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
1221
1222 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
1223
1224         PR c++/5571
1225         * stor-layout.c (layout_decl): Reset the RTL for the decl.
1226
1227         PR opt/5120
1228         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
1229         RTX_UNCHANGING_P for the functions arguments when a tail call
1230         is made.
1231
1232 2002-04-06  Jason Merrill  <jason@redhat.com>
1233
1234         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
1235         (parse_options_and_default_flags): Set them appropriately.
1236         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
1237
1238 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
1239
1240         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
1241         here.
1242
1243         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
1244         semicolon.
1245
1246         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
1247         types come in by-reference.  Fix typo in comment.
1248
1249 2002-04-05  David S. Miller  <davem@redhat.com>
1250
1251         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
1252         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
1253         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
1254         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
1255
1256 2002-04-05  David S. Miller  <davem@redhat.com>
1257
1258         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
1259         are not going to emit return instructions, emit at least a nop
1260         for the sake of sane backtraces.
1261
1262 2002-04-05  Richard Henderson  <rth@redhat.com>
1263
1264         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
1265
1266 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
1267
1268         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
1269
1270 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
1271
1272         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
1273         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
1274         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
1275
1276 2002-04-05  Andreas Schwab  <schwab@suse.de>
1277
1278         * c-convert.c: Include c-common.h.
1279         * Makefile.in (c-convert.o): Updated.
1280
1281 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1282
1283         * mklibgcc.in: Use separate libgcc.map for each multilib.
1284         * Makefile.in (distclean): Don't remove libgcc.map here.
1285
1286 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1287
1288         * Makefile.in (s-mlib): Handle --disable-multilib by separate
1289         genmultilib invocation.
1290
1291 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
1292
1293         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
1294         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
1295         to num_gprs for symmetry.
1296         * config/mips/mips.c: Adjust accordingly.
1297
1298 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1299
1300         * c-common.c (truthvalue_conversion): Rename, update.
1301         * c-common.h (c_common_truthvalue_conversion): New.
1302         * c-convert.c (convert): Update.
1303         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1304         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
1305         * c-typeck.c (build_binary_op, build_unary_op,
1306         build_conditional_expr): Update.
1307         * fold-const.c (constant_boolean_node, fold): Use langhook.
1308         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
1309         * langhooks.h (struct lang_hooks): New hook.
1310         * stmt.c (expand_decl_cleanup): Use langhook.
1311         * tree.h (truthvalue_conversion): Remove.
1312 objc:
1313         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1314
1315 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
1316
1317         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
1318         Add rules to make null object file.
1319
1320 2002-04-04  Jim Blandy  <jimb@redhat.com>
1321
1322         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
1323         macro formal parameter names.
1324
1325 2002-04-04  David S. Miller  <davem@redhat.com>
1326
1327         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
1328
1329 2002-04-04  Richard Henderson  <rth@redhat.com>
1330
1331         PR middle-end/5099
1332         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
1333         Support copies into and out of memory.  Don't accept allows_reg
1334         and allows_mem as gospel.
1335
1336 2002-04-04  Richard Henderson  <rth@redhat.com>
1337
1338         PR opt/6165
1339         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
1340         (write_dependence_p): Likewise.
1341
1342 2002-04-04  Richard Henderson  <rth@redhat.com>
1343
1344         * predict.c (estimate_bb_frequencies): Do frequency calculation
1345         with a volatile temporary.
1346
1347 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
1348
1349         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
1350
1351 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1352
1353         PR c++/6119
1354         * final.c (final_start_function): Don't bump profile_label_no here...
1355         (final_end_function): ...but here.
1356
1357 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1358
1359         * config/sparc/sparc.md (pic): New attribute.
1360         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
1361         into stack slots.
1362         (split after do_builtin_setjmp_setup): New.
1363
1364 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1365
1366         PR fortran/6106
1367         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
1368         change.
1369
1370 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1371
1372         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
1373         UNITS_PER_WORD for zero sized aggregates.
1374
1375 2002-04-03  David S. Miller  <davem@redhat.com>
1376
1377         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
1378         one-character spec for this, just use %(link_gcc_c_sequence).
1379
1380 2002-04-03  David S. Miller  <davem@redhat.com>
1381
1382         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
1383         handling.
1384
1385 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1386
1387         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
1388         (DWARF_FRAME_RETURN_COLUMN): Move.
1389         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1390         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
1391         * pa.c (except.h, predict.h): Include.
1392         (FRP): Delete.
1393         (store_reg_modify, set_reg_plus_d): Revise prototypes.
1394         (output_ascii): Add cast.
1395         (store_reg_modify): Revise to add frame notes.
1396         (set_reg_plus_d): Likewise.
1397         (compute_frame_size): Include space for eh data registers in frame if
1398         the current function calls eh_return.
1399         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
1400         function calls eh_return.  Save eh data registers if the current
1401         function calls eh_return.  Fix code to add frame notes.  Emit
1402         blockage to prevent insns with frame notes being scheduled in the
1403         delay slot of calls.
1404         (hppa_expand_epilogue): Restore eh data registers and do final stack
1405         adjustment if the current function calls eh_return.  Don't add frame
1406         notes.
1407         (output_call): Revise for change in length of call insn.  Don't do
1408         return pointer adjustment for an unconditional jump in the delay slot
1409         of a call when using frame notes.
1410         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
1411         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
1412         (ARG_POINTER_CFA_OFFSET): Define.
1413         * pa.md (return_external_pic): New pattern.
1414         (prologue): Correct formatting.  Use return_external_pic if current
1415         function calls eh_return.
1416         (call_internal_symref, call_value_internal_symref,
1417         sibcall_internal_symref, sibcall_value_internal_symref): Change default
1418         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
1419         respectively.
1420         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
1421
1422         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
1423         list of targets to check using "nop" insn.
1424         * configure: Rebuilt.
1425
1426 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
1427
1428         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
1429
1430 2002-04-03  David S. Miller  <davem@redhat.com>
1431
1432         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
1433         library sequence passed to the linker.
1434         (LINK_COMMAND_SPEC): Use it.
1435         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
1436         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
1437         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1438
1439 2002-04-03  Jason Merrill  <jason@redhat.com>
1440
1441         * except.c (struct eh_status): Remove protect_list.
1442         (begin_protect_partials, end_protect_partials): Remove.
1443         (add_partial_entry): Remove.
1444         * except.h: Remove prototypes.
1445
1446         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
1447         expand_decl_cleanup_eh.
1448
1449         PR c++/5636
1450         * tree.h (CLEANUP_EH_ONLY): New macro.
1451         * stmt.c (expand_decl_cleanup_eh): New fn.
1452         (expand_cleanups): Check CLEANUP_EH_ONLY.
1453         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
1454         Use expand_decl_cleanup_eh.
1455         (expand_stmt): Adjust.
1456         * c-common.h: Adjust prototype.
1457
1458 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
1459
1460         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
1461         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
1462         (cris_target_asm_function_epilogue): Ditto.
1463         (cris_initial_frame_pointer_offset): Ditto.
1464         (cris_simple_epilogue): Ditto.
1465         (cris_expand_builtin_va_arg): Variable-size types come in
1466         by-reference.
1467
1468 2002-04-03  David S. Miller  <davem@redhat.com>
1469
1470         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
1471         little-endian.
1472         (set_fast_math): Correct 'fsr' type.
1473
1474 2002-04-03  Richard Henderson  <rth@redhat.com>
1475
1476         PR opt/3569
1477         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
1478         * toplev.c (check_global_declarations): Use it.
1479         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
1480         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1481         (LANG_HOOKS_DECLS): Add it.
1482         * langhooks.c (lhd_warn_unused_global_decl): New.
1483         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1484         * c-objc-common.c (c_warn_unused_global_decl): New.
1485         * c-tree.h (c_warn_unused_global_decl): Declare.
1486         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1487
1488 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1489
1490         * langhooks-def.h (lhd_set_decl_assembler_name,
1491         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1492         (LANG_HOOKS_INITIALIZER): Update.
1493         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
1494         * langhooks.h (struct lang_hooks): New hook.
1495         * tree.c (set_decl_assembler_name): Move to langhooks.c.
1496         (lang_set_decl_assembler_name): Remove.
1497         (init_obstacks): Don't set hook.
1498         (decl_assembler_name): New function.
1499         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
1500         (decl_assembler_name): New.
1501         (lang_set_decl_assembler_name): Remove.
1502
1503 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1504
1505         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
1506         works properly with .hidden symbols.
1507         * configure: Rebuilt.
1508         * config.in: Rebuilt.
1509         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1510         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
1511         properly with .hidden symbols.
1512
1513 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1514
1515         PR middle-end/6102
1516         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1517         USE argument.
1518
1519 2002-04-03  Richard Henderson  <rth@redhat.com>
1520
1521         PR opt/4120
1522         * sched-rgn.c (sets_likely_spilled): New.
1523         (sets_likely_spilled_1): New.
1524         (add_branch_dependences): Use it.
1525
1526 2002-04-02  Richard Henderson  <rth@redhat.com>
1527
1528         PR opt/4311
1529         * loop.h (LOOP_FIRST_PASS): New.
1530         * loop.c (strength_reduce): Mind it when deciding to unroll.
1531         * toplev.c (rest_of_compilation): Set it.
1532
1533 2002-04-02  David S. Miller  <davem@redhat.com>
1534
1535         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
1536         mems_ok_for_ldd_peep when the order of the loads being examined
1537         is reversed.
1538         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1539         existing comment to increase comprehension of this situation.
1540
1541 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
1542
1543         * config/sh/sh.md: Don't use union real_extract.
1544
1545 2002-04-02  Richard Henderson  <rth@redhat.com>
1546
1547         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1548
1549 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1550
1551         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
1552         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
1553         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
1554         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
1555         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
1556         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
1557         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
1558         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
1559         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
1560         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
1561         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
1562         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
1563         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
1564         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
1565         Include as many configury headers via tm_file as possible.  This
1566         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
1567         * config/openbsd-oldgas.h: New file.
1568         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
1569         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
1570         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
1571         config/i386/i386-coff.h, config/i386/i386-interix.h,
1572         config/i386/iscdbx.h, config/i386/linux-aout.h,
1573         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
1574         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
1575         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
1576         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
1577         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
1578         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
1579         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
1580         config/i386/vxi386.h: Do not directly include configury headers.
1581         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
1582         Directly include configury headers that are no longer automatically
1583         included by the above headers.
1584         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
1585         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
1586         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
1587         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
1588         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
1589         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
1590         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
1591         (TARGET_VERSION): Define.
1592         * config/i386/beos-elf.h, config/i386/freebsd.h,
1593         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
1594         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1595         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
1596         config/i386/sco5.h, config/i386/sysv4.h
1597         (TARGET_VERSION): Do not need to protect.
1598         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
1599         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
1600         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
1601         config/i386/i386-interix.h, config/i386/linux-aout.h,
1602         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
1603         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
1604         (YES_UNDERSCORES): Do not define - not needed.
1605         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
1606         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1607         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
1608         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
1609         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1610         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
1611         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
1612         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
1613
1614 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
1615             Richard Henderson  <rth@redhat.com>
1616
1617         PR c/5484
1618         * function.c (assign_temp): Accept either type or decl argument.
1619         Detect variables whose size is too large to fit into an integer.
1620         * stmt.c (expand_decl): Pass the decl, not the type.
1621
1622 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1623
1624         * protoize.c: Match include directory usage with cppdefault.c.
1625
1626 2002-04-03  Jeffrey A Law  (law@redhat.com)
1627             Hans-Peter Nilsson  <hp@bitrange.com>
1628
1629         * combine.c (simplify_comparison): Avoid narrowing a comparison
1630         with a paradoxical subreg when doing so would drop signficant bits.
1631
1632 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
1633
1634         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1635         if POINTERS_EXTEND_UNSIGNED is defined.
1636
1637 2002-04-02  Richard Henderson  <rth@redhat.com>
1638
1639         PR opt/3967
1640         * local-alloc.c (contains_replace_regs): LO_SUM may contain
1641         replace regs.
1642
1643 2002-04-02  Richard Henderson  <rth@redhat.com>
1644
1645         * doc/standards.texi: Document required freestanding libc entry points.
1646
1647 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
1648
1649         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1650         associated splitter.  Remove MQ constraint.
1651         (ctrdi_internal4): Correct CCmode clobber.
1652
1653 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1654
1655         * milli64.S ($$dyncall): New function.
1656         * t-linux (LIB1ASMFUNCS): Revise module list.
1657         (LIB1ASMSRC): Use pa/milli64.S.
1658
1659 2002-04-02  Richard Henderson  <rth@redhat.com>
1660
1661         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1662         rename solaris_sys_varargs_h.
1663
1664 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1665
1666         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1667         the same mode as its component.
1668
1669 2002-04-02  Richard Henderson  <rth@redhat.com>
1670
1671         PR opt/190
1672         * final.c (this_is_asm_operands): Export.
1673         * output.h (this_is_asm_operands): Declare.
1674         * config/i386/i386.c (print_operand): Error odd asm operands.
1675
1676 2002-04-02  Richard Henderson  <rth@redhat.com>
1677
1678         PR opt/420
1679         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1680
1681 2002-04-01  Richard Henderson  <rth@redhat.com>
1682
1683         PR target/1538
1684         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1685         * fixinc/fixincl.x: Rebuild.
1686
1687 2002-04-01  Richard Henderson  <rth@redhat.com>
1688
1689         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1690         (atomic_alloc, atomic_free): New.
1691         (SIZE, MASK_FOR, PTR_IN): New.
1692         (emergency_reg_state, emergency_reg_state_free): New.
1693         (emergency_labeled_state, emergency_labeled_state_free): New.
1694         (reg_state_alloced, labeled_state_alloced): New.
1695         (alloc_reg_state, free_reg_state): New.
1696         (alloc_label_state, free_label_state, free_label_states): New.
1697         (push, pop, dup_state_stack, free_state_stack): Use them.
1698         (desc_label_state): Likewise.
1699         (uw_frame_state_for): Free label states and state stack.
1700         (uw_update_reg_address): Eliminate warnings.
1701
1702 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1703
1704         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1705         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1706
1707 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1708
1709         * c-decl.c (grokdeclarator): Update.
1710         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1711         * c-tree.h (c_mark_addressable): New.
1712         * c-typeck.c (default_function_array_conversion, build_unary_op,
1713         build_array_ref, convert_for_assignment): Update.
1714         (mark_addressable): Rename.
1715         * calls.c (try_to_integrate, expand_call): Use langhook.
1716         * expr.c (expand_expr): Use langhook.
1717         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1718         * langhooks.h (struct lang_hooks): New hook.
1719         * stmt.c (expand_asm_operands): Use langhook.
1720         * tree.h (mark_addressable): Remove.
1721 objc:
1722         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1723
1724 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1725
1726         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1727         in previous change.
1728
1729 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1730
1731         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1732         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1733
1734 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1735
1736         * c-common.c (unsigned_conversion_warning, convert_and_check,
1737         unsigned_type, signed_type, shorten_compare,
1738         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1739         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1740         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1741         New.
1742         * c-decl.c (grokdeclarator): Update.
1743         * c-format.c (check_format_types): Update.
1744         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1745         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1746         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1747         * convert.c (convert_to_integer): Use new hooks.
1748         * expmed.c (make_tree): Use new hooks.
1749         * expr.c (store_expr): Use new hooks.
1750         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1751         all_ones_mask_p, unextend, fold): Use new hooks.
1752         * langhooks.h (struct lang_hooks_for_types): New hooks.
1753         * tree.h (signed_or_unsigned_type, signed_type,
1754         unsigned_type): Remove.
1755 objc:
1756         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1757         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1758
1759 2002-03-31  Richard Henderson  <rth@redhat.com>
1760
1761         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1762         (desc_frgr_mem): Fix reference to f16-f31.
1763
1764 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1765
1766         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1767         RTVEC_ELT): Const-ify.
1768         * varray.h (VARRAY_CHECK): Const-ify.
1769         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1770         ggc_mark_rtvec, ggc_mark): Const-ify.
1771
1772 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1773
1774         * diagnostic.c: Include langhooks-def.h.
1775         * Makefile.in (diagnostic.o): Update.
1776
1777 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1778
1779         * c-common.c (c_unsafe_for_reeval): Rename.
1780         * c-common.h (c_unsafe_for_reeval): Rename.
1781         * c-decl.c (finish_incomplete_decl): Rename.
1782         (c_init_decl_processing): Don't set langhook.
1783         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1784         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1785         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1786         * c-tree.h (finish_incomplete_decl): Rename.
1787         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1788         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1789         (LANG_HOOKS_INITIALIZER): Update.
1790         * langhooks.c (lhd_unsafe_For_reeval): New.
1791         * langhooks.h (struct langhooks): New hooks.
1792         * toplev.c (incomplete_decl_finalize_hook): Remove.
1793         (wrapup_global_declarations): Update.
1794         * tree.c (lang_unsafe_for_reeval): Remove.
1795         (unsafe_for_reeval): Update.
1796         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1797         Remove.
1798 objc:
1799         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1800         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1801
1802 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1803
1804         * diagnostic.c (print_error_function): Remove.
1805         (default_print_error_function): Rename.
1806         (report_error_function): Update.
1807         * diagnostic.h (print_error_function): Remove.
1808         (default_print_error_function): Remove.
1809         * langhooks-def.h (struct diagnostic_context): Predeclare.
1810         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1811         (LANG_HOOKS_INITIALIZER): Update.
1812         * langhooks.h (struct diagnostic context): Predeclare.
1813         (struct lang_hooks): New hook.
1814
1815 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1816
1817         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1818         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1819         !flag_pic.
1820         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1821         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1822         of PIC_OFFSET_TABLE_REGNUM thruout.
1823         * config/rs6000/rs6000.md: Likewise.
1824         * config/rs6000/darwin.h: Likewise.
1825
1826 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1827
1828         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1829         unsigned HOST_WIDE_INT, not unsigned int.
1830
1831 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1832
1833         PR middle-end/6096, middle-end/6098, middle-end/6099
1834         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1835         CODE_LABELs.
1836         (fill_slots_from_thread): Likewise.
1837
1838 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1839
1840         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1841         floating fields in float regs.
1842         (function_arg_record_value_2): Likewise.
1843
1844 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1845
1846         * config/mmix/mmix.md (define_constants): Remove misleading
1847         FIXME.  Add MMIX_fp_rO_OFFSET.
1848         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1849         saved rO as part of the pattern.  Remove FIXME.
1850         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1851         here, at output-time.
1852
1853 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1854
1855         PR middle-end/6100
1856         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1857         REG_BR_PRED.
1858         (output_v9branch): Likewise.
1859
1860 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1861
1862         * gcc.c: Revert previous patch for now.
1863         * config/i386/djgpp.h: Likewise.
1864
1865 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1866
1867         * config/mmix/crti.asm (_init): Register _fini with atexit.
1868         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1869
1870 2002-03-31  Richard Henderson  <rth@redhat.com>
1871
1872         PR target/3997
1873         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1874         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1875
1876 2002-03-31  Richard Henderson  <rth@redhat.com>
1877
1878         * libgcc2.c (__bb_exit_func): Make static.
1879
1880         * config/alpha/alpha.md (trap): New.
1881
1882 2002-03-31  Richard Henderson  <rth@redhat.com>
1883
1884         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1885         promoted argument types; build trap.
1886         (expand_builtin_trap): New.
1887         (expand_builtin): Use it.
1888         * stmt.c (expand_nl_goto_receivers): Likewise.
1889         * expr.h (expand_builtin_trap): Declare.
1890         * libfuncs.h (LTI_abort, abort_libfunc): New.
1891         * optabs.c (init_optabs): Init abort_libfunc.
1892
1893 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1894
1895         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1896         (LINK_COMMAND_SPEC): ... from here.
1897         (init_gcc_specs): Duplicate it here too, omitting
1898         shared_name in the second copy.
1899         (init_spec): Test for duplicate
1900         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1901
1902 2002-03-30  David S. Miller  <davem@redhat.com>
1903
1904         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1905         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1906
1907 2002-03-30  Roger Sayle <roger@eyesopen.com>
1908             Richard Henderson  <rth@redhat.com>
1909
1910         * regmove.c (combine_stack_adjustments_for_block): Avoid
1911         emitting a stack adjustment of zero bytes.  Let delete_insn
1912         update bb->head.
1913
1914 2002-03-30  Richard Henderson  <rth@redhat.com>
1915
1916         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1917         (sparc_emitting_epilogue): New.
1918         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1919         * config/sparc/sparc-protos.h: Update.
1920         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1921         (TARGET_SWITCHES): Update.
1922         * config/sparc/sparc.md (return): Remove.
1923         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1924         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1925         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1926         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1927         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1928         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1929         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1930         Remove MASK_EPILOGUE.
1931         * doc/invoke.texi: Update.
1932
1933 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1934
1935         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1936         CPP will start the file for us.
1937
1938 2002-03-30  Richard Henderson  <rth@redhat.com>
1939
1940         PR target/5446
1941         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1942         prologue_allocate_stack.
1943         (ia64_single_set): Use insn codes for recognition of special
1944         cases, not rtl matching.
1945         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1946
1947 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1948
1949         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1950
1951 2002-03-30  Richard Henderson  <rth@redhat.com>
1952
1953         PR target/6032
1954         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1955         or -fomit-frame-pointer with profiling.
1956         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1957         (FUNCTION_PROFILER): Do nothing.
1958         (PROFILE_HOOK): New.
1959         * config/sparc/sparc.c (sparc_override_options): Don't check
1960         code models for profiling.
1961         (sparc_function_profiler): Remove.
1962         (sparc_profile_hook): New.
1963         * config/sparc/sparc-protos.h: Update.
1964
1965 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1966
1967         PR optimization/6086
1968         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1969         of SUBREG of volatile MEM or because the MEM was mode dependent,
1970         return CLOBBER instead of unmodified SUBREG.
1971
1972 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1973
1974         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1975         when not optimizing.
1976
1977         * toplev.c (rest_of_compilation): Cann mark_constant_function
1978         only when optimizing.
1979
1980         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1981         are NULL.
1982
1983         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1984         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1985         (try_optimize_cfg): clear all AUX fields.
1986
1987         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1988         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1989         (ix86_address_cost): Be prepared for SUBREGed registers.
1990         (legitimate_address_p): Accept SUBREGed registers.
1991
1992 2002-03-29  Richard Henderson  <rth@redhat.com>
1993
1994         PR target/5672
1995         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1996
1997 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1998
1999         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
2000         for aggregate and TFmode types.
2001
2002 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
2003
2004         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
2005
2006 2002-03-29  Richard Henderson  <rth@redhat.com>
2007
2008         PR target/5886
2009         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
2010         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
2011
2012 2002-03-29  Richard Henderson  <rth@redhat.com>
2013
2014         PR target/6041
2015         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
2016         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
2017         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
2018         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
2019         conditional.
2020         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
2021
2022 2002-03-29  Dale Johannesen <dalej@apple.com>
2023
2024         * loop.c (combine_movables): Do allow combination of pseudos.
2025
2026 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
2027
2028         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
2029         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
2030         No functional change except ...
2031         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
2032         * doc/install.texi (*-*-freebsd*): Document port configuration.
2033
2034 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2035
2036         * Makefile.in (convert.o, calls.o, expmed.o): Update.
2037         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
2038         Use new hooks.
2039         * builtin-types.def (BT_PTRMODE): Update.
2040         * c-common.c (type_for_size): Rename c_common_type_for_size.
2041         (type_for_mode): Similarly.
2042         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
2043         Use new hook.
2044         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
2045         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
2046         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
2047         Redefine.
2048         * c-typeck.c (common_type, comptypes, default_conversion):
2049         Use new hooks.
2050         * calls.c: Include langhooks.h.
2051         (emit_library_call_value_1): Use new hooks.  Avoid redundant
2052         calls.
2053         * convert.c: Include langhooks.h
2054         (convert_to_pointer, convert_to_integer): Use new hooks.
2055         * except.c (init_eh): Similarly.
2056         * expmed.c: Include langhooks.h.
2057         (expand_mult_add): Use new hooks.
2058         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
2059         try_casesi): Similarly.
2060         * fold-const.c (optimize_bit_field_compare, make_range,
2061         decode_field_reference, fold_truthop, fold): Similarly.
2062         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
2063         put_var_into_stack): Similarly.
2064         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
2065         LANG_HOOKS_TYPE_FOR_SIZE): New.
2066         (LANG_HOOKS_TYPES_INITIALIZER): Update.
2067         * langhooks.h (lang_hooks_for_types): New hooks.
2068         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
2069         * tree.c (get_unwidened, get_narrower): Similarly.
2070         * tree.h (type_for_mode, type_for_size): Remove.
2071         * varasm.c (force_const_mem): Use new hooks.
2072         * utils2.c (nonbinary_modular_operation): Update.
2073 objc:
2074         * objc-act.c (handle_impent): Update.
2075         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
2076         Redefine.
2077
2078 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
2079
2080         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
2081         * config/ia64/ia64.c (basereg_operand): New.
2082         * config/ia64/ia64-protos.h (basereg_operand): Declare.
2083         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
2084
2085 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
2086
2087         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
2088         unwind information when frame_pointer_needed.
2089         (mmix_assemble_integer): Tweak wording in comment.
2090
2091 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2092
2093         * Makefile.in (except.o): Update.
2094         * except.c: Include langhooks.h.
2095         (init_eh): Use langhook.
2096         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
2097         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
2098         (LANG_HOOKS_INITIALIZER): Update.
2099         * langhooks.h (lang_hooks_for_types): New.
2100         (struct lang_hooks): Add it.
2101         * tree.c (make_lang_type_fn, make_lang_type): Remove.
2102         * tree.h (make_lang_type_fn, make_lang_type): Remove.
2103 config:
2104         * alpha/alpha.c: Include langhooks.h.
2105         (alpha_build_va_list): Use langhook.
2106         * d30v/d30v.c: Include langhooks.h.
2107         (d30v_build_va_list): Use langhook.
2108         * i386/i386.c: Include langhooks.h.
2109         (ix86_build_va_list): Use langhook.
2110         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
2111         * s390/s390.c: Include langhooks.h.
2112         (s390_build_va_list): Use langhook.
2113         * stormy16/stormy16.c: Include langhooks.h.
2114         (stormy16_build_va_list): Use langhook.
2115
2116 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2117
2118         PR c++/5964
2119         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
2120         attributes.
2121         (length): Compute variable length for branches/calls/jumps here.
2122         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
2123         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
2124         define branch_type attribute.
2125         (divsi3_sp32): Maximum length is 6 not 7.
2126         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
2127         call_address_untyped_struct_value_sp32,
2128         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
2129         * config/sparc/sparc.c (empty_delay_slot): New function.
2130         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
2131         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
2132
2133 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2134
2135         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
2136         nonzero_bits if not needed.
2137         (nonzero_bits) [XOR]: Likewise.
2138         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
2139         reg_last_set_mode and mode are both MODE_INT, but not equal.
2140         (record_value_for_reg): Compute reg_last_set_nonzero_bits
2141         in nonzero_bits_mode for MODE_INT modes.
2142
2143 2002-03-28  Richard Henderson  <rth@redhat.com>
2144
2145         PR target/5715
2146         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
2147         to GAS.  Correct drift between alternatives.
2148
2149 2002-03-28  Richard Henderson  <rth@redhat.com>
2150
2151         PR target/6087
2152         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
2153
2154 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
2155
2156         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
2157         emulation to the linker.
2158
2159 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
2160
2161         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
2162         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
2163
2164 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
2165
2166         * combine.c (simplify_and_const_int): Make sure to apply mask
2167         when force_to_mode returns a constant integer.  PR3311.
2168
2169 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2170
2171         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
2172
2173 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2174
2175         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
2176         and Objective-C Dialect Options.
2177
2178 2002-03-28  Richard Henderson  <rth@redhat.com>
2179
2180         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
2181         comparison should be done vs !=0 not >0 return code.  Tidy cases.
2182
2183 2002-03-28  Richard Henderson  <rth@redhat.com>
2184
2185         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
2186         on to c_expand_body.
2187         * c-tree.h (finish_function): Update decl.
2188         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
2189
2190 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2191
2192         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
2193
2194 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
2195
2196         * rtlanal.c: Include flags.h
2197         (may_trap_p): Do not mark FP operations if trapping
2198         if !flag_trapping_math
2199         * Makefile.in (rtlanal.o): Add dependency on flag.h
2200         * ifcvt.c (noce_operand_ok): Avoid the lameness.
2201
2202 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
2203
2204         * mips.md: Use dconst1, not 1.0, as first argument of
2205         REAL_VALUE_LDEXP.  Don't use union real_extract.
2206
2207 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
2208
2209         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
2210         rather than $target.  Heed program_prefix and
2211         program_transform_name.  Search for gas in cross-compiler case too.
2212         "test -x" rather than "test -f".
2213         (gcc_cv_ld): Likewise.
2214         (gcc_cv_nm): Heed program_prefix and program_transform_name.
2215         (gcc_cv_objdump): Likewise.
2216         * configure: Regenerate.
2217
2218 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2219
2220         * Makefile.in (attribs.o): Update.
2221         * attribs.c: Include langhooks.h.
2222         (decl_attributes): Use langhook.
2223         * c-decl.c (insert_default_attributes): Rename.
2224         * c-tree.h (c_insert_default_attributes): New.
2225         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
2226         (LANG_HOOKS_INITIALIZER): Update.
2227         * langhooks.h (struct lang_hooks): New hook.
2228         * tree.h (insert_default_attributes): Remove.
2229 objc:
2230         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
2231
2232 2002-03-27  Andreas Schwab  <schwab@suse.de>
2233
2234         * config/i386/i386.c (classify_argument): Also check for
2235         QUAL_UNION_TYPE.
2236
2237 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2238
2239         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
2240         any more.
2241
2242 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2243
2244         * i960.md (ret): Set PC.
2245         (nonlocal_goto): Fix expander.
2246         * builtins.c (epxand_builin_longjmp): Check that we've emitted
2247         some jump or call.
2248
2249 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
2250
2251         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
2252         of libcall regions.
2253
2254 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2255
2256         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
2257         assigning to BLOCK_FOR_INSN directly.
2258
2259 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
2260
2261         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
2262
2263 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2264
2265         * c-common.c (c_expand_expr): Fix prototype.
2266         * c-common.h (c_expand_expr): Always declare, update.
2267         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2268         * c-objc-common.c (c_objc_common_init): No global hook.
2269         * expr.c (expand_expr): Use langhook.
2270         * expr.h (enum expand_modifier): Conditionally declare.
2271         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
2272         (LANG_HOOKS_INITIALIZER): Update.
2273         * langhooks.c (lhd_expand_expr): New.
2274         * langhooks.h (struct lang_hooks): New hook.
2275         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
2276         (lang_independent_init): Don't default hook.
2277 objc:
2278         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2279
2280 2002-03-27  Richard Henderson  <rth@redhat.com>
2281
2282         PR target/6054
2283         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
2284         TARGET_CONST_GP.  Simplify conditions.
2285
2286 2002-03-27  Richard Henderson  <rth@redhat.com>
2287
2288         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
2289         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
2290         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
2291
2292 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
2293
2294         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
2295         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
2296         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
2297         Remove unnecessary masks.
2298         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
2299         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
2300         -mwindows, -mdll switches and their negations.
2301
2302 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2303
2304         * gcc-common.c (lang_mark_false_label_stack): Remove.
2305         * ggc.h (lang_mark_false_label_stack): Similarly.
2306
2307 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2308
2309         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
2310
2311         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
2312         or __rtems_ is defined.
2313
2314 2002-03-26  Richard Henderson  <rth@redhat.com>
2315
2316         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
2317         if a non-trivial load was emitted.
2318         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
2319         in high+extra+low case.
2320
2321 2002-03-26  Richard Henderson  <rth@redhat.com>
2322
2323         * config.gcc (sparc*-solaris): Use float_format=sparc.
2324
2325 2002-03-26  Richard Henderson  <rth@redhat.com>
2326
2327         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
2328         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
2329         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
2330         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
2331         (WINT_TYPE_SIZE): Fix at 32.
2332
2333 2002-03-26  Richard Henderson  <rth@redhat.com>
2334
2335         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
2336         until after eh landing pad generation.
2337         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
2338         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
2339
2340 2002-03-26  Richard Henderson  <rth@redhat.com>
2341
2342         * expr.h (ADD_PARM_SIZE): One more convert for INC.
2343
2344 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
2345
2346         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
2347         and warning switches.
2348         (cc1_options):  Likewise.
2349
2350 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
2351
2352         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
2353         Restore more of the signal context.  Set no_reg_stack_frame.
2354         * config/ia64/unwind-ia64.c (unw_state_record):
2355         Add no_reg_stack_frame, comments.
2356         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
2357         (uw_update_context): Adjust bsp when unwinding from leaf,
2358         but not signal frame.
2359
2360 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
2361
2362         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
2363
2364 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2365
2366         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
2367
2368 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2369
2370         PR target/5621
2371         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
2372         "Add a pool_range attribute", which was lost during the ARM/Thumb
2373         merge.
2374
2375 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2376
2377         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
2378         a register into the MAC16 accumulator.
2379
2380 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
2381
2382         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
2383         (Warning Options): Document -Wswitch-enum.
2384         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
2385         -Wswitch.
2386         (warn_switch_enum): Define variables.
2387         * flags.h (warn_switch_enum): Declare variables.
2388         * stmt.c (expand_end_case_type): When warn_switch_enum /
2389         -Wswitch-enum, perform switch checks.
2390         Fix PR c/5044.
2391
2392 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2393
2394         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
2395         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
2396         (reload_muladdsi_compare0_scratch): Delete.
2397
2398 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
2399
2400         * doc/install.texi (*-*-freebsd*): Update.
2401
2402 2002-03-26  Richard Henderson  <rth@redhat.com>
2403
2404         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
2405         (SUB_PARM_SIZE): Cast DEC to ssizetype.
2406
2407         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
2408         types from the normal argument frame.
2409
2410         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
2411         variable sized objects by reference.
2412         (sparc_va_arg): Receive them by reference too.
2413
2414 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
2415
2416         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
2417         code to not restoring global registers.
2418
2419 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2420
2421         * Makefile.in (ggc-common.o): Update.
2422         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
2423         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2424         * c-tree.h (c_mark_tree): New.
2425         * ggc-common.c: Include langhooks.h.
2426         (gcc_mark_trees): Use new langhook.
2427         * ggc-callbacks.c: Delete file.
2428         * ggc.h (lang_mark_tree): Remove.
2429         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
2430         (LANG_HOOKS_INITIALIZER): Update.
2431         * langhooks.h (struct lang_hooks): New hook.
2432 objc:
2433         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2434
2435 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2436
2437         * doc/cpp.texi: Exclude entire Top node from printed manual.
2438         Move option index after directive index.  Insert page breaks
2439         before GFDL and concept index.  Index environment variables
2440         with command line options.
2441         * doc/cppenv.texi: Use @vtable for environment variable list.
2442         Add paragraph explaining semantics of empty elements in path
2443         variables.  Exclude a cross-reference to Fishkill from the
2444         manpage.  Remove an unnecessary cross-reference of the entry
2445         right above the referer.  Don't use @anchor in text that goes
2446         into manpage.
2447         * doc/cppopts.texi: Cross-reference the environment variables
2448         section, not the specific environment variable, for consistency.
2449
2450 2002-03-25  Richard Henderson  <rth@redhat.com>
2451
2452         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
2453         anywhere in the block.  Don't refer to insns that have been
2454         removed from the chain.  Iterate backward through the new insns.
2455         Don't refer to edges that have been removed.
2456
2457 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
2458
2459         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
2460         test for overflow of constant.
2461
2462 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
2463
2464         PR target/2623
2465         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
2466         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
2467         these patterns on arm_archv4.
2468
2469 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
2470
2471         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
2472         int".
2473
2474 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2475
2476         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
2477         float_handled, float_handler, float_signal, set_float_handler,
2478         and do_float_handler.  Set handler for SIGFPE to crash_signal.
2479         * toplev.h: Don't prototype do_float_handler.
2480
2481         * c-lex.c: Fold parse_float into lex_number.  Make warning
2482         about portability of hex float constants more informative, and
2483         don't issue it on top of a syntax error.
2484         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
2485         their callers.
2486         * real.h: Define REAL_VALUE_ABS here...
2487         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
2488         simplify_unary_real, simplify_binary_real, and
2489         simplify_binary_is2orm1 into their callers.
2490         * tree.c: Fold build_real_from_int_cst_1 into caller.
2491
2492         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2493
2494         * tsystem.h: Include float.h here...
2495         * libgcc2.c: ... not here.
2496
2497 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
2498
2499         Fixes for: PR bootstrap/3591, target/5676
2500         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
2501         defined.  Do not disable exceptions or rtti.
2502         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
2503         mcore.h.  Disable exceptions and rtti, since they are not
2504         supported by EPOC.
2505
2506 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2507
2508         * c-decl.c (maybe_build_cleanup): Remove.
2509         * expr.c (expand_expr): Use langhook.
2510         * langhooks-def.h (lhd_return_null_tree,
2511         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
2512         (LANGHOOKS_INITIALIZER): Update.
2513         * langhooks.c (lhd_return_null_tree): New.
2514         * langhooks.h (struct lang_hooks): New hook.
2515         * tree-inline.c (initialize_inlined_parameters): Use langhook.
2516         * tree.h (maybe_build_cleanup): Remove.
2517
2518 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2519
2520         * regrename.c (build_def_use): Move recog_memoized
2521         before extract_insn.
2522
2523 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2524
2525         PR target/6043
2526         * expr.c (emit_group_store): Handle storing into CONCAT.
2527
2528 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2529
2530         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2531         corresponding MATCH_DUP.
2532
2533 2002-03-24  Richard Henderson  <rth@redhat.com>
2534
2535         * unroll.c (unroll_loop): Zero label_map.
2536
2537         * gcse.c: Include except.h.
2538         * Makefile.in (gcse.o): Update.
2539
2540 2002-03-24  Richard Henderson  <rth@redhat.com>
2541
2542         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2543         Do resolve_unique_section before shared data clause.
2544
2545 2002-03-24  Richard Henderson  <rth@redhat.com>
2546
2547         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2548
2549 2002-03-24  Richard Henderson  <rth@redhat.com>
2550
2551         * recog.c (peephole2_optimize): Split blocks when EH insns are
2552         generated in the middle of a block.  Do global life update if
2553         zapped EH edges.
2554
2555 2002-03-24  Richard Henderson  <rth@redhat.com>
2556
2557         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2558
2559 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2560
2561         preprocessor/3951
2562         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
2563         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
2564         (init_dependency_output): Don't make no_output decision here.
2565
2566 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
2567
2568         * stmt.c (check_for_full_enumeration_handling): Remove tests of
2569         warn_switch.  Update description.
2570         (expand_end_case_type): Call check_for_full_enumeration_handling
2571         when warn_switch.
2572
2573 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2574
2575         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
2576         (m68hc11_split_move): Call it to see if the source and destination
2577         operands use the same direction auto inc/dec mode, otherwise make the
2578         source an offsetable memory operand and generate an add.
2579
2580 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2581
2582         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
2583         register for operand 2.
2584         ("*subsi3_zero_extendqi"): Likewise.
2585         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
2586         bits so that it is compatible with a pop.
2587         ("*andhi3_gen"): Likewise.
2588         ("xorhi3"): Likewise.
2589
2590 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2591
2592         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2593         -pedantic here...
2594         (cpp_post_options): ... not here.
2595
2596 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2597             Aldy Hernandez  <aldyh@redhat.com>
2598
2599         Removal of separate preprocessor cpp0.
2600
2601         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
2602         cpp0, install-common): Update.
2603         * c-common.c (flag_preprocess_only): New.
2604         (c_common_init): Preprocess for -E.
2605         * c-common.h (flag_preprocess_only): New.
2606         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
2607         * c-objc-common.c (c_init_decl_processing): Exit quickly
2608         for NULL return from c_common_init.
2609         * cpplib.h (cpp_preprocess_file): New.
2610         * cppmain.c (main, general_init, pfile, progname): Remove.
2611         (do_preprocessing): Rename cpp_preprocess_file, don't call
2612         cpp_finish.  Don't close stdout here.
2613         (setup_callbacks): Update prototype.
2614         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
2615         Update.
2616         * tradcpp.c (main): Ignore -quiet.
2617 objc:
2618         * lang-specs.h (default_compilers): Preprocess with cc1obj.
2619
2620 2002-03-24  Richard Henderson  <rth@redhat.com>
2621
2622         PR optimization/5742
2623         * machmode.def: Add inner mode field to complex modes.
2624         * config/mips/mips.c (mips_function_value): Always define.  Add
2625         new argument to handle libcalls.
2626         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
2627         (FUNCTION_VALUE): Likewise.
2628         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
2629         * config/mips/mips-protos.h: Update.
2630
2631 2002-03-23  Richard Henderson  <rth@redhat.com>
2632
2633         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2634         * config/sparc/sparc-protos.h: Update.
2635         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2636
2637 2002-03-23  Richard Henderson  <rth@redhat.com>
2638
2639         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2640         _start or _init begins the text segment.
2641
2642 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
2643
2644         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
2645         not HOST_WIDEST_INT.
2646         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
2647
2648 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
2649
2650         PR java/5489
2651         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
2652         operand argument to output_return_instruction.
2653         * arm.c (arm_print_operand, case 'd'): If the operand is
2654         const_true_rtx then just return.
2655         (arm_print_operand, case 'D'): If the operand is const_true_rtx
2656         then abort.
2657
2658 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2659
2660         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2661         (Warning Options): Document -Wswitch-default.
2662         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2663         -Wswitch.
2664         (warn_switch_default): Define variable.
2665         (warn_switch): Update comment.
2666         * flags.h (warn_switch_default): Declare variable.
2667         (warn_switch): Update comment.
2668         * stmt.c (expand_end_case): Check for and, when
2669         warn_switch_no_default, warn of a missing default case.
2670
2671 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2672
2673         * real.h (N): Special case 128 bit doubles.
2674
2675         * combine.c (simplify_comparison): When widening modes, ignore
2676         sign extension on CONST_INTs.
2677
2678 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2679
2680         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2681         passed to adjust_address.  Fix comment formatting.
2682
2683
2684 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2685
2686         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2687         Always make REAL_VALUE_TYPE a struct containing an array of
2688         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2689         big it is.  Don't declare or use union real_extract.
2690
2691         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2692         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2693         (print_operand), config/arm/arm.c (output_move_double),
2694         config/arm/arm.md (consttable_4, consttable_8),
2695         config/romp/romp.c (output_fpops), config/s390/s390.h
2696         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2697         (xtensa_output_literal): Don't use union real_extract.
2698
2699         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2700         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2701         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2702         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2703         (PRINT_OPERAND): Don't use local version of union
2704         real_extract.
2705
2706         * config/convex/convex.c (check_float_value), config/vax/vax.c
2707         (vax_float_literal), config/m88k/m88k.md (divdf3),
2708         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2709         config/pdp11/pdp11.c (output_move_quad): Don't do host
2710         arithmetic on target floating point quantities.
2711
2712         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2713         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2714
2715         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2716         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2717
2718         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2719         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2720         INFINITY.
2721         * print-rtl.c (print_rtx): Disable code which needs
2722         floating-point emulator.
2723         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2724         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2725         depending on HOST_FLOAT_FORMAT to be defined properly.
2726
2727         * config/1750a/1750a.c (get_double, float_label): Delete.
2728         (print_operand): Delete huge commented-out chunk.  Use
2729         REAL_VALUE_TO_DECIMAL.
2730         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2731         functions.
2732         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2733         IEEE_FLOAT_FORMAT.
2734         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2735         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2736         * config/m88k/m88k.c (real_power_of_2_operand,
2737         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2738         real_extract out of the union; run the input through
2739         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2740         from that into the union.
2741         * config/pdp11/pdp11.c (output_move_double): Rearrange
2742         parentheses to make automatic indenter happy.
2743
2744         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2745         Point" and rewrite to describe current situation.  Also adjust
2746         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2747         match code.
2748         * doc/rtl.texi: Adjust cross reference.
2749
2750 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2751
2752         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2753         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2754         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2755         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2756         prevent use of sp as a reload register.
2757         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2758         non_acc_reg_operand.
2759         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2760         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2761         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2762         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2763
2764 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2765
2766         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2767         * cpplex.c (unterminated): Delete.
2768         (parse_string): No string literal may extend over multiple
2769         lines.  Suppress the error when preprocessing assembly.
2770         * cppmain.c (scan_translation_unit): Strings are single-line.
2771
2772         * doc/cpp.texi: Update to match.
2773
2774 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2775
2776         PR optimization/5854
2777         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2778         Shut up warnings.
2779         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2780         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2781         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2782         const0 if scratch register was not allocated.
2783         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2784         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2785         with GEN_INT (...).
2786         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2787         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2788         with GEN_INT (...) everywhere.  Remove constraints in define_split
2789         patterns.
2790         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2791         require scratch register for setting 0 into regs/non-pushable memory.
2792
2793 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2794
2795         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2796         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2797
2798 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2799
2800         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2801         * cppinit.c (cpp_create_reader):  On by default.
2802         (cpp_handle_option):  Handle -W[no-]endif-labels.
2803         (cpp_post_options):  Also enable if -pedantic.
2804         * cpplib.c (do_else):  Use it.
2805         (do_endif):  Likewise.
2806         * doc/cppopts.texi:  Document new option.
2807         * doc/invoke.texi:  Document new option.
2808
2809 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2810
2811         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2812         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2813
2814 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2815
2816         * flow.c (calculate_global_regs_live): Clear aux fields of
2817         ENTRY and EXIT.
2818
2819 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2820
2821         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2822         REG or MEM subregs, pass rtx * instead of rtx to it.
2823         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2824         rtx * instead of rtx to alter_subreg.
2825         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2826         * config/pj/pj.c (pj_output_rval): Likewise.
2827
2828 2002-03-22  Richard Henderson  <rth@redhat.com>
2829
2830         PR target/3177
2831         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2832         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2833         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2834         (ia64_expand_prologue): Look at int_regs, not words, for number
2835         of incomming int regs.
2836
2837 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2838
2839         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2840
2841 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2842
2843         * toplev.c (flag_loop_optimize, flag_crossjumping):
2844         New static variables.
2845         (rest_of_compilation): Conditionalize crossjumping and
2846         loop optimizer.
2847         (parse_options_and_default_flags): Default loop_optimize and
2848         crossjumping.
2849         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2850         * invoke.texi (crossjumping, loop-optimize): Document.
2851
2852 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2853
2854         * real.c (eiisneg): Move outside #ifdef NANS.
2855
2856 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2857
2858         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2859         frequencies match; avoid match on different loop depths.
2860         (try_crossjump_to_bb): Kill tests that no longer brings time
2861         savings.
2862         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2863         updating code.
2864         (split_edge): Likewise.
2865
2866         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2867         variable.
2868
2869         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2870         * cfgrtl.c: Include insn-config.h
2871         (split_block) Dirtify block in presence of conditional execution
2872
2873 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2874
2875         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2876         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2877         (function_arg): Constify CUMULATIVE_ARGS.
2878         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2879         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2880         (UNITS_PER_DOUBLE): New macro.
2881         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2882         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2883         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2884         fp_regs and stack_words.
2885         (EABI_FLOAT_VARARGS_P): New macro.
2886         * config/mips/mips.c (struct mips_arg_info): New.
2887         (mips_arg_info): New function.
2888         (function_arg_advance): Use it.  Add adjustment instructions here
2889         rather than in function_arg.
2890         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2891         for VOIDmode at the beginning of the function.
2892         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2893         (function_arg_pass_by_reference): Likewise.
2894         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2895         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2896         (mips_va_start): Likewise.  Use the new stack_words field of
2897         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2898         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2899         doubles and other types, aligning the overflow pointer for non-doubles
2900         too.  Remove some code duplication.  Replace hard-coded constants.
2901
2902 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2903
2904         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2905         (CLASS_UNITS): Undefine.
2906         (CLASS_MAX_NREGS): Use FP_INC.
2907         * config/mips/mips.c (compute_frame_size): Likewise.
2908         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2909
2910 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2911
2912         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2913         prototype, and handle lexing numbers and identifiers.
2914         (parse_identifier): Update to new form of parse_slow.
2915         (parse_number): Fast path only, use parse_slow otherwise.
2916         (_cpp_lex_direct): Update calls to parse_number.
2917
2918 2002-03-21  DJ Delorie  <dj@redhat.com>
2919
2920         * bb-reorder.c (make_reorder_chain_1): Protect against
2921         when redundant edges are omitted.
2922         * predict.c (dump_prediction): Likewise.
2923
2924 2002-03-21  Richard Henderson  <rth@redhat.com>
2925
2926         PR target/5996
2927         * fixinc/inclhack.def (solaris_stdio_tag): New.
2928         * fixinc/fixincl.x: Regenerate.
2929
2930 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2931
2932         PR c/5597
2933         * c-typeck.c (process_init_element): Flag non-static
2934         initialization of a flexible array member as illegal.
2935
2936 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2937
2938         * config/rs6000/t-linux64: New.
2939         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2940         t-ppccomm.  Use t-rs6000 and t-linux64.
2941         (powerpc64-*-gnu* <tmake_file>): Likewise.
2942         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2943         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2944         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2945
2946 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2947
2948         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2949         flag_really_no_inline instead of optimize == 0.
2950
2951         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2952
2953         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2954
2955         * flags.h (flag_really_no_inline): New.
2956
2957         * c-common.c (c_common_post_options): Initialize
2958         flag_really_no_inline.
2959
2960         * toplev.c (flag_really_no_inline): New.
2961
2962 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2963
2964         * config/avr/avr.md (length): Fix length computation for
2965         conditional branches.
2966
2967 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2968
2969         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2970         sdbout.o, profile.o): Update.
2971         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2972         langhook.
2973         * c-common.h (gettags): Move here from tree.h.
2974         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2975         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2976         * dbxout.c (dbxout_init): Use getdecls langhook.
2977         * expr.c (expand_expr): Use insert_block langhook.
2978         * fold-const.c: Include langhooks.h.
2979         (fold_range_test, fold_binary_op_with_conditional_arg,
2980         fold): Use global_bindings_p langhook.
2981         * integrate.c (expand_inline_function): Use insert_block langhook.
2982         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2983         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2984         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2985         LANG_HOOKS_GETDECLS): New.
2986         (LANG_HOOKS_INITIALIZER): Update.
2987         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2988         langhook.
2989         * langhooks.h (struct lang_hooks_for_decls): New.
2990         (struct lang_hooks): Update.
2991         * profile.c: Include langhooks.h.
2992         (output_func_start_profiler): Use new langhooks.
2993         * sdbout.c: Include langhooks.h.
2994         (sdbout_init, sdbout_finish): Use getdecls langhook.
2995         * stmt.c: Include langhooks.h.
2996         (expand_fixup, fixup_gotos): Use new langhooks.
2997         * stor-layout.c: Include langhooks.h.
2998         (variable_size): Use global_bindings_p langhook.
2999         * toplev.c (compile_file): Use getdecls langhook.
3000         * tree-inline.c (remap_block): Use insert_block langhook.
3001         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
3002         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
3003
3004 2002-03-21  Richard Henderson  <rth@redhat.com>
3005
3006         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
3007         constants in .data when -fpic.
3008
3009 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3010
3011         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
3012         where appropriate.
3013
3014 2002-03-21  Tom Tromey  <tromey@redhat.com>
3015
3016         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
3017
3018 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3019
3020         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
3021
3022         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
3023
3024 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
3025             Richard Henderson  <rth@redhat.com>
3026
3027         PR c/5354
3028         * c-common.c (c_expand_expr): Preserve result of a statement
3029         expression if needed.
3030
3031 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
3032
3033         PR bootstrap/4195
3034         * genrecog.c (maybe_both_true_mode): Remove.
3035         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
3036         * machmode.def (Pmode): Likewise.
3037
3038 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
3039
3040         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
3041         (nonlocal_mentioned_p_1): New function.
3042         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
3043         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
3044         (mark_constant_function): Recognize pure functions.
3045         * rtl.h (global_reg_mentioned_p): New prototype.
3046         * rtlanal.c (global_reg_mentioned_p,
3047         global_reg_mentioned_p_1): New function.
3048
3049 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3050
3051         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
3052         UNIX assert.h.
3053         * fixinc/fixincl.x: Regenerate.
3054
3055 2002-03-20  Jason Merrill  <jason@redhat.com>
3056
3057         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
3058
3059 2002-03-20  Michael Meissner  <meissner@redhat.com>
3060
3061         * doc/invoke.texi (Optimize Options): Document that -O2 sets
3062         -fstrict-aliasing.
3063
3064 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
3065
3066         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
3067         ".literal_position" directive before the constant pool.
3068
3069 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3070
3071         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
3072         Add Craig Rodrigues.
3073         Add Brad Lucier to testers.
3074
3075 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3076
3077         PR target/4792
3078         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
3079         to if_then_else.
3080         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
3081         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
3082         instead of insn_extract.
3083
3084 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3085
3086         PR bootstrap/4192
3087         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
3088
3089         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
3090         stmt if some case has been output.
3091
3092 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3093
3094         PR c/5972
3095         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
3096         movsfcc_1, movdfcc_1): Add %O2.
3097         * config/i386/i386.c (print_operand): Handle %ON.
3098         Print . before float condition codes in Sun as cmov syntax.
3099         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
3100         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
3101         no longer true.
3102
3103 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
3104
3105         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
3106         return instruction if PC was popped.
3107
3108 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
3109
3110         * config/xtensa/xtensa.md: Remove unused type attributes.
3111         (adddi_carry, subddi_carry): Change type attribute to "multi".
3112
3113 2002-03-19  Dale Johannesen  <dalej@apple.com>
3114
3115         PR optimization/5999, middle-end/5731
3116         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
3117         multiplications by reciprocals.
3118
3119 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3120
3121         * Makefile.in: Update.
3122         * c-common.c: Include langhooks.h.
3123         (inline_forbidden_p): Use new hook.
3124         * diagnostic.c: Include langhooks.h.
3125         (format_with_decl, announce_function,
3126         default_print_error_function): Use new hook.
3127         * dwarf2out.c (dwarf2_name): Use new hook.
3128         * function.c: Include langhooks.h.
3129         (init_function_start): Use new hook.
3130         * langhooks-def.h (lhd_decl_printable_name): New.
3131         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
3132         (LANGHOOKS_INITIALIZER): Update.
3133         * langhooks.c (lhd_decl_printable_name): New.
3134         * langhooks.h (struct lang_hooks): New hook.
3135         * toplev.c (decl_name, decl_printable_name): Remove.
3136         (open_dump_file): Use new hook.
3137         (process_options): Remove old hook.
3138         * tree.h (decl_printable_name): Remove.
3139 objc:
3140         * objc-act.c (objc_init): Remove old hook.
3141         (objc_printable_name): Export.
3142         * objc-act.h (objc_printable_name): New.
3143         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
3144
3145 2002-03-19  Jim Blandy  <jimb@redhat.com>
3146
3147         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
3148         the start_source_file debug hook, not the current line number.
3149
3150 2002-03-19  Richard Henderson  <rth@redhat.com>
3151
3152         * flow.c (EH_USES): Provide default.
3153         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
3154         * doc/tm.texi (EH_USES): New.
3155
3156         * config/ia64/ia64.c (ia64_eh_uses): New.
3157         * config/ia64/ia64-protos.h: Update.
3158         * config/ia64/ia64.h (EH_USES): New.
3159
3160 2002-03-19  Richard Henderson  <rth@redhat.com>
3161
3162         * varasm.c (output_constant_def): Fix stupid typo.
3163
3164 2002-03-19  Richard Henderson  <rth@redhat.com>
3165
3166         PR 5879
3167         * except.c (current_function_has_exception_handlers): New.
3168         * except.h: Declare it.
3169         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
3170         Combine tests that disable all sibcalls for the function.
3171
3172 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
3173
3174         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
3175         for INTEGER_CST.
3176
3177 2002-03-19  Richard Henderson  <rth@redhat.com>
3178
3179         PR 5977, 5991
3180         * config/ia64/ia64.c: Revert 2002-03-01 patch.
3181         * config/ia64/ia64.h (INIT_EXPANDERS): New.
3182
3183 2002-03-19  Jim Blandy  <jimb@redhat.com>
3184
3185         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
3186         name, even if the replacement list contains no tokens, as required
3187         by Dwarf.
3188
3189 2002-03-19  Jason Merrill  <jason@redhat.com>
3190
3191         * varasm.c (globalize_decl): Get the name from the RTL, not
3192         DECL_ASSEMBLER_NAME.
3193
3194         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
3195
3196 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
3197
3198         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
3199         subdi_carry): Define.
3200
3201 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3202
3203         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
3204         about -fpic/-fPIC if extra_warnings set.
3205
3206 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3207
3208         * expr.c (expand_expr): Sign-extend CONST_INT generated from
3209         TREE_STRING_POINTER.
3210         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
3211
3212 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3213
3214         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
3215         in favor of SP if FRAME_POINTER_REQUIRED is false.
3216
3217 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
3218
3219         * emit-rtl.c (gen_int_mode): New function.
3220         * rtl.h: Prototype for it.
3221         * combine.c (make_extraction, simplify_comparison), expmed.c
3222         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
3223         (convert_modes, store_field), optabs.c (expand_fix),
3224         simplify-rtx.c (neg_const_int, simplify_unary_real),
3225
3226         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
3227         Use it instead of GEN_INT (trunc_int_for_mode (...)).
3228
3229 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
3230
3231         PR c/5656
3232         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
3233         convert_parm_for_inlining.
3234         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3235         Define.
3236         * langhooks-def.h: Likewise.
3237         * objc/objc-lang.c: Likewise.
3238         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
3239         function.
3240         * tree-inline.c (initialize_inlined_parameters):
3241         Call convert_parm_for_inlining lang hook if needed.
3242         * c-typeck.c (c_convert_parm_for_inlining): New function.
3243         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
3244
3245 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
3246
3247         * calls.c (precompute_arguments): Do not assume that temporaries
3248         can be destroyed after expanding the argument.
3249         (expand_call): Likewise.
3250
3251 2002-03-15  Eric Christopher  <echristo@redhat.com>
3252
3253         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
3254         Fix register preference on last change.
3255         * config/mips/mips.c (mips_return_in_memory): New function.
3256         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
3257         * config/mips/mips-protos.h: Declare.
3258         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
3259         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
3260
3261 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
3262
3263         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
3264         a register too.
3265         (anddi3, iorsi3): Likewise.
3266
3267         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
3268         use %gprel for symbols that are going to be placed in linkonce
3269         sections.
3270
3271         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
3272         RETURN_ADDRESS_POINTER_REGNUM to $ra.
3273         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
3274         not needed.  Disregard leaf_function_p().
3275         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
3276         mips16 frame pointer.
3277         * config/mips/mips.md (store ra): Only to small SP offsets.
3278         2001-08-22  Graham Stott  <grahams@redhat.com>
3279         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
3280         return a REG rtx for the return address register.
3281
3282 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
3283
3284         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
3285         constant-pool addresses as "mode-dependent".
3286         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
3287
3288 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
3289
3290         PR target/5740
3291         * expr.c (emit_group_load): Use extract_bit_field if
3292         needed for CONCAT arguments.
3293
3294 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
3295
3296         PR target/4863
3297         * arm.md (tablejump): Make this a define_expand.  For PIC add the
3298         offset to the base of the table.
3299         (thumb_tablejump): Matcher for Thumb tablejump insn.
3300         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
3301         as the difference of two labels.
3302         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3303         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
3304         tables in the code.
3305         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3306         * arm.c (get_jump_table_size): If the table is not in the text
3307         section, return zero.
3308
3309 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
3310
3311         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
3312         of gen_rtx_SUBREG.
3313         (arm_reload_out_hi): Use gen_lowpart instead of
3314         gen_rtx_SUBREG to access QImode components.
3315         * config/arm/arm.md: Disable zero_extend split for QImode
3316         subregs in BIG_ENDIAN mode.
3317         (storehi_bigend): Match use of least significant byte.
3318         (storeinthi): Remove extraneous SUBREG.
3319         Add missing construction of operands[2].
3320         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
3321         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
3322         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
3323
3324 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
3325
3326         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
3327         any_operand.
3328
3329 2002-03-17  Richard Henderson  <rth@redhat.com>
3330
3331         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
3332         explicitly.
3333
3334 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3335
3336         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
3337         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
3338
3339 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3340
3341         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
3342
3343         * predict.c (estimate_bb_frequencies): Delete unused variables.
3344
3345 2002-03-17  Richard Henderson  <rth@redhat.com>
3346
3347         * config/ia64/ia64.c (ia64_attribute_table): Move before
3348         targetm definition.  Make static.
3349
3350 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3351
3352         * c-common.h (yyparse, c_common_parse_file): New.
3353         * c-lang.c: Include c-common.h.
3354         (LANG_HOOKS_PARSE_FILE): Redefine.
3355         * c-lex.c: Include c-common.h.
3356         (yyparse): Rename c_common_parse_file.  Call yyparse.
3357         * c-parse.in (yyparse): Remove macro.
3358         * c-tree.h (yyparse_1): Remove.
3359         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
3360         (LANG_HOOKS_INITIALIZER): Update.
3361         * langhooks.h (struct lang_hoooks): New hook parse_file.
3362         * toplev.c (compile_file): Use parse_file hook.
3363         * tree.h (yyparse): Remove.
3364         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
3365
3366 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3367
3368         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
3369         float_truncate, not fix.
3370         ("*truncdfsf2_real"): Ditto.
3371         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
3372
3373         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
3374
3375 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
3376
3377         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
3378         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
3379         where appropriate.  Make the second reference to
3380         leaf_function_p a function call, as intended.  Reindented.
3381
3382         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
3383         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
3384
3385         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
3386         add register to non-constant into sp.
3387
3388         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
3389         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
3390         (mips16_gp_pseudo_rtx): Lose.
3391         (INIT_EXPANDERS): Deleted.
3392         * config/mips/mips.c (mips_init_machine_status): New.
3393         (mips_free_machine_status): New.
3394         (mips_mark_machine_status): New.
3395         (override_options): Set them.
3396         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
3397         (struct machine_function): ... new.  Replaced all references.
3398         (mips_add_gc_roots): Don't mark them.
3399         (embedded_pic_fnaddr_reg): New, extracted from...
3400         (embedded_pic_offset): ... here.
3401         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
3402         (movsi): Likewise.
3403
3404 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3405
3406         * cppinit.c: Revert -MD removal.
3407
3408 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3409
3410         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
3411         soft registers by default for 68HC12.
3412         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
3413         when compiling with -fomit-frame-pointer.
3414         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
3415         (expand_epilogue): Likewise.
3416         (m68hc11_gen_rotate): Use exg when rotating by 8.
3417
3418 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3419
3420         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
3421         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
3422         (splits): Remove unused add splits.
3423         ("*addhi3_68hc12"): Tune constraints.
3424         ("addhi_sp"): Try to use X instead of Y in all cases and if the
3425         constant fits in 8-bits and D is dead use abx/aby instructions.
3426         ("*addhi3"): Remove extern declaration of ix_reg.
3427         ("*subsi3"): Optimize and provide new split.
3428         ("subhi3"): Cleanup.
3429         ("*subhi3_sp"): Avoid saving X if we know it is dead.
3430         (arith splits): For 68hc12 save the address register on the stack
3431         and do the arithmetic operation with a pop.
3432
3433 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3434
3435         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
3436         allocating QImode in address registers.
3437         ("*movqi_m68hc11"): Likewise.
3438
3439 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
3440
3441         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
3442
3443 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3444
3445         * cppinit.c (print_help): Display -MD and -MMD.
3446         Don't display usage string.  Update assertion syntax and
3447         typo.
3448         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
3449         (cpp_handle_option): Update.
3450
3451 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
3452
3453         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
3454         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
3455         and define it so that regardless of target CPU size,
3456         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
3457         of "int" rather than "long."
3458
3459 2002-03-15  Richard Henderson  <rth@redhat.com>
3460
3461         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
3462         size as a tree.
3463
3464 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3465
3466         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
3467         ("tstqi" split): Avoid using memory for tstqi on address register.
3468         (splits): Remove constraints.
3469         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
3470         ("cmpdf", "cmpsf"): Remove since not used.
3471         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
3472         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
3473
3474 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3475
3476         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
3477         ("neghi2"): Tighten constraints.
3478         ("one_cmplsi2"): Optimize and simplify split.
3479         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
3480