OSDN Git Service

* real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-09-20  Richard Henderson  <rth@redhat.com>
2
3         * real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT,
4         IBM_FLOAT_FORMAT, C4X_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): Move ...
5         * defaults.h: ... here.
6         * config/arm/arm.h, config/avr/avr.h, config/d30v/d30v.h,
7         config/fr30/fr30.h, config/frv/frv.h, config/ia64/ia64.h,
8         config/ip2k/ip2k.h, config/mips/mips.h, config/stormy16/stormy16.h,
9         config/xtensa/xtensa.h (TARGET_FLOAT_FORMAT): Remove.
10
11 2002-09-20  Hans-Peter Nilsson  <hp@bitrange.com>
12
13         * config/mmix/mmix.md ("negdf2"): Rewrite.
14         ("*expanded_negdf2"): New.
15
16 2002-09-19  Jim Wilson  <wilson@redhat.com>
17
18         * combine.c (simplify_set): When optimizing a subreg src with a
19         cc0 dest, use GET_MODE (src) for mask instead of inner_mode.
20
21 2002-09-19  Dale Johannesen <dalej@apple.com>
22         * combine.c (make_extraction): Don't create
23         invalid subreg.
24
25 2002-09-19  Ulrich Weigand  <uweigand@de.ibm.com>
26
27         * config/s390/s390.c (addr_generation_dependency_p): Handle SUBREG 
28         and STRICT_LOW_PART within SET_DEST.
29         * config/s390/s390.md ("*extractqi", "*extracthi"): New insns with
30         splitters, replacing pre-reload splitters.
31         ("*zero_extendhisi2_31", "*zero_extendqisi2_31", 
32         "*zero_extendqihi2_31"): New insns.
33         ("*zero_extendqihi2_64"): Do not clobber CC.
34
35 2002-09-18  Devang Patel  <dpatel@apple.com>
36
37         * cp/cp-tree.h: New prototype for walk_vtabls().        
38         * cp/decl.c (walk_vtables_r): New function.        
39         (struct cp_binding_level): Add new members, namespaces,        
40         names_size and vtables.        
41         (add_decl_to_level): Add decl in namespaces or vtables        
42         chain, if conditions match.        
43         (walk_vtables): New function.        
44         (walk_namespaces_r): Travers separate namespace chain        
45         for namespace decls.        
46         (wrapup_globals_for_namespace): Use names_size instead        
47         of list_length().        
48         * cp/decl2.c (finish_file): Use walk_vtables() instead of        
49         walk_globals() to walk vtable decls.        
50                 
51 2002-09-19  Steve Ellcey  <sje@cup.hp.com>
52
53         * config/ia64/hpux.h (CTORS_SECTION_ASM_OP): New.
54         (DTORS_SECTION_ASM_OP): Ditto.
55         (READONLY_DATA_SECTION_ASM_OP): Moved.
56         (DATA_SECTION_ASM_OP): New.
57         (SDATA_SECTION_ASM_OP): New.
58         (BSS_SECTION_ASM_OP): New.
59         (SBSS_SECTION_ASM_OP): New.
60         (TEXT_SECTION_ASM_OP): New.
61
62 2002-09-19  Kazu Hirata  <kazu@cs.umass.edu>
63
64         * config/fp-bit.c: Follow spelling conventions.
65         * config/d30v/d30v.c: Likewise.
66         * config/d30v/d30v.h: Likewise.
67         * config/fr30/fr30.c: Likewise.
68         * config/fr30/fr30.h: Likewise.
69         * config/fr30/fr30.md: Likewise.
70         * config/frv/frv.c: Likewise.
71         * config/frv/frv.h: Likewise.
72         * config/h8300/h8300.c: Likewise.
73         * config/h8300/lib1funcs.asm: Likewise.
74         * config/i370/i370.c: Likewise.
75         * config/i386/i386.h: Likewise.
76         * config/i386/i386.md: Likewise.
77         * config/i386/pentium.md: Likewise.
78         * config/i386/winnt.c: Likewise.
79         * config/i960/i960.c: Likewise.
80         * config/ia64/ia64.h: Likewise.
81         * config/ip2k/ip2k.c: Likewise.
82         * config/ip2k/ip2k.h: Likewise.
83         * config/ip2k/ip2k.md: Likewise.
84         * config/ip2k/libgcc.S: Likewise.
85
86 2002-09-19  Stephen Clarke <stephen.clarke@superh.com>
87
88         * config/sh/sh.h (UNSPEC_GOTOFF_P): Define.
89         (GOTOFF_P): Extend to allow gotoff plus constant.
90
91 2002-09-18  Richard Henderson  <rth@redhat.com>
92
93         * ifcvt.c (noce_process_if_block): Correctly detect X modified
94         with INSN_B before COND_EARLIEST.  Don't check A and B for 
95         modification in condition range.  Reorder INSN_B for A==B properly.
96         (if_convert): Iterate until no matches for a block.
97
98 2002-09-18  Richard Henderson  <rth@redhat.com>
99
100         * calls.c (store_one_arg): Rename default_align to parm_align;
101         always adjust parm_align for downward padding.
102
103 2002-09-18  Richard Henderson  <rth@redhat.com>
104
105         * toplev.c (backend_init): Move init_real_once invocation ...
106         (do_compile): ... here.
107
108 2002-09-18  Richard Henderson  <rth@redhat.com>
109
110         * sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove
111         RTX_UNCHANGING_P markers for successful tail-recursive replacement.
112
113 2002-09-18  Richard Henderson  <rth@redhat.com>
114
115         * real.c (round_for_format): Collect sticky as unsigned long, not bool.
116
117 2002-09-19  Alan Modra  <amodra@bigpond.net.au>
118
119         * config/rs6000/rs6000.md: (floatdisf2): Rename to
120         floatdisf2_internal1.
121         (floatdisf2): New define_expand.
122         (floatdisf2_internal2): Likewise.
123
124 2002-09-18  Richard Henderson  <rth@redhat.com>
125
126         * real.c (sticky_rshift_significand): Collect sticky as 
127         unsigned long, not bool.
128
129 2002-09-18  Ulrich Weigand  <uweigand@de.ibm.com>
130
131         * config/s390/s390.c (s390_address_cost): New function.
132         config/s390/s390-protos.h (s390_address_cost): Add prototype.
133         config/s390/s390.h (ADDRESS_COST): Call s390_address_cost.
134         (RTX_COST): Use COSTS_N_INSNS.
135
136 2002-09-18  Douglas Rupp  <rupp@gnat.com>
137             Donn Terry  <donnte@microsoft.com>
138
139         * stor-layout.c (place_field): Handle alignment of whole
140         structures when MSVC compatible bitfields are involved.
141         Change method of computing location of MS bitfields to
142         be compatible with #pragma pack(n).
143
144         * tree.h (record_layout_info): Add new field
145         remaining_in_alignment.
146
147         * doc/tm.texi: (TARGET_MS_BITFIELD_LAYOUT_P): Update.
148         (pragma pack): Add paragraph on MSVC bitfield packing.
149
150 2002-09-18  Richard Earnshaw  (reanrsha@arm.com)
151
152         PR optimization/7967
153         * arm.md (ne_zeroextractsi): Add clobber of the condition code
154         register.
155
156 2002-09-18  Kazu Hirata  <kazu@cs.umass.edu>
157
158         * config/s390/s390.c: Follow spelling conventions.
159         * config/sh/lib1funcs.asm: Likewise.
160         * config/sh/sh.c: Likewise.
161         * config/sh/sh.h: Likewise.
162         * config/sparc/sparc.c: Likewise.
163         * config/sparc/sparc.h: Likewise.
164         * config/sparc/sparc.md: Likewise.
165         * config/stormy16/stormy16.c: Likewise.
166         * config/stormy16/stormy16.h: Likewise.
167         * config/v850/v850.c: Likewise.
168         * config/v850/v850.h: Likewise.
169         * config/vax/vax.c: Likewise.
170         * config/vax/vax.h: Likewise.
171
172 2002-09-18  Nick Clifton  <nickc@redhat.com>
173
174         * config/rs60000/rs6000.c (rs6000_emit_move): Handle V1DImode moves.
175         * config/rs60000/rs6000.c (SPE_VECTOR_MODE): Include V1DImode.
176         * config/rs6000/spe.md (movv1di, movv1di_internal): New patterns.
177
178 2002-09-17  Zack Weinberg  <zack@codesourcery.com>
179
180         * ABOUT-GCC-NLS: Remove reference to enquire, and out-of-date
181         statement that the only translation is to en_UK.
182
183 2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>
184
185         * config/alpha/alpha.c: Follow spelling conventions.
186         * config/alpha/alpha.h: Likewise.
187         * config/alpha/alpha.md: Likewise.
188         * config/arc/arc.h: Likewise.
189         * config/arm/arm.c: Likewise.
190         * config/arm/arm.h: Likewise.
191         * config/arm/arm.md: Likewise.
192         * config/arm/pe.c: Likewise.
193         * config/arm/unknown-elf.h: Likewise.
194         * config/avr/avr.c: Likewise.
195         * config/avr/avr.h: Likewise.
196         * config/c4x/c4x.c: Likewise.
197         * config/cris/cris.c: Likewise.
198         * config/cris/cris.h: Likewise.
199
200 2002-09-17  Samuel Figueroa  <figueroa@apple.com>
201
202         * final.c (final_scan_insn): Use new macro ASM_OUTPUT_ALIGN_WITH_NOP.
203         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP) New macro.
204         * doc/tm.texi (ASM_OUTPUT_ALIGN_WITH_NOP) New description.
205
206 2002-09-17  Dale Johannesen  <dalej@apple.com>
207
208         * cfgcleanup.c (try_forward_edges):  Do not forward a
209         branch to just after a loop exit before loop optimization;
210         this interfered with doloop detection.
211
212 2002-09-17  Nick Clifton  <nickc@redhat.com>
213
214         * config/arm/arm.c (output_return_instruction): Do not
215         writeback the stack pointer when it is being loaded.
216         (arm_output_epilogue): Likewise.
217
218 2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>
219
220         * optabs.c (prepare_cmp_insn): Let emit_library_call_value
221         generate a pseudo reg that receives the result of a libcall.
222         (prepare_float_lib_cmp): Likewise.
223
224 2002-09-17  Steve Ellcey  <sje@cup.hp.com>
225
226         * config/ia64/elf.h: Remove CPP_PREDEFINES.
227
228 Tue Sep 17 13:58:04 2002  Nicola Pero  <n.pero@mi.flashnet.it>
229
230         Fix PR/7014 and related objc bugs:
231         * c-typeck.c (comp_target_types): Added a reflexive argument.
232         Pass it to ObjC when/if calling objc_comptypes().  Updated all
233         callers to provide the appropriate reflexive argument.
234         * objc/objc-act.c (objc_comptypes): Carefully checked and fixed
235         typechecking for all cases of comparisons and assignments,
236         particularly the obscure and less common ones involving protocols.
237
238 2002-09-17  Nick Clifton  <nickc@redhat.com>
239
240         * machmode.def (V1DImode): New mode.  A single element vector.
241         * tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
242         (unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
243         * tree.c (build_common_tree_nodes_2): Build
244         unsigned_V1DI_type_node and V1D1_type_node.
245         * c-common.c (c_common_type_for_mode): Return
246         unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
247         * rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.
248
249 Tue Sep 17 13:40:13 2002  Nicola Pero  <n.pero@mi.flashnet.it>
250
251         * doc/objc.texi (Constant string objects): Extended documentation
252         to make clear that the constant string class ivar layout is
253         completely fixed.
254         
255 2002-09-17  Roger Sayle  <roger@eyesopen.com>
256
257         * cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned
258         NOTE_INSN_LOOP_CONT notes when deleting basic blocks.
259
260 2002-09-16  Richard Henderson  <rth@redhat.com>
261
262         * expr.c (emit_block_move): Set memory block size as appropriate
263         for the copy.
264
265 2002-09-16  Richard Henderson  <rth@redhat.com>
266
267         PR fortran/3924
268         * sdbout.c (sdbout_symbol): Don't handle offsets from a symbol.
269
270 2002-09-16  Richard Henderson  <rth@redhat.com>
271
272         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE
273         as well as OFFSET for BITPOS.
274
275 2002-09-16  Jeff Garzik  <jgarzik@mandrakesoft.com>
276
277         * config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx.
278         * config/i386/i386.c (processor_alias_table): Add winchip-c6,
279         winchip2 and c3.
280         * doc/invoke.texi: Mention new aliases.
281
282 2002-09-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
283
284         * calls.c (store_one_arg): Set default alignment for BLKmode arguments
285         to BITS_PER_UNIT when ARGS_GROW_DOWNWARD and the padding direction is
286         downward.
287         * function.c (pad_below):  Always compile.
288         (locate_and_pad_parm): If defined ARGS_GROW_DOWNWARD, pad argument to
289         alignment when it is not in a register or REG_PARM_STACK_SPACE is true.
290         Pad below when the argument is not in a register and the padding
291         direction is downward.
292
293         * pa-64.h (MUST_PASS_IN_STACK): Move define to pa.h.
294         (PAD_VARARGS_DOWN): Define.
295         * pa.c (function_arg_padding): Revise padding directions to make them
296         compatible with the 32 and 64-bit runtime architecture documentation.
297         (hppa_va_arg):  Add code to handle variable and size zero arguments
298         passed by reference on TARGET_64BIT.  Reformat.
299         (function_arg): Use a PARALLEL for BLKmode and aggregates args on
300         TARGET_64BIT.  Use a DImode PARALLEL for BLKmode args 5 to 8 bytes
301         wide when !TARGET_64BIT.  Move forward check for mode==VOIDmode.
302         Add comments.
303         * pa.h (MAX_PARM_BOUNDARY): Correct define for TARGET_64BIT.
304         (RETURN_IN_MEMORY): Return size zero types in memory.
305         (FUNCTION_VALUE): Return TFmode in general registers.
306         (MUST_PASS_IN_STACK): Define.
307         (FUNCTION_ARG_BOUNDARY): Simplify.
308         (FUNCTION_ARG_PASS_BY_REFERENCE): Pass variable and zero sized types
309         by reference.
310         (FUNCTION_ARG_CALLEE_COPIES): Define to FUNCTION_ARG_PASS_BY_REFERENCE.
311
312 2002-09-16  Richard Henderson  <rth@redhat.com>
313
314         * real.c (do_fix_trunc): New.
315         (real_arithmetic): Call it.
316         * simplify-rtx.c (simplify_unary_operation): Handle FIX
317         with a floating-point result mode.
318
319 2002-09-16  Richard Henderson  <rth@redhat.com>
320
321         * builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
322         (BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New.
323         * builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New.
324         (__builtin_nans, __builtin_nansf, __builtin_nansl): New.
325         * builtins.c (fold_builtin_nan): New.
326         (fold_builtin): Call it.
327         * real.c (real_nan): Parse a non-empty string.
328         (round_for_format): Fix NaN significand truncation.
329         * real.h (real_nan): Return bool.
330         * doc/extend.texi: Document new builtins.
331
332 2002-09-16  Jason Merrill  <jason@redhat.com>
333             Danny Smith  <dannysmith@users.sourceforge.net>
334
335         * config/i386/winnt.c (ix86_handle_dll_attribute): Set
336         DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
337         (i386_pe_mark_dllimport): Not here.
338
339 2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
340
341         * c-semantics.c (genrtl_do_stmt): Cope with NULL cond.
342
343 2002-09-16  Geoffrey Keating  <geoffk@redhat.com>
344
345         * config/rs6000/rs6000.c (build_mask64_2_operands): Suppress
346         warnings about unused operands when HOST_BITS_PER_WIDE_INT is
347         < 64.
348         (rs6000_emit_cmove): Use real_isinf not target_isinf.
349
350 2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>
351
352         * calls.c (emit_library_call_value_1): Don't refer to
353         hard_libcall_value.
354         * optabs.c (prepare_float_lib_cmp): Likewise.
355
356 2002-09-16  Geoffrey Keating  <geoffk@apple.com>
357
358         * ggc-common.c (ggc_mark_rtx_children_1): Update for changed name
359         mangling.
360
361         The following changes are merged from pch-branch:
362
363         * doc/gty.texi (GTY Options): Document %a.
364         * gengtype.c (do_scalar_typedef): New function.
365         (process_gc_options): Handle `length' option.
366         (set_gc_used_type): A pointer to an array of structures doesn't
367         qualify as a pointer to a structure.
368         (output_escaped_param): Add `%a' escape.
369         (write_gc_structure_fields): Allow 'desc' on array of unions.
370         (main): Define `uint8', `jword' and `JCF_u2' as scalars; use
371         do_scalar_typedef.
372
373         * gengtype.c (enum rtx_code): Make global.
374         (rtx_format): Make global.
375         (rtx_next): New.
376         (gen_rtx_next): New.
377         (write_rtx_next): New.
378         (adjust_field_rtx_def): Skip fields marked by chain_next.
379         (open_base_files): Delete redundant prototype.
380         (write_enum_defn): New.
381         (output_mangled_typename): Correct abort call.
382         (write_gc_marker_routine_for_structure): Handle chain_next and
383         chain_prev options.
384         (finish_root_table): Don't output redundant \n.
385         (main): Call gen_rtx_next, write_rtx_next, write_enum_defn.
386         * c-tree.h (union lang_tree_node): Add chain_next option.
387
388         * gengtype.h (NUM_PARAM): New definition.
389         (struct type): For TYPE_PARAM_STRUCT, allow multiple parameters.
390         * gengtype.c (find_param_structure): New.
391         (adjust_field_type): Handle param<n>_is option.
392         (process_gc_options): Detect use_params option.  Update callers.
393         (set_gc_used_type): Add 'param' parameter, update callers.  Handle
394         'use_params' option.
395         (open_base_files): Add splay-tree.h to list of files included.
396         (output_mangled_typename): New.
397         (write_gc_structure_fields): Update 'param' parameter to support
398         multiple parameters.  Change name mangling.  Allow parameterized
399         fields to have an apparent scalar type.  Handle param<n>_is options,
400         use_param option.
401         (write_gc_marker_routine_for_structure): Update for change to name
402         mangling.  Better guess the output file for parameterized types.
403         (write_gc_types): Update for change to name mangling.
404         (write_gc_root): Update for change to name mangling.  Handle (ignore)
405         param<n>_is options.
406         * doc/gty.texi (GTY Options): Add description of param<n>_is
407         options, use_params option.
408         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
409         * gengtype-lex.l: Produce token for param<n>_is.
410         * gengtype-yacc.y: Parse param<n>_is.
411
412         * gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'.
413
414         * rtl.c: Update comment describing rtx_format.
415         * rtl.h (union rtunion): Separate definition and typedef.
416         (struct rtx_def): Use gengtype to mark.
417         * Makefile.in (gengtype.o): Also depend on rtl.def.
418         * ggc.h (ggc_mark_rtx_children): Delete prototype.
419         (ggc_mark_rtx): Change to alias of gengtype-generated routine.
420         * ggc-common.c (ggc_mark_rtx_children): Delete.
421         (ggc_mark_rtx_children_1): Delete.
422         (gt_ggc_m_rtx_def): Delete.
423         * gengtype.c (adjust_field_rtx_def): New.
424         (adjust_field_type): Call adjust_field_rtx_def.
425         (write_gc_structure_fields): Add 'default' case to switch if none
426         is specified; remove unused code.
427
428         * tree.h (struct tree_exp): Update for change to meaning
429         of special.
430         * gengtype.c (adjust_field_tree_exp): New function.
431         (adjust_field_type): Handle `tree_exp' special here.
432         (write_gc_structure_fields): Don't handle `tree_exp' special here.
433         Handle new `dot' option.
434
435         * gengtype.h: Make `info' a pointer-to-const.
436         * gengtype-yacc.y (yacc_ids): Use xasprintf.
437
438         * gengtype.c (write_gc_structure_fields): Remove implementation
439         of `always' option, add `default' option.
440         * doc/gty.texi (GTY Options): Remove documentation of `always',
441         add `default'.
442
443 2002-09-16  Hans-Peter Nilsson  <hp@bitrange.com>
444
445         * output.h: Remove #ifdef RTX_CODE and #ifdef TREE_CODE.
446
447 2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
448
449         * m68hc11.md (addhi_sp): Fix uninitialized variable bug.
450
451         * c4x-c.c, c4x.c, darwin.c, i370-c.c, m32r.c: Include tm_p.h
452         instead of the *-protos.h file directly.
453         * t-c4x, t-i370, t-v850: Depend on $(TM_P_H).
454         * darwin.c (machopic_output_stub): Move prototype ...
455         * darwin-protos.h (machopic_output_stub): ... here.
456         * rs6000-protos.h (machopic_output_stub): Don't declare.
457
458 2002-09-16  Richard Henderson  <rth@redhat.com>
459
460         * c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.
461
462 2002-09-16  Richard Henderson  <rth@redhat.com>
463
464         * real.c, real.h: Rewrite from scratch.
465
466         * Makefile.in (simplify-rtx.o): Depend on TREE_H.
467         (paranoia): New target.
468         * builtins.c (fold_builtin_inf): Use new real.h interface.
469         * c-common.c (builtin_define_with_hex_fp_value): Likewise.
470         * c-lex.c (interpret_float): Likewise.
471         * emit-rtl.c (gen_lowpart_common): Likewise.
472         * optabs.c (expand_float): Use real_2expN.
473         * config/ia64/ia64.md (divsi3, udivsi3): Likewise.
474         * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New.
475         (FLOAT_WORDS_BIG_ENDIAN): New.
476         * cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE
477         directly to REAL_VALUE_NEGATIVE.
478         * loop.c (canonicalize_condition): Likewise.
479         * simplify-rtx.c: Include tree.h.
480         (simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX
481         with floating-point result modes.
482         * toplev.c (backend_init): Call init_real_once.
483
484         * fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE.
485         * tree.c (build_real): Likewise.
486         * config/alpha/alpha.c, config/vax/vax.c (float_strings,
487         float_values, inited_float_values, check_float_value): Remove.
488         * config/alpha/alpha.h, config/m68hc11/m68hc11.h,
489         config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove.
490         * doc/tm.texi (CHECK_FLOAT_VALUE): Remove.
491         (VAX_HALFWORD_ORDER): Remove.
492
493 2002-09-16  Ulrich Weigand  <uweigand@de.ibm.com>
494
495         * config/s390/s390.c: (legitimize_la_operand): Remove, replace by ...
496         (s390_load_address): ... this new function.
497         (s390_decompose_address): Allow the argument pointer and all
498         virtual registers as 'pointer' registers.
499         (s390_expand_plus_operand): Use s390_load_address.
500         config/s390/s390.md (movti, movdi, movdf splitters): Likewise.
501         ("force_la_31"): New insn pattern.
502         config/s390/s390-protos.h (legitimize_la_operand): Remove.
503         (s390_load_address): Add prototype.
504
505         * config/s390/s390.c: Include "optabs.h".
506         (s390_expand_movstr, s390_expand_clrstr, s390_expand_cmpstr): New.
507         config/s390/s390-protos.h (s390_expand_movstr, s390_expand_clrstr, 
508         s390_expand_cmpstr): Add prototypes.
509         config/s390/s390.md ("movstrdi", "movstrsi"): Call s390_expand_movstr.
510         ("movstrdi_short"): Rename to "movstr_short_64".  Change predicates
511         for operands 0 and 1 to "memory_operand".  Add type attribute.
512         ("movstrsi_short"): Rename to "movstr_short_31".  Change predicates
513         for operands 0 and 1 to "memory_operand".  Add type attribute.
514         ("movstrdi_long", "movstrsi_long"): Remove.
515         ("movstrdi_64"): Rename to "movstr_long_64". Add type attribute.
516         ("movstrsi_31"): Rename to "movstr_long_31". Add type attribute.
517         ("clrstrdi", "clrstrsi"): Call s390_expand_clrstr.
518         ("clrstrsico"): Remove, replace by ...
519         ("clrstr_short_64", "clrstr_short_31"): ... these new patterns.
520         ("clrstrsi_64"): Rename to "clrstr_long_64".
521         ("clrstrsi_31"): Rename to "clrstr_long_31".
522         ("cmpstrdi", "cmpstrsi"): Call s390_expand_cmpstr.
523         ("cmpstr_const"): Remove, replace by ...
524         ("cmpstr_short_64", "cmpstr_short_31"): ... these new patterns.
525         ("cmpstr_64"): Rename to "cmpstr_long_64".
526         ("cmpstr_31"): Rename to "cmpstr_long_31".
527
528 2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>
529
530         * ABOUT-NLS: Follow spelling conventions.
531         * ChangeLog: Likewise.
532         * ChangeLog.1: Likewise.
533         * ChangeLog.2: Likewise.
534         * ChangeLog.3: Likewise.
535         * ChangeLog.4: Likewise.
536         * ChangeLog.5: Likewise.
537         * ChangeLog.6: Likewise.
538         * FSFChangeLog.10: Likewise.
539         * FSFChangeLog.11: Likewise.
540         * c-common.c: Likewise.
541         * c-lex.c: Likewise.
542         * c-objc-common.c: Likewise.
543         * cppexp.c: Likewise.
544         * cppinit.c: Likewise.
545         * cpplex.c: Likewise.
546         * doloop.c: Likewise.
547         * flow.c: Likewise.
548         * function.c: Likewise.
549         * integrate.c: Likewise.
550         * loop.c: Likewise.
551         * reg-stack.c: Likewise.
552         * reload.h: Likewise.
553         * ssa.c: Likewise.
554
555 2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
556
557         * ChangeLog: Follow spelling conventions.
558         * ChangeLog.0: Likewise.
559         * ChangeLog.1: Likewise.
560         * ChangeLog.2: Likewise.
561         * ChangeLog.4: Likewise.
562         * ChangeLog.6: Likewise.
563         * config.gcc: Likewise.
564         * dwarfout.c: Likewise.
565         * reload1.c: Likewise.
566         * simplify-rtx.c: Likewise.
567         * unwind-sjlj.c: Likewise.
568         * config/avr/avr.h: Likewise.
569         * config/d30v/d30v.h: Likewise.
570         * config/frv/frv.c: Likewise.
571         * config/frv/frv.h: Likewise.
572         * config/ip2k/ip2k.h: Likewise.
573         * config/m88k/m88k-move.sh: Likewise.
574         * config/stormy16/stormy16.c: Likewise.
575         * config/stormy16/stormy16.h: Likewise.
576         * doc/extend.texi: Likewise.
577         * doc/interface.texi: Likewise.
578         * doc/invoke.texi: Likewise.
579         * doc/md.texi: Likewise.
580         * doc/rtl.texi: Likewise.
581         * doc/tm.texi: Likewise.
582         * doc/trouble.texi: Likewise.
583         * ginclude/float.h: Likewise.
584         * treelang/treelang.texi: Likewise.
585
586 2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
587
588         * i386-protos.h (i386_pe_dllexport_name_p,
589         i386_pe_dllimport_name_p, i386_pe_unique_section,
590         i386_pe_declare_function_type, i386_pe_record_external_function,
591         i386_pe_record_exported_symbol, i386_pe_asm_file_end): Add
592         prototype.
593         * i386/t-cygwin (winnt.o): Depend on $(TM_P_H).
594         * i386/t-interix (winnt.o): Likewise.
595
596         * v850-protos.h (v850_output_addr_const_extra): Prototype.
597
598 2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>
599
600         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Add
601         MIPS ABI CPP macros.
602         (TARGET_CPU_CPP_BUILTINS): Redefine.
603         (SUBTARGET_EXTRA_SPECS): Remove subtarget_endian_default.
604         (SUBTARGET_ENDIAN_DEFAULT_SPEC): Remove.
605
606 2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
607
608         * ia64/aix.h (TARGET_OS_CPP_BUILTINS): Fix typo.
609
610 2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
611
612         * ChangeLog: Follow spelling conventions.
613         * ChangeLog.0: Likewise.
614         * ChangeLog.1: Likewise.
615         * ChangeLog.2: Likewise.
616         * ChangeLog.3: Likewise.
617         * ChangeLog.4: Likewise.
618         * ChangeLog.5: Likewise.
619         * ChangeLog.6: Likewise.
620         * FSFChangeLog.10: Likewise.
621         * FSFChangeLog.11: Likewise.
622         * c-common.c: Likewise.
623         * c-common.h: Likewise.
624         * c-format.c: Likewise.
625         * c-opts.c: Likewise.
626         * cpplib.c: Likewise.
627         * langhooks.h: Likewise.
628         * real.c: Likewise.
629         * reg-stack.c: Likewise.
630         * toplev.c: Likewise.
631         * config/arm/arm.c: Likewise.
632         * config/arm/arm.md: Likewise.
633         * config/arm/linux-gas.h: Likewise.
634         * config/arm/netbsd.h: Likewise.
635         * config/c4x/c4x.c: Likewise.
636         * config/c4x/c4x.h: Likewise.
637         * config/c4x/c4x.md: Likewise.
638         * config/c4x/libgcc.S: Likewise.
639         * config/fr30/fr30.md: Likewise.
640         * config/frv/frv.md: Likewise.
641         * config/ia64/ia64.md: Likewise.
642         * config/mips/mips.h: Likewise.
643         * config/mn10300/mn10300.c: Likewise.
644         * config/stormy16/stormy16.c: Likewise.
645         * config/v850/v850.md: Likewise.
646         * doc/extend.texi: Likewise.
647         * doc/invoke.texi: Likewise.
648         * doc/md.texi: Likewise.
649
650 2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>
651
652         * config/netbsd.h (LIB_SPEC): Include the appropriate pthread
653         library if -pthread is specified.
654
655 2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>
656
657         * config.gcc (*-*-netbsd*): Set thread_file to 'posix'
658         for --enable-threads=yes and --enable-threads=posix.
659
660 2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
661
662         * config/sparc/cypress.md: Replace Sparc with SPARC.
663         * config/sparc/freebsd.h: Likewise.
664         * config/sparc/gmon-sol2.c: Likewise.
665         * config/sparc/hypersparc.md: Likewise.
666         * config/sparc/lb1spc.asm: Likewise.
667         * config/sparc/lb1spl.asm: Likewise.
668         * config/sparc/linux.h: Likewise.
669         * config/sparc/linux64.h: Likewise.
670         * config/sparc/lynx.h: Likewise.
671         * config/sparc/sol2.h: Likewise.
672         * config/sparc/sparc-modes.def: Likewise.
673         * config/sparc/sparc.c: Likewise.
674         * config/sparc/sparc.h: Likewise.
675         * config/sparc/sparc.md: Likewise.
676         * config/sparc/sparclet.md: Likewise.
677         * config/sparc/supersparc.md: Likewise.
678         * config/sparc/sysv4.h: Likewise.
679         * config/sparc/vxsim.h: Likewise.
680         * config/sparc/vxsparc64.h: Likewise.
681
682 2002-09-14  Marek Michalkiewicz  <marekm@amelek.gda.pl>
683
684         * config/avr/avr.c (output.h): Move after inclusion of tree.h.
685
686 2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>
687
688         * ChangeLog: Follow spelling conventions.
689         * ChangeLog.0: Likewise.
690         * ChangeLog.2: Likewise.
691         * ChangeLog.3: Likewise.
692         * ChangeLog.4: Likewise.
693         * ChangeLog.5: Likewise.
694         * ChangeLog.6: Likewise.
695         * cppfiles.c: Likewise.
696         * cppinit.c: Likewise.
697         * cpplib.h: Likewise.
698         * cse.c: Likewise.
699         * debug.h: Likewise.
700         * df.c: Likewise.
701         * dominance.c: Likewise.
702         * hashtable.c: Likewise.
703         * hashtable.h: Likewise.
704         * loop.c: Likewise.
705         * config/arm/README-interworking: Likewise.
706         * config/arm/arm.c: Likewise.
707         * config/arm/arm.h: Likewise.
708         * config/arm/arm.md: Likewise.
709         * config/dsp16xx/dsp16xx.h: Likewise.
710         * config/frv/frv.c: Likewise.
711         * config/frv/frv.h: Likewise.
712         * config/ip2k/ip2k.h: Likewise.
713         * config/rs6000/rs6000.c: Likewise.
714         * config/stormy16/stormy-abi: Likewise.
715         * config/stormy16/stormy16.h: Likewise.
716         * config/v850/v850.c: Likewise.
717
718 2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>
719
720         * loop.c: Fix a comment typo.
721
722 2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>
723
724         * config/fr30/fr30.h: Fix comment typos.
725         * config/frv/frv.c: Likewise.
726         * config/i386/xmmintrin.h: Likewise.
727         * config/mips/mips.c: Likewise.
728         * config/sh/sh.c: Likewise.
729
730 2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>
731
732         * haifa-sched.c: Follow spelling conventions.
733         * regclass.c: Likewise.
734         * regrename.c: Likewise.
735         * config/fp-bit.c: Likewise.
736         * config/frv/frv.h: Likewise.
737         * config/m88k/m88k.c: Likewise.
738         * config/mcore/mcore.c: Likewise.
739         * config/rs6000/darwin.h: Likewise.
740         * config/rs6000/gnu.h: Likewise.
741         * config/rs6000/linux.h: Likewise.
742         * config/rs6000/linux64.h: Likewise.
743         * config/rs6000/rs6000.c: Likewise.
744         * config/rs6000/rs6000.h: Likewise.
745         * config/sh/sh.c: Likewise.
746         * config/sparc/sparc.c: Likewise.
747         * config/sparc/ultra1_2.md: Likewise.
748
749 2002-09-14  Stephane Carrez  <stcarrez@nerim.fr>
750
751         * config/m68hc11/m68hc11.md ("movdi_internal"): Allow any offsetable
752         memory operand when source is 0 (K constraint).
753         ("movsi_internal"): Likewise.
754         ("movdf_internal"): Likewise.
755         ("movsf_internal"): Likewise.
756
757 2002-09-14  Alan Modra  <amodra@bigpond.net.au>
758
759         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Use
760         targetm.binds_local_p to set SYMBOL_REF_FLAG.
761         (rs6000_xcoff_encode_section_info): Likewise.
762         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
763
764 2002-09-10  Theodore A. Roth  <troth@verinet.com>
765
766         * gcc/config/avr/avr.h: Set default options for C++ for avr.
767
768 2002-09-13  Richard Henderson  <rth@redhat.com>
769
770         * Makefile.in (toplev.o): Depend on real.h.
771         (print-rtl.o, varasm.o, ifcvt.o): Likewise.
772
773 2002-09-14  Alan Modra  <amodra@bigpond.net.au>
774
775         * doc/tm.texi (DBX_OUTPUT_NFUN): Describe.
776         * dbxout.c (dbxout_function_end): Use DBX_OUTPUT_NFUN.
777         * config/rs6000/linux64.h (DBX_OUTPUT_NFUN): Define.
778
779 2002-09-13  Nathan Sidwell  <nathan@codesourcery.com>
780
781         * ggc-common.c (ggc_mark_roots): Don't iterate NULL hash tables.
782
783 2002-09-13  Steve Ellcey  <sje@cup.hp.com>
784
785         * config.gcc (ia64*-*-aix*, ia64*-*-elf*, ia64*-*-freebsd*,
786         ia64*-*-linux*): Set extra_parts.
787         * config/ia64/t-aix (EXTRA_PARTS): Remove.
788         * config/ia64/t-ia64 (EXTRA_PARTS): Remove.
789
790 2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>
791
792         * config/h8300/fixunssfsi.c: Replace H8/S with H8S.
793         * config/h8300/h8300.c: Likewise.
794         * config/h8300/h8300.h: Likewise.
795         * config/h8300/h8300.md: Likewise.
796         * doc/invoke.texi: Likewise.
797
798 2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>
799
800         * config/h8300/h8300.c (h8300_init_once): Fix formatting.
801
802 2002-09-13  Matt Austern  <austern@apple.com>
803
804         * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
805         * cp/call.c: Change call-by-const-reference mechanism to use
806         non_cast_lvalue_p when deciding whether the create a temporary.
807         We need a temporary when passing, e.g. (long) x by const ref.
808         * testsuite/g++.dg/other/constref[12].C: New, regression tests for
809         passing a cast expression to a function by const reference.
810         
811 2002-09-13  Richard Henderson  <rth@redhat.com>
812
813         * config/alpha/alpha.md (attr type): Add callpal.
814         (imb, trap, load_tp, set_tp): Use it.
815         * config/alpha/ev4.md (ev4_callpal): New.
816         * config/alpha/ev5.md (ev5_callpal): New.
817         * config/alpha/ev6.md (ev6_ibr): Handle callpal.
818         * config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL.
819         (alphaev5_insn_pipe): Likewise.
820
821 2002-09-13  Andreas Jaeger  <aj@suse.de>
822
823         * Makefile.in (print-rtl.o): Depend on CONFIG_H.
824
825 2002-09-13  Steve Ellcey  <sje@cup.hp.com>
826
827         * config/ia64/t-hpux (LIBGCC1_TEST, STMP_FIXPROTO,
828         LIB2ADDEH): New, set to NULL.
829         (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP): New.
830
831 2002-09-13  Steve Ellcey  <sje@cup.hp.com>
832
833         * config/ia64/quadlib.c (_U_Qfcmp): Make extern.
834         (_U_Qfcnvfxt_quad_to_sgl): Remove declaration.
835         (_U_Qfeq, _U_Qfne, _U_Qfgt, _U_Qfge, U_Qflt, U_Qfle, _U_Qfcomp):
836         Add declarations.
837         (_U_Qfneg): Remove.
838
839 2002-09-13 Dhananjay Deshpande  <dhananjayd@kpit.com>
840
841         * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Add support
842         for H8/300, H8S aa:8 mode.
843         (TINY_CONSTANT_ADDRESS_P): Add support for H8S aa:16 mode.
844         * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust length
845         for H8/300 aa:8 mode.
846
847 2002-09-13  Hartmut Penner  <hpenner@de.ibm.com>
848
849         * config/s390/s390.md ("trap", "conditional_trap", "*trap"): New
850         insns.
851
852 2002-09-12  Richard Henderson  <rth@redhat.com>
853
854         * Makefile.in (HOST_PRINT): Use print-rtl1.o
855         (print-rtl.o): Don't define GENERATOR_FILE.
856         (print-rtl1.o): Rename from $(BUILD_PREFIX_1)print-rtl.o.
857         * print-rtl.c (print_rtx): Include CONST_DOUBLE fp decimal output
858         unless GENERATOR_FILE.
859
860 2002-09-12  Stan Shebs  <shebs@apple.com>
861
862         * config/darwin.h (USER_LABEL_PREFIX): Define here...
863         * config/i386/darwin.h: ... instead of here.
864
865         * target.h (struct gcc_target): New field
866         terminate_dw2_eh_frame_info.
867         * target-def.h (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define.
868         (TARGET_INITIALIZER): Add it.
869         * dwarf2out.c (output_call_frame_info): Use target hook.
870         * dwarf2asm.c (dw2_asm_output_delta): Use macro
871         ASM_OUTPUT_DWARF_DELTA if defined.
872         * doc/tm.texi (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Document.
873         (ASM_OUTPUT_DWARF_DELTA): Ditto.
874         (ASM_OUTPUT_DWARF_OFFSET): Ditto.
875         (ASM_OUTPUT_DWARF_PCREL): Ditto.
876         * config.gcc (i[34567]86-*-darwin*): Define extra_parts.
877         (powerpc-*-darwin*): Ditto.
878         * crtstuff.c [OBJECT_FORMAT_MACHO]: Update the Mach-O bits
879         to work correctly for Darwin.
880         * config/darwin.h (OBJECT_FORMAT_MACHO): Define.
881         (STARTFILE_SPEC): Add crtbegin.o.
882         (ENDFILE_SPEC): Define.
883         (EXTRA_SECTION_FUNCTIONS): Put gcc_except_tab in data segment.
884         (ASM_PREFERRED_EH_DATA_FORMAT): Handle more cases.
885         (ASM_OUTPUT_DWARF_DELTA): Define.
886         (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define.
887         * config/darwin.c (darwin_asm_output_dwarf_delta): New function.
888
889 2002-09-13  Alan Modra  <amodra@bigpond.net.au>
890
891         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Remove "if"
892         nesting.  Correct test for non-PowerPC64 ELF ABI_AIX.
893         * config/rs6000/rs6000.md (load_toc_v4_PIC*): Disable when ABI_AIX.
894
895 2002-09-12  Zack Weinberg  <zack@codesourcery.com>
896
897         * toplev.c: Move default definition of USER_LABEL_PREFIX...
898         * defaults.h: ... here.
899
900 2002-09-12  Richard Henderson  <rth@redhat.com>
901
902         * vax.c: Include tree.h earlier.
903
904 2002-09-12  Stan Shebs  <shebs@apple.com>
905
906         * config/darwin.c (machopic_finish): Remove #if 0 chunks.
907         (machopic_operand_p): Ditto.
908
909 2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>
910
911         * config/arm/arm.c (arm_compute_initial_elimination_offset):
912         Fix a comment typo.
913
914 2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>
915
916         * toplev.c (do_abort): Fix a comment typo.
917
918 2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>
919
920         * cselib.c: Fix comment formatting.
921         * gengtype.c: Likewise.
922
923 2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>
924
925         * config/h8300/h8300.md (udivmodqi4): Do not use an expander.
926         (udivmodhi4): Likewise.
927
928 2002-09-12  Graham Stott  <graham.stott@btinternet.com>
929             Roger Sayle  <roger@eyesopen.com>
930
931         * i386.c (any_fp_register_operand, fp_register_operand,
932         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand):
933         New predicate functions.
934         * i386-protos.h:  Add their prototypes.
935         * i386.h: Add them to PREDICATE_CODES.
936         * i386.md ("*pushsf_rex64"+2, "*pushsf_rex64"+3, "*pushdf_integer"+1,
937         "*pushdf_integer"+2, "*pushtf_integer"+1, "*pushtf_integer"+2,
938         "*pushtf_integer"+3, "*pushtf_integer"+4, "*dummy_extendsfdf2"+1,
939         "*dummy_extendsfdf2"+2, "*dummy_extendsfxf2"+1,
940         "*dummy_extendsftf2"+1, "*dummy_extendsftf2"+2,
941         "*dummy_extenddfxf2"+1, "*dummy_extenddftf2"+1,
942         "*dummy_extenddftf2"+2, "*negsf2_if"+1, "*negsf2_if"+2,
943         "*negdf2_if_rex64"+1, "*negdf2_if_rex64"+2, "*negxf2_if"+1,
944         "*negxf2_if"+2, "*negtf2_if"+1, "*negtf2_if"+2, "*abssf2_if"+1,
945         "*abssf2_if"+2, "*absdf2_if_rex64"+1, "*absdf2_if_rex64"+2,
946         "*absxf2_if"+1, "*absxf2_if"+2, "*abstf2_if"+1, "*abstf2_if"+2):
947         Use these new predicates to simplify and correct the use of
948         FP_REG_P, ANY_FP_REG_P, FP_REGNO_P and any ANY_FP_REGNO_P.
949
950 2002-09-12  Jason Merrill  <jason@redhat.com>
951
952         * diagnostic.c (output_add_identifier): New fn.
953         * diagnostic.h: Declare it.
954
955         * calls.c (store_one_arg): Use size_in_bytes to determine the
956         amount of space to push.
957
958 2002-09-12  Jakub Jelinek  <jakub@redhat.com>
959
960         * config/sparc/linux64.h (STARTFILE_SPEC32): Fix a typo.
961
962 2002-09-12  Ulrich Weigand  <uweigand@de.ibm.com>
963
964         * config/s390/s390-modes.def (CCAPmode, CCANmode): New CC modes.
965         * config/s390/s390.c (s390_match_ccmode_set): Support new CC modes.
966         (s390_select_ccmode): Likewise.
967         (s390_branch_condition_mask): Likewise.
968         (optimization_options): Do not set flag_branch_on_count.
969         (s390_split_branches): Handle doloop branches.
970         (s390_chunkify_pool): Likewise.
971         * config/s390/s390.md ("*adddi3_imm_cc", "*addsi3_imm_cc"): New insns.
972         ("doloop_end"): New expander.
973         ("doolop_si", "*doloop_si_long", "doloop_di", "*doloop_di_long",
974         associated splitters): New.
975
976 2002-09-11  Hartmut Penner  <hpenner@de.ibm.com>
977
978         * fold-const.c (make_range): Only narrow to signed range if
979         the signed range is smaller than the unsigned range.
980
981 2002-09-12  Alan Modra  <amodra@bigpond.net.au>
982
983         * emit-rtl.c (set_mem_size): New function.
984         * expr.h (set_mem_size): Declare.
985         * config/rs6000/rs6000.c (expand_block_move_mem): Exterminate.
986         (expand_block_move): Instead, use adjust_address and
987         replace_equiv_address to generate proper aliasing info.
988         Move common code out of conditionals.  Localize vars.
989
990 2002-09-09  Eric Botcazou  ebotcazou@libertysurf.fr
991
992         * optabs.c (expand_binop): Minor cleanup.
993         (expand_twoval_binop): Convert CONST_INTs like in expand_binop.
994
995 2002-09-11  Dan Nicolaescu  <dann@ics.uci.edu>
996
997         * print-tree.c (print_node): Print the restrict qualifier.
998
999 2002-09-11  Janis Johnson  <janis187@us.ibm.com>
1000
1001         * doc/install.texi: Fix typos.
1002
1003 2002-09-11  Zack Weinberg  <zack@codesourcery.com>
1004
1005         * Makefile.in: Remove all references to s-under and underscore.c.
1006         * collect2.c, tlink.c: Change all uses of prepends_underscore
1007         to look directly at USER_LABEL_PREFIX.
1008
1009 2002-09-11  David Edelsohn  <edelsohn@gnu.org>
1010
1011         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Append
1012         alignment to csect.
1013         (rs6000_xcoff_unique_section): Only set section name for public
1014         data.
1015         (rs6000_xcoff_section_type_flags): Store log2 alignment in flags.
1016         * config/rs6000/xcoff.h (TARGET_ASM_SELECT_SECTION): Remove
1017         duplicate definition.
1018
1019 2002-09-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1020
1021         * pa.md (extzv): Check predicates before emitting extzv_32.
1022         (insv): Likewise.
1023
1024 2002-09-10  Ulrich Weigand  <uweigand@de.ibm.com>
1025
1026         * config/s390/s390.h (MOVE_MAX): Define to correct value.
1027         (MAX_MOVE_MAX): Define.
1028         (MOVE_BY_PIECES_P): Define.
1029         (CLEAR_BY_PIECES_P): Define.
1030
1031 2002-09-10  Denis Chertykov  <denisc@overta.ru>
1032
1033         * config/avr/avr.md (movstrhi): Use right operands for conversion.
1034
1035 2002-09-10  Richard Earnshaw  <rearnsha@arm.com>
1036
1037         PR c/7873
1038         * arm.md (insv): Use reg_or_int_operand for operand[3].
1039
1040 2002-09-10  David Edelsohn  <edelsohn@gnu.org>
1041
1042         * rs6000.c (rs6000_assemble_visibility): Protect declaration
1043         inside macro.  Correct function definition typo.
1044         (rs6000_xcoff_section_type_flags): New function.
1045         (TARGET_SECTION_TYPE_FLAGS): Remove definition.
1046         (rs6000_elf_section_type_flags): Call default_section_type_flags_1
1047         with appropriate PIC test.
1048         (rs6000_xcoff_select_section): Use decl_readonly_section_1 to
1049         determine readonly.
1050         (rs6000_binds_local_p): Combine PIC flags.
1051         * sysv4.h (TARGET_SECTION_TYPE_FLAGS): Define.
1052         * xcoff.h (TARGET_SECTION_TYPE_FLAGS): Define.
1053
1054 2002-09-09  Per Bothner  <per@bothner.com>
1055
1056         * print-tree.c (print_node):  In a STRING_CST, escape non-ascii
1057         characters, and only print TREE_STRING_LENGTH chars.
1058
1059 2002-09-09  Steve Ellcey  <sje@cup.hp.com>
1060
1061         * config/ia64/hpux.h (TARGET_HPUX_LD): New, define true.
1062         (ASM_FILE_END) New.
1063         * config/ia64/ia64.h (TARGET_HPUX_LD): New, define false.
1064         * config/ia64/ia64-protos.h (ia64_hpux_asm_file_end): New.
1065         * config/ia64/ia64.c (ia64_asm_output_external): Create list
1066         of external functions if TARGET_HPUX_LD is true.
1067         (ia64_hpux_add_extern_decl): New, routine to put names on
1068         list of external functions.
1069         (ia64_hpux_asm_file_end): Put out declarations for external
1070         functions if and only if they are used.
1071
1072 2002-09-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1073
1074         * pa.md (exception_receiver, builtin_setjmp_receiver): Add blockage
1075         on TARGET_64BIT before pic register restore.
1076
1077 2002-09-09  David Edelsohn  <edelsohn@gnu.org>
1078
1079         * doc/tm.texi (TARGET_HAVE_SRODATA_SECTION): New description.
1080         (TARGET_HAVE_TLS): New description.
1081
1082 2002-09-09  Janis Johnson  <janis187@us.ibm.com>
1083
1084         * doc/extend.texi (Statement Exprs): Fix broken link.
1085
1086 2002-09-09  Denis Chertykov  <denisc@overta.ru>
1087
1088         * config/avr/avr.md (movstrhi, clrstrhi): Use gen_int_mode for
1089         right conversion of operands[1].
1090
1091 2002-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
1092
1093         * config/s390/s390.md ("*tmdi_reg", "*tmsi_reg"): Do not mark as
1094         commutative.  Use "nonimmediate_operand" instead of "register_operand"
1095         as predicate for operand 0.  Move to after the "*tmXX_mem" insns.
1096
1097         ("*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem"): Do not mark
1098         as commutative.
1099
1100         ("*anddi3_ni", "*andsi3_ni", "*iordi3_ni", "*iorsi3_ni"): Do not
1101         mark as commutative.  Use "nonimmediate_operand" instead of
1102         "register_operand" as predicate for operand 1.
1103
1104         ("movstrictsi"): Fix typo in insn name.
1105
1106 2002-09-09  Jan Hubicka  <jh@suse.cz>
1107
1108         * i386.c (index_register_operand): New.
1109         * i386.h (predicate_codes): Add new predicate.
1110         * i386.md (lea_general_*): Use index_regsiter_operand
1111         (ashift to lea splitter): Do not produce invalid leas
1112         (ashift to mov+ashift split): New.
1113
1114 2002-09-09  Nick Clifton  <nickc@redhat.com>
1115
1116         * config/fr30/fr30.c (output.h): Move after inclusion of tree.h.
1117         Fix folding marks.
1118
1119 2002-09-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1120             J"orn Rennecke <joern.rennecke@superh.com>
1121
1122         * sh/sh.h (OVERRIDE_OPTIONS): align_functions is in bytes, not bits.
1123
1124 2002-09-09  Alan Modra  <amodra@bigpond.net.au>
1125
1126         * config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool.
1127         (function_ok_for_sibcall): Use binds_local_p.  Respect longcall
1128         attributes.
1129
1130 2002-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1131
1132         * fr30.c (fr30_print_operand): Fix bug in output of CONST_DOUBLE.
1133
1134 2002-09-08  Richard Henderson  <rth@redhat.com>
1135
1136         * dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli.
1137         (DW_OP_GNU_push_tls_address): New.
1138         (DW_OP_lo_user): Fix.
1139         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): New.
1140         (dwarf_stack_op_name): Handle it, plus other dwarf3 opcodes.
1141         (size_of_loc_descr): Likewise.
1142         (output_loc_operands): Handle INTERNAL_DW_OP_tls_addr.
1143         (add_AT_location_description): Take a dw_loc_descr_ref not an rtx.
1144         (loc_descriptor_from_tree): Handle TLS variables.
1145         (rtl_for_decl_location): Do avoid_constant_pool_reference here ...
1146         (add_location_or_const_value_attribute): ... not here.  Defer
1147         to loc_descriptor_from_tree for TLS variables.
1148
1149         * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): New.
1150         * config/i386/i386.c (i386_output_dwarf_dtprel): New.
1151         * config/i386/i386-protos.h: Update.
1152
1153 2002-09-08  Roger Sayle  <roger@eyesopen.com>
1154
1155         PR optimization/6405
1156         * unroll.c (loop_iterations): last_loop_insn should be the previous
1157         non-note instruction before loop->end.
1158         * loop.c (strength_reduce): The conditional jump is the last
1159         non-note instruction before loop->end (as above).
1160
1161 2002-09-08  Roger Sayle  <roger@eyesopen.com>
1162
1163         * combine.c (try_combine): Handle the case that undobuf.other_insn
1164         has been turned into a return or unconditional jump, by inserting
1165         a BARRIER if necessary.
1166         (simplify_set):  Test if a condition code setter has a constant
1167         comparison at compile time, if so convert this insn to a no-op move
1168         and update/simplify the condition code user (undobuf.other_insn).
1169
1170 2002-09-08  Krister Walfridsson  <cato@df.lth.se>
1171
1172         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Redefine.
1173         (CLEAR_INSN_CACHE): Define.
1174
1175 2002-09-08  Kazu Hirata  <kazu@cs.umass.edu>
1176
1177         * basic-block.h: Fix comment formatting.
1178         * c-common.c: Likewise.
1179         * c-common.h: Likewise.
1180         * c-lex.c: Likewise.
1181         * c-pretty-print.c: Likewise.
1182         * cfglayout.c: Likewise.
1183         * cfgloop.c: Likewise.
1184         * defaults.h: Likewise.
1185         * et-forest.c: Likewise.
1186         * explow.c: Likewise.
1187         * function.h: Likewise.
1188         * gcov.c: Likewise.
1189         * genattrtab.c: Likewise.
1190         * gengtype.c: Likewise.
1191         * ifcvt.c: Likewise.
1192         * libgcc2.c: Likewise.
1193         * loop.c: Likewise.
1194         * profile.c: Likewise.
1195         * ra-build.c: Likewise.
1196         * real.c: Likewise.
1197         * rtl.h: Likewise.
1198         * tracer.c: Likewise.
1199         * tree-inline.c: Likewise.
1200         * varasm.c: Likewise.
1201
1202 2002-09-08  Jan Hubicka  <jh@suse.cz>
1203
1204         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix array_ref
1205         handling.
1206
1207         * loop.c (loop_gics_reduce):  Emit addition after.
1208
1209 2002-09-08  Alan Modra  <amodra@bigpond.net.au>
1210
1211         * varasm.c (default_assemble_visibility): Rename from
1212         assemble_visibility.
1213         * output.h: Here too.
1214         * target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): And here.
1215         * config/rs6000/rs6000.c (rs6000_assemble_visibility): And here.
1216
1217 2002-09-08  Alan Modra  <amodra@bigpond.net.au>
1218
1219         * reload.c (find_reloads <p constraint>): Pass operand_mode to
1220         find_reloads_address.
1221
1222 2002-09-08  Kazu Hirata  <kazu@cs.umass.edu>
1223
1224         * config/h8300/h8300.md (udivmodqi4): Enable on H8/300.
1225         (anonymous pattern): Likewise.
1226
1227 2002-09-07  Scott Snyder  <snyder@fnal.gov>
1228
1229         PR target/7374
1230         * config/alpha/alpha.md (abstf2): Fix typo: 'neg' for 'abs'.
1231
1232 2002-09-07  Roger Sayle  <roger@eyesopen.com>
1233
1234         * basic-block.h (struct loop): Remove unused cont_dominator field.
1235
1236 2002-09-07  Igor Shevlyakov <igor@microunity.com>
1237
1238         * varasm.c (decode_rtx_const): Don't check undefined field for
1239         CONST_VECTOR.
1240
1241 2002-09-07  Glen Nakamura  <glen@imodulo.com>
1242
1243         PR opt/7814
1244         * sched-deps.c (sched_analyze_insn): Make sure to add insn
1245         to reg_last->sets after flushing the dependency lists to guarantee
1246         that subsequent clobbers will be dependent on it.
1247
1248 2002-09-07  Igor Shevlyakov <igor@microunity.com>
1249
1250         * combine.c (simplify_shift_const): Calculate rotate count
1251         correctly for vector operands.
1252
1253 2002-09-07  Ansgar Esztermann  <ansgar@thphy.uni-duesseldorf.de>
1254
1255         * c-typeck.c (c_tree_expr_nonnegative_p): New function.
1256         (build_binary_op): Call c_tree_expr_nonnegative_p rather than
1257         tree_expr_nonnegative_p.
1258         (build_conditional_expr): Likewise.
1259         * c-tree.h (c_tree_expr_nonnegative_p): Declare.
1260
1261 2002-09-07  Richard Henderson  <rth@redhat.com>
1262
1263         * builtins.def (inf, inff, infl): Mark const.
1264         (huge_val, huge_valf, huge_vall): Likewise.
1265         (BUILT_IN_GETEXP, BUILT_IN_GETMAN): Remove.
1266
1267         * real.c (ereal_inf): Clear E before use.
1268
1269 2002-09-07  Kazu Hirata  <kazu@cs.umass.edu>
1270
1271         * config/h8300/h8300.md (udivmodqi4): Split the pattern into
1272         an expander and an anonymous pattern.  Zero out the upper half
1273         of the dividend in the expander.
1274         (udivmodqi4): Likewise.
1275
1276 2002-09-07  Kazu Hirata  <kazu@cs.umass.edu>
1277
1278         * config/h8300/h8300.c: Fix formatting.
1279         * config/h8300/h8300.h: Likewise.
1280         * config/h8300/h8300.md: Likewise.
1281
1282 2002-09-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1283
1284         * cfgcleanup.c (try_crossjump_to_edge): Fix updating of liveness
1285         information.
1286
1287 2002-09-07  Graham Stott  <graham.stott@btinternet.con>
1288
1289        * rtlanal.c (dead_or_set_regno_p): Fix typo.
1290
1291 2002-09-07  Alan Modra  <amodra@bigpond.net.au>
1292
1293         * config/rs6000/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1294
1295         * doc/tm.texi (TARGET_ASM_ASSEMBLE_VISIBILITY): Describe.
1296         * target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Define.
1297         (TARGET_ASM_OUT): Add the above here.
1298         * target.h (struct gcc_target): Add "visibility" field.
1299         * varasm.c (maybe_assemble_visibility): Call targetm visibility func.
1300         * config/rs6000/rs6000.c (rs6000_assemble_visibility): New function.
1301         (TARGET_ASM_ASSEMBLE_VISIBILITY): Define.
1302         (rs6000_legitimize_reload_address, first_reg_to_save): Formatting.
1303
1304 2002-09-06  Ziemowit Laski <zlaski@apple.com>
1305
1306         * c-lang.c (objc_is_id): New stub.
1307         * c-tree.h (objc_is_id): New forward declaration.
1308         * c-typeck.c (build_c_cast): Do not strip protocol
1309         qualifiers from 'id' type.
1310         * objc/objc-act.c (objc_comptypes): Correct handling
1311         of protocol qualifiers.
1312         (objc_is_id): New.
1313
1314 Fri Sep  6 13:10:08 2002  Jeffrey A Law  (law@redhat.com)
1315
1316         * pentium.md (pentium-firstvboth): Fix typo.
1317
1318 2002-09-06      Dhananjay Deshpande <dhananjayd@kpit.com>
1319
1320         * h8300.c (enum shift_alg): Move to earlier in h8300.c.
1321         (enum shift_type, enum h8_cpu): Likewise.
1322         (INL, ROT, LOP, SPC macros): Likewise.
1323         (shift_alg_qi, shift_alg_hi, shift_alg_si): Likewise.  Lose
1324         const designator.
1325         (h8300_init_once): Update shift_alg_{qi,hi,si} to use more
1326         space efficient algorithms when optimize for codesize.
1327
1328 Fri Sep  6 16:35:32 2002  Nicola Pero  <n.pero@mi.flashnet.it>
1329
1330         Fix PR/1727 and long-standing failing testcase
1331         objc/formal-protocol-6.m.
1332         * objc-act.c (build_protocol_expr): If compiling for the GNU
1333         runtime, create a list of Protocol statically allocated instances
1334         if it doesn't exist, then add the Protocol object to this same
1335         list.
1336         (get_objc_string_decl): Fixed typo/bug - TREE_VALUE had been used
1337         instead of TREE_CHAIN.
1338
1339 Fri Sep  6 16:17:33 2002  Nicola Pero  <n.pero@mi.flashnet.it>
1340
1341         * objc/objc-act.c (dump_interface): Enlarged the char * buffer to
1342         10k.  Fixed category dumping - print out category names with the
1343         proper syntax.  Print '@end\n' and not '\n@end' at the end of the
1344         interface.
1345         (finish_objc): Fixed the -gen-decls option.  It was printing out
1346         only the last class.  Dump an interface declaration of all classes
1347         being compiled instead.
1348
1349 2002-09-06  Jason Thorpe  <thorpej@wasabisystems.com>
1350
1351         * config/arm/arm-protos.h (arm_gen_return_addr_mask): New
1352         prototype.
1353         * config/arm/arm.c (arm_gen_return_addr_mask): New function.
1354         * config/arm/arm.h (MASK_RETURN_ADDR): Use arm_gen_return_addr_mask
1355         if not APCS26 and not Thumb or ARMv4-or-higher.  Use gen_int_mode
1356         rather than GEN_INT.
1357         * config/arm/arm.md (UNSPEC_CHECK_ARCH): Define.
1358         (return_addr_mask, *check_arch2): New.
1359
1360 2002-09-06  Ulrich Weigand  <uweigand@de.ibm.com>
1361
1362         * config/s390/s390.md ("*adddi3_cc", "*adddi3_cconly",
1363         "*adddi3_cconly2", "*adddi3_64", "*adddi3_31", "adddi3",
1364         "*addsi3_carry1_cc", "*addsi3_carry1_cconly",
1365         "*addsi3_carry2_cc", "*addsi3_carry2_cconly",
1366         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", "addsi3",
1367         "adddf3", "*adddf3", "*adddf3_ibm",
1368         "addsf3", "*addsf3", "*addsf3_ibm",
1369         "muldi3", "mulsi3", "mulsidi3",
1370         "muldf3", "*muldf3", "*muldf3_ibm",
1371         "mulsf3", "*mulsf3", "*mulsf3_ibm",
1372         "*anddi3_cc", "*anddi3_cconly", "anddi3",
1373         "*andsi3_cc", "*andsi3_cconly", "andsi3",
1374         "*iordi3_cc", "*iordi3_cconly", "iordi3",
1375         "*iorsi3_cc", "*iorsi3_cconly", "iorsi3",
1376         "*xordi3_cc", "*xordi3_cconly", "xordi3",
1377         "*xorsi3_cc", "*xorsi3_cconly", "xorsi3"): Use "nonimmediate_operand"
1378         instead of "register_operand" as predicate for "%0" operand.
1379
1380 2002-09-06  Jakub Jelinek  <jakub@redhat.com>
1381
1382         * configure.in (HAVE_AS_OFFSETABLE_LO10): Use -xarch=v9
1383         unconditionally when gcc_cv_as_flags64 checks are gone.
1384         * configure: Rebuilt.
1385
1386 2002-09-06  Alan Modra  <amodra@bigpond.net.au>
1387
1388         * config/rs6000/rs6000.md (extzvsi_internal2): Revert most of
1389         2002-07-26 change.  Comment.
1390
1391 2002-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1392
1393         * frv.c (frv_unique_section, frv_select_section,
1394         frv_select_rtx_section): Delete.
1395         (frv_in_small_data_p): New.
1396         (TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_SECTION,
1397         TARGET_ASM_SELECT_RTX_SECTION): Delete.
1398         (TARGET_IN_SMALL_DATA_P): Define.
1399
1400 2002-09-05  Dale Johannesen  <dalej@apple.com>
1401
1402         * reload1.c (reload):  Retain only those memory clobbers
1403         added for variable-array handling.
1404
1405 2002-09-05  Jason Thorpe  <thorpej@wasabisystems.com>
1406
1407         * config/arm/arm.c (arm_return_in_memory): Implement ATPCS
1408         return-in-memory rules.
1409         * config/arm/arm.h (ARM_FLAG_ATPCS, TARGET_ATPCS): Define.
1410
1411 2002-09-05  David Edelsohn  <edelsohn@gnu.org>
1412
1413         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Delete.
1414         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Delete.
1415
1416 2002-09-05  Jason Thorpe  <thorpej@wasabisystems.com>
1417
1418         * real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
1419         not a compile-time constant for the non-IBM case.
1420         * config/arm/arm-protos.h (arm_float_words_big_endian): New
1421         prototype.
1422         * config/arm/arm.c (arm_float_words_big_endian): New function.
1423         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__
1424         if TARGET_VFP  and not TARGET_HARD_FLOAT.
1425         (ARM_FLAG_VFP, TARGET_VFP): Define.
1426         (FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.
1427
1428 2002-09-05  David Edelsohn  <edelsohn@gnu.org>
1429
1430         * doc/install.texi: Correct text of s390-*-linux* and s390x-*-linux*
1431         URLs.  Fix AIX wording.
1432
1433 2002-09-05  Stan Shebs  <shebs@apple.com>
1434
1435         * config/rs6000/rs6000.c (rs6000_override_options): Make -fpic and
1436         -fPIC equivalent on Darwin.
1437
1438 Thu Sep  5 16:27:47 2002  J"orn Rennecke <joern.rennecke@superh.com>
1439
1440         * sh.c (sh_expand_builtin): Return early if encountering an
1441         error_mark for a type.
1442
1443 2002-09-05  Ulrich Weigand  <uweigand@de.ibm.com>
1444
1445         * config/s390/s390.c (s390_expand_plus_operand): Do not require
1446         double-word scratch register.
1447         config/s390/s390.md ("reload_indi", "reload_insi"): Adapt.
1448
1449         ("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem",
1450         "*cli"): Replace s_operand by memory_operand.
1451         ("cmpstrdi", "cmpstrsi"): Replace s_operand by general_operand.
1452
1453 2002-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1454
1455         * config/h8300/h8300.c (asm_file_start): Add a missing
1456         semicolon.
1457
1458 2002-09-04  Krister Walfridsson  <cato@df.lth.se>
1459
1460         * config/i386/i386.h (GOT_SYMBOL_NAME): Define.
1461         * config/i386/i386.c (output_set_got): Use GOT_SYMBOL_NAME.
1462         (ix86_output_addr_diff_elt) Likewise.
1463         (x86_output_mi_thunk) Likewise.
1464         * config/i386/netbsd.h (GOT_SYMBOL_NAME): Redefine.
1465
1466 2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1467
1468         * frv.c (frv_encode_section_info): Fix error in last change.
1469
1470 2002-09-04  David Edelsohn  <edelsohn@gnu.org>
1471
1472         * config/rs6000/rs6000.c (rs6000_flag_pic): New variable.
1473         (rs6000_elf_encode_section_info): ATTRIBUTE_UNUSED.
1474         (TARGET_BINDS_LOCAL_P): Define.
1475         (rs6000_override_options): Save original flag_pic value.
1476         (rs6000_elf_select_section): Call default_elf_select_section_1.
1477         (rs6000_elf_unique_section): Call default_unique_section_1.
1478         (rs6000_elf_in_small_data_p): New function.
1479         (rs6000_xcoff_asm_named_section): Determine storage mapping class.
1480         (rs6000_xcoff_select_section): Update based on defaults.
1481         (rs6000_xcoff_unique_section): Set to basic name if not common.
1482         (rs6000_binds_local_p): New function.
1483         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1484         targetm.have_srodata_section if SDATA_EABI.
1485         (TARGET_IN_SMALL_DATA_P): Define.
1486
1487 2002-09-04  Dale Johannesen  <dalej@apple.com>
1488
1489         * varasm.c (struct rtx_const, decode_rtx_const):
1490         Make veclo and vechi fields not share storage.
1491
1492 Thu Sep  5 00:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
1493
1494         * loop.c (scan_loop): Don't mark separate insns out of a libcall
1495         for moving.
1496         (move_movables): Abort if we see the first insn of a libcall.
1497
1498 2002-09-04  Richard Henderson  <rth@redhat.com>
1499
1500         * builtin-types.def (BT_FN_FLOAT): New.
1501         (BT_FN_DOUBLE, BT_FN_LONG_DOUBLE): New.
1502         * builtins.def (BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL,
1503         BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL): New.
1504         * builtins.c (fold_builtin_inf): New.
1505         (fold_builtin): Call it.
1506         * real.c (ereal_inf): New.
1507         * real.h: Declare it.
1508         * doc/extend.texi: Document new builtins.
1509
1510 2002-09-04  Richard Henderson  <rth@redhat.com>
1511
1512         * cse.c (cse_insn): Avoid subreg games if the equivalence
1513         is already in the proper mode.
1514
1515 2002-09-04  Eric Botcazou  <ebotcazou@multimania.com>
1516
1517         PR c/7102
1518         * optabs.c (expand_binop): Convert CONST_INTs in all cases.
1519
1520 2002-09-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1521
1522         * pa.md (setccfp0, setccfp1): New patterns.
1523
1524 2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1525
1526         * frv-protos.h (frv_init_builtins, frv_expand_builtin,
1527         frv_select_section, frv_select_rtx_section,
1528         frv_encode_section_info, frv_unique_section): Delete.
1529         * frv.c: Update for target hooks.
1530         * frv.h (STRIP_NAME_ENCODING, SLOW_ZERO_EXTEND, SELECT_SECTION,
1531         SELECT_RTX_SECTION, ENCODE_SECTION_INFO, UNIQUE_SECTION,
1532         EASY_DIV_EXPR, MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Delete.
1533
1534 2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1535
1536         * ip2k-protos.h (function_prologue, function_epilogue,
1537         encode_section_info): Update to match target hook specification.
1538         * ip2k.c: Wrap `MDR' code in IP2K_MD_REORG_PASS.
1539         (function_prologue, function_epilogue, encode_section_info):
1540         Update to match target hook specification.
1541         * ip2k.h (SELECT_SECTION, SELECT_RTX_SECTION, ASM_OPEN_PAREN,
1542         ASM_CLOSE_PAREN, EASY_DIV_EXPR): Delete.
1543         (NOTICE_UPDATE_CC): Cast to void.
1544         * ip2k.md: Add defaults in switch statements.
1545
1546 2002-09-04  Janis Johnson  <janis187@us.ibm.com>
1547
1548         * doc/trouble.texi (Interoperation): Update information about C++ ABI
1549         issues.
1550
1551 2002-09-04  Jason Thorpe  <thorpej@wasabisystems.com>
1552
1553         * config/sparc/t-netbsd64: Disable multilib for now.
1554
1555 2002-09-04  David Edelsohn  <edelsohn@gnu.org>
1556
1557         * target-def.h (TARGET_HAVE_SRODATA_SECTION): New macro.
1558         * target.h (gcc_target): Add have_srodata_section member.
1559         * varasm.c (section_category): Add SECCAT_SRODATA.
1560         (categorize_decl_for_section): Return SECCAT_SRODATA for sdata if
1561         READONLY_SDATA_SECTION defined.
1562         (decl_readonly_section_1): True for SECCAT_SRODATA also.
1563         (default_elf_select_section_1): Map SECCAT_SRODATA to .sdata2.
1564         (default_unique_section_1): Likewise.
1565
1566 2002-09-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1567
1568         * expr.c (emit_group_load): Revise to allow splitting TCmode source
1569         into DImode pieces.
1570
1571         * pa-64.h (LONG_DOUBLE_TYPE_SIZE): Define to 128.
1572         * pa64-regs.h (CLASS_CANNOT_CHANGE_MODE_P): Inhibit changes from SImode
1573         for floating-point register class.
1574         * pa.c (function_arg): Fix handling of modes wider than one word for
1575         TARGET_64BIT.
1576
1577 Wed Sep  4 18:48:10 2002  J"orn Rennecke <joern.rennecke@superh.com>
1578
1579         * combine.c (make_compound_operation): Don't generate zero / sign
1580         extensions in floating point modes.
1581
1582 2002-09-04  Janis Johnson  <janis187@us.ibm.com>
1583
1584         * doc/c-tree.texi: Fix overfull hboxes.
1585         * doc/cppopts.texi: Ditto.
1586         * doc/extend.texi: Ditto.
1587         * doc/gty.texi: Ditto.
1588         * doc/invoke.texi: Ditto.
1589         * doc/makefile.texi: Ditto.
1590         * doc/rtl.texi: Ditto.
1591         * doc/standards.texi: Ditto.
1592         * doc/tm.texi: Ditto.
1593
1594 2002-09-04  Richard Henderson  <rth@redhat.com>
1595
1596         * c-common.c (builtin_define_with_hex_fp_value): New.
1597         (builtin_define_float_constants): Use it.  Fix H_FLOAT mant_dig.
1598
1599 2002-09-04  Janis Johnson  <janis187@us.ibm.com>
1600
1601         * doc/invoke.texi (-fshort-wchar): Move to Code Generation Options.
1602         (-fpcc-struct-return, -freg-struct-return, -fshort-enums,
1603         -fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore):
1604         Warn that these options can break ABI compatibility.
1605
1606 2002-09-04  Richard Henderson  <rth@redhat.com>
1607
1608         * real.c (ereal_to_decimal): Add digits parameter.
1609         * real.h (REAL_VALUE_TO_DECIMAL): Remove format; add digits parameter.
1610         * c-pretty-print.c (pp_c_real_literal): Update call.
1611         * print-rtl.c (print_rtx): Likewise.
1612         * print-tree.c (print_node_brief, print_node): Likewise.
1613         * sched-vis.c (print_value): Likewise.
1614         * config/arc/arc.c (arc_print_operand): Likewise.
1615         * config/c4x/c4x.c (c4x_print_operand): Likewise.
1616         * config/i370/i370.h (PRINT_OPERAND): Likewise.
1617         * config/i386/i386.c (print_operand): Likewise.
1618         * config/i960/i960.c (i960_print_operand): Likewise.
1619         * config/ip2k/ip2k.c (asm_output_float): Likewise.
1620         * config/m32r/m32r.c (m32r_print_operand): Likewise.
1621         * config/m68hc11/m68hc11.c (print_operand): Likewise.
1622         * config/m68k/hp320.h (PRINT_OPERAND, ASM_OUTPUT_FLOAT_OPERAND,
1623         ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise.
1624         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND,
1625         ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise.
1626         * config/m68k/sun2o4.h (ASM_OUTPUT_FLOAT_OPERAND,
1627         ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
1628         * config/m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND,
1629         ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
1630         * config/mips/mips.c (print_operand): Likewise.
1631         * config/ns32k/ns32k.c (print_operand): Likewise.
1632         * config/pdp11/pdp11.h (PRINT_OPERAND): Likewise.
1633         * config/vax/vax.h (PRINT_OPERAND): Likewise.
1634         * doc/tm.texi (REAL_VALUE_TO_DECIMAL): Update docs.
1635
1636 2002-09-04  Bob Wilson  <bob.wilson@acm.org>
1637
1638         * config/xtensa/elf.h (TARGET_SECTION_TYPE_FLAGS): Define to
1639         xtensa_multibss_section_type_flags.
1640         * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Define.
1641
1642 2002-09-04  Richard Henderson  <rth@redhat.com>
1643
1644         * doc/install-old.texi: Don't mention enquire.
1645         * doc/sourcebuild.texi: Update float.h description.
1646
1647 Wed Sep  4 11:22:14 2002  J"orn Rennecke <joern.rennecke@superh.com>
1648
1649         * sh.md (mperm_w_little, mperm_w_big): Supply mode for zero_extract.
1650
1651 2002-09-03  David Edelsohn  <edelsohn@gnu.org>
1652
1653         * varasm.c (default_section_type_flags): Append _1 to name with
1654         shlib parameter.  Use original name to call new function with
1655         implicit flag_pic.
1656         (decl_readonly_section): Likewise.
1657         (default_elf_select_section): Likewise.
1658         (default_unique_section): Likewise.
1659         (default_bind_local_p): Likewise.
1660         (categorize_decl_for_section): Add shlib parameter to use in place
1661         of implicit flag_pic.
1662         * output.h: Declare new functions with _1 and shlib argument.
1663
1664 2002-09-03  Janis Johnson  <janis187@us.ibm.com>
1665
1666         * doc/install.texi: Fix typos, formatting problems, and obvious
1667         overfull/underfull boxes.
1668
1669         * Makefile.in (TEXI_GCC_FILES): Add compat.texi.
1670         * doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and
1671         include its file, compat.texi.
1672         * doc/compat.texi: New file with new chapter, Binary Compatibility.
1673
1674 2002-09-03  Neil Booth  <neil@daikokuya.co.uk>
1675
1676         Debian BTS Bug #157416
1677         * cpphash.h (FIRST, LAST, CUR, RLIMIT): Fix definitions.
1678         * cpplib.c (destringize_and_run): Kludge around getting
1679         tokens from in-progress macros.
1680         (_cpp_do__Pragma): Simplify.
1681
1682 2002-09-03  Steve Ellcey  <sje@cup.hp.com>
1683
1684         * config/ia64/ia64.h (EXTRA_SPECS): Remove cpp_cpu.
1685         (CPP_CPU_SPEC): Remove.
1686         (TARGET_CPU_CPP_BUILTINS): New.
1687         * config/ia64/hpux.h (CPP_PREDEFINES): Remove.
1688         (CPP_SPEC): Remove.
1689         (TARGET_OS_CPP_BUILTINS): New.
1690         * config/ia64/linux.h (CPP_PREDEFINES): Remove.
1691         (TARGET_OS_CPP_BUILTINS): New.
1692         * config/ia64/aix.h (CPP_SPEC): Move some stuff to
1693         TARGET_OS_CPP_BUILTINS.
1694         (CPP_PREDEFINES): Remove.
1695         (CPLUSPLUS_CPP_SPEC): Remove.
1696         (TARGET_OS_CPP_BUILTINS): New.
1697
1698 2002-09-03  Richard Henderson  <rth@redhat.com>
1699
1700         * Makefile.in (USER_H): Add ginclude/float.h.
1701         (FLOAT_H): Remove.
1702         (stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H.
1703         (mostlyclean): Don't remove float.h intermediate files.
1704         (distclean): Don't remove float.h.
1705         * config.gcc: Remove all float_format references.
1706         * configure.in (float_format, float_h_file): Remove.
1707
1708         * c-common.c: Include tree-inline.h.
1709         (builtin_define_with_int_value): New.
1710         (builtin_define_type_precision): Use it.
1711         (builtin_define_float_constants): New.
1712         (cb_register_builtins): Use it.  Define __FLT_RADIX__ and
1713         __FLT_EVAL_METHOD__.
1714         * defaults.h (TARGET_FLT_EVAL_METHOD): New.
1715         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New.
1716         * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New.
1717         * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format.
1718         (TARGET_FLT_EVAL_METHOD): New.
1719
1720         * config/float-c4x.h, config/float-i128.h, config/float-i32.h,
1721         config/float-i386.h, config/float-i64.h, config/float-m68k.h,
1722         config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove.
1723         * ginclude/float.h: New.
1724
1725 2002-09-03  Stan Shebs  <shebs@apple.com>
1726
1727         * config/darwin.h (WARN_FOUR_CHAR_CONSTANTS): Remove, never used.
1728         (DWARF2_DEBUGGING_INFO): Remove until assembler accepts Dwarf-2.
1729         (PREFERRED_DEBUGGING_TYPE): Ditto.
1730         (ASM_OUTPUT_IDENT): Remove empty definition.
1731
1732 2002-09-03  Steve Ellcey  <sje@cup.hp.com>
1733
1734         * config.gcc (ia64*-*-hpux*): Add ia64-c.o to c_target and
1735         cxx_target.
1736         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Register pragma
1737         handling routine for builtin pragma.
1738         * config/ia64/ia64-protos.h (ia64_hpux_handle_builtin_pragma):
1739         Registered pragma handling routine.
1740         * ia64-c.c (ia64_hpux_handle_builtin_pragma): Ditto.
1741         (ia64_hpux_add_pragma_builtin) New subroutine used by above.
1742         If builtin pragma seen for math routine and C89 conformance is
1743         requested use different math function in order to set errno.
1744         * t-ia64 (ia64-c.o): Add new rule for new file.
1745
1746 2002-09-03  Ulrich Weigand  <uweigand@de.ibm.com>
1747
1748         * config/s390/s390.md ("movti"): Add Q->Q alternative.
1749         ("*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64",
1750         "movqi", "*movdf_64", "*movdf_31", "*movsf"): Likewise.
1751
1752         ("*movti_ss", "*movdi_ss", "*movsi_ss", "*movdf_ss",
1753         "*movsf_ss"): Remove.
1754
1755 2002-09-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1756
1757         * pa32-regs.h (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P):
1758         Delete macros.
1759
1760 2002-09-03   Arati Dikey  <aratid@kpit.com>
1761
1762         * h8300.c (asm_file_start): Corrected optimization comment.
1763
1764 2002-09-03  Stan Shebs  <shebs@apple.com>
1765
1766         * c-lang.c (recognize_objc_keyword): Remove, no longer used.
1767         * c-tree.h (recognize_objc_keyword): Remove decl.
1768         * c-typeck.c (comp_target_types): Update a comment.
1769
1770 2002-09-03  Ulrich Weigand  <uweigand@de.ibm.com>
1771
1772         * config/s390/s390.c (s390_decompose_address): Remove STRICT parameter
1773         and register validity checks.
1774         (general_s_operand): Adapt to s390_decompose_address interface change.
1775         (q_constraint): Likewise.
1776         (s390_expand_plus_operand): Likewise.
1777         (legitimiate_address_p): Likewise.
1778         (legitimate_la_operand_p): Likewise.
1779         (legitimize_la_operand): Likewise.
1780         (print_operand_address): Likewise.
1781         (print_operand): Likewise.
1782
1783 Tue Sep  3 11:32:14 2002  Nicola Pero  <n.pero@mi.flashnet.it>
1784
1785         PR objc/5956:
1786         * objc/objc-act.c (build_typed_selector_reference): Fix typo which
1787         was causing the new selector never to match the existing ones
1788         (Patch by Alexander Malmberg <alexander@malmberg.org>).
1789
1790 2002-09-03  Graham Stott  <graham.stott@btinternet.com>
1791
1792         * config/i386/i386.md ("femms"): Add "memory" attr "none".
1793
1794 2002-09-03  Graham Stott  <graham.stott@btinternet.com>
1795
1796         * expr.c (expand_expr): Remove extraneous comment and code.
1797
1798 2002-08-31  Richard Henderson  <rth@redhat.com>
1799
1800         * expr.c (block_move_libcall_safe_for_call_parm): Fix thinko.
1801
1802 2002-08-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1803
1804         * pa.c (pa_globalize_label): Add ATTRIBUTE_UNUSED to prototype.
1805
1806 2002-08-30  Richard Henderson  <rth@redhat.com>
1807
1808         PR opt/7515
1809         * c-objc-common.c: Include target.h.
1810         (c_cannot_inline_tree_fn): Don't auto-inline functions that
1811         don't bind locally.  Factor setting DECL_UNINLINABLE.
1812         * Makefile.in (c-objc-common.o): Update.
1813
1814 2002-08-30  Janis Johnson  <janis187@us.ibm.com>
1815
1816         * doc/install.texi (Configuration, Building): Fix a typo and
1817         some formatting directives.
1818
1819 2002-08-30  Paul Koning <pkoning@equallogic.com>
1820
1821         * doc/c-tree.texi (RDIV_EXPR): Fix typo.
1822         * doc/rtl.texi (post_modify): Remove misplaced text, remove "not
1823         implemented" note.
1824         * doc/md.texi (IP2K): Move machine-specific constraints before MIPS
1825         for alphabetic order.
1826         * doc/tm.texi (TARGET_FLOAT_FORMAT): Update description for
1827         VAX_FLOAT_FORMAT.  Remove reference to HOST_FLOAT_FORMAT.
1828         (VAX_HALFWORD_ORDER): Document.
1829         (LARGEST_EXPONENT_IS_NORMAL): Remove note about being only for
1830         IEEE float format.
1831         (TARGET_SCHED_ISSUE_RATE): Reword reference to MAX_DFA_ISSUE_RATE.
1832         (ASM_OUTPUT_LABEL_REF): Fix font.
1833         (CASE_VECTOR_SHORTEN_MODE): Ditto.
1834
1835 2002-08-30  Denis Chertykov  <denisc@overta.ru>
1836
1837         * config/ip2k/ip2k.c (ip2k_set_compare): Remove all const_double
1838         stuff.
1839         (ip2k_gen_unsigned_comp_branch): Handle CONST_INT and
1840         CONST_DOUBLE constants.
1841
1842 2002-08-30  Jason Thorpe  <thorpej@wasabisystems.com>
1843
1844         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Move language-
1845         related defines to...
1846         (SUBTARGET_LANGUAGE_CPP_BUILTINS): ...here.
1847         * config/alpha/netbsd.h (SUBTARGET_LANGUAGE_CPP_BUILTINS): Redefine
1848         as a no-op.
1849
1850 2002-08-30  Krister Walfridsson  <cato@df.lth.se>
1851
1852         * config/arm/arm.c (arm_asm_output_labelref): New function.
1853         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref.
1854         * config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref.
1855
1856 2002-08-29  Rodney Brown  <rbrown64@csc.com.au>
1857
1858         * doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual
1859         memory exhausted" workarounds.
1860
1861 2002-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1862
1863         * diagnostic.c (fancy_abort): Don't repeat "internal error".
1864         * toplev.c (crash_signal): Likewise.
1865
1866 Fri Aug 30 00:33:37 2002  Nicola Pero  <n.pero@mi.flashnet.it>
1867
1868         * doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation.
1869         * doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector):
1870         Extended, updated documentation.
1871         (-Wundeclared-selector): Documented.
1872
1873 2002-08-29  Jason Thorpe  <thorpej@wasabisystems.com>
1874
1875         * config/chorus.h: Consistently define *_DEBUGGING_INFO with
1876         the value 1.  Do not undef before defining.
1877         * config/darwin.h: Likewise.
1878         * config/dbx.h: Likewise.
1879         * config/dbxcoff.h: Likewise.
1880         * config/dbxelf.h: Likewise.
1881         * config/elfos.h: Likewise.
1882         * config/interix.h: Likewise.
1883         * config/lynx-ng.h: Likewise.
1884         * config/lynx.h: Likewise.
1885         * config/netware.h: Likewise.
1886         * config/psos.h: Likewise.
1887         * config/svr3.h: Likewise.
1888         * config/alpha/alpha.h: Likewise.
1889         * config/alpha/elf.h: Likewise.
1890         * config/alpha/vms.h: Likewise.
1891         * config/arc/arc.h: Likewise.
1892         * config/arm/aout.h: Likewise.
1893         * config/arm/coff.h: Likewise.
1894         * config/c4x/c4x.h: Likewise.
1895         * config/h8300/h8300.h: Likewise.
1896         * config/i386/cygwin.h: Likewise.
1897         * config/i386/djgpp.h: Likewise.
1898         * config/i386/gas.h: Likewise.
1899         * config/i386/gstabs.h: Likewise.
1900         * config/i386/i386-coff.h: Likewise.
1901         * config/i386/i386-interix.h: Likewise.
1902         * config/i386/sco5.h: Likewise.
1903         * config/i386/svr3dbx.h: Likewise.
1904         * config/i386/sysv3.h: Likewise.
1905         * config/i386/win32.h: Likewise.
1906         * config/i386/x86-64.h: Likewise.
1907         * config/i960/i960.h: Likewise.
1908         * config/ia64/ia64.h: Likewise.
1909         * config/ip2k/ip2k.h: Likewise.
1910         * config/m32r/m32r.h: Likewise.
1911         * config/m68k/3b1.h: Likewise.
1912         * config/m68k/3b1g.h: Likewise.
1913         * config/m68k/ccur-GAS.h: Likewise.
1914         * config/m68k/coff.h: Likewise.
1915         * config/m68k/hp2bsd.h: Likewise.
1916         * config/m68k/hp310g.h: Likewise.
1917         * config/m68k/hp320g.h: Likewise.
1918         * config/m68k/hp3bsd.h: Likewise.
1919         * config/m68k/hp3bsd44.h: Likewise.
1920         * config/m68k/linux-aout.h: Likewise.
1921         * config/m68k/m68k-aout.h: Likewise.
1922         * config/m68k/mot3300.h: Likewise.
1923         * config/m68k/netbsd.h: Likewise.
1924         * config/m68k/openbsd.h: Likewise.
1925         * config/m68k/pbb.h: Likewise.
1926         * config/m68k/plexus.h: Likewise.
1927         * config/m68k/sun2.h: Likewise.
1928         * config/m68k/sun3.h: Likewise.
1929         * config/m68k/tower-as.h: Likewise.
1930         * config/m68k/vxm68k.h: Likewise.
1931         * config/m88k/aout-dbx.h: Likewise.
1932         * config/m88k/m88k-aout.h: Likewise.
1933         * config/mcore/mcore-elf.h: Likewise.
1934         * config/mcore/mcore-pe.h: Likewise.
1935         * config/mips/elf.h: Likewise.
1936         * config/mips/elf64.h: Likewise.
1937         * config/mips/iris5gas.h: Likewise.
1938         * config/mips/iris6.h: Likewise.
1939         * config/mips/mips.h: Likewise.
1940         * config/mips/sni-gas.h: Likewise.
1941         * config/mmix/mmix.h: Likewise.
1942         * config/ns32k/netbsd.h: Likewise.
1943         * config/pa/pa64-hpux.h: Likewise.
1944         * config/romp/romp.h: Likewise.
1945         * config/rs6000/sysv4.h: Likewise.
1946         * config/rs6000/xcoff.h: Likewise.
1947         * config/sh/coff.h: Likewise.
1948         * config/sh/elf.h: Likewise.
1949         * config/sparc/linux64.h: Likewise.
1950         * config/sparc/liteelf.h: Likewise.
1951         * config/sparc/netbsd.h: Likewise.
1952         * config/sparc/openbsd.h: Likewise.
1953         * config/sparc/pbd.h: Likewise.
1954         * config/sparc/sp64-elf.h: Likewise.
1955         * config/sparc/sp86x-elf.h: Likewise.
1956         * config/sparc/sparc.h: Likewise.
1957         * config/vax/vax.h: Likewise.
1958         * config/vax/vaxv.h: Likewise.
1959
1960 2002-08-29  "Dhananjay R. Deshpande" <dhananjayd@kpit.com>
1961
1962         * h8300.c (shift_alg_hi): Various tweaks to improve performance
1963         of HImode shifts.
1964         (get_shift_alg): Corresponding changes.
1965
1966 2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1967
1968         * som.h (ALWAYS_STRIP_DOTDOT): Define to 1.
1969
1970 2002-08-29  Richard Henderson  <rth@redhat.com>
1971
1972         * expr.h (enum block_op_methods): New.
1973         (emit_block_move): Update prototype.
1974         * expr.c (block_move_libcall_safe_for_call_parm): New.
1975         (emit_block_move_via_loop): New.
1976         (emit_block_move): Use them.  New argument METHOD.
1977         (emit_push_insn): Always respect the given alignment.
1978         (expand_assignment): Update call to emit_block_move.
1979         (store_expr, store_field, expand_expr): Likewise.
1980         * builtins.c (expand_builtin_apply): Likewise.
1981         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
1982         * function.c (expand_function_end): Likewise.
1983         * config/sh/sh.c (sh_initialize_trampoline): Likewise.
1984         * config/sparc/sparc.c (sparc_va_arg): Likewise.
1985         * calls.c (expand_call, emit_library_call_value_1): Likewise.
1986         (save_fixed_argument_area): Use emit_block_move with
1987         BLOCK_OP_CALL_PARM instead of move_by_pieces.
1988         (restore_fixed_argument_area): Likewise.
1989         (store_one_arg): Fix alignment parameter to emit_push_insn.
1990
1991 2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1992
1993         * install.texi (hppa64-hp-hpux11*): Document installation procedure.
1994
1995 2002-08-29  Catherine Moore  <clm@redhat.com>
1996
1997         * config/v850/v850.h (MULDI3_LIBCALL, UCMPDI2_LIBCALL, CMPDI2_LIBCALL,
1998         NEGDI2_LIBCALL, INIT_TARGET_OPTABS, MASK_STRICT_ALIGN): Define.
1999         (PREDICATE_CODES): Include new predicates.
2000         (RTX_COSTS): Handle UMOD and UDIV.  Tune MULT for v850e.
2001         (TARGET_SWITCHES):  Add strict-align.
2002         (TARGET_STRICT_ALIGN): New.
2003         (MASK_DEFAULT, STRICT_ALIGNMENT):  Redefine.
2004         * config/v850/t-v850 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
2005         Define.
2006         (LIB1ASMFUNCS): Add v850_negdi2, v850_cmpdi2, v850_ucmpdi2,
2007         v850_muldi3.
2008         * config/v850/lib1funcs.asm (L_callt_save_r2_r29, L_return_r2_r29,
2009         L_callt_save_r2_r31, L_return_r2_r31,
2010         L_save_all_interrupt): Change addi to add.
2011         (L_save_interrupt, L_return_interrupt): Rework.
2012         (__return_r31):  Correct .size directive.
2013         (mulsi3, divsi3, udivsi3, umodsi3, modsi3): Tune for v850e.
2014         (v850_negdi2, v850_cmpdi2, v850_ucmpdi2, v850_muldi3):
2015         New routines.
2016         * config/v850/v850.c (expand_prologue): Call
2017         gen_callt_save_interrupt, gen_callt_restore_all_interrupt,
2018         gen_callt_return_interrupt and gen_callt_save_all_interrupt.
2019         (reg_or_int9_operand): New predicate.
2020         (reg_or_const_operand): New routine.
2021         * config/v850/v850.md (return_interrupt): Changed from
2022         restore_interrupt.
2023         (callt_save_all_interrupt): Changed from save_all_interrupt_v850e.
2024         (callt_save_interrupt): Change save sequence.
2025         (callt_return_interrupt): New.
2026         (save_interrupt): Don't use runtime function for LONG_CALLS
2027         and TARGET_PROLOG_FUNCTION.
2028         (save_all_interrupt): Likewise.
2029         (mulsi3): Use new predicate.
2030         (moviscc): Disallow some combination of constants.
2031         Fix define_split for sasf insns, so that it will not generate bad
2032         code if operand0 and operand5 are the same.
2033         * config/v850/v850-protos.h: Prototype new predicates.
2034
2035 2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2036
2037         * c-common.c (builtin_define_type_precision): New function.
2038         (cb_register_builtins): Use it.  Define __WCHAR_UNSIGNED__ is
2039         wchar_t is unsigned in C++.
2040         * doc/cpp.texi (Common Predefined Macros): Document
2041         __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__,
2042         __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
2043         __DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
2044
2045 2002-08-28  Sylvain Pion <pion@cs.nyu.edu>
2046
2047         * doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic
2048         section.  Mention that it is enabled by -Wall.
2049         (-Wall): Mention that there can be language-specific warnings as well.
2050         (-Wctor-dtor-privacy): Mention that it is enabled by default.
2051         (-Wnon-virtual-dtor): Mention that it is enabled by -Wall.
2052
2053 Wed Aug 28 15:35:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
2054
2055         * sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler
2056         if it is ever live.
2057
2058         * sh.c (sh_handle_interrupt_handler_attribute): Reject interrupt_handler
2059         attribute for SHCOMPACT.
2060
2061         * sh.h (OVERRIDE_OPTIONS): If align_function isn't set, set it
2062         appropriately.
2063         (FUNCTION_BOUNDARY): Specify only the minimum alignment required
2064         by the ABI.
2065
2066         * sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Also handle TImode case.
2067
2068 2002-08-28  Jason Thorpe  <thorpej@wasabisystems.com>
2069
2070         * config.gcc (mips*-*-netbsd*): Set target_cpu_default to
2071         "MASK_GAS|MASK_ABICALLS".
2072         * config/mips/netbsd.h (TARGET_ENDIAN_DEFAULT)
2073         (TARGET_DEFAULT): Remove.
2074         (MACHINE_TYPE): Undefine before defining.
2075         (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Remove.
2076
2077 2002-08-27  Mark Mitchell  <mark@codesourcery.com>
2078
2079         * c-common.c (warn_abi): New variable.
2080         * c-common.h (warn_abi): Likewise.
2081         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi.
2082         (c_common_decode_option): Handle it.
2083         * doc/invoke.texi: Document -Wabi.
2084
2085 Tue Aug 27 23:03:52 2002  Nicola Pero  <n.pero@mi.flashnet.it>
2086
2087         * c-common.c (warn_undeclared_selector): New variable.
2088         * c-common.h (warn_undeclared_selector): Idem.
2089         * c-opts.c (c_common_decode_option): Set warn_undeclared_selector
2090         to on when -Wundeclared-selector is found.
2091         (COMMAND_LINE_OPTIONS): Added -Wundeclared-selector.
2092         * objc/objc-act.c (build_selector_expr): If
2093         warn_undeclared_selector is set, check that the selector has
2094         already been defined, and emit a warning if not.
2095
2096 2002-08-27  Nick Clifton  <nickc@redhat.com>
2097             Catherine Moore  <clm@redhat.com>
2098             Jim Wilson  <wilson@cygnus.com>
2099
2100         * config.gcc: Add v850e-*-* target.
2101         Add --with-cpu= support for v850.
2102         * config/v850/lib1funcs.asm: Add v850e callt functions.
2103         * config/v850/v850.h: Add support for v850e target.
2104         * config/v850/v850.c: Add functions to support v850e target.
2105         * config/v850/v850-protos.h: Add prototypes for new functions in v850.c.
2106         * config/v850/v850.md: Add patterns for v850e instructions.
2107         * doc/invoke.texi: Document new v850e command line switches.
2108
2109 Tue Aug 27 18:30:47 2002  J"orn Rennecke <joern.rennecke@superh.com>
2110                           Aldy Hernandez <aldyh at redhat dot com>
2111
2112         * doc/tm.texi: Applied numerous fixes to the automaton based
2113         scheduler descrition.
2114
2115 Tue Aug 27 19:51:05 CEST 2002  Jan Hubicka  <jh@suse.cz>
2116
2117         * i386.c (classify_argument): Handle variable sized objects.
2118
2119 Tue Aug 27 19:18:16 CEST 2002  Jan Hubicka  <jh@suse.cz>
2120
2121         * i386.c (ix86_expand_int_movcc): Fix RTL sharing problem
2122
2123 Tue Aug 27 18:01:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
2124
2125         * libgcc2.c (__bb_exit_func): Properly write the summarized statistics.
2126
2127 Tue Aug 27 18:00:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2128
2129         * i386.c (classify_argument): Properly compute word size of the analyzed object.
2130
2131 Tue Aug 27 14:39:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
2132
2133         * sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp,
2134         mac_gp ftrc_s and cwb.  Add / Adjust definitions in individual insn
2135         accordingly.
2136         (attribute insn_class): Provide default definitions based on type.
2137         Remove all insn-specific settings.
2138         (various function units): Remove old SH4 scheduling.
2139         (branch_zero, dfp_comp, late_fp_use, any_fp_comp, any_int_load):
2140         New attributes.  Set them where appropriate.
2141         (cpu unit FS): Don't define / use.
2142         (F3, load_store): New cpu units.
2143         (F01): New reservation.
2144         (all insn_reservations): Make dependent on sh4 pipeline model.
2145         Fix latencies.
2146         (nil, reg_mov, freg_mov, sh4_fpul_gp, sh4_call): New insn_reservations.
2147         (sh4_mac_gp, fp_arith_ftrc, arith3, arith3b): Likewise.
2148         (mt insn_reservation): Use type mt_group.
2149         (insn_reservation load_store): Split into sh4_load, sh4_load_si,
2150         sh4_fload and sh4_store.
2151         (insn_reservation branch_zero and branch): Replace with sh4_branch.
2152         (insn_reservation branch_far): Replace with sh4_return.
2153         (insn_reservation return_from_exp): Rename to:
2154         (sh4_return_from_exp).  Change to be just d_lock*5.
2155         (insn_reservation lds_to_pr): Rename to:
2156         (sh4_lds_to_pr).  Change to be just d_lock*2.
2157         (insn_reservation ldsmem_to_pr, sts_from_pr): Change to be just
2158         d_lock*2.
2159         (insn_reservation prload_mem): Rename to:
2160         (sh4_prstore_mem).  Change to d_lock*2,nothing,memory.
2161         (insn_reservation fpscr_store): Rename to:
2162         (fpscr_load).  Change to d_lock,nothing,F1*3.
2163         (insn_reservation fpscr_store_mem): Rename to:
2164         (fpscr_load_mem).  Change to d_lock,nothing,(F1+memory),F1*2.
2165         (insn_reservation multi): Change to
2166         d_lock,(d_lock+f1_1),(f1_1|f1_2)*3,F2.
2167         (insn_reservation fp_arith): Change to issue,F01,F2.
2168         (insn_reservation fp_div: Change to issue,F01+F3,F2+F3,F3*7,F1+F3,F2.
2169         (insn_reservation dp_float): Change to issue,F01,F1+F2,F2.
2170         (insn_reservation fp_double_arith): Change to issue,F01,F1+F2,fpu*4,F2.
2171         (insn_reservation fp_double_cmp): Change to
2172         d_lock,(d_lock+F01),F1+F2,F2.
2173         (insn_reservation dp_div): Change to
2174         issue,F01+F3,F1+F2+F3,F2+F3,F3*16,F1+F3,(fpu+F3)*2,F2.
2175         * sh.c (flow_dependent_p, flow_dependent_p_1): New functions.
2176         (sh_adjust_cost, SHcompact): Differentiate between different
2177         kinds of dependencies.  Drop factor of ten for superscalar.
2178         Use new instruction types.  Add new exception rules.
2179
2180         * sh.md (mulhisi3, umulhisi3: Add a REG_EQUAL note.
2181
2182         * sh.md (mperm_w): Add DONE.
2183
2184 2002-08-27  David Edelsohn  <edelsohn@gnu.org>
2185
2186         * longlong.h: Import current PowerPC defintion from GMP-4.1.
2187
2188         * config/rs6000/rs6000.h (MIN_UNITS_PER_WORD): Add IN_LIBGCC2 case.
2189
2190         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define.
2191
2192 Tue Aug 27 13:53:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2193
2194         * sh.h (MAX_FIXED_MODE_SIZE): Define.
2195
2196 2002-08-27  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
2197
2198         * doc/cpp.texi (Common Predefined Macros): Don't mess with table
2199         delimiter.
2200
2201 2002-08-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2202
2203         * c-common.c (cpp_define_data_format): New function.
2204         (cb_register_builtins): Call it.
2205
2206         * doc/cpp.texi (Common Predefined Macros): Document
2207         __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
2208         __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
2209         __TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__,
2210         __TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__,
2211         __TARGET_USES_VAX_H_FLOAT__.
2212
2213 2002-08-26  Ziemowit Laski <zlaski@apple.com>
2214
2215         * objc/objc-act.c (get_super_receiver): If inside a class method
2216         of a category, cast the receiver to 'id' before accessing the 'isa'
2217         field so that <objc/objc-class.h> is not needed.  For NeXT runtime.
2218
2219 2002-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
2220
2221         * config/s390/s390-protos.h (s390_function_prologue,
2222         s390_function_epilogue): Remove.
2223         config/s390/s390.c (s390_function_prologue, s390_function_epilogue,
2224         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2225
2226         config/s390/s390.c (s390_machine_dependent_recorg): New function.
2227         config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it.
2228         config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it.
2229         config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt
2230         to being called from MACHINE_DEPENDENT_REORG.  Update regs_ever_live.
2231
2232         config/s390/s390.c (s390_frame_info): Inline save_fprs_p.  Always
2233         assume BASE_REGISTER and RETURN_REGNUM need to be saved.
2234         (s390_emit_prologue): Assume RETURN_REGNUM to be saved iff
2235         function is not a leaf function.  Use save_gprs and restore_gprs.
2236         (s390_emit_epilogue): Likewise.
2237         (save_gprs, restore_gprs): New functions.
2238         (struct s390_frame): Remove return_reg_saved_p member.
2239         (save_fprs_p): Remove.
2240         (s390_optimize_prolog): New function.
2241         (s390_legitimate_reload_constant): Remove now unnecessary check.
2242
2243         (s390_function_count): Remove.
2244         (s390_output_symbolic_const): Replace s390_function_count by
2245         current_function_funcdef_no.
2246         (s390_output_constant_pool): Likewise.
2247
2248         (legitimize_pic_address): Use regs_ever_live to track PIC register
2249         instead of current_function_uses_pic_offset_table.
2250         (s390_emit_prologue): Likewise.
2251         config/s390/s390.md ("call", "call_value"): Likewise.
2252
2253 2002-08-26  Neil Booth  <neil@daikokuya.co.uk>
2254
2255         * c-opts.c (find_opt): Don't complain about wrong languages
2256         here.  Return exact matches even for wrong language.
2257         (c_common_decode_option): Complain about wrong languages
2258         here.
2259
2260 2002-08-24  Stuart Hastings  <stuart@apple.com>
2261
2262         * function.h (struct function): Add flag
2263         all_throwers_are_sibcalls.
2264         * except.c (set_nothrow_function_flags): Replaces
2265         nothrow_function_p. Set new flag.
2266         * except.h (set_nothrow_function_flags): Replaces
2267         nothrow_function_p.
2268         * dwarf2out.c (struct dw_fde_struct): Add flag
2269         all_throwers_are_sibcalls.
2270         (output_call_frame_info): Test it.
2271         (dwarf2out_begin_prologue) Propagate it from cfun to
2272         dw_fde_struct.
2273         * toplev.c (rest_of_compilation): Update calls to
2274         nothrow_function_p.
2275
2276 2002-08-23  Zack Weinberg  <zack@codesourcery.com>
2277
2278         * ggc-page.c (compute_inverse): Short circuit calculation for
2279         object sizes larger than half a page.
2280
2281 2002-08-23  David Edelsohn  <edelsohn@gnu.org>
2282
2283         * config/rs6000/rs6000.c (rs6000_elf_select_section): Treat
2284         DEFAULT_ABI == ABI_AIX like PIC.  Test PIC & reloc for readonly
2285         default.
2286         (rs6000_elf_unique_section): Likewise.
2287
2288 2002-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2289
2290         * ns32k.c (ns32k_globalize_label): Delete.
2291         * ns32k.h (ASM_OUTPUT_LABEL, TARGET_ASM_GLOBALIZE_LABEL): Delete.
2292
2293 2002-08-23  Alan Modra  <amodra@bigpond.net.au>
2294
2295         * config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns
2296         for loading delta with num_insns_constant_wide.  Calculate
2297         delta_low, delta_high without using a conditional.
2298
2299 2002-08-22  Jason Merrill  <jason@redhat.com>
2300
2301         * c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
2302         * c-common.def: Adjust.
2303         * c-dump.c (c_dump_tree): Adjust.
2304         * c-semantics.c (genrtl_return_stmt): Adjust.
2305         * c-pretty-print.c (pp_c_statement): Adjust.
2306         * tree-inline.c (copy_body_r): Adjust.
2307
2308 2002-08-22  Zack Weinberg  <zack@codesourcery.com>
2309
2310         * ggc-page.c: Avoid division in ggc_set_mark.
2311         (DIV_MULT, DIV_SHIFT, OFFSET_TO_BIT, inverse_table,
2312         compute_inverse): New.
2313         (ggc_set_mark, ggc_marked_p): Use OFFSET_TO_BIT.
2314         (init_ggc): Initialize inverse_table.
2315
2316 2002-08-22  Tom Tromey  <tromey@redhat.com>
2317
2318         * doc/install.texi (Configuration): Document --datadir.
2319
2320 2002-08-22  Alexandre Oliva  <aoliva@redhat.com>
2321
2322         * Makefile.in ($(BUILD_PREFIX_1)varray.o): Depend on $(GGC_H).
2323
2324 2002-08-22  Hans-Peter Nilsson  <hp@bitrange.com>
2325
2326         * gengtype-lex.l (ID): Allow underscore as first character.
2327
2328 2002-08-21  David Edelsohn  <edelsohn@gnu.org>
2329
2330         * config/rs6000/rs6000.c (rs6000_xcoff_asm_globalize_label): New
2331         function.
2332         (rs6000_xcoff_asm_named_section): Rename.
2333         * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
2334
2335 2002-08-21  Tom Tromey  <tromey@redhat.com>
2336
2337         For PR java/6005 and PR java/7611:
2338         * fold-const.c (fold_truthop): Use can_use_bit_fields_p.
2339         (fold): Likewise.
2340         * langhooks.c (lhd_can_use_bit_fields_p): New function.
2341         * langhooks-def.h (lhd_can_use_bit_fields_p): Declare.
2342         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): New define.
2343         (LANG_HOOKS_INITIALIZER): Use it.
2344         * langhooks.h (struct lang_hooks) [can_use_bit_fields_p]: New
2345         field.
2346
2347 2002-08-21  Stan Shebs  <shebs@apple.com>
2348
2349         * tree.c (finish_vector_type): Fix a typo in a comment.
2350         * Makefile.in: Fix "the the" stutters in comments.
2351         * genautomata.c: Ditto.
2352         * ifcvt.c: Ditto.
2353         * regrename.c: Ditto.
2354         * config/alpha/alpha.c: Ditto.
2355         * config/alpha/vms-crt0-64.c: Ditto.
2356         * config/alpha/vms-crt0.c: Ditto.
2357         * config/alpha/vms-psxcrt0-64.c: Ditto.
2358         * config/alpha/vms-psxcrt0.c: Ditto.
2359         * config/d30v/d30v.h: Ditto.
2360         * config/fr30/fr30.h: Ditto.
2361         * config/rs6000/rs6000.c: Ditto.
2362         * config/stormy16/stormy16.h: Ditto.
2363         * doc/md.texi: Ditto.
2364
2365 2002-08-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2366
2367         * cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value.
2368
2369 2002-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2370
2371         * c-decl.c (grokdeclarator): Make invalid combinations with long,
2372         short, signed or unsigned into hard errors.  Fixes PR c/4319.
2373         Also make duplicate modifiers such as "short short" into hard
2374         errors.
2375
2376 2002-08-21  Andrew Pinski <pinskia@physics.uc.edu>
2377             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2378
2379         * doc/tm.texi (TARGET_ASM_GLOBALIZE_LABEL): Move '@end deftypefn'
2380         to the actual end.  Add '@end table' and '@table @code'.
2381
2382 2002-08-20  Geoffrey Keating  <geoffk@redhat.com>
2383
2384         * doc/tm.texi (Label Output): Add missing '@end deftypefn'.
2385
2386         * unroll.c (biv_total_increment): Don't try to compute the total
2387         increment for FP BIVs.
2388
2389 2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2390
2391         * alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk.
2392         * alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL,
2393         ASM_OUTPUT_ALIGNED_BSS): Use target hook.
2394         * alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise.
2395         * alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete.
2396         * arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise.
2397         (GLOBAL_ASM_OP): Define.
2398         * arm.c (aof_globalize_label): New function.
2399         (TARGET_ASM_GLOBALIZE_LABEL): Define for AOF.
2400         * arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
2401         * c4x.c (c4x_globalize_label): New function.
2402         (TARGET_ASM_GLOBALIZE_LABEL): Define for c4x.
2403         * c4x.h (ASM_GLOBALIZE_LABEL): Delete.
2404         (GLOBAL_ASM_OP): Define.
2405         * cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
2406         * darwin-protos.h (darwin_globalize_label): Declare.
2407         * darwin.c (darwin_globalize_label): New function.
2408         * darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook.
2409         (ASM_GLOBALIZE_LABEL): Delete.
2410         (GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define.
2411         * dsp16xx.c (asm_output_common): Use target hook.
2412         * elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
2413         * frv.h (ASM_GLOBALIZE_LABEL): Delete.
2414         (GLOBAL_ASM_OP): Define.
2415         * i370.c (i370_globalize_label): New function.
2416         (TARGET_ASM_GLOBALIZE_LABEL): Define for i370.
2417         * i370.h (ASM_GLOBALIZE_LABEL): Delete.
2418         * i386.c (ix86_asm_file_end): Use target hook.
2419         * i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef.
2420         (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
2421         * ia64.c (ia64_asm_output_external): Likewise.
2422         * ia64/sysv4.h: Update comment.
2423         * m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
2424         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2425         * mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook.
2426         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2427         * mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook.
2428         * mmix-protos.h (mmix_asm_globalize_label): Delete.
2429         * mmix.c (mmix_asm_globalize_label): Likewise.
2430         * mmix.h (ASM_GLOBALIZE_LABEL): Likewise.
2431         (GLOBAL_ASM_OP): Define.
2432         * ns32k.c (ns32k_globalize_label): New function.
2433         * ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k.
2434         (ASM_GLOBALIZE_LABEL): Delete.
2435         * pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef.
2436         (TARGET_ASM_GLOBALIZE_LABEL): Undefine.
2437         * pa.c (pa_globalize_label): New function.
2438         * pa.h (ASM_GLOBALIZE_LABEL): Delete.
2439         (TARGET_ASM_GLOBALIZE_LABEL): Define for pa.
2440         * rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete.
2441         (GLOBAL_ASM_OP): Define.
2442         (TARGET_ASM_GLOBALIZE_LABEL): Undef.
2443         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
2444         * rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete.
2445         (GLOBAL_ASM_OP): Define.
2446         * v850.c (v850_output_aligned_bss): Use target hook.
2447         * vax.c (vms_globalize_label): New function.
2448         (TARGET_ASM_GLOBALIZE_LABEL): Define for vms.
2449         * vax/vms.h (ASM_GLOBALIZE_LABEL): Delete.
2450         (GLOBAL_ASM_OP): Define.
2451         * defaults.h (ASM_GLOBALIZE_LABEL): Delete.
2452         * doc/tm.texi: Update docs.
2453         * dwarf2out.c (default_eh_frame_section, output_die_symbol): Use
2454         target hook.
2455         * final.c (output_alternate_entry_point): Likewise.
2456         * hooks.c (hook_FILEptr_constcharptr_void): New function.
2457         * hooks.h (hook_FILEptr_constcharptr_void): Declare.
2458         * output.h (assemble_global): Delete.
2459         (default_globalize_label): Declare.
2460         * system.h (ASM_GLOBALIZE_LABEL): Poison.
2461         * target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
2462         (TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL.
2463         * target.h (gcc_target): Add globalize_label member.
2464         * varasm.c (asm_output_bss, asm_output_aligned_bss,
2465         globalize_decl): Use target hook.
2466         (assemble_global): Delete.
2467         (default_globalize_label): New function.
2468
2469 2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2470
2471         * dsp16xx.h (dsp16xx_umulhi3_libcall): Delete.
2472
2473 2002-08-20  Devang Patel  <dpatel@apple.com>
2474         * tree.c (get_qualified_type): Add TYPE_CONTEXT check.
2475
2476 2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2477
2478         * arc.c (output_shift): Use stdio instead of asm_fprintf.
2479         * arm.c (thumb_output_function_prologue): Likewise.
2480         * avr.c (print_operand): Likewise.
2481         * c4x.c (c4x_print_operand): Likewise.
2482         * c4x.h (ASM_OUTPUT_INTERNAL_LABEL, TRAMPOLINE_TEMPLATE,
2483         ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
2484         * cris.c (cris_target_asm_function_prologue,
2485         cris_asm_output_mi_thunk): Likewise.
2486         * h8300.c (print_operand): Likewise.
2487         * h8300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2488         * ip2k.c (print_operand): Likewise.  Fix format specifier.
2489         * m68hc11.c (asm_print_register, print_operand,
2490         print_operand_address): Use stdio instead of asm_fprintf.
2491         (print_operand_address): Fix format specifier.
2492         * m68hc11.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT,
2493         ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Use stdio instead of
2494         asm_fprintf.
2495         * m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2496         * m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2497         * m68k.c (m68k_output_function_prologue,
2498         m68k_output_function_epilogue, print_operand): Likewise.
2499         * mmix.c (mmix_asm_output_mi_thunk, mmix_asm_weaken_label):
2500         Likewise.  Fix format specifier.
2501         * mn10200.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2502         * mn10300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2503         * v850.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2504
2505 2002-08-15  Eric Christopher  <echristo@redhat.com>
2506             Jeff Knaggs  <jknaggs@redhat.com>
2507
2508         * config.gcc (mipsisa64sr71k-elf): New target.
2509         * config/mips/sr71k.md: New file.
2510         * config/mips/mips.md: Use it.
2511         (rot*): Add sr71k specifics.
2512         * config/mips/t-sr71k: New file.
2513         * config/mips/mips.h (sr71k): New cpu.
2514         (TARGET_SR71K): Use it.
2515         (TUNE_SR71K): Ditto.
2516         (GENERATE_BRANCHLIKELY): Ditto.
2517         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC,
2518         ISA_HAS_ROTR_SIISA_HAS_ROTR_DI): Ditto.
2519         * config/mips/mips.c (sr71k): New cpu.
2520         (mips_use_dfa_pipeline_interface): Use.
2521
2522 2002-08-15  Eric Christopher  <echristo@redhat.com>
2523             Richard Sandiford <rsandifo@redhat.com>
2524             Aldy Hernandez  <aldyh@redhat.com>
2525             Graham Stott    <grahams@redhat.com>
2526             Michael Meissner  <meissner@redhat.com>
2527             Gavin Romig-Koch  <gavin@redhat.com>
2528             Ken Raeburn  <raeburn@cygnus.com>
2529             Alexandre Oliva <aoliva@redhat.com>
2530
2531         * config.gcc (mips64vr-elf): New target.
2532         * config/mips/5400.md: New file.
2533         * config/mips/5500.md: Ditto.
2534         * config/mips/mips.md: Use them.
2535         (frsqrt): New.
2536         * config/mips/mips.c (vr4111, vr4121, vr4320, vr5400, vr5500): New
2537         cpus.
2538         (mips_issue_rate): Use them.
2539         (mips_use_dfa_pipeline_interface): New function. Use for 5400 and 5500.
2540         (TARGET_SCHEDUSE_DFA_PIPELINE_INTERFACE): Define. Use above.
2541         * config/mips/mips.h (vr4111, vr4121, vr4320, vr5400, vr5500): New
2542         cpus.
2543         (TARGET_MIPSx): Use them.
2544         (TUNE_MIPSx): Ditto.
2545         (GETNATE_MULT3_SI): Ditto.
2546         (ISA_HAS_BRANCHLIKELY): Ditto.
2547         (ISA_HAS_CONDMOVE): Ditto.
2548         (ISA_HAS_NMADD_NMSUB): Ditto.
2549         (ISA_HAS_MULHI): New. Ditto.
2550         (ISA_HAS_MULS): Ditto.
2551         (ISA_HAS_MSAC): Ditto.
2552         (ISA_HAS_MACC): Ditto.
2553         (ISA_HAS_ROTR_SI): Ditto.
2554         (ISA_HAS_ROTR_DI): Ditto.
2555         (RTX_COSTS): Use.
2556
2557 2002-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2558
2559         * cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal
2560         at head.
2561         (remove_dup_nonsys_dirs): New function.
2562         (remove_dup_dirs): Change argument head to head_ptr.  Remove warnings.
2563         (merge_include_chains): Remove non-system include directories from
2564         quote and bracket include chains when they duplicate equivalent system
2565         directories.
2566         * doc/cpp.texi (-I): Update.
2567         * doc/cppopts.texi (-I): Update.
2568         * doc/install.texi (--with-local-prefix): Further document usage of
2569         this option.
2570         * doc/invoke.texi (-I): Update.
2571
2572 2002-08-20  Richard Henderson  <rth@redhat.com>
2573
2574         * expr.c (TARGET_MEM_FUNCTIONS): Transform to boolean.
2575         (emit_block_move): Split out subroutines.
2576         (emit_block_move_via_movstr): New.
2577         (emit_block_move_via_libcall): New.  Emit bcopy via normal call also.
2578         (emit_block_move_libcall_fn): New.  Construct function prototype for
2579         bcopy as well.
2580         (clear_storage): Split out subroutines.
2581         (clear_storage_via_clrstr): New.
2582         (clear_storage_via_libcall): New. Emit bzero as a normal call also.
2583         (clear_storage_libcall_fn): New.  Construct function prototype for
2584         bzero as well.
2585         (emit_push_insn): Use emit_block_move.
2586         (expand_assignment): Booleanize TARGET_MEM_FUNCTIONS.
2587         (store_constructor): Likewise.
2588
2589 2002-08-19  Ziemowit Laski  <zlaski@apple.com>
2590
2591         * objc/objc-act.c (building_objc_message_expr): Rename to
2592         current_objc_message_selector.
2593
2594 2002-08-19  Ziemowit Laski  <zlaski@apple.com>
2595
2596         * objc/objc-act.c (build_ivar_chain): Remove.
2597         (objc_copy_list): Likewise.
2598         (get_class_ivars): Inline call to removed build_ivar_chain
2599         function.  Save off a clean copy of ivars in the CLASS_OWN_IVARS
2600         slot; use that slot (rather than CLASS_IVARS) when accessing
2601         ivars for base classes.  Call copy_list and chainon instead of
2602         objc_copy_list.
2603         (build_private_template): Call get_class_ivars instead of
2604         build_ivar_chain.
2605         (start_class): Allocate room for the CLASS_OWN_IVARS slot.
2606         (continue_class): Call get_class_ivars instead of
2607         build_ivar_chain.
2608         (encode_field_decl): Check for DECL_BIT_FIELD_TYPE instead
2609         of DECL_BIT_FIELD (which may have been cleared).
2610         * objc/objc-act.h (CLASS_OWN_IVARS): New accessor macro.
2611
2612 2002-08-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2613
2614         * genautomata.c (output_translate_vect, output_state_ainsn_table,
2615         output_min_issue_delay_table): Mark variable with ATTRIBUTE_UNUSED
2616         in output file.
2617         (output_internal_min_issue_delay_func): Initialize variable in
2618         output file.
2619
2620 2002-08-19  Alexandre Oliva  <aoliva@redhat.com>
2621
2622         * Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER.
2623         (stage2_build, stage3_build, stage4_build): Likewise, to CC.
2624
2625 2002-08-19  Geoffrey Keating  <geoffk@redhat.com>
2626             Steve Ellcey  <sje@cup.hp.com>
2627
2628         * machmode.h (SCALAR_INT_MODE_P): New macro to test for
2629         scaler integer mode (MODE_INT or MODE_PARTIAL_INT).
2630         * explow.c (trunc_int_for_mode): Abort when the mode is not
2631         a scaler integer mode.
2632         * combine.c (expand_compound_operation): Don't expand Vector
2633         or Complex modes into shifts.
2634         (expand_field_assignment): Don't do bitwise arithmatic and
2635         shifts on Vector or Complex modes.
2636         (simplify_comparison): Don't call trunc_int_for_mode
2637         for VOIDmode.
2638         * recog.c (general_operand): Likewise.
2639         (immediate_operand): Likewise.
2640         (nonmemory_operand): Likewise.
2641
2642 2002-08-19  David Edelsohn  <edelsohn@gnu.org>
2643
2644         * config/rs6000/rs6000.c (rs6000_emit_set_const): Inline
2645         multi-instruction SImode constant.  Add REG_EQUAL note.
2646         * config/rs6000/rs6000.md (movsi splitter): Use
2647         rs6000_emit_set_const.
2648
2649 2002-08-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2650
2651         * tree-inline.c (initialize_inlined_parameters): Wrap variable in
2652         the macro test controlling its use.
2653
2654 2002-08-18  H.J. Lu  (hjl@gnu.org)
2655
2656         * config.gcc (*-*-linux*): Set extra_parts="crtbegin.o
2657         crtbeginS.o crtbeginT.o crtend.o crtendS.o", gas=yes and
2658         gnu_ld=yes.
2659         (alpha*-*-linux*, cris-*-linux*, i370-*-linux*,
2660         i[34567]86-*-linux*, x86_64-*-linux*, mips*-*-linux*,
2661         s390-*-linux*, s390x-*-linux*, sparc-*-linux*, sparc64-*-linux*,
2662         xtensa-*-linux*): Remove setting extra_parts, gas, and gnu_ld
2663         here.
2664         (cris-*-linux*): Remove setting thread_file here.
2665
2666 2002-08-18  Neil Booth  <neil@daikokuya.co.uk>
2667
2668         PR preprocessor/7602
2669         * cppinit.c (path_include): Treat the system environment
2670         variables as being cxx_aware.
2671
2672 2002-08-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2673
2674         * c-decl.c (flexible_array_type_p): New function.
2675         (grokdeclarator, finish_struct): Use it.
2676         * doc/extend.texi: Document constraints on use of structures with
2677         flexible array members.
2678
2679 2002-08-17  Richard Sandiford  <rsandifo@redhat.com>
2680
2681         * config/mips/t-coff, config/mips/t-elf, config/mips/t-isa3264,
2682         config/mips/t-r3900 (MULTILIB_MATCHES): Define.
2683         * config/mips/mips.h (ASM_SPEC): Use %(endian_spec).
2684
2685 2002-08-16  Stan Shebs  <shebs@apple.com>
2686
2687         * c-common.c (cb_register_builds): Define __NEXT_RUNTIME__
2688         for ObjC with -fnext-runtime.
2689         * doc/cpp.texi: Document it.
2690
2691 2002-08-16  Janis Johnson  <janis187@us.ibm.com>
2692
2693         * doc/install.texi (Final installation): Replace links to individual
2694         build status pages with a link to a common page that lists them all.
2695
2696 2002-08-16  Sylvain Pion <pion@cs.nyu.edu>
2697
2698         * doc/invoke.texi: Fix typo.
2699
2700 2002-08-16  David Edelsohn  <edelsohn@gnu.org>
2701
2702         * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning.
2703
2704 2002-08-16  Andrew Haley  <aph@redhat.com>
2705
2706         * tree-inline.c: Add includes for Java inliner.
2707         (remap_decl): Don't handle anonymous types for Java.
2708         (remap_block): Add handling for Java trees.
2709         (copy_scope_stmt): Conditionalize for non-Java use only.
2710         (copy_body_r): Handle Java trees.  Add handling for
2711         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks.
2712         (initialize_inlined_parameters):  Handle Java trees.
2713         (declare_return_variable): Likewise.
2714         (expand_call_inline): Handle Java trees.
2715         (walk_tree): Likewise.
2716         (copy_tree_r): Don't handle SCOPE_STMTs for Java.
2717         (add_stmt_to_compound): New function.
2718
2719 2002-08-15  Richard Henderson  <rth@redhat.com>
2720
2721         * Makefile.in (LOOSE_WARN): Remove -fno-common.
2722         (NOCOMMON_FLAG): New substitution point.
2723         (GCC_WARN_CFLAGS): Include it.
2724         * configure.in (ac_checking): Set nocommon_flag.
2725         (nocommon_flag): New substitution point.
2726
2727 2002-08-15  Alexandre Oliva  <aoliva@redhat.com>
2728
2729         * c-tree.h (skip_evaluation): Move declaration...
2730         * c-common.h: ... here.
2731         * c-typeck.c (build_external_ref): Don't assemble_external nor
2732         mark a tree as used if skip_evaluation is set.
2733         * c-parse.in (typeof): New non-terminal to set skip_evaluation
2734         around TYPEOF.
2735         (typespec_nonreserved_nonattr): Use it.
2736
2737 2002-08-15  Douglas B Rupp  <rupp@gnat.com>
2738
2739         * dbxout.c (dbx_debug_hooks): Update end_prologue, end_epilogue.
2740         (xcoff_debug_hooks): Update end_prologue.
2741         * debug.c (do_nothing_debug_hooks): Update end_prologue, end_epilogue.
2742         * debug.h (end_prologue): Add file arg.
2743         (end_epilogue): Add line and file args.
2744         (dwarf2out_end_epilogue): Add line and file args.
2745         (vmsdbgout_after_prologue): Remove.
2746         * dwarf2out.c (dwarf2out_end_epilogue): Add line and file args.
2747         (dwarf2_debug_hooks): Update end_prologue.
2748         * dwarfout.c (dwarfout_end_epilogue): Add line and file args.
2749         (dwarfout_end_prologue): Add file arg.
2750         * final.c (vmsdbgout_after_prologue): Remove
2751         (final_end_function): Update end_epilogue call.
2752         (final_scan_insn): Update end_prologue call.
2753         * sdbout.c (sdbout_end_epilogue): Add line and file args.
2754         (sdbout_end_prologue): Add file arg.
2755         (sdb_debug_hooks): Update end_prologue.
2756         (sdb_begin_prologue): Update sdbout_end_prologue call.
2757         * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_end_prologue,
2758         vmsdbgout_end_function.
2759         (vmsdbgout_end_prologue): New function renamed from
2760         vmsdbgout_after_prologue. Call vmsdbgout_source_line.
2761         (vmsdbgout_end_function): New function.
2762         (vmsdbgout_end_epilogue): Add line and file args. Call
2763         vmsdbgout_source_line.
2764         (write_pclines): Write only valid line numbers.
2765         (write_srccorr): Don't write source correlation records if 0 lines.
2766         * xcoffout.c (xcoffout_end_epilogue): Add line and file args.
2767
2768 2002-08-15  Steve Ellcey  <sje@cup.hp.com>
2769
2770         * gcc/unwind.h (_Unwind_Ptr): Make 64 bits on IA64 HP-UX.
2771         (_Unwind_Internal_Ptr): 32 bit version for use in
2772         read_encoded_value_with_base.
2773         * gcc/unwind-pe.h (read_encoded_value_with_base): Use
2774         _Unwind_Internal_Ptr instead of _Unwind_Ptr in order to get the
2775         right size.
2776
2777 2002-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2778
2779         * loop.c (scan_loop, move_movables, count_one_set): Cast to avoid
2780         signed/unsigned warnings.
2781
2782         * regclass.c (init_reg_sets_1, choose_hard_reg_mode,
2783         record_reg_classes): Likewise.
2784
2785         * reload.c (reload_inner_reg_of_subreg, push_reload,
2786         find_reloads_address_1): Likewise.
2787
2788 2002-08-15  David Edelsohn  <edelsohn@gnu.org>
2789
2790         * rs6000.c (output_mi_thunk): Return to function section on
2791         TARGET_ELF.
2792
2793         * rs6000-c.c (rs6000_cpu_cpp_builtins): Define __PPC405__ if PPC405.
2794
2795 2002-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
2796
2797         * config/s390/s390.c (legitimize_address): Optimize loading
2798         of large displacements.
2799
2800 2002-08-14  Douglas B Rupp  <rupp@gnat.com>
2801
2802         * config/alpha/alpha-protos.h: Update.
2803
2804         * config/alpha/alpha.c: (LINKAGE_SYMBOL_REF_P): New macro.
2805         (alpha_legitimate_address_p): Test LINKAGE_SYMBOL_REF_P.
2806         (alpha_linkage_symbol_p): New static function.
2807         (print_operand_address): Print linkage operand.
2808
2809         (alpha_funcs_num, alpha_funcs_tree, alpha_links_tree): New static
2810         variables.
2811         (reloc_kind): New enum.
2812         (struct alpha_funcs): New struct.
2813         (struct alpha_links): Add reloc_kind field. Rename links_kind field.
2814
2815         (alpha_need_linkage): Rewrite.
2816         (alpha_use_linkage): New global function.
2817         (alpha_write_linkage): Rewrite and make static.
2818         (alpha_write_one_linkage): Rewrite
2819
2820         (alpha_start_function): Remove procedure descriptor output.
2821         (alpha_end_function): Write linkages at end of each function.
2822
2823         * config/alpha/alpha.md (call_vms, call_value_vms): Rewrite.
2824         (call_vms_1, call_value_vms_1): Rewrite.
2825
2826         * config/alpha/vms.h (ASM_FILE_END): Remove.
2827
2828 2002-08-14  Richard Henderson  <rth@redhat.com>
2829
2830         * ggc-page.c (RTL_SIZE): New.
2831         (extra_order_size_table): Add specializations for 2 and 10 rtl slots.
2832         * rtl.def (BARRIER, NOTE): Pad to 9 slots.
2833
2834 2002-08-14  Richard Henderson  <rth@redhat.com>
2835
2836         * calls.c: Include target.h.
2837         * Makefile.in (calls.o): Update.
2838
2839         * config/alpha/alpha.c (alpha_end_function): Use targetm.binds_local_p.
2840         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
2841
2842 2002-08-14  Richard Henderson  <rth@redhat.com>
2843
2844         * Makefile.in (LOOSE_WARN): Add -fno-common.
2845         * c-common.h (constant_string_class_name): Add missing extern.
2846
2847 2002-08-15  Neil Booth  <neil@daikokuya.co.uk>
2848
2849         PR preprocessor/7358
2850         * c-opts.c (check_deps_environment_vars): Ignore main file
2851         for SUNPRO_DEPENDENCIES.
2852         * cppfiles.c (stack_include_file): Ignore main file if
2853         appropriate.
2854         * cpplib.h (struct cpp_options): New member in deps.
2855         * doc/cppenv.texi: Update.
2856
2857 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
2858
2859         PR preprocessor/7526
2860         * cpplib.c (run_directive): Kludge so _Pragma dependency works.
2861
2862 2002-08-14  Nathan Sidwell  <nathan@codesourcery.com>
2863
2864         * doc/invoke.texi (-a): Remove documentation.
2865         (-fprofile-arcs): Remove reference to -a, -ax options.
2866         * doc/gcov.texi (Gcov Data Files): Data might be merged.
2867
2868 2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>
2869
2870         Fix PR/7566
2871         * c-semantics.c (genrtl_case_label): Don't (mis)use
2872         warning_with_decl.
2873
2874 2002-08-14  Dale Johannesen  <dalej@apple.com>
2875
2876         * explow.c (emit_stack_restore):  Emit memory clobbers
2877         preceding the stack pop, to prevent the scheduler from
2878         moving refs to variable arrays below this pop.
2879         * reload1.c (reload):  Preserve these clobbers for sched2.
2880         * doc/rtl.texi:  Document clobber (mem:BLK (scratch)).
2881
2882 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
2883
2884         * c-opts.c (c_common_post_options): Correct test.
2885
2886 2002-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2887
2888         * m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Fix incorrect argument
2889         order in call to fprintf.
2890
2891 2002-08-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2892
2893         * config/sparc/sol2.h (SUBTARGET_EXTRA_SPECS): Define.
2894
2895 2002-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
2896
2897         * reload.c (find_reloads): Handle constraint letters marked by
2898         EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT.
2899         (alternative_allows_memconst): Likewise.
2900         * reload1.c (maybe_fix_stack_asms): Likewise.
2901         * recog.c (asm_operand_ok, preprocess_constraints,
2902         constrain_operands): Likewise.
2903         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
2904         * local-alloc.c (block_alloc, requires_inout): Likewise.
2905         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2906
2907         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default.
2908         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
2909         * doc/tm.texi: Document these two new target macros.
2910
2911         * config/s390/s390.c (s390_expand_plus_operand): Accept already
2912         valid operands.
2913         (q_constraint): New function.
2914         config/s390/s390-protos.h (q_constraint): Declare it.
2915         config/s390/s390.h (EXTRA_CONSTRAINT): Use it.
2916         (EXTRA_MEMORY_CONSTRAINT): New macro.
2917
2918         * config/s390/s390.md: Throughout the machine description,
2919         replace all instances of the constraint combinations 'Qo'
2920         or 'oQ' with simply 'Q'.
2921
2922 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
2923
2924         * config/m68hc11/m68hc11.h (LINK_SPEC): Support -mrelax.
2925         * config/m68hc11/t-m68hc11-gas (LIBGCC2_DEBUG_CFLAGS): Can use -g now.
2926         (LIBGCC2_CFLAGS): Compile with -mrelax.
2927
2928 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
2929
2930         * doc/invoke.texi: Document -minmax for 68HC12.
2931
2932         * config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX.
2933         ("uminqi3"): Likewise.
2934         ("uminhi3", "umaxhi3"): Likewise.
2935
2936         * config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define.
2937         (TARGET_MIN_MAX): Define.
2938         (TARGET_SWITCHES): New option -minmax/-mnominmax.
2939
2940 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
2941
2942         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline.
2943         (MULTILIB_OPTIONS): Must also generate for -mlong-calls.
2944
2945         * config/m68hc11/larith.asm: Put a mode for ELF ABI flags.
2946         (ret, declare, farsym): New gas macros.
2947         (__premain, exit, abort, _cleanup, memcpy, memset, ___adddi3,
2948         ___subdi3, ___notdi2, __mulhi32, __mulsi3): Use them to use 'rtc'
2949         and declare the symbol far when compiled with -mlong-calls.
2950         (__far_trampoline): New for 68HC12 trampoline code to invoke a
2951         far handler using jsr/bsr.
2952
2953         * config/m68hc11/m68hc11-crt0.S: Put a mode for ELF ABI flags.
2954         (jsr): New macro to transform a 'jsr' into a 'call'.
2955
2956 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
2957
2958         * doc/invoke.texi: Document -mlong-calls for 68HC12.
2959
2960         * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__USE_RTC__ when
2961         -mlong-calls is specified.
2962         (ASM_DECLARE_FUNCTION_NAME): Define to generate .far and .interrupt
2963         assembler directives.
2964         (TARGET_LONG_CALL, MASK_LONG_CALL): Declare.
2965         (TARGET_SWITCHES): Add -mlong-calls options.
2966         (current_function_far): Declare.
2967
2968         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): Take
2969         into account the page register saved on the stack.
2970         (m68hc11_override_options): Take into account -mlong-calls option.
2971         (m68hc11_asm_file_start): Put a mode for the ELF flags ABI.
2972
2973         * config/m68hc11/m68hc11.md ("*return_32bit"): Return rtc
2974         if the function is going to be in 68HC12 banked memory (-mlong-calls).
2975         ("*return_16bit"): Likewise.
2976         ("*return_void"): Likewise.
2977         ("call", "call_value"): Use call for a far function call.
2978
2979 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
2980
2981         * toplev.c (parse_options_and_default_flags): Don't call
2982         post_options here.
2983         (general_init): Initialize GC, pools and tree hash here,
2984         instead of lang_independent_init.
2985         (lang_independent_init): Rename backend_init.
2986         (do_compile): Call post_options hook; exit early if there
2987         have been errors after switch processing.
2988         (toplev_main): Update.
2989
2990 2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>
2991
2992         * c-pretty-print.h: Guard against multiple inclusion.
2993         Robustify macros.
2994         (pp_c_attributes): Declare.
2995         * c-pretty-print.c (pp_c_attributes): New function.
2996
2997 2002-08-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2998
2999         * m68k.c (m68k_output_function_prologue,
3000         m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA
3001         and NEWS/MOTOROLA.
3002         * genattrtab.c: Remove dpx2 comment.
3003         * libgcc2.c (__enable_execute_stack): Delete versions for
3004         NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and
3005         sony_news/SYSTYPE_BSD.
3006         * longlong.h: Delete code for __a29k__, _AM29K, __clipper__,
3007         __gmicro__, __i860__, __NeXT__ and __pyr__.
3008         * rtl.h: Remove convex comment.
3009         * varasm.c: Likewise.
3010
3011 2002-08-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3012
3013         * c-opts.c (lang_flags): Const-ify.
3014         * ra-build.c (undef_table): Likewise.
3015         * ra.c (eliminables): Likewise.
3016
3017 2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>
3018
3019         * tree.h: Guard against multiple inclusion.
3020
3021 2002-08-14  Hans-Peter Nilsson  <hp@bitrange.com>
3022
3023         * reload1.c (reload_cse_simplify): Before checking
3024         REG_FUNCTION_VALUE_P, check REG_P.
3025
3026 2002-08-13  Geoffrey Keating  <geoffk@redhat.com>
3027
3028         * Makefile.in (attribs.o): Remove $(OBSTACK_H) dependency.
3029
3030 2002-08-13  Neil Booth  <neil@daikokuya.co.uk>
3031
3032         * c-opts.c (c_common_init_options): Extra braces needed.
3033
3034 Tue Aug 13 17:40:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
3035
3036         * sh.c (sh_init_builtins): Add PARAMS to declaration.
3037         (sh_media_init_builtins, sh_expand_builtin): Likewise.
3038         (sh_expand_unop_v2sf): Use PARAMS for variable declaration.
3039         (sh_expand_binop_v2sf): Likewise.
3040         * sh-protos.h (sh_expand_unop_v2sf): Add PARAMS to declaration.
3041         (sh_expand_binop_v2sf, sh_cfun_interrupt_handler_p): Likewise.
3042         (sh_initialize_trampoline): Likewise.
3043
3044 2002-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
3045
3046         * s390-modes.def [CCL1, CCL2, CCT1, CCT2, CCT3, CCUR, CCSR]: Declare
3047         new condition code modes.
3048         s390.c (s390_match_ccmode_set): Handle those new CC modes.
3049         (s390_select_ccmode): Likewise.
3050         (s390_branch_condition_mask): Likewise.
3051
3052         * s390-protos.h (s390_tm_ccmode): Declare.
3053         s390.c (s390_tm_ccmode): New function.
3054         (s390_match_ccmode): Allow VOIDmode as REQ_MODE.
3055
3056         * s390.md ("*cmpdi_tm2"): Rename to "*tmdi_ext".
3057         ("*cmpsi_tm2"): Rename to "*tmsi_ext".
3058         ("*cmpqi_tm2"): Rename to "*tmqi_ext".
3059
3060         ("*cmpdi_tm_reg", "*cmpdi_tm_mem", "*cmpsi_tm_reg", "*cmpsi_tm_mem",
3061         "*cmphi_tm_sub","*cmphi_cct_0",  "*cmpqi_tm", "*cmpqi_tm_sub",
3062         "*cmpqi_cct_0", "*tm_0"): Remove, replace by ...
3063         ("*tmdi_reg", "*tmsi_reg", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem",
3064         "*tmqi_mem", "*tmhi_full", "*tmqi_full"): ... these new patterns.
3065
3066         ("*ltgr", "*cmpdi_ccs_0_64", "*cmpdi_ccs_0_31", "*ltr", "*icm15",
3067         "*icm15_cconly", "*cmpsi_ccs_0", "*icm3", "*cmphi_ccs_0", "*icm1",
3068         "*cmpqi_ccs_0"): Remove, replace by ...
3069         ("*tstdi_sign", "*tstdi", "*tstdi_cconly", "*tstdi_cconly_31",
3070         "*tstsi", "*tstsi_cconly", "*tstsi_cconly2", "*tsthi", "*tsthi_cconly",
3071         "*tstqi", "*tstqi_cconly"): ... these new patterns.
3072
3073         ("*cmpsidi_ccs"): Remove, replace by ...
3074         ("*cmpsi_ccs_sign"): ... this new pattern.
3075         ("*cmpdi_ccs_sign", "*cmpdi_ccu_zero"): New patterns.
3076
3077         ("*cmpqi_ccu_0", "*cmpqi_ccu_immed"): Remove, replace by ...
3078         ("*cli"): ... this new pattern.
3079
3080         ("*adddi3_sign", "*adddi3_zero_cc", "*adddi3_zero_cconly",
3081         "*adddi3_zero", "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2"):
3082         New patterns.
3083         ("adddi3_64"): Rename to "*adddi3_64".
3084         ("adddi3_31"): Replace by insn and splitter "*adddi3_31".
3085         ("adddi3"): Adapt expander.
3086
3087         ("*addsi3_cc"): Allow "general_operand" for operand 2.
3088         ("*addsi3_carry1_cc", "*addsi3_carry1_cconly",
3089         "*addsi3_carry2_cc", "*addsi3_carry2_cconly"): New patterns.
3090
3091         ("addhi3", "addqi3"): Remove, replace by ...
3092         ("*addsi3_sign", "*addsi3_sub"): ... these new patterns.
3093
3094         ("*subdi3_sign", "*subdi3_zero_cc", "*subdi3_zero_cconly",
3095         "*subdi3_zero", "*subdi3_cc", "*subdi3_cconly"): New patterns.
3096         ("subdi3"): Replace by insn and splitter "*subdi3_31".
3097         ("subdi3"): New expander.
3098
3099         ("*subsi3_borrow_cc", "*subsi3_borrow_cconly"): New patterns.
3100
3101         ("subhi3", "subqi3"): Remove, replace by ...
3102         ("*subsi3_sign", "*subsi3_sub"): ... these new patterns.
3103
3104         ("*muldi3_sign"): New pattern.
3105         ("muldi3"): Do not clobber CC.
3106         ("mulsi3"): Likewise.
3107         ("mulsi_6432"): Likewise.
3108
3109 2002-08-13  Denis Chertykov  <denisc@overta.ru>
3110
3111         * config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles
3112         which can change CC0.
3113
3114 Tue Aug 13 14:49:20 2002  J"orn Rennecke <joern.rennecke@superh.com>
3115
3116         * gcse.c (adjust_libcall_notes): New function.
3117         (do_local_cprop): Use it.  Add fourth parameter.  Changed caller.
3118
3119 2002-08-13  Nathan Sidwell  <nathan@codesourcery.com>
3120
3121         * libgcc2.c (L_bb): Remove unneeded #includes.
3122         (__global_counters, __gthreads_active): Remove unused globals.
3123         (__bb_exit_func): Merge counts into files rather than appending.
3124         * Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ...
3125         (ALL_CFLAGS): ... to here.
3126
3127 2002-08-13  Denis Chertykov  <denisc@overta.ru>
3128
3129         * config/ip2k/ip2k.c (commands_in_file): Variable removed.
3130         (function_epilogue): Don't calculate function size.
3131         (ip2k_set_compare): Don't use lookup_const_double.
3132         (asm_file_start): Initialization of commands_in_file removed.
3133         (asm_file_end): Output of commands_in_file removed.
3134
3135         * config/ip2k/ip2k.c (CPP_PREDEFINES): Remove definition of
3136         __INT_MAX__.
3137
3138 2002-08-13  Neil Booth  <neil@daikokuya.co.uk>
3139
3140         * c-opts.c (c_common_init_options): Check option array is
3141         sorted if checking enabled.
3142
3143 2002-08-13  Gabriel Dos Reis  <gdr@nerim.net>
3144
3145         * c-pretty-print.c: #include "c-tree.h".
3146         (pp_c_simple_type_specifier): Tweak.
3147         (pp_c_storage_class_specifier): New.
3148         (pp_c_function_specifier): Likewise.
3149         (pp_c_declaration_specifiers): Likewise.
3150         (pp_c_init_declarator): Likewise.
3151         (pp_c_declaration): Likewise.
3152         (pp_c_direct_declarator): Stub.
3153         (pp_c_declarator): Likewise.
3154         (pp_c_parameter_declaration): Likewise.
3155
3156 2002-08-13  Neil Booth  <neil@daikokuya.co.uk>
3157
3158         * c-opts.c (deps_seen, deps_file, deferred_count, deferred_size,
3159         handle_deferred_opts, sanitize_cpp_opts, defer_opt,
3160         struct deferred_opt): New.
3161         (COMMAND_LINE_OPTIONS): Add -M*.
3162         (missing_arg): Update.
3163         (c_common_decode_option): Handle -M*.
3164         (c_common_post_options): Handle -M*.  Use sanitize_cpp_opts;
3165         don't call cpp_post_options.
3166         (c_common_finish, check_deps_environment_vars): Update.
3167         * cppfiles.c (stack_include_file, handle_missing_header): Update.
3168         * cpphash.h (CPP_PRINT_DEPS): Remove.
3169         * cppinit.c: Don't include version.h.
3170         (cpp_create_reader): Don't call deps_init.  Initialize
3171         warn_long_long.
3172         (cpp_read_main_file): Init deps if necessary.
3173         (cpp_destroy): Conditionally free deps.
3174         (cpp_finish): Update.
3175         (no_tgt): Remove.
3176         (COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*.
3177         (cpp_post_options): Rename post_options.
3178         * cpplib.h (struct cpp_options): Remove some dependency options;
3179         move others to a new structure.
3180         (cpp_post_options): Remove.
3181         (cpp_finish): Comment.
3182         * fix-header.c (read_scan_file): Don't call cpp_post_options.
3183
3184 2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>
3185
3186         * config/mmix/mmix.md (define_constants): Add MMIX_rR_REGNUM.
3187         ("divdi3", "*divdi3_nonknuth", "moddi3", "*moddi3_nonknuth"): Mark
3188         MMIX_rR_REGNUM as clobbered.
3189         * config/mmix/mmix.h (MMIX_REMAINDER_REGNUM): Use MMIX_rR_REGNUM.
3190
3191 2002-08-12  Gabriel Dos Reis  <gdr@nerim.net>
3192
3193         * diagnostic.h (output_formatted_scalar): Rename from
3194         output_formatted_integer.
3195         * diagnostic.def: Add DK_DEBUG.
3196         * diagnostic.c (output_decimal): Adjust.
3197         (output_long_decimal): Likewise.
3198         (output_unsigned_decimal): Likewise.
3199         (output_octal): Likewise.
3200         (output_long_octal): Likewise.
3201         (output_hexadecimal): Likewise.
3202         (output_long_hexadecimal): Likewise.
3203         * c-pretty-print.c (pp_c_type_specifier): New function.
3204         (pp_c_specifier_qualifier_list): Likewise.
3205         (pp_c_abstract_declarator): Likewise.
3206         (pp_c_char): Replace pp_format_integer with pp_format_scalar.
3207
3208 2002-08-12  David Edelsohn  <edelsohn@gnu.org>
3209
3210         * doc/trouble.texi (Disappointments): Add static constructor and
3211         destructor dependency information for AIX.
3212
3213 2002-08-12  Neil Booth  <neil@daikokuya.co.uk>
3214
3215         * cpphash.h (struct printer): New from cppmain.c.
3216         (cpp_reader): New member.
3217         * cppmain.c (struct printer): Move to cpphash.h.
3218         (options, print): Remove.
3219         (account_for_newlines, print_line, maybe_print_line,
3220         cpp_preprocess_file, setup_callbacks, scan_translation_unit,
3221         scan_translation_unit_trad, cb_line_change, cb_ident,
3222         cb_define, cb_undef, cb_include, cb_file_change, dump_macro,
3223         cb_def_pragma): Make reentrant.
3224
3225 2002-08-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3226
3227         * real.c (ieee_64): Always define.
3228         (ieee_113): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
3229         (dec_h): Not used yet, hide it.
3230         (emdnorm): Mark parameter in ATTRIBUTE_UNUSED.  Guard label with
3231         macro controlling use.
3232         (TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
3233
3234 Mon Aug 12 12:48:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
3235
3236         * i386.md (tablejump): Sign extend the operand.
3237         * i386.c (classify_argument): Fix missed case from previous patch.
3238
3239 2002-08-12  Neil Booth  <neil@daikokuya.co.uk>
3240
3241         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
3242         to c-copts.c.
3243         (warn_multichar): Die.
3244         (cb_register_builtins): Export.
3245         * c-common.h (warn_multichar, preprocess_file): Remove.
3246         (cb_register_builtins): New.
3247         * c-lang.c (c_init): Remove.
3248         (LANG_HOOKS_INIT): Use c_objc_common_init.
3249         * c-lex.c (init_c_lex): Don't canonicalize filename.
3250         * c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
3251         (preprocess_file): Make static.  Update for cpplib.
3252         (c_common_decode_option): Remove warn_multichar.  Use in_fname.
3253         (c_common_post_options): Set some cpp options here.
3254         (c_common_init): Move from c-common.c.
3255         * cppinit.c (cpp_post_options): Don't canonicalize in_fname.
3256         * cpplib.h (struct cpp_options): Remove in_fname.
3257         (cpp_preprocess_file): Update.
3258         * cppmain.c (cpp_preprocess_file): Update for new prototypes.
3259
3260 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3261
3262         * config.gcc (mips*-*-netbsd*): Include ${tm_file}.
3263
3264 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3265
3266         * i370.h (TARGET_CPU_CPP_BUILTINS): Remove spurious trailing
3267         backslash in comment preceeding macro definition.
3268         * i370/linux.h (TARGET_OS_CPP_BUILTINS): Likewise.
3269         * i370/mvs.h (TARGET_OS_CPP_BUILTINS): Likewise.
3270         * i370/oe.h (TARGET_OS_CPP_BUILTINS): Likewise.
3271
3272 2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>
3273
3274         * expr.c (store_expr): In condition for checking if value is
3275         generated in TARGET, move call to expr_size last.
3276
3277 2002-08-11  Neil Booth  <neil@daikokuya.co.uk>
3278
3279         * c-common.c (c_common_init): Call preprocess_file instead.
3280         (c_common_finish): Move to c-opts.c.
3281         * c-common.h (preprocess_file): new.
3282         * c-opts.c (out_fname, out_stream, deps_append, preprocess_file,
3283         check_deps_environment_vars, c_common_finish): New.
3284         (c_common_decode_option): Update for out_fname and dependencies.
3285         * cppinit.c (init_dependency_output, output_deps): Remove.
3286         (cpp_destroy): Update prototype.
3287         (cpp_add_dependency_target): New.
3288         (cpp_read_main_file): Don't overlay a buffer.
3289         (cpp_finish): Take a deps output stream and write deps to it.
3290         Return the error count.
3291         (cpp_post_options): Don't canonicalize out_fname, or do anything
3292         with dependencies.
3293         * cpplib.h (struct cpp_options): Remove out_fname and
3294         preprocess_only.
3295         (cpp_add_dependency_target): New.
3296         (cpp_destroy, cpp_finish, cpp_preprocess_file): Update.
3297         * cppmain.c (cpp_preprocess_file): Update prototype.  Don't
3298         set preprocess_only.  Don't handle the output stream directly.
3299
3300 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3301
3302         * dsp16xx.c (print_operand): Fix format specifier.
3303         * dsp16xx.md: Avoid automatic aggregate initialization.
3304         * frv.h (REG_CLASS_FROM_LETTER): Avoid char as array index.
3305         * h8300.c (emit_a_rotate, h8300_adjust_insn_length): Avoid U
3306         integer constant modifier.
3307         * ip2k.c (ip2k_set_compare): Avoid signed/unsigned warning.
3308         * mmix-protos.h (mmix_use_simple_return): Move outside TREE_CODE
3309         guards.
3310         * sh/netbsd-elf.h (FUNCTION_PROFILER): Fix format specifier.
3311         * v850.c (v850_select_section): Mark parameter with
3312         ATTRIBUTE_UNUSED.
3313         * global.c (global_alloc): Const-ify.
3314         * ra-colorize.c (hardregset_to_string): Fix format specifier.
3315
3316 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3317
3318         * darwin-c.c (darwin_pragma_options): Const-ify.
3319         * darwin.c (machopic_non_lazy_ptr_name,
3320         machopic_validate_stub_or_non_lazy_ptr): Likewise.
3321         (machopic_indirect_data_reference): Wrap variables in macros
3322         controlling their use.
3323         (machopic_finish, update_non_lazy_ptrs, update_stubs): Const-ify.
3324         (machopic_select_section): Use parentheses around && within ||.
3325         * i386/darwin.h (ASM_OUTPUT_ALIGN): Avoid ambiguous-else.
3326
3327 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3328
3329         * ip2k.c (mdr_resequence_xy_yx, mdr_propagate_reg_equivs,
3330         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
3331         ip2k_adjust_stack_ref, mdr_try_move_pushes, mdr_try_propagate_clr,
3332         ip2k_xexp_not_uses_reg_for_mem, mdr_try_propagate_move,
3333         mdr_try_remove_redundant_insns, track_w_reload,
3334         mdr_try_wreg_elim): Make function static to match prototype.
3335         * mmix.c (mmix_target_asm_function_epilogue): Likewise.  Mark
3336         parameter with ATTRIBUTE_UNUSED.
3337
3338 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3339
3340         * arc.c (arc_init): Don't use ISO C style function definitions.
3341         * arm.c (count_insns_for_constant, thumb_far_jump_used_p,
3342         arm_get_strip_length, arm_strip_name_encoding): Likewise.
3343         * avr.h (progmem_section): Likewise.
3344         * h8300.c h8300_asm_insn_count): Likewise.
3345         * m32r.c (init_idents): Likewise.
3346         * s390.c (s390_split_branches, s390_chunkify_pool): Likewise.
3347         * sh.c (sh_cfun_interrupt_handler_p): Likewise.
3348         * xtensa.c (xtensa_build_va_list): Likewise.
3349
3350 2002-08-11  Neil Booth  <neil@daikokuya.co.uk>
3351
3352         * c-common.h (enum c_language_kind): Emphasize that clk_c is 0.
3353         * c-opts.c (parse_option): Rename find_opt.
3354         (set_std_c99): New function.
3355         (COMMAND_LINE_OPTIONS): Handle -remap and -o.  Remove OPT_std_bad.
3356         (missing_arg): Remove OPT_std_bad.  Handle -o.
3357         (c_common_decode_option): Handle input and output file names,
3358         -o and -remap.  Clean up -std= handling.
3359         * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap.
3360         (cpp_handle_option): Similarly.  Don't handle filenames.
3361
3362 Sun Aug 11 14:43:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
3363
3364         * i386.c (classify_argument): Fix computing of field's offsets.
3365
3366 2002-08-11  Andreas Jaeger  <aj@suse.de>
3367
3368         PR target/7531:
3369         * doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel.
3370
3371 2002-08-10  Ziemowit Laski  <zlaski@apple.com>
3372
3373         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Replace
3374         reference to clk_objective_c with flag_objc.
3375         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS):
3376         Likewise.
3377         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3378
3379 2002-08-10  Neil Booth  <neil@daikokuya.co.uk>
3380
3381         * c-opts.c (set_std_cxx98, set_std_c89): New.
3382         (COMMAND_LINE_OPTIONS): Move more from cppinit.c.
3383         (c_common_decode_option): Handle new switches from cppinit.c.
3384         Add -std=gnu++98.
3385         * cppinit.c (set_lang): Rename cpp_set_lang.  Export.
3386         (no_arg, no_num): Remove.
3387         (COMMAND_LINE_OPTIONS): Move more to c-opts.c.  Drop all lang-
3388         switches apart from -lang-objc and lang-asm.
3389         (cpp_handle_option): Similarly.
3390         * cpplib.h (cpp_set_lang): New.
3391         * doc/cppopts.texi, doc/invoke.texi: Document -std=c++98,
3392         -std=gnu++98.
3393         * objc/lang-specs.h: Remove -ansi.
3394
3395 Sat Aug 10 19:59:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3396                                Graham Stott
3397
3398         * cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff
3399         errors.
3400
3401 2002-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3402
3403         * emit-rtl.c (emit_jump_insn_before, emit_call_insn_before,
3404         emit_jump_insn): Fix uninitialized variable.
3405         * gcov.c (init_line_info): Likewise.
3406         * genautomata.c (transform_3): Add braces around ambiguous
3407         else.
3408         * ifcvt.c (cond_exec_process_insns): Mark parameter with
3409         ATTRIBUTE_UNUSED.
3410         * ra-build.c (parts_to_webs_1): Fix uninitialized variable.
3411         * regrename.c (copyprop_hardreg_forward): Fix uninitialized
3412         variable.
3413
3414         * gengtype.c (write_gc_structure_fields): Avoid signed/unsigned
3415         warnings in output files.
3416
3417 2002-08-09  Ziemowit Laski  <zlaski@apple.com>
3418
3419         * c-common.c (flag_objc): New.
3420         * c-common.h (c_language_kind): Get rid of clk_objective_c
3421         enum value.
3422         (flag_objc): New extern declaration.
3423         * c-decl.c (implicitly_declare): Call objc_check_decl
3424         instead of maybe_objc_check_decl.
3425         (finish_decl): Likewise.
3426         (grokfield): Likewise.
3427         (finish_struct): Likewise.
3428         * c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
3429         (maybe_objc_comptypes): Rename to objc_comptypes.
3430         (maybe_building_objc_message_expr): Rename to
3431         objc_message_selector.
3432         * c-lex.c (lex_charconst): Remove uses of clk_objective_c,
3433         replace with flag_objc as needed.
3434         * c-opts.c (c_common_init_options): Likewise.
3435         (c_common_decode_option): Likewise.
3436         * c-parse.in (init_reswords): Likewise.
3437         * c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
3438         (maybe_objc_comptypes): Rename to objc_comptypes.
3439         (maybe_building_objc_message_expr): Rename to
3440         objc_message_selector.
3441         * c-typeck.c (comptypes): Call objc_comptypes instead of
3442         maybe_objc_comptypes, and/or objc_message_selector instead of
3443         maybe_building_objc_message_expr.
3444         (comp_target_types): Likewise.
3445         (convert_for_assignment): Likewise.
3446         (warn_for_assignment): Likewise.
3447         * cppinit.c (init_builtins): Set __OBJC__ manifest constant
3448         independently of those for other languages.
3449         * objc/objc-act.c (maybe_objc_comptypes): Delete.
3450         (maybe_objc_check_decl): Delete.
3451         (maybe_building_objc_message_expr): Rename to
3452         objc_message_selector.
3453         * objc/objc-lang.c (objc_init_options): Use clk_c instead of
3454         clk_objective_c; set flag_objc flag.
3455
3456 2002-08-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3457
3458         * ifcvt.c (find_if_case_2): Test correct basic block for size.
3459
3460 2002-08-09  Dale Johannesen  <dalej@apple.com>
3461
3462         * config/rs6000/rs6000.md: Add sibcall patterns.
3463         * config/rs6000/rs6000.h (FUNCTION_OK_FOR_SIBCALL):  Define.
3464         * config/rs6000/rs6000.c (rs6000_ra_ever_killed):
3465         Rewritten to handle sibcalls.
3466         * config/rs6000/rs6000.c (function_ok_for_sibcall):  New.
3467         * config/rs6000/rs6000-protos.h (function_ok_for_sibcall):  New.
3468
3469 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
3470
3471         * profile.c (da_file_name): New static var.
3472         (init_branch_prob): Initialize it.
3473         (end_branch_prob): Remove da file.
3474
3475         * Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS.
3476         * configure.in (coverage_flags): Default to nothing.
3477         * configure: Rebuilt.
3478
3479 2002-08-09  Neil Booth  <neil@daikokuya.co.uk>
3480
3481         * Makefile.in (c-opts.o): Update
3482         * c-opts.c: Include intl.h.
3483         (print_help): Move from cppinit.c.  Remove unused options.
3484         (COMMAND_LINE_OPTIONS): Move more from cppinit.c.
3485         (missing_arg): Complain for switches without an argument.
3486         (c_common_decode_option): Reject missing joined arguments.
3487         Handle new switches from cppinit.c.
3488         * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
3489         (cpp_handle_option): Similarly.
3490         (print_help): Moved to c-opts.c.
3491         * cpplib.h (struct cpp_options): Remove help_only.
3492         * gcc.c (cpp_unique_options): Remove -$.
3493         * doc/cppopts.texi: Undocument -h.
3494
3495 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
3496
3497         * config/i386/i386.c (legitimate_constant_p): UNSPEC_TP is not
3498         legitimate constant.
3499         (legitimate_pic_operand_p): Neither pic operand.
3500         (legitimate_address_p): But legitimate address.
3501         (get_thread_pointer): Generate MEM/u instead of CONST around
3502         UNSPEC_TP.
3503         (print_operand): Remove printing of UNSPEC_TP.
3504         (print_operand_address): And print it here.
3505
3506 2002-08-08  Devang Patel  <dpatel@apple.com>
3507
3508         * objc/objc-act.c (build_selector_translation_table): Issue warning,
3509         when  -Wselector is used,if method for which selector is being
3510         created does not exist.
3511
3512 2002-08-08  Stephen Clarke <stephen.clarke@superh.com>
3513
3514         * config/sh/sh.c (prepare_move_operands): Only call
3515         target_reg_operand if TARGET_SHMEDIA.
3516
3517 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
3518
3519         * config/rs6000/rs6000.h, config/rs6000/aix.h,
3520         config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last
3521         two patches.
3522         * config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN.
3523
3524 2002-08-08  Lars Brinkhoff  <lars@nocrew.org>
3525             Richard Henderson  <rth@redhat.com>
3526
3527         * emit-rtl.c (gen_rtx_REG): After reload, only return
3528         frame_pointer_rtx or hard_frame_pointer_rtx if frame_pointer_needed.
3529
3530 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
3531
3532         * config/rs6000/rs6000-protos.h (rs6000_field_alignment): Remove.
3533         * config/rs6000/rs6000.c (rs6000_field_alignment): Move...
3534         * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): ...inline into the
3535         macro.
3536
3537 2002-08-08  Adam Nemet  <anemet@lnxw.com>
3538
3539         * config/arm/arm.c (thumb_unexpanded_epilogue): Stack the PIC
3540         register.
3541         (thumb_expand_prologue): Likewise.
3542         (thumb_output_function_prologue): Likewise.
3543         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Account for
3544         the additional push of the PIC register.
3545
3546 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
3547
3548         * configure.in (enable_coverage): New enable switch.
3549         * configure: Rebuilt.
3550         * Makefile.in (COVERAGE_FLAGS, coverageexts): New variables.
3551         (INTERNAL_CFLAGS): Append COVERAGE_FLAGS.
3552         (ALL_FLAGS): Reorder so INTERNAL_CFLAGS comes after CFLAGS.
3553         (mostlyclean): Remove coverage files.
3554         * doc/install.texi: Document enable_coverage.
3555
3556         * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
3557         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
3558         * f/Make-lang.in (f.mostlyclean): Remove coverage files.
3559         * java/Make-lang.in (java.mostlyclean): Remove coverage files.
3560         * objc/Make-lang.in (objc.mostlyclean): Remove coverage files.
3561         * treelang/Make-lang.in (treelang.mostlyclean): Remove coverage
3562         files.
3563
3564 2002-08-08  Neil Booth  <neil@daikokuya.co.uk>
3565
3566         * c-opts.c (cpp_opts): New.
3567         (COMMAND_LINE_OPTIONS): Add switches from cppinit.c.
3568         (c_common_decode_options): Handle cpplib switches.
3569         (c_common_init_options): Set cpp_opts.
3570         * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
3571         (cpp_handle_option): Similarly.
3572
3573 2002-08-08  David Edelsohn  <edelsohn@gnu.org>
3574
3575         * config/rs6000/aix.h (TARGET_ALTIVEC): Define to 0.
3576         (TARGET_ALTIVEC_ABI): Same.
3577         (TARGET_ALTIVEC_VRSAVE): Same.
3578
3579         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Check
3580         icode not CODE_FOR_nothing.  Change switch to if.
3581
3582 2002-08-08  Alan Modra  <amodra@bigpond.net.au>
3583
3584         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mpower4 when cpu=power4.
3585
3586 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
3587
3588         * stor-layout.c (place_union_field): For bitfields if
3589         PCC_BITFIELD_TYPE_MATTERS and TYPE_USER_ALIGN, set record's
3590         TYPE_USER_ALIGN.
3591
3592 2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3593
3594         * pa.c (struct deferred_plabel): Constify name field.
3595
3596 2002-08-07  Neil Booth  <neil@daikokuya.co.uk>
3597
3598         * cppmacro.c (_cpp_builtin_macro_text): Remove unused variable.
3599
3600 2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3601
3602         * configure.in (PREFIX_INCLUDE_DIR): Don't define if prefix and
3603         local_prefix are the same.
3604         * configure: Rebuilt.
3605
3606 2002-08-07  Jakub Jelinek  <jakub@redhat.com>
3607             Richard Henderson  <rth@redhat.com>
3608
3609         * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN
3610         to type_align when PCC_BITFIELD_TYPE_MATTERS.  Only apply
3611         ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
3612         (place_field): Likewise.
3613         * config/i386/i386.c (x86_field_alignment): Don't check
3614         DECL_USER_ALIGN here.
3615         * config/rs6000/rs6000.c (rs6000_field_alignment): New.
3616         * config/rs6000/rs6000-protos.h (rs6000_field_alignment): New
3617         prototype.
3618         * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define.
3619         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove.
3620         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove.
3621         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove.
3622         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove.
3623         * doc/tm.texi (ADJUST_FIELD_ALIGN): Update description.
3624
3625 2002-08-07  Neil Booth  <neil@daikokuya.co.uk>
3626
3627         * Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
3628         * c-common.c: Don't include tree-inline.h.
3629         (c_common_init_options, c_common_post_options): Move to c-opts.c.
3630         * c-common.h (c_common_decode_option): New.
3631         * c-decl.c (c_decode_option): Remove.
3632         * c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
3633         * c-opts.c: New file.
3634         * c-tree.h (c_decode_option): Remove.
3635         * doc/passes.texi: Update.
3636         * objc/objc-act.c (objc_decode_option): Remove.
3637         * objc/objc-act.h (objc_decode_option): Remove.
3638         * objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
3639         c_common_decode_option.
3640
3641 2002-08-07  Chris Demetriou  <cgd@broadcom.com>
3642
3643         * config/mips/mips.md (sunlt_sf, suneq_sf, sunle_sf): Remove
3644         dependency on TARGET_DOUBLE_FLOAT.
3645
3646 2002-08-07  Stephen Clarke <stephen.clarke@superh.com>
3647
3648         * config/sh/lib1funcs.asm (GCC_shcompact_incoming_args): Don't
3649         overwrite callee-save registers.  Fix comment.
3650
3651 2002-08-06  Chris Demetriou  <cgd@broadcom.com>
3652
3653         * config/mips/mips.c (override_options): Set MASK_BRANCHLIKELY
3654         in target_flags based on ISA, if it was not set on the command
3655         line.  Warn if MASK_BRANCHLIKLEY is set but the ISA does not
3656         support Branch Likely instructions.
3657         * config/mips/mips.h (MASK_BRANCHLIKLEY): New macro.
3658         (TARGET_BRANCHLIKELY): Likewise.
3659         (TARGET_SWITCHES): Add -mbranch-likely and -mno-branch-likely.
3660         (GENERATE_BRANCHLIKELY): Use TARGET_BRANCHLIKELY rather than
3661         ISA_HAS_BRANCHLIKELY.
3662         (ISA_HAS_BRANCHLIKELY): Do not include MIPS16 check.
3663         * doc/invoke.texi: Document new MIPS -mbranch-likely and
3664         -mno-branch-likely options.
3665
3666 2002-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3667
3668         * ip2k.c (ip2k_set_compare): Add missing iteration variable.
3669
3670         * Makefile.in (dummy-conditions.o): Depend on $(HCONFIG_H) not
3671         $(GCONFIG_H).
3672
3673 2002-08-06  Aldy Hernandez  <aldyh@redhat.com>
3674
3675         * c-decl.c (duplicate_decls): Error out for incompatible TLS
3676         declarations.
3677
3678         * testsuite/gcc.dg/tls/diag-3.c: New.
3679
3680 2002-08-06  Dale Johannesen  <dalej@apple.com>
3681
3682         * c-common.c (fname_decl): Use line number 0 for
3683         __func__, to avoid confusing debuggers.
3684
3685 2002-08-06  Nathan Sidwell  <nathan@codesourcery.com>
3686
3687         * gcov.c: Tidy.
3688         (struct line_info, struct coverage): New structures.
3689         (gcov_file_name, gcov_file): Remove globals.
3690         (output_data): Take source file parameter. Fix memory leak. Break
3691         up into ...
3692         (init_line_info, output_line_info, make_gcov_file_name,
3693         accumulate_branch_counts): ... here.
3694         (calculate_branch_probs, function_summary): Adjust.
3695         (main): Adjust.
3696         (function_*): Remove global variables.
3697
3698 2002-08-06  Neil Booth  <neil@daikokuya.co.uk>
3699
3700         * dwarf2out.c: Remove unused macros.
3701
3702 2002-08-06  Neil Booth  <neil@daikokuya.co.uk>
3703
3704         * function.c (TRAMPOLINE_ALIGNMENT): Always defined.
3705
3706 2002-08-06  Neil Booth  <neil@daikokuya.co.uk>
3707
3708         * cppinit.c (struct lang_flags): Rename trigraphs std.
3709         (set_lang): Update.
3710         * cpplib.h (struct cpp_options): New member std.
3711         * cppmacro.c (_cpp_builtin_macro_text): Use std.
3712         (collect_args): Flag whether to swallow a possible future
3713         comma pasted with varargs.
3714         (replace_args): Use this flag.
3715         * doc/cpp.texi: Update varargs extension documentation.
3716
3717 2002-08-06  Jakub Jelinek  <jakub@redhat.com>
3718
3719         * config/i386/mmintrin.h (__m64): Make the type 64-bit aligned.
3720
3721 2002-08-06  Jakub Jelinek  <jakub@redhat.com>
3722
3723         * config/i386/i386.c (x86_field_alignment): Apply min for all MODE_INT
3724         and MODE_CLASS_INT modes.
3725
3726 2002-08-06  Jakub Jelinek  <jakub@redhat.com>
3727
3728         * config.gcc (*-*-linux*): Default to --enable-threads=posix if no
3729         --{enable,disable}-threads is given to configure.
3730         (alpha*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux*,
3731         x86_64-*-linux*, ia64*-*-linux*, m68k-*-linux*, mips*-*-linux*,
3732         powerpc-*-linux-gnualtivec*, powerpc-*-linux*, s390-*-linux*,
3733         s390x-*-linux*, sh-*-linux*, sparc-*-linux*, sparc64-*-linux*):
3734         Remove thread_file setting here.
3735
3736 2002-08-06  David Edelsohn  <edelsohn@gnu.org>
3737
3738         * doc/install.texi (Binaries): Update Bull Freeware URL.
3739
3740 2002-08-06  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3741
3742         * doc/gcc.texi (Top): Rename Index to Keyword Index.
3743
3744 2002-08-05  Nathan Sidwell  <nathan@codesourcery.com>
3745
3746         * gcov.c (output_data): Round to % to nearest, tweak formatting.
3747
3748 2002-08-05  Jakub Jelinek  <jakub@redhat.com>
3749
3750         * fold-const.c (associate_trees): Only optimize NEGATE_EXPR in one
3751         of the operands into MINUS_EXPR if code is PLUS_EXPR.
3752
3753 2002-08-05  Douglas B Rupp  <rupp@gnat.com>
3754
3755         * config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
3756         * config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT,
3757         drectve_section): Define.
3758         * config/i386/t-interix: Replace interix.o rule with winnt.o.
3759         * config/i386/interix.c: Remove.
3760
3761 2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
3762
3763         * attribs.c: Don't include obstack.h.
3764         * builtins.c: Likewise.
3765         * cfganal.c: Likewise.
3766         * cfgbuild.c: Likewise.
3767         * cfgcleanup.c: Likewise.
3768         * emit-rtl.c: Likewise.
3769         * loop.c: Likewise.
3770         * stmt.c: Likewise.
3771
3772         * Makefile.in (s-gtype): Re-add dependency on $(GTFILES).
3773
3774 2002-08-05  Gabriel Dos Reis  <gdr@nerim.net>
3775
3776         * doc/c-tree.texi (Expression trees): Document VA_ARG_EXPR
3777
3778 2002-08-04  Chris Demetriou  <cgd@broadcom.com>
3779
3780         * doc/invoke.texi: Remove duplicated paragraph describing
3781         TARGET_SWITCHES.
3782
3783 2002-08-04  Geoffrey Keating  <geoffk@redhat.com>
3784
3785         * Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H).
3786         * collect2.h (permanent_obstack): Delete declaration.
3787         * collect2.c (permanent_obstack): Delete definition.
3788         (main): Don't initialize permanent_obstack.  Use xstrdup instead.
3789         * expr.c: Don't include obstack.h.
3790         (permanent_obstack): Delete declaration.
3791         * function.c: Don't include obstack.h.
3792         (permanent_obstack): Delete declaration.
3793         * integrate.c: Don't include obstack.h.
3794         (function_maybepermanent_obstack): Delete declaration.
3795         * print-tree.c (debug_tree): Use x*alloc not permalloc.
3796         * sdbout.c (gen_fake_label): Use x*alloc not permalloc.
3797         * tlink.c (pfgets): Use xstrdup not permanent_obstack.
3798         * toplev.c (lang_independent_init): Rename init_obstacks to init_ttree.
3799         * tree.h: Rename init_obstacks to init_ttree.  Remove declarations
3800         of permalloc, expralloc, perm_calloc.
3801         * tree.c (permanent_obstack): Delete definition.
3802         (init_ttree): Rename from init_obstacks.
3803         (permalloc): Delete.
3804         (perm_calloc): Delete.
3805         (dump_tree_statistics): Don't print information about
3806         permanent_obstack.
3807         * varasm.c (assemble_start_function): Use xstrdup instead of
3808         permalloc/strcpy.
3809         (assemble_variable): Likewise.
3810         * config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of
3811         permalloc.
3812         (unicosmk_add_extern): Likewise.
3813         * config/c4x/c4x.c (c4x_external_ref): Likewise.
3814         (c4x_global_label): Likewise.
3815         * config/frv/frv.c (frv_encode_section_info): Likewise.
3816         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
3817         (i386_pe_record_exported_symbol): Likewise.
3818         * config/mips/mips.c (mips_output_external): Likewise.
3819         (mips_output_external_libcall): Likewise.
3820         * config/pa/pa.c: (permanent_obstack): Delete declaration.
3821         (output_call): Use ggc_strdup instead of allocating on
3822         permanent_obstack.
3823         * config/romp/romp.c: Include ggc.h.
3824         (get_symref): Don't declare permanent_obstack, use ggc_strdup
3825         intead of permanent_obstack.
3826         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat
3827         instead of permalloc.
3828         * config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc
3829         instead of permalloc
3830         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat
3831         instead of permalloc.
3832         * config/vax/vax.c (vms_check_external): Use xmalloc instead of
3833         permalloc.
3834
3835 2002-08-04  Bernd Schmidt  <bernds@redhat.com>
3836
3837         Contribute a port developed primarily by Michael Meissner,
3838         Catherine Moore, and Richard Sandiford <rsandifo@redhat.com>.
3839         * config.gcc: Add frv-elf target.
3840         * config/frv/cmovd.c: New file.
3841         * config/frv/cmovh.c: New file.
3842         * config/frv/cmovw.c: New file.
3843         * config/frv/frv-abi.h: New file.
3844         * config/frv/frv-asm.h: New file.
3845         * config/frv/frv-modes.def: New file.
3846         * config/frv/frv-protos.h: New file.
3847         * config/frv/frv.c: New file.
3848         * config/frv/frv.h: New file.
3849         * config/frv/frv.md: New file.
3850         * config/frv/frvbegin.c: New file.
3851         * config/frv/frvend.c: New file.
3852         * config/frv/lib1funcs.asm: New file.
3853         * config/frv/media.h: New file.
3854         * config/frv/modi.c: New file.
3855         * config/frv/t-frv: New file.
3856         * config/frv/uitod.c: New file.
3857         * config/frv/uitof.c: New file.
3858         * config/frv/ulltod.c: New file.
3859         * config/frv/ulltof.c: New file.
3860         * config/frv/umodi.c: New file.
3861         * config/frv/xm-frv.h: New file.
3862
3863         * config/frv/media.h: Removed again.
3864
3865 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3866
3867         * gcov.c (bb_file_time): New static variable.
3868         (object_directory): May also be object file.
3869         (preserve_paths): New static variable.
3870         (print_usage): Adjust.
3871         (options): Adjust.
3872         (process_args): Adjust.
3873         (open_files): Simplify. Cope when OBJECT_DIRECTORY is an object
3874         file. Find modification date on bb file.
3875         (read_profile): Don't rewind a NULL file.
3876         (format_hwint): New static function.
3877         (function_summary): Use format_hwint.
3878         (output_data): SOURCE_FILE_NAME is never relative to
3879         OBJECT_DIRECTORY. Use format_hwint. Adjust gcov file name
3880         mangling. Adjust output format to make it more machine readable.
3881         * doc/gcov.texi: Document & clarify semantics.
3882
3883 2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>
3884
3885         * doc/include/gcc-common.texi (version-GCC): Increase to 3.3.
3886
3887 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3888
3889         * gcc.c (cc1_options): Pass output file as auxbase when
3890         appropriate.
3891         * profile.c (init_branch_prob): FILENAME has already had ending
3892         stripped.
3893         * final.c (end_final): Likewise.
3894         * toplev.c (aux_base_name): New global.
3895         (compile_file): Pass aux_base_name to init init_branch_prob and
3896         end_final.
3897         (independent_decode_option, case 'a'): New auxinfo options.
3898         (case 'd'): Protect against mising basename.
3899         (do_compile): Initialize aux_base_name.
3900         * toplev.h (aux_base_name): New global.
3901         * doc/invoke.texi: Adjust documentation.
3902
3903 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3904
3905         * config/i386/i386.c (x86_field_alignment): Remove duplicate test
3906         of TARGET_ALIGN_DOUBLE.
3907
3908 2002-08-04  Gabriel Dos Reis  <gdr@nerim.net>
3909
3910         * diagnostic.c (inform): New function.
3911         * diagnostic.h (inform): Declare.
3912
3913 2002-08-03  David Edelsohn  <edelsohn@gnu.org>
3914
3915         * config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
3916         (movhi_internal): Same.
3917         (movqi_internal): Same.
3918         (movdi_internal64): Same.
3919
3920         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405.
3921
3922         * config/rs6000/xcoff.h (SKIP_ASM_OP): Define.
3923         (ASM_OUTPUT_SKIP): Use it.  SIZE unsigned.
3924         (COMMON_ASM_OP): Define.
3925         (ASM_OUTPUT_ALIGNED_COMMON): Use it.  SIZE unsigned.
3926         Use ALIGN parameter.
3927         (LOCAL_COMMON_ASM_OP): Define.
3928         (ASM_OUTPUT_LOCAL): Use it.  SIZE unsigned.
3929
3930 2002-08-03  Roger Sayle  <roger@eyesopen.com>
3931
3932         * builtins.def: Define new builtin functions exp, expf, expl,
3933         log, logf and logl (and their __builtin_* variants).
3934         * optabs.h (enum optab_index): Add new OTI_exp and OTI_log.
3935         Define exp_optab and log_optab.
3936         * optabs.c (init_optans): Initialize exp_optab and log_optab.
3937         * genopinit.c (optabs): Implement exp_optab and log_optab
3938         using exp?f2 and log?f2 patterns.
3939         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP*
3940         and BUILT_IN_LOG* using exp_optab and log_optab respectively.
3941         (expand_builtin): Ignore the new builtins (and all cos and
3942         sin variants) when not optimizing.  Expand new builtins via
3943         expand_builtin_mathfn when flag_unsafe_math_optimizations.
3944
3945         * doc/extend.texi: Document new exp and log builtins.
3946         * doc/md.texi: Document new exp?f2 and log?f2 patterns
3947         (and previously undocumented cos?f2 and sin?f2 patterns).
3948
3949 2002-08-03  Jason Merrill  <jason@redhat.com>
3950
3951         * explow.c (int_expr_size): New fn.
3952         * expr.c (expand_expr) [CONSTRUCTOR]: Use it.
3953         * expr.h: Declare it.
3954
3955 2002-08-02  Krister Walfridsson  <cato@df.lth.se>
3956
3957         * Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to
3958         gengtype-* dependencies.
3959
3960 2002-08-02  Eric Christopher  <echristo@redhat.com>
3961
3962         * config.gcc (mips*-*-linux*): Fix ordering of tm_file.
3963         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change
3964         #ifndef to #undef.
3965         (TARGET_MEM_FUNCTIONS): Define instead of define to 1.
3966
3967 2002-08-02  David Edelsohn  <edelsohn@gnu.org>
3968
3969         PR optimize/7067
3970         * config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT
3971         small if optimizing for size.
3972
3973 2002-08-02  Daniel Jacobowitz  <drow@mvista.com>
3974
3975         * configure.in (FORBUILD): Use $build_alias.
3976         * configure: Regenerated.
3977
3978 2002-08-02  Richard Sandiford  <rsandifo@redhat.com>
3979
3980         * config.gcc: Don't include mips/abi64.h in $tm_file.
3981         * hard-reg-set.h (call_really_used_regs): Declare.
3982         * config/mips/abi64.h: Remove file.
3983         * config/mips/linux.h,
3984         * config/mips/iris6.h: Don't include it.
3985         * config/mips/mips-protos.h (mips_conditional_register_usage): Declare.
3986         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it.
3987         (REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING,
3988         FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING,
3989         FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN):
3990         Bring across definitions from abi64.h.
3991         (GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS.
3992         (BIGGEST_MAX_ARGS_IN_REGISTERS): New.
3993         (struct mips_args): Use it.
3994         * config/mips/mips.c (mips_conditional_register_usage): Define.
3995
3996 2002-08-02  Jason Merrill  <jason@redhat.com>
3997
3998         * langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro.
3999         * langhooks.c (lhd_expr_size): Define default.
4000         * langhooks.h (struct lang_hooks): Add expr_size.
4001         * explow.c (expr_size): Call it.
4002         * expr.c (store_expr): Don't copy an expression of size zero.
4003         (expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much
4004         to store.
4005         * Makefile.in (builtins.o): Depend on langhooks.h.
4006
4007 2002-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4008
4009         * Makefile.in (ra-debug.o): Depend on $(TM_P_H).
4010         * ra-debug.c: Include "tm_p.h".
4011         * ra-rewrite.c (is_partly_live_1): Change return type to bool.
4012
4013 2002-08-02  Toon Moene  <toon@moene.indiv.nluug.nl>
4014
4015         * simplify-rtx.c (simplify_binary_operation): x * 1 is allowed
4016         when not honoring signalling NaNs.
4017         (simplify_ternary_operation): a == b has a definite value
4018         when not honoring NaNs.
4019
4020 2002-08-02  Jason Merrill  <jason@redhat.com>
4021
4022         * gdbinit.in (pct): New macro.
4023
4024 2002-08-01  Stan Shebs  <shebs@apple.com>
4025             Andreas Tobler  <toa@pop.agri.ch>
4026
4027         * ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined,
4028         plays nice with Darwin headers.
4029         (_BSD_RUNE_T_DEFINED_): Likewise.
4030
4031 2002-08-01  Zack Weinberg  <zack@codesourcery.com>
4032
4033         * c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
4034         * cppinit.c (cpp_post_options): Likewise.
4035
4036         * cppexp.c (cpp_classify_number): Suppress -Wtraditional
4037         warning about 'LL' suffix (but not 'ULL' etc) when
4038         -Wno-long-long is in effect.
4039
4040         * cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
4041         Check for failing time()/localtime(), issue a warning, and
4042         make __TIME__ and __DATE__ expand to fallback strings.
4043
4044         * doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
4045         and __TIME__ when the date and time cannot be determined.
4046
4047 2002-08-02  Alan Modra  <amodra@bigpond.net.au>
4048
4049         * config/rs6000/rs6000.c (output_cbranch): Hint differently for power4.
4050
4051 2002-08-01  Daniel Jacobowitz  <drow@mvista.com>
4052
4053         * Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H).
4054
4055 2002-08-01  Chris Demetriou  <cgd@broadcom.com>
4056
4057         * config.gcc (mipsisa64sb1-*-elf*): New configuration.
4058         (mipsisa64sb1el-*-elf*): Likewise.
4059         * config/mips/mips.c (mips_cpu_info_table): Add sb1.
4060         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1.
4061         (TARGET_SB1, TUNE_SB1): New macros.
4062         * doc/invoke.texi: Add sb1 to documentation for MIPS -march and
4063         -mtune flags.
4064
4065 2002-08-01  David Edelsohn  <edelsohn@gnu.org>
4066
4067         * varasm.c (asm_emit_uninitialized): Return false if global BSS
4068         and ASM_EMIT_BSS not supported by target.
4069         (assemble_variable): Do not duplicate uninitialized logic.
4070         Fall through if asm_emit_uninitialized failed.
4071
4072 2002-08-01  Chris Demetriou  <cgd@broadcom.com>
4073
4074         * config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro.
4075
4076 2002-08-02  Alan Modra  <amodra@bigpond.net.au>
4077
4078         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define.
4079         (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define.
4080
4081         * config/rs6000/rs6000.c (output_toc): Don't use lshift_double when
4082         HOST_BITS_PER_WIDE_INT == 64.
4083
4084 2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4085
4086         * df.c (df_insn_table_realloc): Change parameter to unsigned.
4087         * optabs.c (expand_binop): Make variable unsigned.
4088         * simplify-rtx.c (simplify_subreg): Likewise.
4089         * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings.
4090
4091 2002-08-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4092
4093         * c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.
4094
4095 2002-08-01  Richard Henderson  <rth@redhat.com>
4096
4097         * toplev.c (parse_options_and_default_flags): Don't set
4098         flag_reorder_blocks for -Os.
4099
4100         * config/avr/avr.c (avr_optimization_options): Remove.
4101         * config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove.
4102         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove.
4103         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove.
4104
4105 2002-08-01  H.J. Lu <hjl@gnu.org>
4106             Richard Henderson  <rth@redhat.com>
4107
4108         * output.h (DECL_READONLY_SECTION): Remove.
4109         (decl_readonly_section): Declare.
4110         * varasm.c (decl_readonly_section): New.
4111         (default_section_type_flags, default_select_section): Use it.
4112         * config/arm/pe.c (arm_pe_unique_section): Likewise.
4113         * config/i386/interix.c (i386_pe_unique_section): Likewise.
4114         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
4115         * config/mcore/mcore.c (mcore_unique_section): Likewise.
4116         * config/mips/mips.c (mips_unique_section): Likewise.
4117
4118 2002-08-01  Richard Henderson  <rth@redhat.com>
4119
4120         * integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it
4121         refers to a subroutine parameter.
4122
4123 2002-08-01  Jakub Jelinek  <jakub@redhat.com>
4124
4125         * varasm.c (assemble_visibility): Strip name encoding.
4126
4127 2002-08-01  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
4128
4129         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch.
4130         (RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0
4131         when there is no frame pointer.
4132         (INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp
4133         registers properly.
4134         * config/ns32k/__unorddf2.c: New file.
4135         * config/ns32k/__unordsf2.c: New file.
4136         * config/ns32k/t-ns32k: New file.
4137         * config.gcc (ns32k-*-netbsd*): Use it.
4138
4139 2002-08-01  Aldy Hernandez  <aldyh@redhat.com>
4140
4141         * config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff.
4142
4143 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
4144
4145         * c-common.c (__GXX_ABI_VERSION): Correct spelling.
4146
4147 2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>
4148
4149         * c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.
4150
4151 2002-08-01  Richard Sandiford  <rsandifo@redhat.com>
4152
4153         * config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions.
4154
4155 2002-08-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4156
4157         * gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size,
4158         n_sets): Removed.
4159         (expr_hash_table, set_hash_table): Type changed to ...
4160         (struct hash_table): New type.
4161         (hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call,
4162         insert_expr_in_table, insert_set_in_table, compute_hash_table,
4163         dump_hash_table, lookup_expr, lookup_set, compute_local_properties,
4164         compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly.
4165         (alloc_set_hash_table, alloc_expr_hash_table): Merged to ...
4166         (alloc_hash_table): New.
4167         (free_set_hash_table, free_expr_hash_table): Merged to ...
4168         (free_hash_table): New.
4169         (compute_set_hash_table, compute_expr_hash_table): Merged to ...
4170         (compute_hash_table_work): New.
4171         (classic_gcse, one_classic_gcse_pass, compute_cprop_data,
4172         find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data,
4173         pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse,
4174         one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout,
4175         hoist_code, one_code_hoisting_pass,
4176         trim_ld_motion_mems): Altered due to changed type of hash tables.
4177
4178 2002-08-01  Zack Weinberg  <zack@codesourcery.com>
4179
4180         * final.c (output_alternate_entry_point):
4181         If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it.
4182
4183 2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4184
4185         * objc/objc-act.c (encode_complete_bitfield): Add prototype and
4186         avoid ISO C style function definition.
4187
4188         * expr.c (expand_assignment): Delete unused variable.
4189
4190 2002-08-01  Toon Moene  <toon@moene.indiv.nluug.nl>
4191
4192         * c-common.c (cb_register_builtins): Set
4193         __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
4194         is given, and to 0 otherwise.
4195         * combine.c (simplify_if_then_else): HONOR_NANS
4196         implies FLOAT_MODE_P.
4197
4198 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
4199
4200         * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
4201         (cpp_handle_option): Don't handle it.
4202         (print_help): Update.
4203         * doc/cppopts.texi: Update.
4204
4205 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
4206
4207         * c-common.c (cb_register_builtins): If C++, define
4208         __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
4209         * gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
4210 cp:
4211         * lang-specs.h: Simplify in accordance with new code in
4212         c-common.c.
4213
4214 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
4215
4216         * c-common.c: Define all C/ObjC/C++ warning and flag variables.
4217         * c-common.h: Declare all C/ObjC/C++ warning and flag variables.
4218         * c-decl.c: Move all warning and flag variables to c-common.c.
4219         * c-format.c: Move all warning variables to c-common.c.
4220         * c-tree.h: Move all warning and flag declarations to c-common.h.
4221         * objc/objc-act.c: Move all warning variables to c-common.c.
4222         (flag_warn_protocol): Rename warn_protocol.
4223
4224 2002-07-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4225
4226         * pa-linux.h (GLOBAL_ASM_OP): Fix typo.
4227
4228 2002-07-31  Graham Stott  <graham.stott@btinternet.com>
4229
4230         * config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing
4231         .section prefix.
4232
4233 2002-07-31  Stan Shebs  <shebs@apple.com>
4234
4235         * config.gcc (i[34567]86-*-darwin*): New configuration.
4236         * config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before
4237         defining.
4238         (TARGET_ENCODE_SECTION_INFO): Ditto.
4239         (ASM_PREFERRED_EH_DATA_FORMAT): Ditto.
4240         * config/darwin.c (machopic_indirect_data_reference): Remove
4241         setting of RTX_UNCHANGING_P.
4242         (machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as
4243         not to be applied to sums.
4244         * config/i386/t-darwin: New file.
4245         * config/i386/darwin.h: New file.
4246         * config/i386/i386.h (TARGET_MACHO): Add default definition.
4247         * config/i386/i386.md (tablejump): Add TARGET_MACHO case.
4248         * config/i386/i386.c (output_set_got): For Mach-O, output Mach-O
4249         label and not the GOT add.
4250         (constant_address_p): For Mach-O, seeing a CONST is enough.
4251         (legitimate_pic_address_disp_p): Add a Mach-O case.
4252         (legitimate_address_p): Also test machopic_operand_p if Mach-O.
4253         (legitimize_pic_address): Use generic Mach-O code to legitimize.
4254         (output_pic_addr_const): Suppress @PLT if Mach-O, and parens
4255         if outputting a difference.
4256         (ix86_output_addr_diff_elt): Add Mach-O case.
4257         (ix86_expand_move): Similarly.
4258         (ix86_expand_call): Similarly.
4259         (current_machopic_label_num): New global.
4260         (machopic_output_stub): New function.
4261         (ix86_value_regno): New function.
4262         (ix86_function_value): Use it instead of VALUE_REGNO.
4263         (ix86_libcall_value): Ditto.
4264         * config/i386/unix.h (VALUE_REGNO): Remove.
4265
4266 2002-07-31  Graham Stott  <grahas@btinternet.com>
4267
4268         * config/rs6000/rs6000.c(rs6000_hash_constant): Fix
4269         hash for LABEL_REF's.
4270
4271 2002-07-31  Graham Stott  <grahams@btinternet.com>
4272
4273         * config/rs6000/rs6000.c (spe_init_builtins,
4274         altivec_init_builtins, rs6000_common_init_builtins):
4275         Replace ANSI with K&R function def.
4276
4277 2002-07-31  David Edelsohn  <edelsohn@gnu.org>
4278
4279         * rs6000.c (validate_condition_mode): Test flag_finite_math_only
4280         for CCFPmode.
4281
4282 2002-07-31  Richard Sandiford  <rsandifo@redhat.com>
4283
4284         * config/mips/crtn.asm: Don't use __mips16 to determine the
4285         return-address offset.  Define RA to a suitable temporary
4286         register for the return address.
4287
4288 2002-07-31  Richard Sandiford  <rsandifo@redhat.com>
4289
4290         * config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change
4291         constraints to 'd'.
4292
4293 2002-07-30  Chris Demetriou  <cgd@broadcom.com>
4294
4295         * config/mips/elf.h (STARTFILE_SPEC): Define differently if
4296         default ABI is MEABI.  (Undoes incorrect change in Eric Christopher's
4297         patch on 2002-07-29.)
4298         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
4299
4300 2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4301
4302         * alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h,
4303         fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h,
4304         ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h,
4305         openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h,
4306         s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h:
4307         (ASM_GLOBALIZE_LABEL): Delete.
4308         (GLOBAL_ASM_OP): Define.
4309
4310         * m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete.
4311
4312         * defaults.h (ASM_GLOBALIZE_LABEL): Provide a default.
4313         * doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs.
4314
4315 2002-07-30  Geoffrey Keating  <geoffk@redhat.com>
4316
4317         * doc/extend.texi (Hints implementation): Document that GCC
4318         mostly ignores `register'.
4319
4320 2002-07-30  Toon Moene  <toon@moene.indiv.nluug.nl>
4321
4322         * flags.h: Declare flag_finite_math_only.
4323         Use it in definition of HONOR_NANS and
4324         HONOR_INFINITIES.
4325         * c-common.c (cb_register_builtins): Emit
4326         __FINITE_MATH_ONLY__ when flag_finite_math_only
4327         is set.
4328         * combine.c (simplify_if_then_else): If
4329         flag_finite_math_only is set, a == b has a
4330         definite value.
4331         * toplev.c: Initialize flag_finite_math_only.
4332         (set_flags_fast_math): Set it on -ffast-math.
4333         (flag_fast_math_set_p): Test it.
4334         * doc/invoke.texi: Document -ffinite-math-only.
4335
4336 2002-07-30  Richard Henderson  <rth@redhat.com>
4337
4338         * ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p.
4339         (noce_process_if_block): Likewise.
4340
4341 2002-07-30  Bernd Schmidt  <bernds@redhat.com>
4342
4343         * ifcvt.c (cond_exec_process_if_block): Fix a merging error.
4344         Bail out early if false_expr is NULL and we'd crash due to this.
4345         * genemit.c (gen_expand): Recognize return insns even if the return
4346         appears in a parallel.
4347         * libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined.
4348         * config/fp-bit.c: Likewise.
4349         * doc/tm.texi: Document it.
4350
4351 2002-07-30  David Edelsohn  <edelsohn@gnu.org>
4352             Zack Weinberg  <zack@codesourcery.com>
4353
4354         * rs6000.c (rs6000_expand_unop_builtin): Check icode not
4355         CODE_FOR_nothing.  Change switch to if.
4356         (rs6000_expand_binop_builtin): Same.
4357         (rs6000_expand_builtin): Expand builtin if target support enabled.
4358         (rs6000_init_builtins): Init builtin if target support enabled.
4359         (rs6000_common_init_builtins): Check icode not CODE_FOR_nothing.
4360
4361 2002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4362
4363         * gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101.
4364
4365 2002-07-30  Richard Sandiford  <rsandifo@redhat.com>
4366
4367         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo.
4368
4369 Tue Jul 30 18:31:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
4370
4371         * sh.md (cond_delay_slot): New attribute.
4372         (cbranch delay): Use it for anulled-true case.
4373         (stuff_delay_slot): New pattern.
4374         * sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length
4375         delay slot insn.
4376         (gen_far_branch): Emit stuff_delay_slot pattern.
4377
4378 Tue Jul 30 11:21:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
4379
4380         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.
4381
4382 2002-07-30  Kazu Hirata  <kazu@cs.umass.edu>
4383
4384         * fold-const.c: Fix comment typos.
4385         * gcse.c: Likewise.
4386         * reload1.c: Likewise.
4387
4388 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
4389
4390         * config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot
4391         for TARGET_SPE.
4392
4393 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
4394
4395         * c-pretty-print.h (pp_c_statement): Declare.
4396         * c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC.
4397         (pp_c_statement): Define.
4398
4399 2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4400
4401         * alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h,
4402         darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h,
4403         ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h,
4404         mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h,
4405         rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h,
4406         v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition.
4407
4408         * defaults.h (ASM_OUTPUT_LABEL): Provide a default.
4409         * doc/tm.texi (ASM_OUTPUT_LABEL): Update docs.
4410
4411 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
4412
4413         * c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR.
4414         (pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR,
4415         COMPOUND_LITERAL_EXPR, VA_ARG_EXPR.
4416         (pp_c_expression): Update.
4417
4418 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4419
4420         * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
4421         concat in lieu of xmalloc/strcpy/memcpy/sprintf.
4422         * alpha/vms-ld.c (main): Likewise.
4423         * dsp16xx.c (double_reg_to_memory): Likewise.
4424         * mcore.c (mcore_expand_prolog): Likewise.
4425         * cppfiles.c (read_name_map): Likewise.
4426         * gensupport.c (process_rtx, identify_predicable_attribute,
4427         alter_test_for_insn): Likewise.
4428         * vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise.
4429
4430 2002-07-29  Roger Sayle  <roger@eyesopen.com>
4431
4432         * builtins.c (expand_builtin):  Change the default behavior to
4433         only issue an error if the builtin function doesn't have a
4434         fallback library call.  Remove several cases handled by the
4435         new default.
4436
4437 2002-07-29  John David Anglin  <dave@hiauly1.hia.nrc>
4438
4439         * real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the
4440         floating point format of the target is IEEE.
4441         * (dec_f, dec_d, dec_g, dec_h): Define only if the floating point
4442         format of the target is DEC.
4443
4444 2002-07-29  Richard Henderson  <rth@redhat.com>
4445
4446         * unroll.c (verify_addresses): Remove.
4447         (find_splittable_givs): Never split DEST_ADDR givs.
4448
4449 2002-07-29  Geoffrey Keating  <geoffk@redhat.com>
4450
4451         * doc/gty.texi (GGC Roots): Clarify that the list of syntaxes
4452         is exhaustive.
4453         (Files): Improve documentation on generated source files.
4454
4455         * doc/extend.texi (Translation implementation): Document what
4456         diagnostics look like.
4457         (Identifiers implementation): Document that there's normally no
4458         limit on identifier names.
4459         (Integers implementation): Document two's complement.
4460         (Hints implementation): Document that GCC honors 'inline', mostly.
4461         (Preprocessing directives implementation): Document that GCC
4462         requires the current time.
4463
4464 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
4465
4466         * c-pretty-print.h (struct c_pretty_print_info): Add new member.
4467         (pp_initializer): New macro.
4468         (pp_c_initializer): Declare.
4469         * c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR.
4470         (pp_c_initializer): Define.
4471         (pp_c_initializer_list): New function.
4472         (pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST,
4473         VECTOR_CST, CONSTRUCTOR.
4474         (pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR,
4475         IMAGPART_EXPR.
4476         (pp_c_cast_expression): Handle FLOAT_EXPR.
4477         (pp_c_assignment_expression): Handle INIT_EXPR.
4478         (pp_c_expression): Update.
4479
4480 2002-07-30  Neil Booth  <neil@daikokuya.co.uk>
4481
4482         * objc/objc-act.c (objc_init): Return immediately if filename
4483         is NULL.
4484
4485 2002-07-29  Eric Christopher  <echristo@redhat.com>
4486
4487         * config/mips/elf.h: Remove ecoff.h and gofast includes.
4488         (DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally.
4489         (SDB_DEBUGGING_INFO): Undefine.
4490         (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
4491         (PUT_SDB_SIZE): Remove.
4492         (SUBTARGET_ASM_DEBUGGING_SPEC): Redefine.
4493         (STARTFILE_SPEC): Add isa3264 define.
4494         * config/mips/elf64.h: Ditto.  Move TARGET_MEM_FUNCTIONS from here...
4495         * config/mips/ecoff.h: Remove. and here...
4496         * config/mips/iris3.h: and here...
4497         * config/mips/sni-svr4.h: and here...
4498         * config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs.
4499         Add assembler -mmdebug options for non-dwarf debugging.
4500         * config/mips/r3900.h: Remove debug info defines.
4501         * config/mips/isa32-linux.h: Remove, move functionality to config.gcc.
4502         * config/mips/isa3264.h: Ditto.
4503         * config/mips/t-isa3264: Fix up for file removal and gofast configure
4504         change.
4505         * config/mips/t-elf: Ditto.
4506         * config/mips/t-ecoff: Ditto.
4507         * config/mips/t-r3900: Ditto.
4508         * config/mips/t-iris5-6: Ditto.
4509         * config/mips/t-isa3264: Ditto.
4510         * config/mips/t-linux: Remove.
4511         * config/mips/t-netbsd: Remove.
4512         * config/mips/t-mips: New file.
4513         * config/mips/t-gofast: Ditto.
4514         * config/mips/netbsd.h: Remove unnecessary undefines.
4515         * config/mips/linux.h: Remove #include of mips.h.
4516         * config.gcc: Add mips.h include for elf targets. Remove tm_file
4517         for ecoff. Add gofast configure option for mips.
4518
4519 2002-07-29  Chris Demetriou  <cgd@broadcom.com>
4520
4521         * configure.in (mips*-*-*): Add a test to see if MIPS libgloss
4522         linker scripts use STARTUP directives consistently.
4523         * configure: Regenerate.
4524         * config.in: Regenerate.
4525         * config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based
4526         on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined.
4527         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
4528         * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if
4529         HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result
4530         will be the same.
4531
4532 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
4533
4534         * config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute.
4535
4536 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
4537
4538         * config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540.
4539
4540 2002-07-29  Aldy Hernandez  <aldy@quesejoda.com>
4541
4542         * config/rs6000/rs6000.md: Move altivec patterns from here...
4543
4544         * config/rs6000/altivec.md: ...to here.
4545
4546 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
4547
4548         * config/rs6000/spe.md ("spe_evmra"): Change to unspec.
4549
4550 2002-07-29  Richard Henderson  <rth@redhat.com>
4551
4552         * emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from
4553         set_mem_attributes and add BITPOS argument.  Subtract it from
4554         OFFSET when same is adjusted.
4555         (set_mem_attributes): New wrapper function.
4556         * expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos;
4557         remove offset adjustment hack.
4558         * expr.h (set_mem_attributes_minus_bitpos): Declare.
4559
4560 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
4561
4562         * Makefile.in (C_OBJS): Include c-pretty-print.o
4563         (c-pretty-print.o): Add depency rule.
4564         * pretty-print.h: Add more macros.
4565         * c-pretty-print.c: New file.
4566         * c-pretty-print.h: Likewise.
4567
4568 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
4569
4570         * config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector
4571         constants to __ev64_s32__.
4572         (__internal_ev_mwhgsmian): Same.
4573         (__internal_ev_mwhgsmfan): Same.
4574         (__internal_ev_mwhgssfan): Same.
4575         (__internal_ev_mwhgumiaa): Same.
4576         (__internal_ev_mwhgsmiaa): Same.
4577         (__internal_ev_mwhgsmfaa): Same.
4578         (__internal_ev_mwhgssfaa): Same.
4579
4580 2002-07-29  David Edelsohn  <edelsohn@gnu.org>
4581
4582         * varasm.c (assemble_variable): Narrow test for uninitialized
4583         without BSS target support.
4584
4585 2002-07-29  Nathan Sidwell  <nathan@codesourcery.com>
4586
4587         * profile.c: Add file comment describing the overall algorithm and
4588         structures.
4589         (struct edge_info): Add comments.
4590         (struct bb_info): Add comments.
4591         * basic-block.h (EDGE_*): Add comments.
4592         * doc/gcov.texi (Gcov Data Files): Document bit flags.
4593
4594 2002-07-29  Bob Wilson  <bob.wilson@acm.org>
4595
4596         * config/xtensa/elf.h, config/xtensa/linux.h
4597         (TARGET_OS_CPP_BUILTINS): Define.
4598         (CPP_PREDEFINES): Remove.
4599         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define.
4600         (CPP_SPEC): Remove.
4601
4602 2002-07-29  Zack Weinberg  <zack@codesourcery.com>
4603
4604         * gensupport.c: Include hashtab.h.
4605         (insn_elision, condition_table, hash_c_test, cmp_c_test,
4606         maybe_eval_c_test): New routines and data structures to
4607         support insn elision.
4608         (init_md_reader): Read and initialize the condition_table.
4609         (read_md_rtx): Discard insn patterns whose C test is provably
4610         always false.
4611         * gensupport.h: Declare new functions and data structures.
4612
4613         * genconditions.c, dummy-conditions.c: New files.
4614         * Makefile.in: Build genconditions; run it to construct
4615         insn-conditions.c; build that and link it into most gen*
4616         programs.
4617         (HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables.
4618         (GEN): Delete, unused.
4619         (STAGESTUFF): Update.
4620
4621         * gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to
4622         CODE_FOR_nothing for all elided patterns.
4623         (main): Tweaked to support this.
4624         * genflags.c (gen_proto): Emit a static inline generator
4625         function here for all elided patterns, which simply returns
4626         NULL_RTX.
4627         (gen_insn): Do not define HAVE_xxx for elided patterns.
4628         (main): Tweaked to support this.  No need to forward-declare
4629         struct rtx_def.
4630         * genrecog.c: Do not bother emitting the C test if it's known
4631         to be true at compile time.
4632
4633 2002-07-29  Mike Stump  <mrs@apple.com>
4634
4635         * config.gcc (target_gtfiles): Initialize, as otherwise cross
4636         compilers hosted on powerpc-apple-darwin6.0 won't even build.
4637
4638 2002-07-29  Richard Earnshaw  <rearnsha@arm.com>
4639
4640         * arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
4641         remove clobber of LR.
4642         (sibcall_insn, sibcall_value_insn): Update accordingly.
4643         (sibcall_epilogue): Remove debugging comment from assembler stream.
4644
4645 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
4646
4647         * pretty-print.h: Define more macros.
4648         * diagnostic.h (output_formatted_integer): Moved from...
4649         * diagnostic.c: ... here.
4650
4651 2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4652
4653         * stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF.
4654
4655 2002-07-28  Zack Weinberg  <zack@codesourcery.com>
4656
4657         * defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
4658         arguments.  Always use ".-symbol" as expression argument.
4659         * doc/tm.texi: Update to match.  Document requirement for
4660         ".size symbol, .-symbol" to be acceptable to assembler.
4661
4662         * config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
4663         config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
4664         config/i386/freebsd-aout.h, config/i386/sco5.h,
4665         config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
4666         config/xtensa/linux.h:  Update uses of ASM_OUTPUT_MEASURED_SIZE.
4667
4668 2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4669
4670         * Makefile.in (gengtype-lex.c): Fix error in last change.
4671
4672         * alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing
4673         backslash.
4674
4675         * Makefile.in (vmsdbgout.o): Depend on function.h.
4676
4677         * vmsdbgout.c: Include function.h.
4678
4679 2002-07-28  Alan Modra  <amodra@bigpond.net.au>
4680
4681         * prefix.c (update_path): Don't strip single `.' path components
4682         unless stripping a later `..' component.  Exit loop as soon as
4683         a valid path is found.
4684
4685 2002-07-27  Roger Sayle  <roger@eyesopen.com>
4686
4687         * builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS
4688         argument.  Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN,
4689         BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99
4690         floating point unordered comparisons (e.g. __builtin_isgreater)
4691         as const, and leave the remaining GCC_BUILTINs unchanged.
4692
4693         * c-decl.c (builtin_function): No need to explicitly mark
4694         BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
4695
4696 2002-07-27  Roger Sayle  <roger@eyesopen.com>
4697
4698         * Makefile.in: rtlanal.o now depends upon real.h.
4699
4700         * flags.h [flag_signaling_nans]: New flag.
4701         [HONOR_SNANS]: New macro.
4702
4703         * toplev.c [flag_signaling_nans]: Initialize to false.
4704         (f_options): Add processing for "-fsignaling-nans".
4705         (set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
4706         (process_options): flag_signaling_nans implies flag_trapping_math.
4707
4708         * c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
4709         when -fsignaling-nans.  First step to implementing WG14's N965.
4710
4711         * fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
4712         1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
4713         [RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.
4714
4715         * simplify-rtx.c (simplify_relational_operation): Conditionalize
4716         transforming abs(x) < 0.0 into false on !HONOR_SNANS.
4717
4718         * rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
4719         required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
4720         UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
4721         -fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
4722         not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).
4723
4724         * doc/invoke.texi: Document new -fsignaling-nans compiler option.
4725
4726 2002-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4727
4728         * Makefile.in (gengtype-lex.c): Work around a bug in flex.
4729         * gengtype-lex.l (YY_USE_PROTOS): Undef.
4730         (YY_DECL): Define.
4731
4732 2002-07-27  Roger Sayle  <roger@eyesopen.com>
4733
4734         * doc/invoke.texi: Document that both -fno-builtin-foo and
4735         -fno-builtin are supported by the g++ front-end.
4736
4737 2002-07-27  Stan Shebs  <shebs@apple.com>
4738
4739         * configure.in: Rename config_gtfiles to target_gtfiles.
4740         * configure: Regenerate.
4741         * doc/gty.texi: Update reference.
4742         * config.gcc (powerpc-*-darwin*): Set target_gtfiles
4743         instead of appending to it.
4744
4745 2002-07-25  Aldy Hernandez  <aldyh@redhat.com>
4746
4747         * config/rs6000/rs6000.c (function_arg_advance): SPE vararg
4748         vectors are split into two registers.
4749         (function_arg): Same.
4750
4751 Thu Jul 26 23:00:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
4752
4753         * pa.md (extv): Check predicates before emitting extv_32.
4754
4755 2002-07-27  Alan Modra  <amodra@bigpond.net.au>
4756
4757         * config/rs6000/rs6000.c (rs6000_traceback_name): New var.
4758         (rs6000_traceback): New var.
4759         (rs6000_override_options): Set rs6000_traceback.
4760         (rs6000_output_function_epilogue): Implement traceback options.
4761         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=".
4762         (rs6000_traceback_name): Declare.
4763
4764         * config/rs6000/rs6000.c (output_profile_hook): Don't generate profile
4765         label reference when NO_PROFILE_COUNTERS.
4766
4767 2002-07-26  Jason Merrill  <jason@redhat.com>
4768
4769         * function.c (assign_parms): Handle frontend-directed pass by
4770         invisible reference.
4771
4772 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
4773
4774         * doc/cppopts.texi: Update.
4775
4776 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
4777
4778         * cppmacro.c (_cpp_create_definition): Don't attempt redefinition
4779         warnings on assertions.
4780
4781 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
4782
4783         * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,
4784         RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR,
4785         RID_COMPL): Remove.
4786         * c-parse.in (rid_to_yy): Similarly.
4787
4788 2002-07-26  Jason Merrill  <jason@redhat.com>
4789
4790         * c-dump.c: Resurrect.
4791         * tree-dump.c: Move C-specific stuff to c-dump.c.
4792         * c-common.h: Declare c_dump_tree.
4793         * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
4794         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
4795         (c-dump.o): New rule.
4796
4797 2002-07-26  Alan Modra  <amodra@bigpond.net.au>
4798
4799         * config/rs6000/rs6000.md: Enable patterns using rlwinm for
4800         PowerPC64.  Replace "T" and "S" constraints with "n" when the
4801         predicate will do.  Formatting fixes.
4802         (extzvsi_internal2): Use "andi.", "andis." and attr type of "compare"
4803         as for extzvsi_internal1.
4804
4805 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
4806
4807         * dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT,
4808         DERIV_END_LABEL_FMT): Remove.
4809         (SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move.
4810
4811 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
4812
4813         * objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE):
4814         Remove.
4815
4816 2002-07-25  Stan Shebs  <shebs@apple.com>
4817
4818         * config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused
4819         local var dwarfp.
4820         (output_compiler_stub): Remove unused locals.
4821         (output_call): Always initialize line number.
4822
4823 Thu Jul 25 20:34:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
4824
4825         * sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
4826         * sh.md (truncdiqi2, movqi_media): Likewise.
4827
4828 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
4829
4830         * gcse.c (obstack_chunk_alloc): Remove.
4831         (gcse_alloc): Fix to count allocated bytes.
4832         * collect2.c (SYMBOL__MAIN): Remove.
4833
4834 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
4835
4836         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
4837         HAVE_TARGET_EXECUTABLE_SUFFIX.
4838
4839 Thu Jul 25 18:57:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
4840
4841         * rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
4842         SIZE, EXPR and OFFSET.
4843
4844 2002-07-25  Richard Henderson  <rth@redhat.com>
4845
4846         * emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos
4847         in ARRAY_REF of DECL_P case.
4848
4849 2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
4850
4851         * doc/invoke.texi: Document -mabi=meabi, and expand on the EABI
4852         description.  Document -mips32, -mips64, and the associated -march
4853         values.  Describe the "mipsN" arguments to -march.  Say that the
4854         -mipsN options are equivalent to -march.  Reword the description
4855         of default type sizes.
4856         * toplev.h (target_flags_explicit): Declare.
4857         * toplev.c (target_flags_explicit): New var.
4858         (set_target_switch): Update target_flags_explicit.
4859         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine.
4860         * config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine.
4861         * config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3.
4862         * config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine.
4863         * config/mips/mips.h (mips_cpu_info): New struct.
4864         (mips_cpu_string, mips_explicit_type_size_string): Remove.
4865         (mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare.
4866         (MIPS_CPP_SET_PROCESSOR): New macro.
4867         (TARGET_CPP_BUILTINS): Declare a macro for each supported processor.
4868         Define _MIPS_ARCH and _MIPS_TUNE.
4869         (MIPS_ISA_DEFAULT): Don't provide a default value.  Instead...
4870         (MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor
4871         MIPS_ISA_DEFAULT were already defined.
4872         (MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT.
4873         (TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size.
4874         (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New.
4875         (GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules.
4876         (ABI_GAS_ASM_SPEC): Remove.
4877         (MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros.
4878         (ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64.
4879         Invoke %(asm_abi_default_spec) if no ABI was specified.
4880         (CC1_SPEC): Remove ISA -> register-size rules.
4881         (EXTRA_SPECS): Remove abi_gas_asm_spec.  Add asm_abi_default_spec.
4882         * config/mips/mips.c (mips_arch_info, mips_tune_info): New vars.
4883         (mips_cpu_string, mips_explicit_type_size_string): Remove.
4884         (mips_cpu_info_table): New array.
4885         (mips_set_architecture, mips_set_tune): New fns.
4886         (override_options): Rework to make -mipsN equivalent to -march.
4887         Detect more erroneous cases, including those removed from CC1_SPEC.
4888         Don't change the ABI based on architecture, or vice versa.
4889         Unify logic with GAS.
4890         (mips_asm_file_start): Get architecture name from mips_arch_info.
4891         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns.
4892         (mips_parse_cpu): Take the name of the option as argument.  Handle
4893         'from-abi'.  Raise an error if the option is wrong.
4894         (mips_cpu_info_from_isa): New fn.
4895
4896 2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
4897
4898         * config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
4899         (tablejump_mips162): Likewise.
4900
4901 Thu Jul 25 10:23:41 2002  J"orn Rennecke <joern.rennecke@superh.com>
4902
4903         * simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
4904         int_mode_for_mode.
4905
4906 2002-07-25  Gabriel Dos Reis  <gdr@nerim.net>
4907
4908         * c-common.c (c_sizeof_or_alignof_type): Take a third argument for
4909         complaining.
4910         * c-common.h (c_sizeof): Adjust definition.
4911         (c_alignof): Likewise.
4912         * c-tree.h (c_sizeof_nowarn): Now macro.
4913         * c-typeck.c (c_sizeof_nowarn): Remove definition.
4914
4915 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
4916
4917         * c-decl.c (c_decode_option): No need to handle switches
4918         cpplib handles.
4919
4920 2002-07-24  Zack Weinberg  <zack@codesourcery.com>
4921
4922         * defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
4923         ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
4924         * doc/tm.texi: Document them.  Also document SIZE_ASM_OP,
4925         TYPE_ASM_OP, and TYPE_OPERAND_FMT.
4926
4927         * config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
4928         config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
4929         config/cris/aout.h, config/i386/freebsd-aout.h,
4930         config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
4931         config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
4932         config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
4933         config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
4934         config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
4935         config/xtensa/elf.h, config/xtensa/linux.h:
4936         Use the new macros.
4937         Where possible, remove redundant definitions of SIZE_ASM_OP,
4938         TYPE_ASM_OP, and TYPE_OPERAND_FMT.
4939
4940 2002-07-24  Aldy Hernandez  <aldyh@redhat.com>
4941
4942         * config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
4943         TARGET_ISEL, and TARGET_FPRS.
4944
4945         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4946         -mabi=spe, -mabi=no-spe, and -misel=.
4947
4948         * config/rs6000/rs6000-protos.h: Add output_isel.
4949         Move vrsave_operation prototype here.
4950
4951         * config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
4952         (smaxsi3): Same.
4953         (uminsi3): Same.
4954         (umaxsi3): Same.
4955         (abssi2_nopower): Disallow when TARGET_ISEL.
4956         (*ne0): Same.
4957         (negsf2): Change to expand and rename old pattern to *negsf2.
4958         (abssf2): Change to expand and rename old pattern to *abssf2.
4959
4960         New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
4961         fixunssfsi2.
4962
4963         Change patterns that check for TARGET_HARD_FLOAT or
4964         TARGET_SOFT_FLOAT to also check TARGET_FPRS.
4965
4966         * config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
4967         rs6000_isel, rs6000_fprs, rs6000_isel_string.
4968         (rs6000_override_options): Add 8540 case to
4969         processor_target_table.
4970         Set rs6000_isel for the 8540.
4971         Call rs6000_parse_isel_option.
4972         (enable_mask_for_builtins): New.
4973         (rs6000_parse_isel_option): New.
4974         (rs6000_parse_abi_options): Add spe and no-spe.
4975         (easy_fp_constant): Treat !TARGET_FPRS as soft-float.
4976         (rs6000_legitimize_address): Check for TARGET_FPRS when checking
4977         for TARGET_HARD_FLOAT.
4978         Add case for SPE_VECTOR_MODE.
4979         (rs6000_legitimize_reload_address): Handle SPE vector modes.
4980         (rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
4981         vector modes.
4982         Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
4983         (rs6000_emit_move): Check for TARGET_FPRS.
4984         Add cases for SPE vector modes.
4985         (function_arg_boundary): Return 64 for SPE vector modes.
4986         (function_arg_advance): Check for TARGET_FPRS and
4987         Handle SPE vectors.
4988         (function_arg): Same.
4989         (setup_incoming_varargs): Check for TARGET_FPRS.
4990         (rs6000_va_arg): Same.
4991         (struct builtin_description): Un-constify mask field.  Move up in
4992         file.
4993         (bdesc_2arg): Un-constify and add SPE builtins.
4994         (bdesc_1arg): Same.
4995         (bdesc_spe_predicates): New.
4996         (bdesc_spe_evsel): New.
4997         (rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
4998         (rs6000_expand_binop_builtin): Same.
4999         (bdesc_2arg_spe): New.
5000         (spe_expand_builtin): New.
5001         (spe_expand_predicate_builtin): New.
5002         (spe_expand_evsel_builtin): New.
5003         (rs6000_expand_builtin): Call spe_expand_builtin for SPE.
5004         (rs6000_init_builtins): Initialize SPE builtins.  Call
5005         rs6000_common_init_builtins.
5006         (altivec_init_builtins): Move all non-altivec builtin code to...
5007         (rs6000_common_init_builtins): ...here.  New function.
5008         (branch_positive_comparison_operator): Allow NE code for SPE.
5009         (ccr_bit): Return correct ccr bit for SPE fp.
5010         (print_operand): Emit crnor in 'D' case for SPE.
5011         New case 't'.
5012         Add SPE code for 'y' case.
5013         (rs6000_generate_compare): Generate rtl for SPE fp.
5014         (output_cbranch): Handle SPE hard floats.
5015         (rs6000_emit_cmove): Handle isel.
5016         (rs6000_emit_int_cmove): New.
5017         (output_isel): New.
5018         (rs6000_stack_info): Adjust stack frame so GPRs are saved in
5019         64-bits for SPE.
5020         (debug_stack_info): Add SPE info.
5021         (gen_frame_mem_offset): New.
5022         (rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
5023         Change mode of frame pointer, when saving it, to Pmode.
5024         (rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
5025         Misc cleanups and use gen_frame_mem_offset when appropriate.
5026
5027         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
5028         (TARGET_SPE_ABI): New.
5029         (TARGET_SPE): New.
5030         (TARGET_ISEL): New.
5031         (TARGET_FPRS): New.
5032         (FIXED_SCRATCH): New.
5033         (RTX_COSTS): Add PROCESSOR_PPC8540.
5034         (ASM_CPU_SPEC): Add case for 8540.
5035         (TARGET_OPTIONS): Add isel= case.
5036         (rs6000_spe_abi): New.
5037         (rs6000_isel): New.
5038         (rs6000_fprs): New.
5039         (rs6000_isel_string): New.
5040         (UNITS_PER_SPE_WORD): New.
5041         (LOCAL_ALIGNMENT): Adjust for SPE.
5042         (HARD_REGNO_MODE_OK): Same.
5043         (DATA_ALIGNMENT): Same.
5044         (MEMBER_TYPE_FORCES_BLK): New.
5045         (FIRST_PSEUDO_REGISTER): Set to 113.
5046         (FIXED_REGISTERS): Add SPE registers.
5047         (reg_class): Same.
5048         (REG_CLASS_NAMES): Same.
5049         (REG_CLASS_CONTENTS): Same.
5050         (REGNO_REG_CLASS): Same.
5051         (REGISTER_NAMES): Same.
5052         (DEBUG_REGISTER_NAMES): Same.
5053         (ADDITIONAL_REGISTER_NAMES): Same.
5054         (CALL_USED_REGISTERS): Same.
5055         (CALL_REALLY_USED_REGISTERS): Same.
5056         (SPE_ACC_REGNO): New.
5057         (SPEFSCR_REGNO): New.
5058         (SPE_SIMD_REGNO_P): New.
5059         (HARD_REGNO_NREGS): Adjust for SPE.
5060         (VECTOR_MODE_SUPPORTED_P): Same.
5061         (REGNO_REG_CLASS): Same.
5062         (FUNCTION_VALUE): Same.
5063         (LIBCALL_VALUE): Same.
5064         (LEGITIMATE_OFFSET_ADDRESS_P): Same.
5065         (SPE_VECTOR_MODE): New.
5066         (CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
5067         the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
5068         (rs6000_stack): Add spe_gp_size, spe_padding_size,
5069         spe_gp_save_offset.
5070         (USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
5071         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
5072         (SPE_CONST_OFFSET_OK): New.
5073         (rs6000_builtins): Add SPE builtins.
5074
5075         * testsuite/gcc.dg/ppc-spe.c: New.
5076
5077         * config/rs6000/eabispe.h: New.
5078
5079         * config/rs6000/spe.h: New.
5080
5081         * config/rs600/spe.md: New.
5082
5083         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5084         __SIMD__ for TARGET_SPE.
5085
5086         * config.gcc: Add powerpc-*-eabispe* case.
5087         Add spe.h to user headers for powerpc.
5088
5089 2002-07-24  Chris Demetriou  <cgd@broadcom.com>
5090
5091         * config/mips/elf.h (STARTFILE_SPEC): Undo previous change.
5092         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
5093         * config/mips/isa3264.h (STARTFILE_SPEC): Likewise.
5094
5095 2002-07-24  Richard Henderson  <rth@redhat.com>
5096
5097         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
5098         form when not optimizing.
5099
5100 2002-07-24  David Mosberger  <davidm@hpl.hp.com>
5101
5102         * config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
5103         thread_pointer_rtx as unchanging.
5104
5105 2002-07-24  Michael Matz  <matz@suse.de>
5106
5107         * ra-colorize.c (INV_REG_ALLOC_ORDER): New macro.
5108         (free_reg): Use it.
5109
5110 2002-07-24  Richard Earnshaw  <rearnsha@arm.com>
5111
5112         * arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output
5113         pattern.
5114         (arm_buneq_reversed, arm_bltgt_reversed): Likewise.
5115         (movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT.
5116
5117 2002-07-24  Chris Demetriou  <cgd@broadcom.com>
5118
5119         * config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o.
5120         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
5121         * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine.
5122
5123 Wed Jul 24 17:59:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
5124
5125         * toplev.c (rest_of_compilation): Dump loops before clobbering
5126         the structure.
5127
5128 Wed Jul 24 17:23:16 CEST 2002  Jan Hubicka  <jh@suse.cz>
5129
5130         * rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs.
5131
5132 2002-07-24  Frank van der Linden  <fvdl@wasabisystems.com>
5133
5134         PR optimization/7291
5135         * config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment
5136         problem on x86_64.
5137
5138 2002-07-24  Gabriel Dos Reis  <gdr@nerim.net>
5139
5140         * pretty-print.h: Add macros from cp/error.c
5141
5142 2002-07-24  Alan Modra  <amodra@bigpond.net.au>
5143
5144         * config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare.
5145         (mask64_2_operand): Declare.
5146         (build_mask64_2_operands): Declare.
5147         (and64_2_operand): Declare.
5148         (extract_MB): Declare.
5149         (extract_ME): Declare.
5150         * config/rs6000/rs6000.c (mask64_operand): Allow all ones.  Remove
5151         CONST_DOUBLE code.
5152         (mask_operand_wrap): New insn predicate.
5153         (mask64_2_operand): Likewise.
5154         (and64_2_operand): Likewise.
5155         (build_mask64_2_operands): New function.
5156         (extract_MB): New function.
5157         (extract_ME): New function.
5158         (print_operand <case m,M>): Use extract_MB and extract_ME.
5159         (print_operand <case S>): Allow all ones.  Remove CONST_DOUBLE support.
5160         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'.
5161         (PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and
5162         mask64_2_operand.  Remove CONST_DOUBLE from mask64_operand.
5163         * config/rs6000/rs6000.md (andsi3_internal3): New
5164         (andsi3_internal3+1): Enable split for powerpc64.
5165         (andsi3_internal3+2): New split.
5166         (andsi3_internal4): Renamed old andsi3_internal3.
5167         (andsi3_internal5): New.
5168         (andsi3_internal5+1): Enable split for powerpc64.
5169         (andsi3_internal5+2): New split.
5170         (andsi3_internal6, andsi3_internal7, andsi3_internal8): New.
5171         (anddi3): Handle 't' constraint.
5172         (anddi3+1): New split.
5173         (anddi3_internal2): Handle 't' constraint.
5174         (anddi3_internal2+1): New split.
5175         (anddi3_internal3): Handle 't' constraint.
5176         (anddi3_internal3+1): New split.
5177
5178 2002-07-24  Alan Modra  <amodra@bigpond.net.au>
5179
5180         * config/rs6000/rs6000.md: Remove scratch reg on insns using
5181         addze and similar (plus (comparison r1 r2) r3) insns.  Add
5182         missing scratch reg in one case.  Formatting fixes.
5183
5184 2002-07-24  Neil Booth  <neil@daikokuya.co.uk>
5185
5186         * cppexp.c (parse_defined): Mark macro used.
5187         * cpphash.h (struct cpp_macro): New member "used".
5188         (_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New.
5189         (struct cpp_reader): New member.
5190         * cppinit.c (cpp_finish_options): Set first_unused_line.
5191         (cpp_finish): Warn of unused macros if requested.
5192         (OPT_TABLE): New switches.
5193         (cpp_handle_option): Handle them.
5194         * cpplib.c (do_undef): Warn if macro unused.
5195         (do_ifdef, do_ifndef): Mark macro used.
5196         * cpplib.h (struct cpp_options): New member.
5197         * cppmacro.c (_cpp_warn_if_unused_macro): New.
5198         (enter_macro_context): Mark macro used.
5199         (_cpp_create_definition): Mark macro unused; warn if unused
5200         when redefined.
5201         * cpptrad.c (scan_out_logcial_line, push_replacement_text):
5202         Mark macros used.
5203         * doc/cppopts.texi: Update.
5204
5205 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
5206
5207         * dwarf2out.c (SECTION_ASM_OP,
5208         ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
5209         * system.h (SECTION_ASM_OP): Poison.
5210         * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove.
5211         * config/alpha/alpha-interix.h, config/mips/linux.h
5212         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
5213         * config/mmix/mmix-protos.h, config/mmix/mmix.c
5214         (mmix_asm_output_define_label_difference_symbol): Remove.
5215         * config/mmix/mmix.h
5216         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
5217         * doc/tm.texi: Remove documentation.
5218
5219 Tue Jul 23 21:49:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
5220
5221         * recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
5222         (constrain_operands): Likewise.
5223         * regclass.c (record_reg_classes): Likewise.
5224         * reload.c (find_reloads): Likewise.
5225         * doc/md.texi: Likewise.
5226
5227         * reload.c (find_reloads_toplev): Use simplify_gen_subreg.
5228         * simplify-rtx.c (simplify_subreg): When converting to a non-int
5229         mode, try to convert to an integer mode of matching size first.
5230
5231         * simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR
5232         from individual subregs, check that each subreg has been generated
5233         sucessfully.
5234
5235 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
5236
5237         * genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
5238         * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
5239         FOR_EACH_BB_IN_SBITMAP): Remove.
5240         * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
5241         * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
5242         LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
5243         * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
5244         PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
5245         * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.
5246
5247 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
5248
5249         * pretty-print.h: New file.
5250
5251 2002-07-23      Paul Koning     <pkoning@equallogic.com>
5252
5253         * real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC.
5254         (LARGEST_EXPONENT_IS_NORMAL): Ditto.
5255         (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
5256         (TARGET_G_FLOAT): Default to 0 if not defined.
5257         (ieeetoe): New, common routine to convert target format floats
5258         to internal form.
5259         (e24toe, e53toe): Change to use ieeetoe, distinguish DEC
5260         vs. others.
5261         (e113toe): Change to use ieeetoe.
5262
5263 2002-07-23  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
5264
5265         * real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for
5266         IBM.
5267         (e53toe): Assume IEEE if non of DEC, IBM and C4X is defined.
5268         (e64toe): Remove special cases for DEC and IBM. Remove support for
5269         ARM_EXTENDED_IEEE_FORMAT.
5270         (e24toe): Remove special cases for DEC.
5271         (significand_size): Simplify. Indent.
5272         (ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New.
5273         (etoieee, toieee): New.
5274         (etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use
5275         etoieee and toieee for IEEE arithmetic.
5276
5277 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
5278
5279         * doc/extend.texi: Say ISO C90, not ISO C89.
5280         * doc/invoke.texi: Likewise.
5281         * doc/standards.texi: Likewise.
5282
5283 2002-07-23  Steve Ellcey  <sje@cup.hp.com>
5284
5285         * gcc/explow.c (convert_memory_address): Fix conversion of CONSTs.
5286         Fix permutation of conversion and plus/mult.
5287         * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is
5288         ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined.
5289         (expand_builtin_strncpy) Ditto.
5290         (expand_builtin_memset) Ditto.
5291
5292 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
5293
5294         Fix PR/7363:
5295         * c-common.c (c_sizeof_or_alignof_type): New function.
5296         (c_alignof): Remove definition.
5297         * c-common.h (c_sizeof, c_alignof): Define as macros.
5298         (c_sizeof_or_alignof_type): Declare.
5299         (my_friendly_assert): Moved from cp/cp-tree.h
5300         * c-typeck.c (c_sizeof): Remove definition.
5301
5302 2002-07-23  Jan Hubicka  <jh@suse.cz>
5303
5304         * gcse.c (try_replace_reg): Use num_changes_pending.
5305         * recog.c (num_changes_pending): New function.
5306         (validate_replace_src): Use validate_repalce_src_group.
5307         (validate_replace_src_group): New.
5308         * recog.h (validate_repalce_src_group): New.
5309         (num_changes_pending): Likewise.
5310
5311 Tue Jul 23 12:16:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
5312
5313         * calls.c (emit_library_call_value_1): If
5314         FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
5315         libcall, const call nor pure call.
5316
5317 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
5318
5319         * config/m88k/m88k.h (SECTION_ASM_OP): Remove.
5320
5321 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
5322
5323         * vmsdbgout.c (SECTION_ASM_OP): Remove.
5324
5325 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
5326
5327         * config/i386/i386.c (AT_BP): Remove.
5328
5329 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
5330
5331         * defaults.h (obstack_chunk_alloc, obstack_chunk_free):
5332         Default definition.
5333         * gcse.c: Don't define obstack_chunk_free.
5334         * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
5335         flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
5336         integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
5337         reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
5338         Don't define obstack macros.
5339
5340 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
5341
5342         PR target/6744
5343         * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace
5344         ASM_OPERANDS instructions.
5345
5346 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
5347
5348         PR target/7361
5349         * config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
5350         constant addresses only on 68HC12.
5351
5352 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
5353
5354         * cppfiles.c (stack_include_file): Correct test of whether
5355         a dependency should be output.
5356
5357 2002-07-22  David Edelsohn  <edelsohn@gnu.org>
5358
5359         * collect2.c (is_ctor_dtor): Add other possible JOINER values.
5360
5361 2002-07-22  Richard Earnshaw  <rearnsha@arm.com>
5362
5363         * arm.md (movqi): If optimizing and we can create pseudos, use
5364         a ZERO_EXTEND to load from memory, then copy the result into the
5365         target.
5366         (movhi): Likewise, but only for ARMv4.
5367
5368 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
5369
5370         * ssa-ccp.c (PHI_PARMS): Remove.
5371
5372 2002-07-22  Richard Sandiford  <rsandifo@redhat.com>
5373
5374         * config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS
5375         on big-endian targets.
5376
5377 2002-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5378
5379         * hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE,
5380         HOST_WIDE_INT_PRINT_UNSIGNED_SPACE,
5381         HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE):
5382         New formatting macros.
5383
5384         * ra-debug.c (dump_static_insn_cost): Avoid string concatenation.
5385
5386 Mon Jul 22 15:27:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
5387
5388         * rtlanal.c (subreg_regno_offset): Return correct offset for
5389         big endian paradoxical subregs.
5390
5391         * optabs.c (expand_vector_unop): Don't expand using sub_optab
5392         if we got the wrong mode.
5393
5394         * hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define.
5395         * genrecog.c (write_switch, write_cond): Use it.
5396         * genemit.c (gen_exp): Likewise.
5397
5398 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
5399
5400         * c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE.
5401
5402 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
5403
5404         * c-decl.c (build_compound_literal): Defer compound literal decls
5405         until until file end to emit them only if they are actually used.
5406
5407 2002-07-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5408
5409         * ra-build.c (check_conflict_numbers): Hide unused function.
5410         (livethrough_conflicts_bb): Avoid automatic aggregate
5411         initialization.
5412         (parts_to_webs_1): Avoid `U' integer constant modifier.
5413         (conflicts_between_webs): Wrap a variable in the macro controlling
5414         its usage.
5415         * ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE.
5416         (dump_igraph, dump_graph_cost): Avoid string concatenation
5417         (dump_static_insn_cost): Avoid automatic aggregate
5418         initialization.
5419         * ra-rewrite.c (insert_stores): Avoid automatic aggregate
5420         initialization.
5421         (dump_cost): Avoid string concatenation
5422
5423 2002-07-21  Richard Henderson  <rth@redhat.com>
5424
5425         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use
5426         GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded.
5427
5428 2002-07-21  Richard Henderson  <rth@redhat.com>
5429
5430         * unroll.c (find_splittable_givs): Do not split DEST_ADDR givs
5431         that are not unrolled completely.
5432
5433 2002-07-21  Richard Henderson  <rth@redhat.com>
5434
5435         * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
5436         * loop.c (strength_reduce): Update.
5437         * toplev.c (rest_of_compilation): Do unrolling in the first
5438         loop pass, not the second.
5439
5440 2002-07-21  Richard Henderson  <rth@redhat.com>
5441
5442         * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
5443         when flag_argument_noalias == 2.
5444         * alias.c (nonoverlapping_memrefs_p): Handle that.
5445         * print-rtl.c (print_mem_expr): Likewise.
5446
5447 2002-07-21  Hartmut Schirmer  <hartmut.schirmer@arcor.de>
5448
5449         * libgcc2.c (__divdi3, __moddi3): Use unary minus operator
5450         instead of __negdi2 directly.
5451
5452 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
5453
5454         * gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
5455         * function.c (SYMBOL__MAIN): Remove definition.
5456         * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
5457         * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.
5458         * profile.c (GCOV_INDEX_TO_BB): Remove.
5459         * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
5460         * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.
5461
5462 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
5463
5464         * c-lex.c (GET_ENVIRONMENT): Remove.
5465         * collect2.c (GET_ENV_PATH_LIST): Remove.
5466         (prefix_from_env): Use GET_ENVIRONMENT.
5467         * cppinit.c (GET_ENV_PATH_LIST): Remove.
5468         (init_standard_includes): Use GET_ENVIRONMENT.
5469         * defaults.h (GET_ENVIRONMENT): Define here if not already.
5470         * gcc.c (GET_ENV_PATH_LIST): Remove.
5471         (make_relative_prefix, process_command): Update.
5472         * protoize.c (GET_ENV_PATH_LIST): Remove.
5473         (do_processing): Update.
5474
5475 2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>
5476
5477         * c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'.
5478         (grokdeclarator): Likewise.
5479         * c-format.c (C_STD_NAME): Likewise.
5480         * c-lex.c (interpret_integer): Likewise.
5481         * c-typeck.c (build_array_ref): Likewise.
5482         * cpplex.c (_cpp_lex_direct): Likewise.
5483         * toplev.c (documented_lang_options): Likewise.
5484
5485 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
5486
5487         * c-format.c (T99_I, T99_UI): Remove.
5488
5489 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
5490
5491         * c-typeck.c (SAVE_SPELLING_DEPTH): Remove.
5492
5493 Sun Jul 21 21:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
5494
5495         * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
5496         do_local_cprop.
5497
5498 2002-07-21  Andreas Jaeger  <aj@suse.de>
5499
5500         * reload1.c (fixup_abnormal_edges): Remove unused variable.
5501
5502 2002-07-21  Bernd Schmidt  <bernds@redhat.com>
5503
5504         Improvements for the ifcvt pass from Michael Meissner, with patches
5505         by Richard Sandiford <rsandifo@redhat.com>
5506         * basic-block.h (struct ce_if_block, ce_if_block_t): New types.
5507         * ifcvt.c (cond_exec_changed_p): New static variable.
5508         (last_active_insn): New function, renamed from last_active_insn_p
5509         and changed to return the last active insn in a basic block. All
5510         callers updated.
5511         (block_fallthru): New function.
5512         (cond_exec_process_insns): New argument CE_INFO.  Pass it to
5513         IFCVT_MODIFY_INSN.  All callers updated.
5514         Return false if START or END are NULL.
5515         Handle case where we're processing an insn that is already
5516         conditional.
5517
5518         (noce_process_if_block): CE_INFO argument rather than
5519         multiple args containing the involved basic blocks.  All callers
5520         changed.
5521         (process_if_block, merge_if_block, find_if_block,
5522         cond_exec_process_if_block): Likewise.
5523
5524         (cond_exec_process_if_block): New arg DO_MULTIPLE_P.  All callers
5525         changed.
5526         Use new function last_active_insn to simplify some code.
5527         New code to handle multiple tests.
5528         Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set
5529         cond_exec_changed_p to TRUE.
5530
5531         (process_if_block): New code to handle multiple tests.
5532         (merge_if_block): Likewise.
5533         (find_if_header): New arg PASS.  Changed to return the currently
5534         processed basic block or NULL instead of true/false. All callers
5535         changed.
5536         Call IFCVT_INIT_EXTRA_FIELDS.
5537         (block_jumps_and_fallthru_p): New function.
5538         (find_if_block): Discover opportunities to convert multiple tests.
5539         Add additional debugging output.
5540         Update the ce_info structure before returning.
5541
5542         (if_convert): Run multiple passes of if-conversion.
5543         * doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN,
5544         IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS,
5545         IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
5546         these macros.
5547
5548 Sun Jul 21 00:54:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
5549
5550         * gcse.c: Include cselib.h
5551         (constptop_register): Break out from ...
5552         (cprop_insn): ... here; kill basic_block argument.
5553         (do_local_cprop, local_cprop_pass): New functions.
5554         (one_cprop_pass): Call local_cprop_pass.
5555
5556 2002-07-20  Roger Sayle  <roger@eyesopen.com>
5557
5558         * simplify-rtx.c (simplify_relational_operation): Optimize
5559         abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math).
5560
5561 2002-07-20  Michae Matz  <matz@suse.de>
5562
5563         * ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS.
5564
5565 2002-07-20  Neil Booth  <neil@daikokuya.co.uk>
5566
5567         * cppexp.c (struct op): Add token pointer.
5568         (check_promotion, CHECK_PROMOTION): New.
5569         (optab): Update.
5570         (_cpp_parse_expr): Update, use token pointer of struct op.
5571         (reduce): Warn about change of sign owing to promotion.
5572         * cppinit.c (cpp_handle_option): New warning if -Wall.
5573         * cpplib.h (struct cpp_options): New member.
5574
5575 2002-07-19  David Edelsohn  <edelsohn@gnu.org>
5576
5577         * config/rs6000/rs6000.md: Remove ppc630 fpcompare from single
5578         fpu list.  Separate Power4 compare and delayed_compare.  Correct
5579         Power4 fpcompare.
5580         (fix_truncdfsi2_internal): Restore FPR preference.
5581         * config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3,
5582         mcpu?power4, mcpu?604e.  Remove mpower, mpower2, mpowerpc.
5583
5584 2002-07-19  Momchil Velikov <velco@fadata.bg>
5585
5586         * reload1.c (reload_as_needed): Duplicate oldpat.
5587
5588 2002-07-20  Alan Modra  <amodra@bigpond.net.au>
5589
5590         PR optimization/7130
5591         * loop.h (struct loop_info): Add "preconditioned".
5592         * unroll.c (unroll_loop): Set it.
5593         * doloop.c (doloop_modify_runtime): Correct count for unrolled loops.
5594
5595 2002-07-19  Zack Weinberg  <zack@codesourcery.com>
5596
5597         * rtl.def (CODE_LABEL): Remove slot 8.
5598         * rtl.h (struct rtx_def): Document new uses of jump and call fields.
5599         (LABEL_ALTERNATE_NAME): Delete.
5600         (LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
5601         * defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.
5602
5603         * final.c (output_alternate_entry_point): New.
5604         (final_scan_insn): Use it instead of
5605         ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
5606         of a case label being an alternate entry point.
5607
5608         * cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
5609         * emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
5610         Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
5611         (field deleted).
5612         * print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.
5613
5614         * doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
5615         LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
5616         * doc/tm.texi: Delete documentation of
5617         ASM_OUTPUT_ALTERNATE_LABEL_NAME.
5618
5619 2002-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5620
5621         * config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define.
5622         (PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG.
5623         (LINK_SPEC): Define.
5624         (STARTFILE_SPEC): Define.
5625         (ENDFILE_SPEC): Define.
5626
5627         * config/mips/iris6-o32.h (LINK_SPEC): Move ...
5628         * config/mips/iris6-o32-as.h (LINK_SPEC): ... here.
5629
5630         * config/mips/iris6-o32-gas.h: New file.
5631         * config.gcc (mips-sgi-irix6*o32): Use it.
5632
5633         * config/mips/t-iris5-gas: New file.
5634         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
5635
5636 2002-07-19  Neil Booth  <neil@daikokuya.co.uk>
5637
5638         * cppexp.c (ALWAYS_EVAL): Remove.
5639         (optab, reduce): Always evaluate.
5640         (num_unary_op, num_binary_op, num_div_op): Issue diagnostics
5641         only if not skipping evaluation.
5642
5643 2002-07-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5644
5645         * config/avr/avr.c (debug_hard_reg_set): Remove.
5646
5647 2002-07-19  Chris Demetriou  <cgd@broadcom.com>
5648
5649         * gcc.c (cpp_options): Include "%1" (cc1_spec).
5650
5651 2002-07-19  Richard Henderson  <rth@redhat.com>
5652
5653         * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
5654
5655 2002-07-19  Alan Modra  <amodra@bigpond.net.au>
5656
5657         * prefix.c (update_path): Don't zap single `.' path components
5658         unless followed by another `.' and fix typo last patch.
5659
5660 2002-07-18  Neil Booth  <neil@daikokuya.co.uk>
5661
5662         * cppexp.c (cpp_num_mul): Remove unused parameter.
5663         (UNARY, BINARY, OTHER, binary_handler): Remove.
5664         (ALWAYS_EVAL): New.
5665         (optab): Update.
5666         (reduce): Refactor to a large switch, don't use a function
5667         pointer.
5668
5669 2002-07-18  Bo Thorsen  <bo@berlioz.suse.de>
5670
5671         * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.
5672
5673 Thu Jul 18 19:39:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
5674
5675         * sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
5676         (sh_expand_binop_v2sf): Likewise.
5677         * sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA.
5678         (int_gpr_dest, trunc_hi_operand): New functions.
5679         * sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and
5680         trunc_hi_operand.
5681         (SPECIAL_MODE_PREDICATES, any_register_operand): Define.
5682         * sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about.
5683         (adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise.
5684         (ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise.
5685         (and_shl_scratch+[12], zero_extendhidi2+1): Likewise.
5686         (zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise.
5687         (extendhisi2_media+1, extendqisi2_media+1): Likewise.
5688         (movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise.
5689         (movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise.
5690         (movsf_ie+1): Likewise.
5691         (loaddi_trunc): Use int_gpr_dest predicate.
5692         (use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s).
5693         (mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise.
5694         (casesi_worker_0+[12], casesi_worker): Likewise.
5695         (shcompact_preserve_incoming_args): Likewise.
5696         (mov_nop): Use any_register_operand predicate.
5697         (mperm_w0): Use trunc_hi_operand predicate.
5698
5699 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5700
5701         * pa-linux.h (DWARF2_UNWIND_INFO): Delete define.
5702         * pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct
5703         numbering.
5704
5705 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5706
5707         * pa.c (output_deferred_plabels): Remove unused millicode enum mulU.
5708
5709 2002-07-18  Richard Henderson  <rth@redhat.com>
5710
5711         PR optimization/7147
5712         * ifcvt.c (noce_get_condition): Make certain that the condition
5713         is valid at JUMP.
5714
5715 Thu Jul 18 13:44:51 2002  J"orn Rennecke <joern.rennecke@superh.com>
5716
5717         * sh.c (barrier_align, push): Shut up compiler warnings.
5718         (initial_elimination_offset,sh_media_init_builtins): Likewise.
5719         (reg_no_subreg_operand): Delete.
5720
5721 2002-07-17  Bo Thorsen  <bo@suse.de>
5722
5723         * config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option.
5724         (STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations.
5725         (STARTFILE_SPEC): Remove hardcoded library paths.
5726         (ENDFILE_SPEC): Likewise.
5727
5728 Thu Jul 18 09:38:59 CEST 2002  Jan Hubicka  <jh@suse.cz>
5729
5730         * gcse.c (hoist_expr_reaches_here_p):  Stop once expr_bb is reached.
5731
5732         * gcse.c (try_replace_reg): Do not return false positives.
5733
5734 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
5735
5736         * prefix.c: (update_path): Strip ".." components when prior dir
5737         doesn't exist.  Pass correct var to UPDATE_PATH_HOST_CANONICALIZE.
5738
5739         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support.
5740         (ASM_OUTPUT_REG_POP): Likewise.
5741
5742 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
5743
5744         * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
5745         adjustments to first_reg for profiling case.
5746         (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
5747         Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
5748         Save static chain reg to sp + 12 on ABI_AIX_NODESC.
5749         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
5750         (ASM_OUTPUT_REG_POP): Define.
5751         * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
5752         (ASM_OUTPUT_REG_POP): Undef.
5753
5754 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
5755
5756         * cpplib.c (do_sccs): Handle #sccs on all systems.
5757         * system.h (SCCS_DIRECTIVE): Poison.
5758         * config/darwin.h, config/freebsd.h, config/netbsd.h,
5759         config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h,
5760         config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h,
5761         config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h,
5762         config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h,
5763         config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h,
5764         config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h,
5765         config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h:
5766         Remove all references to SCCS_DIRECTIVE.
5767         * doc/cpp.texi, doc/tm.texi: Update.
5768
5769 Wed Jul 17 19:23:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
5770
5771         * regrename.c (maybe_mode_change): New function.
5772         (find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.
5773
5774 2002-07-17  Rodney Brown  <rbrown64@csc.com.au>
5775
5776         * config/i386/i386.c (ix86_expand_int_movcc): In the general case
5777         suppress addition when either ct or cf are zero.
5778
5779 2002-06-17  Eric Botcazou <ebotcazou@multimania.com>
5780             Glen Nakamura <glen@imodulo.com>
5781
5782         PR optimization/6713
5783         * loop.c (loop_givs_rescan): Explicitly delete the insn that
5784         sets a non-replaceable giv after issuing the new one.
5785
5786 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
5787
5788         * cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
5789         eval_token): Clarify and correct use of "bool" variables.
5790         * cpplib.h (struct cpp_options): Similarly.
5791         * cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
5792         * cpptrad.c (recursive_macro): Similarly.
5793
5794 Wed Jul 17 17:08:06 2002  J"orn Rennecke <joern.rennecke@superh.com>
5795
5796         * config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
5797         SHmedia code.
5798
5799         * sh.md (cmpgtudi_media): Remove spurious @.
5800
5801         * config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian.
5802         * sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian.
5803
5804         * config/sh/lib1funcs.asm (init_trampoline): New entry point.
5805         * sh-protos.h (sh_initialize_trampoline): Declare.
5806         * sh.c (sh_initialize_trampoline): New function.
5807         * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32.
5808         (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA.
5809         (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline.
5810         (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact.
5811         * sh.md (initialize_trampoline, double_shori): New patterns.
5812         (initialize_trampoline_compact): Likewise.
5813         (shmedia32_initialize_trampoline_big): Remove.
5814         (shmedia32_initialize_trampoline_little): Likewise.
5815
5816         * sh-protos.h (binary_float_operator): Remove declaration.
5817         (sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare.
5818         * sh.c (print_operand, case 'N'): Check against CONST0_RTX.
5819         (unary_float_operator, sh_expand_unop_v2sf): New functions.
5820         (sh_expand_binop_v2sf): Likewise.
5821         (zero_vec_operand): Delete.
5822         (SH_BLTIN_UDI): New builtin shared signature define.  Renumbered
5823         all non-shared ones.
5824         (bdesc): Change all the mextr builtins to use SH_BLTIN_UDI.
5825         Enable nsb and byterev.
5826         * sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS.
5827         (HARD_REGNO_MODE_OK): Allow TImode in fp regs.  Allow V2SFmode
5828         in general regs.
5829         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS.
5830         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.  Remove clause for
5831         immediate operands.
5832         (SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands.
5833         Add DF_HI_REGS.
5834         (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow
5835         lowpart fp regs - only for big endian for now.
5836         (LEGITIMATE_CONSTANT_P): Don't allow non-zero float vectors
5837         when FPU is in use.
5838         (EXTRA_CONTRAINT_U): Check against CONST0_RTX.
5839         (LOAD_EXTEND_OP): NIL for SImode.
5840         (REGISTER_MOVE_COST): Add DF_HI_REGS.  Const for moves between
5841         general and fp registers is 4.
5842         PREDICATE_CODES: Amend binary_float_operator entry.
5843         Remove zero_vec_operand.  Add unary_float_operator.
5844         * sh.md (udivsi3_i4_media): Use truncate instead of paradoxical
5845         subreg SET_DEST.
5846         (truncdisi2, truncdihi2, movv2sf): Allow memory destinations.
5847         (truncdiqi2): Do sign extension.
5848         (movsi_media, movdi_media): Allow to use r63 to an fp register.
5849         (movdf_media, movsf_media): Likewise.
5850         (movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS.
5851         Collapse to one define_insn_and_split.  Allow immediate sources.
5852         (addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns.
5853         (movv4sf_i): Allow immediate sources.  Use simplify_gen_subreg.
5854         (movv4sf): Allow immediate sources.
5855         (movsf_media_nofpu+1): Don't split moves to FP registers.
5856         (unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns.
5857         (movv8qi_i+3): Check against CONST0_RTX.
5858         (mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode
5859         for input and output operands.  Fix argument 3 to gen_mextr_rl.
5860         (mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/
5861         (msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise.
5862         (mshf0_w, fipr, ftrv): Likewise.
5863         (mshfhi_l_di): Now insn_and_split.  Can handle FP regs.
5864
5865 2002-07-17  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5866
5867         * arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from
5868         NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively.  All uses changed.
5869         * arm.c: Similarly.
5870
5871 2002-07-17  Richard Sandiford  <rsandifo@redhat.com>
5872
5873         * config/mips/mips-protos.h (mips_sign_extend): Declare.
5874         * config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove.
5875         (TARGET_SWITCHES): Remove debugh.
5876         (ISA_HAS_TRUNC_W): New macro.
5877         (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64.
5878         (PREDICATE_CODES): Remove se_nonimmediate_operand.
5879         * config/mips/mips.c (movdi_operand): Allow sign-extensions of
5880         any SImode move_operand.
5881         (se_nonimmediate_operand): Remove.
5882         (mips_sign_extend): New.
5883         (mips_move_2words): Use it for sign-extended source operands.
5884         (override_options): Allow integers to be put into single FPRs.
5885         (mips_secondary_reload_class): Handle integers in float registers.
5886         * config/mips/mips.md (extendsidi2): Turn into a define_expand.
5887         (fix_truncsfsi2, fix_truncdfsi2): Likewise.
5888         (fix_truncdfsi2_insn, fix_truncdfsi2_macro): New.
5889         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): New.
5890         (fix_truncdfdi2): Provide only a single alternative, in which the
5891         integer is in a float register.  Depend on TARGET_FLOAT64 rather
5892         than TARGET_64BIT.
5893         (fix_truncsfdi2, floatdidf2, floatdisf2): Likewise.
5894         (floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency.
5895         (movdi_internal2): Don't allow the source operand to be sign-extended.
5896         Add alternatives for float registers.
5897         (*movdi_internal2_extend): New.  Version of movdi_internal2 that
5898         allows sign-extension.
5899         (*movdi_internal2_mips16): Name the existing mips16 movdi pattern.
5900         (movsi_internal2): Rename to movsi_internal.  Add alternatives for
5901         float registers.  Remove TARGET_DEBUG_H_MODE test.
5902         (movhi_internal1): Rename to movhi_internal.  Don't check
5903         TARGET_DEBUG_H_MODE.  Fix transposed *d and *f source constraints.
5904         (movqi_internal1): Rename to movqi_internal and remove
5905         TARGET_DEBUG_H_MODE dependency.
5906         (movsi_internal1, movhi_internal2, movqi_internal2): Remove.
5907
5908 2002-07-16  Jim Wilson  <wilson@redhat.com>
5909
5910         * toplev.c (lang_dependent_init): Create function context for
5911         init_expr_once.
5912
5913 2002-07-16  Hans-Peter Nilsson  <hp@axis.com>
5914
5915         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't
5916         --gc-sections if -r.
5917         * config/cris/cris.h: Ditto.
5918
5919 2002-07-16  Rodney Brown  <rbrown64@csc.com.au>
5920
5921         * config/i386/i386.c (ix86_expand_int_movcc): In the case where
5922         the comparison directly gives a mask suppress addition when cf is
5923         zero by complementing the mask.
5924
5925 2002-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5926
5927         * Makefile.in: Delete references to enquire.
5928         * enquire.c: Move to contrib.
5929
5930 2002-07-16  Stan Shebs  <shebs@apple.com>
5931
5932         * config/darwin.h (ASM_OUTPUT_LABEL): Move to here from
5933         config/rs6000/darwin.h.
5934         (ASM_OUTPUT_SKIP): Ditto.
5935         (TEXT_SECTION_ASM_OP): Ditto.
5936         (DATA_SECTION_ASM_OP): Ditto.
5937         (ASM_APP_ON): Define.
5938         (ASM_APP_OFF): Define.
5939         * config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP,
5940         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove.
5941
5942         * config/darwin.c (func_name_maybe_scoped): Remove unused decl.
5943         (machopic_function_base_name): Declare result to be const.
5944         (machopic_non_lazy_ptr_name): Ditto.
5945         (machopic_stub_name): Ditto.
5946         * config/darwin-protos.h: Ditto for the prototypes.
5947
5948 Wed Jul 17 00:22:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
5949
5950         * m68hc11.c (m68hc11_reorg): Do not rebuild CFG.
5951
5952 Wed Jul 17 00:20:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
5953
5954         * i386.md (prefetch): Fix for 64bit mode.
5955         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
5956
5957 Wed Jul 17 00:19:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
5958
5959         * i386.h (MACHINE_DEPENDENT_REORG): New macro.
5960         * i386.c (x86_machine_dependent_reorg): New function.
5961         * i386-protos.h (x86_machine_dependent_reorg): Declare.
5962
5963 2002-07-16  Zack Weinberg  <zack@codesourcery.com>
5964
5965         * builtins.c (std_expand_builtin_va_start): Remove unused
5966         first argument.
5967         (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
5968         std_expand_builtin_va_start with just two arguments.
5969         * expr.h: Update prototypes.
5970
5971         * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
5972         arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
5973         i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
5974         m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
5975         mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
5976         rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
5977         s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
5978         sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
5979         xtensa-protos.h, xtensa.h, xtensa.c:  Remove unused first
5980         argument from all implementations of EXPAND_BUILTIN_VA_START
5981         and all uses of std_expand_builtin_va_start.
5982
5983 Tue Jul 16 19:32:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
5984
5985         * regrename.c (copy_value): Don't record high part copies.
5986
5987 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
5988
5989         * gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define.
5990         (fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL.
5991         * gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function.
5992
5993 2002-07-16  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
5994
5995         * doc/invoke.texi (NS32K Options): Document -mieee-compare option
5996
5997         * config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge
5998         into addsi3 using register class "x" and "y".
5999
6000         * config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf):
6001         "earlyclobber" constraint modifier for some alternative.
6002
6003         * config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble)
6004         (*ble, *blt): Flag to indicate bCOND and sCOND should check for
6005         unordered.
6006         config/ns32k/ns32k.h (CC_UNORD): define corresponding mask.
6007
6008         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE)
6009         (TARGET_SWITCHES): Add -mieee-compare option.
6010         (OVERRIDE_OPTIONS): 32332 is a subset of
6011         32532. Don't use IEEE_COMPARE -funsafe-math-optimizations.
6012         (TARGET_SWITCHES): Fix description of bitfield option.
6013         * config/ns32k/netbsd.h (TARGET_DEFAULT): Add
6014         -mieee-compare option. Remove 32332 flag.
6015
6016 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
6017
6018         * explow.c (convert_memory_address): Remove special handling
6019         when POINTERS_EXTEND_UNSIGNED < 0.
6020         * config/ia64.md (movsi_symbolic): New instruction for ILP32 mode.
6021         (movedi_symbolic): Fix typo.
6022         (load_fptr): Remove mode restriction so it works for SI and DI.
6023         (load_fptr_internal1): Ditto.
6024         (load_gprel): Ditto.
6025         (load_symptr_internal1): Ditto.
6026         (call_pic): Ditto.
6027         * config/ia64.c (call_operand): Modify mode check.
6028         (ia64_expand_load_address): Handle DI and SI addresses and symbols.
6029         (ia64_expand_move): Ditto.
6030         (ia64_assemble_integer): Handle SImode function pointers.
6031         (ia64_expand_fetch_and_op): Handle SImode mem addresses.
6032         (ia64_expand_op_and_fetch): Ditto.
6033         (ia64_expand_compare_and_swap): Ditto.
6034         (ia64_expand_lock_test_and_set): Ditto.
6035         (ia64_expand_lock_release): Ditto.
6036
6037 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
6038
6039         * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.
6040
6041 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
6042             Richard Earnshaw  <rearnsha@arm.com>
6043
6044         * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test
6045         CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.
6046
6047 2002-07-16  Richard Earnshaw  <rearnsha@arm.com>
6048
6049         * arm.md (stack_tie): New insn.  Use an idiom that the alias code
6050         understands to be a memory clobber.
6051         * arm.c (arm_expand_prologue): Use it.
6052
6053 2002-07-16  Daniel Berlin  <dberlin@dberlin.org>
6054
6055         * ra-rewrite.c: #include reload.h, insn-config.h
6056         * ra-build.c: #include reload.h
6057         * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
6058         depend on reload.h, insn-config.h.
6059
6060 Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
6061
6062         * expr.c (emit_move_insn_1): Handle arbitrary moves that are
6063         the same size as a word.
6064
6065         * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
6066         BYTES_BIG_ENDIAN into account.
6067
6068 Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
6069
6070         * i386.md (prefetch): Fix for 64bit mode.
6071         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
6072
6073         * i386.md (movss, movsd): Use xorps/xorpd for Athlon.
6074
6075 2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6076
6077         * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.
6078
6079 2002-07-15  Zack Weinberg  <zack@codesourcery.com>
6080
6081         * ginclude/varargs.h: Replace with stub which issues #error.
6082         * ginclude/stdarg.h: __builtin_stdarg_start is renamed
6083         __builtin_va_start.
6084
6085         * builtins.def (BUILT_IN_VARARGS_START): Delete.
6086         (BUILT_IN_VA_START): New.
6087         * builtins.c (expand_builtin_va_start): Eliminate first
6088         argument and code to implement pre-ISO varargs.
6089         (std_expand_builtin_va_start): Ignore first argument; it is
6090         always 1.
6091         (expand_builtin): Handle BUILT_IN_VA_START and
6092         BUILT_IN_STDARG_START identically.  Delete
6093         BUILT_IN_VARARGS_START case.
6094
6095         * function.c (assign_parms): Delete hide_last_arg and all
6096         its uses.
6097         (mark_varargs): Delete function.
6098         * function.h (struct function): Delete 'varargs' bit.
6099         (current_function_varargs): Delete macro.
6100         * tree.h: Don't declare mark_varargs.
6101
6102         * c-decl.c (c_function_varargs, c_mark_varargs): Delete.
6103         (c_expand_body): Don't call mark_varargs.
6104         * c-objc-common.c: Handle BUILT_IN_VA_START and
6105         BUILT_IN_STDARG_START identically.  Delete
6106         BUILT_IN_VARARGS_START case.
6107         * c-tree.h: Don't declare c_mark_varargs.
6108         * c-parse.in: Remove grammar rules for '&...' (which has been
6109         commented out since before 2.7.2) and for '...' in K+R
6110         argument declarations.
6111
6112         * builtins.c, function.c, integrate.c, sibcall.c,
6113         config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
6114         config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
6115         config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
6116         config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
6117         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
6118         config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
6119         config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
6120         config/stormy16/stormy16.c: Delete all references to
6121         current_function_varargs, and code predicated on that flag.
6122
6123         * config/alpha/alpha.c (alpha_va_start),
6124         config/arc/arc.c (arc_va_start),
6125         config/i386/i386.c (ix86_va_start),
6126         config/mips/mips.c (mips_va_start),
6127         config/mn10300/mn10300.c (mn10300_va_start),
6128         config/rs6000/rs6000.c (rs6000_va_start),
6129         config/s390/s390.c (s390_va_start),
6130         config/sh/sh.c (sh_va_start),
6131         Ignore first argument; it is always 1.
6132
6133         * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
6134         * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
6135         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
6136         Delete m68hc11_va_start.
6137         * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
6138         No need to define EXPAND_BUILTIN_VA_START.
6139
6140         * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
6141         doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
6142
6143 2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
6144
6145         PR optimization/7153
6146         * regmove.c (optimize_reg_copy_3): Don't optimize if the register
6147         dies in more than one insn.
6148
6149 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
6150
6151         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
6152
6153 2002-07-15  Michael Matz  <matz@suse.de>,
6154             Daniel Berlin  <dberlin@dberlin.org>,
6155             Denis Chertykov  <denisc@overta.ru>
6156
6157         Add a new register allocator.
6158
6159         * ra.c: New file.
6160         * ra.h: New file.
6161         * ra-build.c: New file.
6162         * ra-colorize.c: New file.
6163         * ra-debug.c: New file.
6164         * ra-rewrite.c: New file.
6165
6166         * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
6167         (ra-rewrite.o): New .o files for libbackend.a.
6168         (GTFILES): Add basic-block.h.
6169
6170         * toplev.c (flag_new_regalloc): New.
6171         (f_options): New option "new-ra".
6172         (rest_of_compilation): Call initialize_uninitialized_subregs()
6173         only for the old allocator.  If flag_new_regalloc is set, call
6174         new allocator, instead of local_alloc(), global_alloc() and
6175         friends.
6176
6177         * doc/invoke.texi: Document -fnew-ra.
6178         * basic-block.h (FOR_ALL_BB): New.
6179         * config/rs6000/rs6000.c (print_operand): Write small constants
6180         as @l+80.
6181
6182         * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
6183         (df_reg_table_realloc): Make size at least as large as max_reg_num().
6184         (df_insn_table_realloc): Size argument now is absolute, not relative.
6185         Changed all callers.
6186
6187         * gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
6188         * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.
6189
6190         2002-06-20  Michael Matz  <matz@suse.de>
6191
6192         * df.h (struct ref.id): Make unsigned.
6193         * df.c (df_bb_reg_def_chain_create): Remove unsigned cast.
6194
6195         2002-06-13  Michael Matz  <matz@suse.de>
6196
6197         * df.h (DF_REF_MODE_CHANGE): New flag.
6198         * df.c (df_def_record_1, df_uses_record): Set this flag for refs
6199         involving subregs with invalid mode changes, when
6200         CLASS_CANNOT_CHANGE_MODE is defined.
6201
6202         2002-05-07  Michael Matz  <matz@suse.de>
6203
6204         * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.
6205
6206         2002-05-03  Michael Matz  <matz@suse.de>
6207
6208         * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.
6209
6210         Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>
6211
6212         * regclass.c (regclass): Work with all regs which have sets or
6213         refs.
6214         (reg_scan_mark_refs): Count regs inside (clobber ...).
6215
6216         2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>
6217
6218         * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
6219         (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
6220         add new refs.
6221         (df_bb_refs_update): Don't clear insns_modified here, ...
6222         (df_analyse): ... but here.
6223
6224         * sbitmap.c (dump_sbitmap_file): New.
6225         (debug_sbitmap): Use it.
6226
6227         * sbitmap.h (dump_sbitmap_file): Add prototype.
6228
6229         2001-08-07  Daniel Berlin  <dan@cgsoftware.com>
6230
6231         * df.c (df_insn_modify): Grow the UID table if necessary, rather
6232         than assume all emits go through df_insns_modify.
6233
6234         2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
6235
6236         * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
6237         increase REG_N_REFS (like flow does), so that regclass doesn't
6238         think a reg is useless, and thus, not calculate a class, when it
6239         really should have.
6240
6241         2001-01-28  Daniel Berlin  <dberlin@redhat.com>
6242
6243         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
6244         dataflow analysis.
6245
6246 2002-07-15  Jakub Jelinek  <jakub@redhat.com>
6247
6248         PR middle-end/7245
6249         * config/i386/i386.c (const_int_1_31_operand): New.
6250         * config/i386/i386.h (PREDICATE_CODES): Add it.
6251         * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
6252         ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
6253         lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.
6254
6255 2002-07-14  Alan Modra  <amodra@bigpond.net.au>
6256
6257         PR target/7282
6258         * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
6259         (floatunssidf2): Likewise.
6260         (floatsidf_ppc64): New insn_and_split.
6261         (floatunssidf_ppc64): Likewise.
6262
6263 2002-07-14  Andreas Jaeger  <aj@suse.de>
6264
6265         * config.gcc (sh64): Remove unused
6266         target_requires_64bit_host_wide_int.
6267
6268 2002-07-12  Roger Sayle  <roger@eyesopen.com>
6269
6270         * expr.c [CLEAR_RATIO]: New macro defining the maximum number
6271         of move instructions to use when clearing memory, c.f. MOVE_RATIO.
6272         [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
6273         whether clear_by_pieces should be used to clear storage.
6274         (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.
6275
6276         * doc/tm.texi: Document these two new target macros.
6277
6278 2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>
6279
6280         * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
6281         the scratch register.
6282         ("*movhi2_push"): Accept Z_REG because a split pattern can make use
6283         of it, forbid reload to use it.
6284
6285 2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6286
6287         * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
6288         usage on 64-bit hosts, return value was truncated to 32 bits.
6289
6290 Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>
6291
6292         * simplify-rtx.c (simplify_subreg): Handle floating point
6293         CONST_DOUBLEs.  When an integer subreg of a smaller mode than
6294         the element mode is requested, compute a subreg with an
6295         integer mode of the same size as the element mode first.
6296
6297 Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
6298
6299         * combine.c (try_combine): When converting a paradoxical subreg
6300         to an extension, take LOAD_EXTEND_OP into account.
6301
6302 2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6303
6304         * config.gcc (mips-sgi-irix6*o32): New configuration.
6305
6306         * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
6307         configurations.
6308         * configure: Regenerate.
6309
6310         * config/mips/iris6-o32-as.h: New file.
6311         * config/mips/iris6-o32.h: New file.
6312
6313         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
6314         (NM_FLAGS): Define.
6315         (HAVE_AS_SHF_MERGE): Undefine.
6316
6317         * config/mips/t-iris5-as: New file.
6318         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
6319
6320         * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
6321         SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
6322         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
6323         dp-bit.c, fp-bit.c): Move ...
6324         * config/mips/t-iris5-6: ... here.
6325         New file, shared by IRIX 5 and IRIX 6.
6326         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
6327         mips-sgi-irix5*): Use it.
6328
6329         * config/mips/iris6.h: Remove duplicate comment.
6330
6331         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
6332         !TARGET_IRIX6]: Define.
6333         (mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
6334
6335         * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
6336
6337 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6338
6339         * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
6340         and delete code to force constant to register.
6341         * pa-protos.h (adddi3_operand): Add prototype.
6342         * pa.c (adddi3_operand): New function.
6343
6344 2002-07-11  Roger Sayle  <roger@eyesopen.com>
6345
6346         * c-decl.c (duplicate_decls): Preserve the noreturn attribute on
6347         non-ANSI builtin functions.
6348
6349 Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>
6350
6351         * rtl.h (gen_rtx_CONST_VECTOR): Declare.
6352         * gengenrtl.c (special_rtx): Check for CONST_VECTOR.
6353         * emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
6354         (gen_const_vector_0): Use it.
6355
6356 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6357
6358         * pa.md (adddi3): For 32-bit targets, force constants to a register
6359         if they don't fit in an 11-bit immediate.  Change insn predicate to
6360         arith11_operand.  Remove comment.
6361         * pa.c (cint_ok_for_move): Fix comment.
6362         (emit_move_sequence):  Don't directly split DImode constants on 32-bit
6363         targets.
6364
6365 2002-07-11  Tim Josling  <tej@melbpc.org.au>
6366
6367         Remove front end hard coding from gengtype.c.
6368
6369         * Makefile.in
6370         (STAGESTUFF): add gtyp-gen.h
6371         (GTFILES): Remove front end specific files.
6372         (GTFILES_FILES_LANGS): New, from configure..
6373         (GTFILES_FILES_FILES): Likewise.
6374         (GTFILES_LANG_DIR_NAMES): Likewise.
6375         (GTFILES_SRCDIR): Likewise.
6376         (gtyp-gen.h): Build from configure information.
6377         (s-gtype): Remove command line parameters from gengtype.
6378         (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
6379         (mostlyclean): Delete files generated by and for gengtype.
6380
6381         * c-config-lang.in: New file.
6382
6383         * configure.in (all_gtfiles_files_langs): New. Accumulate files
6384         for each language.
6385         (all_gtfiles_files_files): New. Accumulate language for each file
6386         accumulated.
6387         (gtfiles): Pick up value for C.
6388         (srcdir): AC-SUBST this variable.
6389         (all_gtfiles_files_langs): AC-SUBST this variable.
6390         (all_gtfiles_files_files): AC-SUBST this variable.
6391
6392         * configure: Regenerate.
6393
6394         * gengtype-lex.l (parse_file): Make parameter const.
6395
6396         * gengtype.c (toplevel): include gtyp-gen.h.
6397         (BASE_FILE_<language> unnamed enum): Delete.
6398         (lang_names): Delete (replaced by gtyp-gen.h)
6399         (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
6400         all references.
6401         (NUM_GT_FILES): New.
6402         (NUM_LANG_FILES): New.
6403         (srcdir_len): New.
6404         (NUM_BASE_FILES): Change calculation.
6405         (open_base_files): Change prototype to avoid warning.
6406         (startswith): Delete.
6407         (get_file_basename): Iterate through generated language list not
6408         hard coded list.
6409         (get_base_file_bitmap): Use generated list of files and languages.
6410         (close_output_files): Add prototype to rmove warning.
6411         (main): Iterate through list of generated files from gtyp-gen.h
6412         rather than command line paramaters.  Ignore duplicated file
6413         names.
6414
6415         * gengtype.h (parse_file): Amend prototype for const parameter.
6416
6417         * doc/sourcebuild.texi: Document gtfiles variable.
6418
6419         * doc/gty.texi: Document changes to gtfiles variable for front
6420         ends.
6421
6422         * objc/config-lang.in (gtfiles): Add files needed for objc front
6423         end.
6424
6425 2002-07-10  Roger Sayle  <roger@eyesopen.com>
6426
6427         PR c/2454
6428         * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
6429         to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.
6430
6431 2002-07-10  Roger Sayle  <roger@eyesopen.com>
6432             Zack Weinberg <zack@codesourcery.com>
6433
6434         * builtins.def: Make the argument types of abort and exit
6435         independent of the front-end.
6436
6437 2002-07-11  Alan Modra  <amodra@bigpond.net.au>
6438
6439         * config/rs6000/linux64.h (ASM_SPEC): Define.
6440
6441 2002-07-10  Aldy Hernandez  <aldyh@redhat.com>
6442
6443         * config/rs6000/rs6000.c (emit_frame_save): New.
6444         (rs6000_frame_related): Replace reg2 before reg.
6445         (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
6446         and eh_return registers.
6447
6448 2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>
6449
6450         Revert all patches for optimization of Complex .op. Real.
6451         * complex_part_zero_p: Remove
6452         * expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
6453         with x.
6454         * expand_cmplxdiv_wide: Ditto.
6455         * expand_binop: Ditto.
6456
6457 2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6458
6459         * config/avr/avr.md: Fix two 0x80000000 constants to make them
6460         negative also on 64-bit hosts.
6461
6462         Default to -fno-reorder-blocks when optimizing for size.
6463         * config/avr/avr-protos.h (avr_optimization_options): Declare.
6464         * config/avr/avr.c (avr_optimization_options): New function.
6465         * config/avr/avr.h (OPTIMIZATION_OPTIONS): New.
6466
6467         Optimize returning from simple functions.
6468         * config/avr/avr-protos.h (avr_simple_epilogue): Declare.
6469         * config/avr/avr.c (avr_simple_epilogue): New function.
6470         * config/avr/avr.md (return): New insn.
6471
6472 2002-07-10  Douglas B Rupp  <rupp@gnat.com>
6473
6474         * config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
6475         HAS_INIT_SECTION to protection.
6476
6477 2002-07-10  Mark Mitchell  <mark@codesourcery.com>
6478
6479         * doc/invoke.texi (Debugging Options): Mention that -gdwarf is
6480         deprecated.
6481
6482 Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>
6483
6484         * combine.c (gen_lowpart_for_combine): Handle vector modes.
6485         Supply non-VOID mode to simplify_gen_subreg.
6486
6487 Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>
6488
6489         * i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
6490
6491 2002-07-10  Jeffrey A Law  <law@redhat.com>
6492
6493         * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
6494         as appropriate.
6495
6496         * mn10200.c (expand_epilogue): Fix test to determine which scratch
6497         register to use.
6498
6499 Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>
6500
6501         * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
6502         Get mode from dest.
6503         If simplify_gen_subreg fails, try next equivalent.
6504
6505 2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
6506
6507         * diagnostic.h: #include location.h
6508         (location_t): Move definition to..
6509         * location.h: ... here.  New file.
6510         * tree.h: #include location.h
6511         (DECL_SOURCE_LOCATION): New macro.
6512         (DECL_SOURCE_FILE): Use.
6513         (DECL_SOURCE_LINE): Likewise.
6514         (struct tree_decl): REplace filename and linenum with locus.
6515         * Makefile.in (TREE_H): add location.h
6516         (diagnostic.o): Depends on gt-location.h
6517         (gt-location.h): Depends on s-gtype
6518
6519 2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
6520
6521         * config/rs6000/aix.h: Convert CPP_PREDEFINES to
6522         TARGET_OS_CPP_BUILTINS.
6523         * config/rs6000/aix31.h: Likewise.
6524         * config/rs6000/aix41.h: Likewise.
6525         * config/rs6000/aix43.h: Likewise.
6526         * config/rs6000/aix51.h: Likewise.
6527         * config/rs6000/beos.h: Likewise.
6528         * config/rs6000/darwin.h: Likewise.
6529         * config/rs6000/eabi.h: Likewise.
6530         * config/rs6000/eabisim.h: Likewise.
6531         * config/rs6000/linux.h: Likewise.
6532         * config/rs6000/linux64.h: Likewise.
6533         * config/rs6000/lynx.h: Likewise.
6534         * config/rs6000/mach.h: Likewise.
6535         * config/rs6000/rtems.h: Likewise.
6536         * config/rs6000/sysv4.h: Likewise.
6537         * config/rs6000/vxppc.h: Likewise.
6538
6539 2002-07-09 Devang Patel <dpatel@apple.com>
6540         * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
6541         Do not allow ObjC objects as a parameter type for Objective-C methods.
6542         My previous patch restricted  'struct' also.
6543
6544 2002-07-09  Neil Booth  <neil@daikokuya.co.uk>
6545
6546         * cpperror.c (cpp_error): Default to directive_line within
6547         directives here.
6548         * cppexp.c (cpp_interpret_integer): Only use traditional
6549         number semantics in directives.
6550         * cpplib.c (prepare_directive_trad): Don't reset pfile->line.
6551         (do_include_common): Similarly.
6552         * cpptrad.c (scan_out_logical_line): Implement accurate
6553         quoting of <> in #include.
6554         * doc/cpp.texi: Update.
6555
6556 Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
6557                           J"orn Rennecke <joern.rennecke@superh.com>
6558
6559         * sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
6560         * sh.md (attribute issues): Replace with:
6561         (attribute pipe_model).  All users changed.
6562         (attribute type): Change pt / ptabs to pt_media / ptabs_media.
6563         All users changed.
6564         (function units sh5issue, sh5fds): New.
6565         (attribute is_mac_media): New.
6566         (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
6567         (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
6568         (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
6569         (movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
6570         (call_media, call_value_media, sibcall_media): Likewise.
6571         (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
6572         (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
6573         (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
6574         (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
6575         (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
6576         (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
6577         (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
6578         (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
6579         (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
6580         (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
6581         (truncdfsf2_media): Likewise.
6582         (movsi_media, movsi_media_nofpu, movdi_media): Use new types.
6583         (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
6584
6585 Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
6586
6587         * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
6588         * sh.c (general_extend_operand, inqhi_operand): New functions.
6589         * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
6590         alternatives using 'N' modifier.  Add type.
6591         (adddi3z_media): Likewise.  Enable generator function generation.
6592         (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
6593         exact predicates / constraints.  Add type.
6594         (subsi3): Allow 0 for SHMEDIA.
6595         (udivsi3_i4_media): Use match_operand for input values
6596         rather than hard registers.
6597         (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
6598         unnecessarily through hard registers.  Keep copies of pseudo
6599         registers outside of the libcall sequence.
6600         (mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
6601         (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
6602         (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
6603         (extendhidi2, extendqidi2): Likewise.
6604         (andsi3_compact): Name.
6605         (andcdi3): Enable generator function generation.
6606         (zero_extendhisi2, zero_extendqisi2): Rename to
6607         (zero_extendhisi2_compact, zero_extendqisi2_compact).
6608         (extendhisi2, extendqisi2): Rename to
6609         (extendhisi2_compact, extendqisi2_compact).
6610         (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
6611         (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
6612         (zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
6613         (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
6614         (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
6615         (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
6616         (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
6617         (shmedia32_initialize_trampoline_big): Likewise.
6618         (shmedia32_initialize_trampoline_little): Likewise.
6619         (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
6620         (negdi2): Remove spurious T clobber.
6621         (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
6622         (movsi_media, movsi_media_nofpu): Remove spurious *k after b.
6623         (movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
6624         (movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
6625         (ic_invalidate_line_media): Write back data cache before invalidating
6626         instruction cache.  Add type.
6627         (movsf_media): Sign-extend when the destination is a general
6628         purpose register.  Add type.
6629         (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
6630         (casesi_worker_0+1): Only increment ref count for proper label.
6631         (casesi_worker_0+2): Likewise.
6632
6633 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
6634
6635         * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
6636
6637 2002-07-09  Steve Ellcey  <sje@cup.hp.com>
6638
6639         * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
6640         from Pmode to ptr_mode.
6641         (get_exception_pointer): Ditto.
6642         (connect_post_landing_pads): Ditto.
6643         (dw2_build_landing_pads): Ditto.
6644
6645 2002-07-08  Steve Ellcey  <sje@cup.hp.com>
6646         * gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
6647         * gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
6648         (handle_pragma_redefine_extname): Change to use new function.
6649
6650 2002-07-08  Roger Sayle  <roger@eyesopen.com>
6651
6652         * combine.c (combine_simplify_rtx): Add an explicit cast
6653         to avoid signed/unsigned comparison warning.
6654         (simplify_if_then_else): Likewise.
6655         (extended_count): Likewise.
6656         (simplify_shift_const): Likewise.
6657         (simplify_comparison): Likewise.
6658
6659 2002-07-08  Richard Sandiford  <rsandifo@redhat.com>
6660
6661         * config/mips/mips.md: Add imadd type.  Update scheduler description
6662         to use imadd as well as imul.
6663         (*mul_acc_si, *madsi): Change imul alternatives to imadd.
6664         (*mul_acc_di, *mul_acc_64bit_di): Likewise.
6665         (*mul_sub_si): Likewise for first alternative.  Change second
6666         alternative from imul to multi.
6667
6668 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
6669
6670         * c-common.c (c_common_post_options): Update prototype;
6671         don't init backends if preprocessing only.
6672         * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
6673         * langhooks.h (struct lang_hooks): Update post_options to
6674         return a boolean.
6675         * toplev.c (parse_options_and_default_flags, do_compile,
6676         lang_independent_init): Update prototypes.  Allow the
6677         front end to specify that there is no need to initialize
6678         the back end.
6679         (general_init): Move call to hex_init here...
6680         (toplev_main): ...from here.  Pass flag for back end init
6681         suppression.
6682
6683 Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
6684
6685         * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
6686         (PREDICATE_CODES): Add entries for equality_comparison_operator,
6687         greater_comparison_operator and less_comparison_operator.
6688         * sh.c (print_operand): Add '\'' code.  Make 'o' handle
6689         more operators.
6690         (equality_comparison_operator): New function.
6691         (greater_comparison_operator, less_comparison_operator): Likewise.
6692         * sh.md (beq_media_i): Disable generator function generation.
6693         Use match_operator to handle a whole class of comparisons.  Add
6694         modifier in output template to provide branch prediction.  Add type.
6695         (bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
6696         (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
6697         (blt_media_i, bleu_media_i, bltu_media_i): Likewise.
6698         (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.
6699
6700 2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>
6701
6702         Emit MMIX function prologue and epilogue as rtl.
6703         * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
6704         not unprototyped get_hard_reg_initial_val.
6705         ("call_value", "nonlocal_goto_receiver"): Ditto.
6706         ("return"): Make define_expand.  Move real insn to...
6707         ("*expanded_return"): New pattern.
6708         ("prologue", "epilogue"): New define_expands.
6709         * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
6710         (struct machine_function): New member in_prologue.
6711         (FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
6712         (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
6713         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
6714         (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
6715         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
6716         (LOCAL_REGNO): Define.  Adjust comment.
6717         * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
6718         Consider regs_ever_live[MMIX_rJ_REGNUM], not just
6719         leaf_function_p.
6720         (MMIX_OUTPUT_REGNO): Don't translate registers while outputting
6721         the prologue.
6722         (mmix_target_asm_function_prologue): Make static.  Just mark that
6723         the prologue is being emitted.  Move guts to...
6724         (mmix_expand_prologue): New function.  Adjust for emitting
6725         prologue as rtl.  For sizes, use HOST_WIDE_INT only.
6726         (mmix_target_asm_function_epilogue): Make static.  Simply emit a
6727         \n.  Move guts to...
6728         (mmix_expand_epilogue): New function.  Adjust for emitting
6729         epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
6730         (mmix_target_asm_function_end_prologue): Mark that the prologue
6731         has ended.
6732         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
6733         (mmix_conditional_register_usage): Improve comments.
6734         (mmix_local_regno): New function.
6735         (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
6736         * config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
6737         (mmix_expand_prologue, mmix_expand_epilogue): Ditto.
6738         (mmix_get_hard_reg_initial_val): Ditto.
6739
6740 2002-07-06  Andreas Jaeger  <aj@suse.de>
6741
6742         * toplev.c (set_fast_math_flags): Don't use ISO C style function
6743         definitions.
6744         * gengtype.c (open_base_files): Likewise.
6745         (close_output_files): Likewise.
6746         * tracer.c (find_best_predecessor): Likewise.
6747         (find_best_successor): Likewise.
6748         (ignore_bb_p): Likewise.
6749
6750 2002-07-05  Roger Sayle  <roger@eyesopen.com>
6751
6752         PR c++/7099
6753         * builtin-attrs.def: Define new attribute lists for use in
6754         builtins.def.
6755         * builtins.def [DEF_BUILTIN]: Modify to take an additional
6756         ATTRS argument, an enumerated value defined in builtin-attrs.def
6757         that represents the attribute list for the builtins.  Modify
6758         all builtin functions to pass an appropriate attribute list.
6759         Specify "abort", "exit", "_exit" and "_Exit" builtins here with
6760         their required noreturn attributes.
6761         * tree.h (enum_builtin_function): Ignore the additional parameter
6762         to DEF_BUILTIN.
6763         * builtins.c (built_in_names): Likewise.
6764         * c-common.c: (builtin_function_2): Replace the "int noreturn_p"
6765         argument with a tree representing the functions attribute list.
6766         Pass this "attrs" argument to builtin_function.  No longer handle
6767         the noreturn_p processing manually.
6768         (built_in_attributes): Move the definitions from builtin-attrs.def
6769         before c_common_nodes_and_builtins.
6770         (c_common_nodes_and_builtins): Handle the new ATTRS parameter in
6771         DEF_BUILTIN, passing it to both builtin_function and the changed
6772         builtin_function_2.
6773
6774         * doc/extend.texi: Document __builtin_abort, __builtin_exit,
6775         __builtin__exit and __builtin__Exit.
6776
6777 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
6778
6779         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
6780         QI mode registers in soft registers.
6781         ("zero_extendqihi2"): Do not take into account soft registers
6782         for register allocation (use '*' constraint).
6783
6784 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
6785
6786         * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
6787         it is dead.
6788         ("*ashrsi3"): Likewise.
6789         ("*lshrsi3"): Likewise.
6790
6791 2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>
6792
6793         * genautomata.c (output_max_insn_queue_index_def): Take latencies
6794         into account.
6795
6796 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
6797
6798         * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
6799         address computation and memory moves.
6800
6801 2002-07-03  Mark Mitchell  <mark@codesourcery.com>
6802
6803         PR c++/6706
6804         * dwarfout.c (output_reg_number): Fix warning message.
6805         (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
6806         before using it.
6807
6808 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6809
6810         * gcc/gcc.c (asm_debug): Move initialization ...
6811         (init_spec): ... here.
6812
6813 2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
6814
6815         * c-parse.in (extdef): Append ';'.
6816         (old_style_parm_decls): Append ';'.
6817
6818 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
6819
6820         * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
6821         gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
6822         to gcc_cv_as_gstabs_flag.
6823         * configure: Rebuilt.
6824
6825 2002-07-04  Geoffrey Keating  <geoffk@redhat.com>
6826
6827         * ggc.h (ggc_add_root): Document as obsolete.
6828
6829 Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>
6830
6831         * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
6832         (mshflo_w): Likewise.
6833
6834 Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
6835
6836         * simplify-rtx.c (simplify_subreg): Reduce problem of finding
6837         vector mode subregs of constants to finding integer mode
6838         subregs of constants.
6839         * cse.c (cse_insn): Use simplify_gen_subreg.
6840         * convert.c (convert_to_integer): Don't strip a NOP_EXPR
6841         From a vector mode expression of different size than the
6842         target mode.
6843
6844 2002-07-03  Eric Christopher  <echristo@redhat.com>
6845
6846         * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
6847         * config/mips/mips.h: Remove deprecated -m<processor> options
6848         and cc1_cpu_spec associated.
6849         (CONSTANT_ADDRESS_P): Fix last patch.
6850         (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
6851         * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
6852         sunge_sf): Remove.
6853
6854 2002-07-03  Stan Shebs  <shebs@apple.com>
6855
6856         * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
6857         (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
6858         (CPP_SPEC): Remove insertion of APPLE_CC definition.
6859
6860 2002-07-03  Roger Sayle  <roger@eyesopen.com>
6861
6862         * combine.c (struct_undo): Change types of recorded substitutions
6863         to be either "int" or "rtx", instead of "unsigned int" and "rtx".
6864         (do_SUBST_INT): Change types of the substitution from unsigned int
6865         to int, to avoid compilation warning from SUBST_INT's only caller.
6866
6867         (make_extraction): Add cast to avoid compilation warning.
6868         (force_to_mode): Remove cast to avoid compilation warning.
6869
6870 2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
6871             Jeff Law  <law@redhat.com>
6872
6873         * i386.md (length_immediate attribute): Fix typo.
6874         (length_address attribute): Likewise.
6875         (modrm attribute): Set it to 0 for immediate call instructions.
6876         (jcc_1 pattern): Set modrm attribute to 0.
6877         (jcc_2 pattern ): Likewise.
6878         (jump pattern): Likewise.
6879         (doloop_end_internal pattern): Explicitly set length.
6880         (leave pattern): Fix typo.
6881         (leave_rex64 pattern): Likewise.
6882
6883 2002-07-03  David Edelsohn  <edelsohn@gnu.org>
6884
6885         * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
6886         in FPR as preference.
6887         (fctiwz): Same.
6888         (floatdidf2, fix_truncdfdi2): Same.
6889         (floatdisf2, floatditf2, fix_trunctfdi2): Same.
6890         (floatditf2): Same.
6891         (floatsitf2, fix_trunctfsi2): SImode in GPR.
6892         (ctrdi): Remove FPR alternative and splitter.
6893
6894 2002-07-03  Will Cohen  <wcohen@redhat.com>
6895
6896         * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
6897
6898 Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>
6899
6900         * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
6901         than UNITS_PER_WORD, unless this is little endian and the first unit
6902         in this word.  Let extract_bit_field decide how to load an element.
6903         Force arguments to matching mode.
6904         (expand_vector_unop): Likewise.
6905
6906         * simplify-rtx.c (simplify_subreg): Don't assume that all vectors
6907         consist of word_mode elements.
6908         * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
6909         BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
6910         (build_unary_op): Allow vector types for BIT_NOT_EPR.
6911         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
6912         CONST_VECTOR.
6913         * optabs.c (expand_vector_binop): Try to perform operation in
6914         smaller vector modes with same inner size.  Add handling of AND, IOR
6915         and XOR.  Reject expansion to inner-mode sized scalars when using
6916         OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
6917         (expand_vector_unop): Try to perform operation in smaller vector
6918         modes with same inner size.  Add handling of one's complement.
6919         When there is no vector negate operation, try a vector subtract
6920         operation.  Use simplify_gen_subreg on constants.
6921         * simplify-rtx.c (simplify_subreg): Add capability to convert vector
6922         constants into smaller vectors with same inner mode, and to
6923         integer CONST_DOUBLEs.
6924
6925 2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6926
6927         * c-parse.in (parsing_iso_function_signature): New variable.
6928         (extdef_1): New, copied from...
6929         (extdef): ... here.  Reset parsing_iso_function_signature.
6930         (old_style_parm_decls):  Reset parsing_iso_function_signature.
6931         (old_style_parm_decls_1): New, copied from old_style_parm_decls.
6932         Warn about ISO C style function definitions.
6933         (nested_function, notype_nested_function): Reset
6934         parsing_iso_function_signature.
6935         (parmlist_2): Set parsing_iso_function_signature.
6936
6937         * doc/invoke.texi (-Wtraditional): Document new behavior.
6938
6939 2002-07-02  Chris Demetriou  <cgd@broadcom.com>
6940
6941         * config.gcc (mips*el-*-*): Use tm_defines to set
6942         TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
6943         * config/mips/little.h: Remove.
6944
6945 2002-07-02 Devang Patel <dpatel@apple.com>
6946
6947         * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
6948         object as parameter. Prevent something like 'NSObject' to be
6949         used as the type for a method argument.
6950
6951 2002-07-03  Neil Booth  <neil@daikokuya.co.uk>
6952
6953         * cpptrad.c: Update comment.
6954
6955 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
6956
6957         * doc/cpp.texi: Update for traditional preprocessing changes.
6958         * goc/cppopts.texi: Similarly.
6959
6960 2002-07-02  Ziemowit Laski  <zlaski@apple.com>
6961
6962         * c-parse.in (designator): Enable designated initializers if ObjC.
6963         (objcmessageexpr): Remove references to objc_receiver_context.
6964         * objc/objc-act.h (objc_receiver_context): Remove decl.
6965         * objc/objc-act.c (objc_receiver_context): Remove.
6966         (lookup_objc_ivar): Test objc_method_context instead of
6967         objc_receiver_context.
6968
6969 Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
6970
6971         * sh.c (print_operand, case 'N'): Allow zero vector.
6972         (arith_reg_or_0_operand): Likewise.
6973         (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
6974         * sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
6975         IOR, XOR, PLUS and SET and take their respective constant
6976         ranges into account.
6977         (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
6978         * sh.md (subdi3, subdi3_media): Allow zero operand.
6979         (movv8qi_i+3): Only vector that is not split is the zero vector.
6980         Fix operand 3 to simplify_subreg.
6981         (movv2si_i): Split alternative 1.
6982         (mshfhi_l_di_rev+1): New splitter.
6983
6984 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
6985
6986         PR preprocessor/7029
6987         * cppinit.c (cpp_handle_option):  Suppress warnings with an
6988         implicit "-w" for "-M" and "-MM".
6989         * doc/cppopts.texi: Update.
6990
6991 2002-07-01  Roger Sayle  <roger@eyesopen.com>
6992
6993         * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
6994         identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
6995         builtin_function.
6996
6997 2002-07-02  Alan Modra  <amodra@bigpond.net.au>
6998
6999         * README.Portability: Fix typos.
7000
7001 2002-07-01  Hans-Peter Nilsson  <hp@axis.com>
7002
7003         PR target/7177
7004         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
7005         of indirections for register inside sign-extended mem part.
7006
7007 2002-07-01  Roger Sayle  <roger@eyesopen.com>
7008
7009         * tree.h:  Modify builtin_function interface to take an extra
7010         argument ATTRS, which is a tree representing an attribute list.
7011
7012         * c-decl.c (builtin_function): Accept additional parameter.
7013         * objc/objc-act.c (builtin_function): Likewise.
7014         * f/com.c (builtin_function): Likewise.
7015         * java/decl.c (builtin_function): Likewise.
7016         * ada/utils.c (builtin_function): Likewise.
7017         * cp/decl.c (builtin_function): Likewise.
7018         (builtin_function_1): Likewise.
7019
7020         * c-common.c (c_common_nodes_and_builtins): Pass an additional
7021         NULL_TREE argument to builtin_function.  (builtin_function_2):
7022         Likewise.
7023         * cp/call.c (build_java_interface_fn_ref): Likewise.
7024         * objc/objc-act.c (synth_module_prologue): Likewise.
7025         * java/decl.c (java_init_decl_processing): Likewise.
7026         * f/com.c (ffe_com_init_0): Likewise.
7027
7028         * config/alpha/alpha.c (alpha_init_builtins): Pass an additional
7029         NULL_TREE argument to builtin_function.
7030         * config/arm/arm.c (def_builtin): Likewise.
7031         * config/c4x/c4x.c (c4x_init_builtins): Likewise.
7032         * config/i386/i386.c (def_builtin): Likewise.
7033         * config/ia64/ia64.c (def_builtin): Likewise.
7034         * config/rs6000/rs6000.c (def_builtin): Likewise.
7035
7036 2002-07-01  Zack Weinberg  <zack@codesourcery.com>
7037
7038         * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
7039         * config/mips/t-isa3264: Likewise.
7040         * config/mmix/t-mmix: Likewise.
7041
7042 2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7043
7044         * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.
7045
7046 2002-07-01  Roger Sayle  <roger@eyesopen.com>
7047
7048         PR opt/4046
7049         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
7050         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
7051         B are truth values.
7052
7053 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7054
7055         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
7056
7057 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
7058
7059         * README.Portability (Function prototypes): Give an example of
7060         declaring and defining a function with no arguments.
7061
7062         * README.Portability (Function prototypes): Document new
7063         variable-argument function macros.
7064
7065 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
7066
7067         * sh.c (langhooks.h): Include.
7068         (sh_init_builtins, sh_media_init_builtins): New functions.
7069         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
7070         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
7071         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
7072         (builtin_description): New struct tag.
7073         (signature_args, bdesc): New arrays.
7074         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
7075         (print_operand): Add 'N' modifier.
7076         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
7077         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
7078         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
7079         (CONST_COSTS): Add special case for SHmedia AND.
7080         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
7081         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
7082         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
7083         target_operand can also be const or unspec.
7084         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
7085         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
7086         (attribute type): Add new types.
7087         (anddi3): Add splitter.
7088         (movdi_const_16bit+1): Add code to handle vector constants and
7089         bitmasks efficiently.
7090         (shori_media): Have generator function made.
7091         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
7092         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
7093         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
7094         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
7095         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
7096         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
7097         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
7098         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
7099         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
7100         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
7101         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
7102         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
7103         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
7104         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
7105         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
7106         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
7107         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
7108         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
7109         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
7110         (ftrv): Likewise.
7111
7112         (fpu_switch+1, fpu_switch+2): Remove constraint.
7113
7114 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
7115
7116         * tree.c (build_function_type_list): Update function comment.
7117         Rename first argument to return_type.
7118
7119 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
7120
7121         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
7122         tradcif.y and related files.
7123
7124 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
7125
7126         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
7127
7128 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7129
7130         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
7131
7132 2002-06-30  Devang Patel  <dpatel@apple.com>
7133
7134         * objc/objc-act.c (finish_file): Avoid finish_objc() if
7135         -fsyntax-only.
7136
7137 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
7138                           Frank Ch. Eigler  <fche@redhat.com>
7139                           Matthew Green  <mrg@redhat.com>
7140                           Richard Henderson <rtl@redhat.com>
7141                           Dave Hudson  <dave.hudson@ubicom.com>
7142                           Jeff Johnston  <jjohnstn@redhat.com>
7143                           Alan Lehotsky <apl@alum.mit.edu>
7144                           Bernd Schmidt  <bernds@redhat.com>
7145                           Graham Stott  <grahams@redhat.com>
7146
7147         * doc/extend.texi: Add ip2k port to description of attribute
7148         naked.
7149         * doc/install.texi (Specific): Add ip2k description.
7150         * doc/install-old.texi (Configurations): Add ip2k to possible
7151         cpu types.
7152         * doc/md.texi: Document ip2k constraints.
7153         * config/ip2k/crt0.S: New file.
7154         * config/ip2k/ip2k-protos.h: New file.
7155         * config/ip2k/ip2k.c: New file.
7156         * config/ip2k/ip2k.h: New file.
7157         * config/ip2k/ip2k.md: New file.
7158         * config/ip2k/libgcc.S: New file.
7159         * config/ip2k/t-ip2k: New file.
7160
7161 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
7162
7163         * config/mmix/mmix.md ("return"): New pattern.
7164         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
7165         (TARGET_USE_RETURN_INSN): New macros.
7166         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
7167         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
7168         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
7169         (MMIX_POP_ARGUMENT): New macro.
7170         (mmix_target_asm_function_prologue): When no epilogue is executed,
7171         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
7172         (mmix_print_operand) <case '.'>: New case.
7173         (mmix_print_operand_punct_valid_p): Match '.'.
7174         (mmix_use_simple_return): New function.
7175         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
7176         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
7177         -msingle-exit, -mno-single-exit.
7178         (MMIX Options): Ditto.
7179
7180 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
7181
7182         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
7183
7184 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7185
7186         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
7187
7188 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
7189
7190         * unroll.c (loop_iterations): Handle EQ loops.
7191
7192 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
7193
7194         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
7195         constraint in define_expand, not splitter.
7196         Formatting.
7197
7198 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
7199
7200         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
7201         build_function_type_list instead of build_function_type.
7202
7203         * config/ia64/ia64.c (ia64_init_builtins): Same.
7204
7205         * config/alpha/alpha.c (alpha_init_builtins): Same.
7206
7207         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
7208
7209         * config/arm/arm.c (arm_init_builtins): Same.
7210
7211         * tree.h: Add build_function_type_list prototype.
7212
7213         * tree.c (build_function_type_list): New.
7214
7215 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7216
7217         * collect2.c (scan_prog_file): Fix typo in message.
7218
7219 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
7220
7221         * fold-cont.c: Remove unused CHARMASK.
7222
7223 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
7224
7225         PR preprocessor/7150
7226         * cppmain.c (scan_translation_unit_trad): Simplify.
7227         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
7228
7229 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7230
7231         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
7232         Don't use CPP_PREDEFINES.
7233         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
7234         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
7235         * config/i386/djgpp.h, config/i386/i386-coff.h,
7236         config/i386/i386-interix.h, config/i386/i386-interix3.h,
7237         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
7238         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
7239         config/i386/uwin.h: Similarly.
7240
7241 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7242
7243         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
7244         flag_inline_trees to enable inlining.
7245
7246 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
7247
7248         * configure.in (gcc_gxx_include_dir):  Change to match versioned
7249         C++ headers if --enable-version-specific-runtime-libs is used.
7250         * configure:  Regenerate.
7251
7252 2002-06-28  Jan Hubicka  <jh@suse.cz>
7253
7254         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
7255
7256 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
7257
7258         * combine.c (combine_simplify_rtx): Pass the mode of the
7259         shift count, not the shift operation when trying to simplify
7260         a shift on a SHIFT_COUNT_TRUNCATED target.
7261
7262 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
7263
7264         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
7265         avoid the auto increment addressing modes.
7266         ("*subsi3"): Likewise.
7267         (split for add/sub on address): For 68HC12 push the value on
7268         the stack and do the operation with a pop.
7269
7270 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
7271
7272         * cpplib.c (_cpp_handle_directive): Move #define-specific
7273         code to the #define handler...
7274         (do_define): ...here.
7275         (lex_macro_node): No longer a need to check for comments here.
7276
7277 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
7278
7279         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
7280         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
7281         Declare.
7282         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
7283         do not reorder basic blocks at the end when optimizing for size.
7284
7285 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
7286
7287         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
7288         (m68hc11_make_autoinc_notes): New function.
7289         (m68hc11_split_move): Be very cautious when spliting a move with
7290         auto increment/decrement modes because this may result in incompatible
7291         directions; add REG_INC notes to the resulting insn for CSE reg.
7292
7293 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
7294
7295         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
7296         can be a valid address.
7297
7298 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
7299
7300         * config/rs6000/rs6000.c: Remove unusued variables from last
7301         patch.
7302
7303 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
7304
7305         Revert:
7306         * config/rs6000/rs6000.c (rs6000_override_options): Move
7307         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
7308
7309 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
7310
7311         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
7312         lvx/stv/dst builtins...
7313         (altivec_expand_ld_builtin): ...to here.
7314         (altivec_expand_st_builtin): ...here.
7315         (altivec_expand_dst_builtin): ...and here (respectively).
7316
7317 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
7318
7319         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
7320
7321 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
7322
7323         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
7324         subregs.
7325         * recog.c (general_operand, register_operand): Disallow them.
7326
7327 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
7328
7329         PR preprocessor/7138
7330         * cpplib.c (_cpp_handle_directive): Do traditional
7331         preparation after setting state.angled_headers.
7332         * cpptrad.c (scan_out_logical_line): Fix potential
7333         quote bug.
7334
7335 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
7336
7337         * config/rs6000/rs6000.c (rs6000_override_options): Move
7338         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
7339
7340 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
7341
7342         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
7343         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
7344         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
7345
7346 2002-06-27  Roger Sayle  <roger@eyesopen.com>
7347
7348         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
7349         * config/stormy16/stormy16.h: Likewise.
7350
7351         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
7352         with #define.
7353
7354 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7355
7356         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
7357         Hitachi entry.  Make punctuation more consistent.
7358
7359 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
7360
7361         * doc/install.texi: Change ` bit' to `-bit'.
7362         * doc/md.texi: Change `-bits' to `-bit'.
7363         * doc/tm.texi: Change `-bits' to ` bits'.
7364
7365 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
7366
7367         * gcse.c (hoist_code): Rewrite to only get list of dominated
7368         blocks once per BB. Also fix reversed test (by removing need for
7369         the test at all).
7370
7371 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
7372
7373         * cpphash.h (_cpp_set_trad_context): Remove.
7374         * cpplib.c (prepare_directive_trad): Do nothing for #define.
7375         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
7376         * cpptrad.c: Update comments.
7377         (_cpp_read_logical_line_trad): Let scan_logical_line handle
7378         updating the current context.
7379         (scan_logical_line): Update the current context.
7380         (_cpp_create_trad_definition): Similarly.
7381         (_cpp_set_trad_context): Remove.
7382
7383 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
7384
7385         PR preprocessor/7070
7386         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
7387
7388 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
7389
7390         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
7391         config/xtensa/xtensa.c (xtensa_return_addr): New function.
7392         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
7393         config/xtensa/xtensa.md (fix_return_addr): New pattern.
7394
7395 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7396
7397         * mips.c (coprocessor_operand, coprocessor2_operand,
7398         symbolic_operand): Move prototypes from here...
7399         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
7400         symbolic_operand): ...to here.
7401
7402 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
7403
7404         * config/sh/crt1.asm: remove _stack label definition
7405         and sentinel value.
7406
7407 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7408
7409         * varasm.c: Include real.h before output.h.
7410
7411 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
7412
7413         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
7414         check for TARGET_ALTIVEC.
7415
7416 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
7417
7418         * config.gcc (vax-*-vms*): Make obselete.
7419
7420 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7421
7422         * gcc.c (warn_std): Delete.
7423
7424 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
7425
7426         * doc/extend.texi: Fix formatting of last checkin.
7427
7428 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7429
7430         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
7431         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
7432
7433 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
7434
7435         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7436         discrepancies from motorola's documentation.
7437
7438 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
7439
7440         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
7441         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
7442
7443         * config/sh/lib1funcs.asm (udivdi3): Make first divide step
7444         produce a 32 bit result before normalization, then normalize with a
7445         left shift.  Compute approximative error of 2nd reciprocal
7446         approximation in 2's complement.  Fix mask generation from upper
7447         longword of second divide stage result.
7448         For large divisor, fix shift count used to truncate first stage
7449         divide result; make decision if to adjust upwards based on comparison
7450         of higher parts of normalized values.
7451         (udivdi): Likewise.  Undo normalization of result for large divisor
7452         case.
7453
7454 2002-06-25  David S. Miller  <davem@redhat.com>
7455
7456         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
7457
7458 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
7459
7460         * cpplib.c (do_include_common): Revert to correct line number
7461         if -traditional.
7462         * cpptrad.c (scan_out_logical_line): Treat null directive as
7463         white space.  Invlidate MI optimization for non-whitespace
7464         text outside a directive.
7465
7466 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7467
7468         * Makefile.in (SHELL): Set to @SHELL@.
7469         * fixinc/Makefile.in (SHELL): Likewise.
7470
7471         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
7472         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
7473         initialization.
7474
7475 2002-06-24  Jeff Law <law@redhat.com>
7476
7477         * flow.c (propagate_one_insn): When removing an insn
7478         with a REG_LIBCALL note but not the entire libcall sequence,
7479         delete the associated REG_RETVAL note.
7480
7481 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
7482
7483         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
7484         (udivsi3): Likewise.  Rewrite SH1 implementation.
7485         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
7486         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
7487         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
7488         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
7489         (_moddi3): Likewise.
7490
7491         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
7492
7493         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
7494         arguments into account for stack_regs.
7495
7496 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
7497
7498         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
7499         in examples.
7500
7501 2002-06-24  Art Haas  <ahaas@neosoft.com>
7502
7503         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
7504         * doc/tm.texi (Frame Layout): Likewise.
7505
7506 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
7507
7508         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
7509         Set float_format to i128.
7510
7511 2002-06-24  David S. Miller  <davem@redhat.com>
7512
7513         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
7514         32-bit ABI libfuncs to NULL.
7515
7516         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
7517         strings instead of quoted strings for code blocks.
7518
7519         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
7520         optabs if op1 is const0_rtx.
7521
7522         * Makefile.in (GTFILES): Add basic-block.h
7523         * basic-block.h (label_value_list, tail_recursion_label_list):
7524         Mark with GTY.
7525
7526 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
7527
7528         * cpptrad.c (scan_out_logical_line): Check recursing only when
7529         we know we have a macro invocation in the function-like case.
7530         Only call _cpp_handle_directive if we know we have a good
7531         directive, or we want to reject a bad directive.
7532
7533 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
7534
7535         * doloop.c (doloop_valid_p): Correct comment.
7536         (doloop_modify_runtime <abs_inc != 1>): Simplify.
7537         (doloop_modify_runtime <do-while>): Don't emit code when NE.
7538
7539 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
7540
7541         * config.gcc: Add support for ip2k.
7542
7543 2002-06-23  Jan Hubicka  <jh@suse.cz>
7544             Jeff Law <law@redhat.com>
7545
7546         * function.h (struct emit_status): Clarify potential contents
7547         of regno_reg_rtx array.
7548         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
7549         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
7550
7551         * reg-stack.c (convert_regs_exit): Push the registers to stack in
7552         proper order.
7553
7554 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
7555
7556         PR middle-end/6963
7557         * function.c (assign_stack_temp_for_type): Do not return
7558         the same MEM rtx for multiple uses of a stack slot.
7559
7560 2002-06-22  David S. Miller  <davem@redhat.com>
7561
7562         PR target/6841 target/6770 target/6719
7563         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
7564         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
7565         GENERAL_OR_EXTRA_FP_REGS.
7566
7567 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
7568
7569         * cpptrad.c (struct fun_macro): Add line number.
7570         (scan_out_logical_line): Set it, and use it to report unterminated
7571         macro invocations.
7572
7573 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7574
7575         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
7576         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
7577         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
7578         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
7579         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
7580         REGEXP_ONEOF, check_name): Const-ify.
7581
7582 2002-06-21  Matt Thomas  <matt@3am-software.com>
7583
7584         * config/vax/vax.c (vax_output_function_prologue): Use
7585         REGISTER_PREFIX.  Fix some indentation.
7586         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
7587         (VAX_ISTREAM_SYNC): Define.
7588         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
7589         i-stream sync to the end.
7590         (REGISTER_PREFIX): Define as "".
7591         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
7592
7593 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
7594
7595         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
7596         configurations.
7597
7598 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7599
7600         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
7601         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
7602
7603 2002-06-21  Matt Thomas  <matt@3am-software.com>
7604
7605         * config/vax/netbsd.h: Adjust a comment.
7606         (TARGET_DEFAULT): Redefine as 0.
7607
7608 2002-06-21  Richard Henderson  <rth@redhat.com>
7609
7610         * bb-reorder.c (make_reorder_chain_1): Search harder for the
7611         vax casesi fallthru edge.
7612         * cfglayout.c (cleanup_unconditional_jumps): Use
7613         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
7614         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
7615         block after ADDR_VEC.
7616
7617 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7618
7619         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
7620
7621 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
7622
7623         * cpperror.c (cpp_error): For traditional CPP, default to
7624         diagnostics on pfile->line.
7625         * cpplib.c (prepare_directive_trad): Set line number for
7626         diagnostics for #define too.
7627         * cpptrad.c (skip_whitespace): Skip comments properly.
7628         (_cpp_expansions_different_trad): Initialize quote2.
7629
7630 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
7631
7632         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
7633         * config/mmix/mmix.h: Ditto.
7634         * config/mmix/mmix-protos.h: Ditto.
7635         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
7636         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
7637         comment.  Comment extra CC modes.
7638
7639 2002-06-20 Jan Hubicka  <jh@suse.cz>
7640
7641         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
7642         (scope_to_insns_finalize): Do not call set_block_levels; handle
7643         sequences.
7644         (choose_inner_scope): New.
7645         * rtl.h (choose_inner_scope): Declare.
7646
7647 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7648
7649         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
7650         HOST_WIDE_INT.
7651         * pa.c (pa_asm_output_mi_thunk): Likewise.
7652         (n_deferred_plabels): Change type to size_t.
7653         (output_deferred_plabels, output_call): Use size_t instead of int.
7654
7655 2002-06-20  Richard Henderson  <rth@redhat.com>
7656
7657         PR target/4041
7658         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
7659         pattern and adjust constraints for coldfire.
7660
7661 2002-06-20  Richard Henderson  <rth@redhat.com>
7662
7663         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
7664
7665 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
7666
7667         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
7668
7669 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
7670
7671         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
7672
7673 2002-06-20  Stan Shebs  <shebs@apple.com>
7674
7675         * dominance.c: Include errors.h instead of error.h.
7676
7677 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
7678
7679         * cppexp.c (cpp_interpret_integer): Don't force traditional
7680         numbers to be unsigned.
7681         * cpplib.c (prepare_directive_trad): Set line number for
7682         diagnostics.
7683         * cpptrad.c (scan_out_logical_line): Continue scanning out
7684         at start of buffer.
7685         * gcc.c (trad_capable_cpp): Use cc1 always.
7686
7687 2002-06-20  Jeffrey Law  <law@redhat.com>
7688
7689         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
7690         elimination in leaf functions by default yet.
7691
7692 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
7693
7694         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
7695
7696 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7697
7698         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
7699         multilibs.
7700         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
7701         Fixes PR other/6836.
7702
7703 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
7704                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
7705
7706         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
7707
7708         * basic-block.h: Do not include et-forest.h
7709         (dominance_info): Declare as struct dominance-info.
7710         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
7711         deleting block.
7712         * dominance.c (struct dominance_info): Define.
7713         (BB_NODE, SET_BB_NODE): New macros.
7714         (bb_hash_func, bb_eq_func): Kill.
7715         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
7716         nearest_common_dominator, dominated_by_p, recount_dominator,
7717         add_to_dominance_info, delete_from_dominance_info): update for new
7718         representation.
7719         (get_dominated_by, redirect_immediate_dominators): Rewrite using
7720         enumerate_sons.
7721         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
7722         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
7723         structure.
7724
7725         * et-forest.h: Update copyright; revamp all function to operate on
7726         nodes
7727         (et_forest_value): Kill.
7728         (et_forest_enumerate_sons, et_forest_node_value): New.
7729         * et-forest.c: Update copyright.
7730         * et-forest.h: Update copyright; revamp all function to operate on
7731         nodes
7732         (et_forest_value): Kill.
7733         (et_forest_enumerate_sons, et_forest_node_value): New.
7734
7735         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
7736
7737         * basic-block.h: Inlude et-forest.h
7738         (basic_block_def): Kill dominator.
7739         (dominance_info): New type.
7740         (loops): Use dominace_info.
7741         (dominace handling functions): Take dominace_info as argument
7742         instead of bitmaps.
7743         (create_preheader): Likewise.
7744         * cfg.c (entry_exit_blocks): Kill dominator.
7745         (dump_flow_info): Do not dump dominators.
7746         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
7747         dominators.
7748         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
7749         (flow_loops_pre_header_scan, make_forwarder_block,
7750         canonicale_loop_headers, flow_loops_find): Likewise.
7751         * dominance.c: Include error.h
7752         (idoms_to_doms): Kill.
7753         (bb_hash_func, bb_eq_func): New static functions.
7754         (debug_dominace_info): New global function.
7755         (calculate_dominance_info): Use new et forest structure.
7756         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
7757         get_dominated_by, redirect_immediate_dominators,
7758         nearest_common_dominator, dominated_by_p, verify_dominators,
7759         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
7760         delete_from_dominance_info): New global functions.
7761         * gcse.c (domnators): CHange to dominance_info.
7762         (alloc_hoist_mem): Do not alloc dominators
7763         (free_code_hoist_mem): Use free_dominance_info.
7764         (compute_code_hoist_data): Use dominance_info.
7765         (hoist_code): Likewise.
7766         * ifcvt.c (post_dominators): Likewise.
7767         (find_if_case_2, if_convert): Likewise.
7768         * predict.c (process_note_predictions, process_note_prediction,
7769         estimate-probability): Likewise.
7770         * sched-rgn.c (find_rgns, init_regions): Likewise.
7771         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
7772         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
7773         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
7774         find_evaluations, convert_to_ssa): Likewise.
7775         * ssa.h (compute_dominance_frontiers): Likewise.
7776
7777         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
7778
7779         * Makefile.in (et-forest.c): Add.
7780         * et-forest.c: New file.
7781         * at-forest.h: New file.
7782
7783 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7784
7785         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
7786         array size calculation.
7787         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
7788         Likewise.
7789
7790         * diagnostic.c (diagnostic_kind_text): Const-ify.
7791         * gengtype.c (lang_names): Likewise.
7792
7793 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
7794
7795         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
7796
7797 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7798
7799         * config/sol2.h: New file.
7800         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
7801         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
7802         (sparc-*-chorusos*): Likewise.
7803         (sparc-*-elf*): Likewise.
7804         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
7805         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
7806         (sparc-hal-solaris2*): Likewise.
7807         (sparc-*-solaris2*): Likewise.
7808         (sparclite-*-elf*): Likewise.
7809         (sparc86x-*-elf*): Likewise.
7810         (sparc64-*-elf*): Likewise.
7811
7812         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
7813         config/sol2.h.
7814         (ASM_SPEC): Override config/sol2.h version for now.
7815         Removed obsolete GAS_REJECTS_MINUS_S variant.
7816         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
7817         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
7818         (TARGET_OS_CPP_BUILTINS): Likewise.
7819         Assert system=unix.
7820         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
7821         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
7822         config/sol2.h.
7823         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
7824         (ASM_CPU_SPEC): Define.
7825         (SUBTARGET_EXTRA_SPECS): Define.
7826
7827         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
7828         in config/sparc/sol2.h.
7829         (ASM_SPEC): Moved to config/sol2.h.
7830         (CPP_CPU_SPEC): Simplified.
7831         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
7832         consistency.
7833         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
7834         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
7835         STARTFILE_ARCH64_SPEC.
7836         (STARTFILE_SPEC): Moved to config/sol2.h
7837         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
7838         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
7839         (LINK_ARCH64_SPEC): Simplified.
7840         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
7841         (LINK_SPEC): Moved to config/sol2.h
7842
7843         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
7844         config/sol2.h.
7845         Use BITS_PER_WORD for size.
7846         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
7847         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
7848         (CPP_PREDEFINES): Removed OS-specific part handled by
7849         TARGET_OS_CPP_BUILTINS.
7850         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
7851         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
7852         (ASM_SPEC): Moved to config/sol2.h.
7853         (PREFERRED_DEBUGGING_TYPE): Likewise.
7854         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
7855         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
7856         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
7857         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
7858
7859         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
7860         * config/i386/sol2gas.h: Removed.
7861
7862 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
7863
7864         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
7865
7866 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
7867
7868         * gcc.c-torture/execute/simd-1.c: New.
7869
7870         * gcc.dg/simd-1.c: New.
7871
7872         * doc/extend.texi (Vector Extensions): Document that we can
7873         specify simd types not specifically supported by the hardware.
7874         Document that simd types can be used as function arguments.
7875         Document that signness does make a difference in SIMD types.
7876         Misc cleanups and revisions to the vector extensions section.
7877
7878         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
7879         constants.
7880
7881         * expr.c (vector_mode_valid_p): New.
7882
7883         * expr.h: Add vector_mode_valid_p.
7884
7885         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
7886
7887         * c-common.c (type_for_mode): Always build vector nodes regardless
7888         of VECTOR_MODE_SUPPORTED_P.
7889         (handle_mode_attribute): Error if we can't emulate a nonexisting
7890         vector mode.
7891         (handle_vector_size_attribute): Same.
7892
7893         * optabs.c (expand_binop): Open-code vector operations.
7894         (expand_unop): Open-code vector unops.
7895         (expand_vector_binop): New.
7896         (expand_vector_unop): New.
7897
7898         * c-typeck.c (build_binary_op): Allow vectors in binops.
7899         Allow vectors in conditional operatiors.
7900         (build_unary_op): Allow vectors in unary minus.
7901
7902         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
7903         TARGET_ALTIVEC.
7904
7905 2002-05-20  Richard Henderson  <rth@redhat.com>
7906
7907         * c-common.c (c_common_get_alias_set): Correctly handle characters.
7908         Rearrange order of expressions; don't handle vectors here.
7909         * alias.c (get_alias_set): Let vectors match their components.
7910
7911 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
7912
7913         * config/mips/mips.c (mips_emit_prefetch): Use hints which
7914         match desired locality.
7915
7916 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
7917
7918         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
7919         (h8300_insert_attributes): New.
7920
7921 2002-06-19  Akim Demaille  <akim@epita.fr>
7922
7923         * c-parse.in (initelt: identifier ':' initval): Add an empty
7924         action to fix a type clash.
7925         (aliasdecl, classdef): Add the missing closing `;'.
7926         Whitespace changes.
7927         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
7928         $$ = $1 type clashes.
7929
7930 2002-06-19  Eric Christopher  <echristo@redhat.com>
7931
7932         * config/mips/mips.c (symbol_operand): New function.
7933         (mips_emit_prefetch): Ditto.
7934         * config/mips/mips-protos.h: Define.
7935         * config/mips/mips.h (ISA_HAS_PREFETCH): Define.
7936         (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
7937         (LEGITIMIZE_ADDRESS): Ditto.
7938         * config/mips/mips.md (prefetch, prefetch_si_address,
7939         prefetch_si, prefetch_di_address, prefetch_di): New patterns.
7940
7941 2002-06-19  Eric Christopher  <echristo@redhat.com>
7942
7943         * config/fp-bit.h: Add unordered defines for gofast.
7944
7945 2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>
7946
7947         * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
7948         DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
7949         DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
7950         REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
7951         checking and without it.
7952         (decl_name, decl_mode_check_failed, regexp_name,
7953         regexp_mode_check_failed): New functions.
7954         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7955         gen_presence_set, gen_absence_set, gen_automaton,
7956         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7957         gen_regexp_sequence, gen_reserv, gen_insn_reserv,
7958         automaton_decl_hash, automaton_decl_eq_p): Use the macros.
7959         (find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
7960         (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
7961         (find_insn_decl): Ditto.  Set up mode of work_insn_decl.
7962         (decl_hash, decl_eq_p): Use the macros.
7963         (find_decl): Ditto.  Set up mode of work_decl.
7964         (process_excls, process_presence_absence, process_decls,
7965         check_automaton_usage, process_regexp, process_regexp_decls,
7966         check_usage, loop_in_regexp, check_loops_in_regexps,
7967         process_regexp_cycles, add_advance_cycle_insn_decl,
7968         initiate_states, initiate_excl_sets,
7969         initiate_presence_absence_sets, copy_insn_regexp, transform_1,
7970         transform_2): Use the macros.
7971         (transform_3): Ditto.  Check mode before making transformations of
7972         ALLOF.
7973         (regexp_transform_func, transform_insn_regexps,
7974         process_unit_to_form_the_same_automaton_unit_lists,
7975         form_the_same_automaton_unit_lists_from_regexp,
7976         form_the_same_automaton_unit_lists,
7977         process_seq_for_forming_states, process_alts_for_forming_states,
7978         create_alt_states, form_ainsn_with_same_reservs, make_automaton,
7979         form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
7980         estimate_one_automaton_bound, compare_max_occ_cycle_nums,
7981         units_to_automata_heuristic_distr, create_ainsns,
7982         units_to_automata_distr, create_automata): Use the macros.
7983         (form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
7984         (longest_path_length, min_issue_delay_pass_states,
7985         output_dead_lock_vect, output_tables, output_insn_code_cases,
7986         output_internal_insn_latency_func, output_print_reservation_func,
7987         output_description, output_automaton_units, generate): Use the
7988         macros.
7989         (make_insn_alts_attr): Ditto.  Check case when there are not
7990         alternatives in the reservation.
7991         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
7992         make_bypass_attr, form_important_insn_automata_lists,
7993         expand_automata): Use the macros.
7994
7995 2002-06-20  Tim Josling  <tej@melbpc.org.au>
7996
7997         * Makefile.in: Clean up code to check for misspecified languages
7998         in enable-languages.
7999
8000 2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>
8001
8002         * cpptrad.c (_cpp_replacement_text_len): initialize len.
8003
8004 2002-06-19  Jason Merrill  <jason@redhat.com>
8005
8006         * Makefile.in (unstrap, restrap): New targets.
8007         (bootstrap): Mention restrap.
8008
8009 2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>
8010
8011         * except.c (ehl_free): Remove.
8012
8013         * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
8014         builtin_define and builtin_define_std.
8015
8016 2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
8017
8018         * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
8019         (sCOND): Restrict operand class so that gcc knows how to reload them.
8020         (bitfield_set): Merge two unnamed insn's using alternatives.
8021         (call_value): Remove constraint on unused uperand.
8022         (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
8023         (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.
8024
8025         * longlong.h (count_trailing_zeros): Escape newline and beautify.
8026
8027 2002-06-19  Mark Mitchell  <mark@codesourcery.com>
8028
8029         * Makefile.in (QMTEST_DIR): Simplify definition.
8030
8031 2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
8032
8033         * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
8034         #define.
8035
8036 2002-06-19  Neil Booth  <neil@daikokuya.co.uk>
8037
8038         * cpphash.h (struct cpp_reader): Make date and time strings.
8039         (_cpp_builtin_macro_text, _cpp_copy_replacement_text,
8040         _cpp_replacement_text_len): New.
8041         * cppinit.c (cpp_create_reader): Update.
8042         (init_builtins): Register appropriate builtins for -traditional-cpp.
8043         * cppmacro.c (new_number_token): Remove.
8044         (_cpp_builtin_macro_text): New.
8045         (builtin_macro): Use it.
8046         (cpp_macro_definition): Update to handle traditional macros.
8047         * cppmain.c (cb_line_change): Don't do column positioning for
8048         traditional output.
8049         * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
8050         state ls_fun_close.
8051         (skip_whitespace): Fix.
8052         (maybe_start_funlike): Don't set state.parsing_args.
8053         (scan_out_logical_line): Remove duplicate error.  Use lex_state
8054         rather than state.parsing_args.
8055         (push_replacement_text): Handle builtins.
8056         (_cpp_replacement_text_len, _cpp_copy_replacement_text): New.
8057
8058 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
8059             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8060
8061         * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
8062         attribute __always_inline__.
8063
8064 2002-06-18  Bob Wilson  <bob.wilson@acm.org>
8065
8066         * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
8067         when generating the call to _mcount.
8068         (NO_PROFILE_COUNTERS): Define.
8069
8070 2002-06-18  Richard Henderson  <rth@redhat.com>
8071
8072         * print-rtl.c (print_rtx): Adjust NOTE argument numbers for
8073         2002-06-02 change.
8074
8075 Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
8076
8077         * t-sh (MULTILIB_EXCEPTIONS): Set to ml.
8078         config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
8079         * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
8080         * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.
8081
8082         * sh-protos.h (sh_pr_interrupt): Declare.
8083         * sh.c (sh_pr_interrupt): New function.
8084         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
8085         (sh_hard_regno_rename_ok): Likewise.
8086         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
8087
8088 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
8089
8090         * rtl.def (DEFINE_AUTOMATON): Add description of new options
8091         `time' and `v'.  Fix incorrect description of option `w'.
8092
8093         * doc/md.texi: Ditto.
8094
8095         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
8096         (gen_automata_option): Process the new options.
8097         (transform_2, transform_3): Initialize some variables.
8098         (initiate_automaton_gen): Use the new macros.
8099
8100 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
8101
8102         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
8103         (mips_set_return_address, mips_restore_gp): Declare.
8104         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
8105         (current_frame_info): Remove.
8106         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
8107         * config/mips/mips.c: Remove uses of current_frame_info.
8108         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
8109         (struct machine_function): Add 'frame' and 'insns_len'.
8110         (current_frame_info, zero_frame_info): Remove.
8111         (mips_restore_gp, mips_set_return_address): New.
8112         (mips_initial_elimination_offset): New.
8113         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
8114         (eh_return define_split): Use mips_set_return_address.
8115
8116 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8117
8118         * cpplib.c (dtable): Update.
8119         (end_directive): Decrement expansion prevention count.
8120         Clear state.in_expression.
8121         (prepare_directive_trad): Set state.in_expression.
8122         Increment expansion prevention count.
8123         * cpptrad.c (enum ls): New.
8124         (_cpp_overlay_buffer): Set overlaid_buffer.
8125         (_cpp_remove_overlay): Use overlaid_buffer.
8126         (_cpp_read_logcial_line_trad): Update buffer when it might
8127         have changed.
8128         (scan_out_logical_line): Handle state transitions for assertions
8129         and defined() in #if, and for funlike invocations including the
8130         directive case.  Handle '<' and '>' as a quote mechanism in
8131         #include.  Warn about unterminated macro invocations.
8132         * cpphash.h (struct lexer_state): New member in_expression.
8133         (struct cpp_reader): New member overlaid buffer.
8134
8135 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
8136
8137         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
8138         __always_inline__.
8139
8140 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
8141
8142         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
8143
8144         * doloop.c (doloop_optimize): Extract pattern from insn.
8145
8146 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
8147
8148         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
8149
8150 2002-06-17  Jeff Law <law@redhat.com>
8151
8152         * libgcc2.c: Do not include symcat.h or machmode.h.
8153
8154 2002-06-17  Richard Henderson  <rth@redhat.com>
8155
8156         PR target/6922
8157         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
8158
8159 2002-06-17  Tom Tromey  <tromey@redhat.com>
8160
8161         * dwarfout.c: Include function.h.
8162
8163 2002-06-17  Andreas Schwab  <schwab@suse.de>
8164
8165         * print-rtl.c (print_rtx): Print space before vector, not after.
8166         (debug_rtx): Clear sawclose before printing.
8167         (debug_rtx_list): Print newline after each list element.
8168         (debug_rtx_range): Likewise.
8169
8170 2002-06-17  Richard Henderson  <rth@redhat.com>
8171
8172         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
8173         (current_function_funcdef_no): Similarly.
8174         * function.c (funcdef_no): Similarly.
8175         (prepare_function_start): Set current_function_funcdef_no.
8176         (expand_function_start): Don't set current_function_profile_label_no.
8177         * dwarf2out.h (current_funcdef_number): Remove.
8178         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
8179         current_function_funcdef_no throughout.
8180         * dwarfout.c, vmsdbgout.c: Similarly.
8181         * except.c (sjlj_funcdef_number): Remove.
8182         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
8183         (output_function_exception_table): Likewise.
8184         * final.c (profile_function): Use current_function_funcdef_no
8185         instead of current_function_profile_label_no.
8186
8187 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
8188
8189         * sched-ebb.c (init_ready_list): Check INSN_P first.
8190
8191 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
8192
8193         * sh.md (divsi3): Update way how to find insns in a sequence.
8194
8195         * reload1.c (merge_assigned_reloads): Don't change reloads
8196         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
8197         to RELOAD_OTHER when there are conflicting input reloads.
8198
8199 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
8200
8201         * function.c (epilogue_done): Correctly build a sequence of insns for
8202         a sibcall epilogue.
8203
8204 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
8205
8206         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
8207         #define.
8208
8209         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
8210
8211 2002-06-16  Richard Henderson  <rth@redhat.com>
8212
8213         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
8214         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
8215
8216 2002-06-16  Richard Henderson  <rth@redhat.com>
8217
8218         PR opt/6722
8219         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
8220
8221 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8222
8223         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
8224         * config/i386/i386-aout.h, config/i386/i386elf.h,
8225         config/i386/sysv4.h: Remove CPP_PREDEFINES.
8226         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
8227         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
8228         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
8229         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
8230         CPP_PREDEFINES and part of CPP_SPEC.
8231         * config/i386/sysv4-cpp.h: New.
8232
8233 2002-06-16  Richard Henderson  <rth@redhat.com>
8234
8235         PR c/7030
8236         * dwarf2out.c (modified_type_die): Don't assign the qualified die
8237         to the unqualified type.
8238
8239 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
8240
8241         * i386-protos.h (x86_field_alignment): Declare.
8242         * i386.c (x86_field_alignment): Define.
8243         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
8244         (BIGGEST_FIELD_ALIGNMENT): Kill.
8245
8246 2002-06-16  Richard Henderson  <rth@redhat.com>
8247
8248         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
8249
8250 2002-06-16  Richard Henderson  <rth@redhat.com>
8251
8252         * c-common.c (flag_ms_extensions): Move from c++ front end.
8253         * c-common.h (flag_ms_extensions): Declare.
8254         * c-decl.c (c_decode_option): Add -fms-extensions.
8255         (grokfield): Don't accept anonymous structures in ISO C mode;
8256         accept only unnamed anonymous structures in GNU C mode; accept
8257         Plan 9 extensions in MS mode.
8258         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
8259         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
8260         (extension): Clear flag_iso.
8261         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
8262
8263 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
8264
8265         PR target/7042
8266         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
8267         early if current_function_epilogue_delay_list is non-empty.
8268         * config/cris/cris.md ("return"): Add sanity check asserting that
8269         current_function_epilogue_delay_list is empty.
8270
8271 2002-06-16  Jeff Law <law@redhat.com>
8272
8273         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
8274         sharing of hard registers.
8275
8276         * toplev.c (rest_of_compilation): Remove redundant conditional.
8277
8278         * toplev.c (rest_of_compilation): Perform a simpler, less costly
8279         cleanup of the CFG when not optimizing.
8280
8281 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
8282
8283         * gcc.c (main): Correct startfile_prefix_spec check.
8284
8285 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
8286
8287         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
8288         include both darwin.o and rs6000-c.o.
8289
8290 2002-06-15  Roger Sayle  <roger@eyesopen.com>
8291
8292         * expr.c (compare_from_rtx): Call simplify_relational_operation
8293         on all comparisons, not just those between integer constants,
8294         with the correct (possibly unsigned) comparison code.
8295         (do_compare_rtx_and_jump): Likewise.
8296
8297 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8298
8299         * Makefile.in (tm_defines): New configuration variable.
8300         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
8301         Pass tm_defines in TM_DEFINES.
8302         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
8303         * config.gcc (tm_defines): New configuration variable.
8304         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
8305         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
8306         * configure.in: Substitute tm_defines.
8307         * configure: Rebuilt.
8308         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
8309         * doc/install.texi: Update.
8310         * pa/pa-700.h: Delete file.
8311         * pa/pa-7100.h: Delete file.
8312
8313 2002-06-15  Roger Sayle  <roger@eyesopen.com>
8314
8315         * fold-const.c (comparison_to_compcode): New function to convert
8316         an comparison TREE CODE into a bit-based representation.
8317         (compcode_to_comparison): New function to convert from this bit
8318         based representation back to a comparison TREE CODE.
8319         (fold_truthop): Simplify (x<y) && (x==y) and related composite
8320         comparisons.
8321
8322 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
8323
8324         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
8325
8326         * stor-layout.c (compute_record_mode): Remove check for
8327         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
8328         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
8329         MEMBER_TYPE_FORCES_BLK.
8330
8331         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
8332
8333         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
8334
8335 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
8336
8337         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
8338
8339 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
8340
8341         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
8342         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
8343         * configure, config.in: Regenerate.
8344
8345 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
8346
8347         * loop.c (check_final_value): Use v->always_executed
8348         instead of v->always_computable.
8349         * unroll.c (final_giv_value): Don't calculate the final
8350         value as a function of the biv if the giv is not computed
8351         for every loop iteration.
8352
8353 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
8354
8355         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
8356
8357 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
8358
8359         PR c/6677
8360         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
8361         the truncation down when the target type is signed.
8362         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
8363         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
8364         the conversion if the target type is a smaller type.
8365
8366 2002-06-14  Richard Henderson  <rth@redhat.com>
8367
8368         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
8369         earlier.  Re-factor comparisons vs extrema.
8370
8371 2002-06-14  Richard Henderson  <rth@redhat.com>
8372
8373         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
8374
8375 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8376
8377         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
8378         * sched-deps.c (add_dependence): Likewise.
8379         (group_leader): Likewise.
8380         * sched-rgn.c (init_ready_list): Likewise.
8381         * doc/rtl.texi: Adjust accordingly.
8382
8383 2002-06-13  Jeffrey Law  <law@redhat.com>
8384
8385         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
8386         null pointer checks were eliminated.  Update prototype.
8387         (delete_null_pointer_checks): Similarly.
8388         * rtl.h (delete_null_pointer_checks): Update prototype.
8389         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
8390         delete_null_pointer_checks deletes one or more null
8391         pointer checks.  Do not run cleanup_cfg before gcse, the
8392         CFG is accurate and optimized at that point..
8393
8394         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
8395         of hard registers.
8396
8397 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
8398
8399         * Makefile.in (libgcc.mk): Depend on specs.
8400
8401 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
8402
8403         * sh.md (mulsi3): Update way how to find insns in a sequence.
8404
8405 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
8406
8407         * sh.h: Define HARD_REGNO_RENAME_OK
8408         * sh.c: sh_hard_regno_rename_ok: New. If current function has
8409         interrupt_handler attribute, only registers saved on stack are OK.
8410         * sh-protos.h: Declare sh_hard_regno_rename_ok.
8411
8412 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
8413
8414         * config/sh/sh.md (jump): Emit jump insn.
8415         (call_pcrel): Get pattern of the result of gen_call_site.
8416         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
8417
8418 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8419
8420         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
8421         * cpptrad.c: Update comments.
8422         (skip_whitespace, copy_comment): Take a new parameter.
8423         (skip_escaped_newlines): Don't duplicate escaped newline test.
8424         (copy_comment): Different location for CUR, decide here how
8425         to copy / replace the comment.
8426         (skip_whitespace): Copy whitespace.
8427         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
8428         (scan_out_logical_line): Let copy comment handle keeping or
8429         replacing comments.
8430         (scan_parameters, _cpp_create_trad_definition): Update.
8431
8432 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
8433
8434         * reload.c (get_secondary_mem,find_reloads_address,
8435         find_reloads_address_1): Pass reference to MEM to find_reloads_address
8436         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
8437
8438 2002-06-13  Jessica Han  <jessica@cup.hp.com>
8439
8440         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
8441         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
8442         * doc/tm.texi: Document them.
8443         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
8444         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
8445         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
8446         (ASM_OUTPUT_FDESC): Likewise.
8447
8448 2002-06-13  Eric Christopher  <echristo@redhat.com>
8449
8450         * diagnostic.c (output_format): Fix thinko.
8451
8452 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
8453
8454         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
8455         (DWARF2_UNWIND_INFO): Define to 0.
8456
8457         * config/sh/sh.c (calc_live_regs): Don't use initial_value
8458         optimization for PR_MEDIA_REG.
8459
8460 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8461
8462         * cpphash.h (_cpp_lex_identifier_trad): Remove.
8463         * cpplib.c (end_directive): Don't skip, always remove overlay
8464         apart from #define.
8465         (prepare_directive_trad): Handle NULL pfile->directive.
8466         (_cpp_handle_directive): Always call prepare_directive_trad
8467         if traditional.
8468         * cppmain.c (check_multiline_token): Rename account_for_newlines,
8469         generalize inputs.
8470         (scan_translation_unit_trad): Use it.
8471         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
8472         output, get escaped newline in comment close correct.
8473         (check_output_buffer, skip_whitespace): Update.
8474         (_cpp_lex_identifier_trad): Remove.
8475         (scan_out_logical_line): Handle -C and comments in directives
8476         properly.
8477
8478 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
8479
8480         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
8481         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
8482         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
8483         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
8484         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
8485         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
8486         (SELECT_SH5_COMPACT_NOFPU): Likewise.
8487         (TARGET_SWITCHES): Use them.
8488         (TARGET_CPU_DEFAULT): Define if not already defined.
8489         (TARGET_DEFAULT): Use it.
8490         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
8491         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
8492         * config/sh/t-monolib: New file.
8493
8494 2002-06-13  Roger Sayle  <roger@eyesopen.com>
8495
8496         * toplev.c (rest_of_compilation): Simplify (and correct) the
8497         logic of the first delete-null-pointer-checks pass.
8498
8499 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
8500
8501         * i386.c (ix86_expand_movstr):  Fix pasto.
8502
8503 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
8504
8505         * reload.c (find_valid_class):  Fix thinko in my previous patch.
8506
8507 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
8508
8509         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
8510         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
8511         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
8512         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
8513
8514 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
8515
8516         * tree-inline.c (expand_call_inline): Don' mess with _DECL
8517         fields.
8518
8519 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
8520
8521         * diagnostic.c (output_format): Recognize "%H" as a format
8522         specifier for a location_t.
8523         (text_specifies_location): New function.
8524         (diagnostic_set_info): Use it.
8525
8526 2002-06-13  Jeffrey Law  <law@redhat.com>
8527
8528         * emit-rtl.c (static_regno_reg_rtx): Define.
8529         (init_emit_once): Initialize static_regno_reg_rtx.
8530         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
8531         of building new hard reg objects once per function.
8532         (gen_rtx_REG): Try to share hard regs.
8533         * regclass.c (init_fake_stack_mems): New function broken out from
8534         init_regs.
8535         * rtl.h (init_fake_stack_mems): Declare.
8536         * toplev.c (lang_independent_init): Call init_regs before
8537         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
8538
8539         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
8540
8541         * alias.c (argument_registers): Remove.
8542         (init_alias_once): Initialize static_reg_base_value here.  Remove
8543         initialization of argument_registers.
8544         (init_alias_once_per_function): Remove.
8545         (init_alias_analysis): Copy all the entries from static_reg_base_value
8546         into new_reg_base_value all at once.
8547         * rtl.h (init_alias_once_per_function): Remove declaration.
8548         * function.c (prepare_function_start): Do not call
8549         init_alias_once_per_function.
8550
8551         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
8552         starting a sequence and emitting an INSN.
8553
8554 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
8555
8556         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
8557
8558 2002-06-13  David S. Miller  <davem@redhat.com>
8559
8560         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
8561
8562 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
8563
8564         * cpplib.c (end_directive): Handle line skipping.  Only remove
8565         the rest of the line if the directive was valid.
8566         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
8567         expanding a traditional macro.
8568         * cpptrad.c (recursive_macro): New.
8569         (read_logical_line_trad): Handle skipping.
8570         (scan_out_logical_line): Continue after a successful directive.
8571         Don't expand macros whilst skipping, or if recursing.
8572         (_cpp_create_trad_definition): scan_out_logical_line now sets
8573         the output current position.
8574
8575 2002-06-12  Eric Christopher  <echristo@redhat.com>
8576
8577         From Chris Demetriou  <cgd@broadcom.com>
8578         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
8579         comment.
8580         (ISA_HAS_MADD_MSUB): Ditto.
8581         (ISA_HAS_NMADD_NMSUB): Ditto.
8582
8583 2002-06-12  Eric Christopher  <echristo@redhat.com>
8584
8585         * config.gcc: Consolidate little endian handling and
8586         little/big endian targets.
8587         * config/mips/elfl.h: Remove file.
8588         * config/mips/elfl64.h: Ditto.
8589         * config/mips/ecoffl.h: Ditto.
8590         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
8591
8592 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
8593
8594         * gengtype.h (xvasprintf): New prototype.
8595         (xasprintf): New prototype.
8596         (struct outf): New.
8597         (get_output_file): Return an outf_p.
8598         (header_file): Is now an outf_p.
8599         (base_files): Now are outf_p.
8600         (oprintf): New.
8601         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
8602         rather than stdio operations.  Use xasprintf in a few places,
8603         when appropriate.
8604         (xvasprintf): New.
8605         (xasprintf): New.
8606         (struct filemap): Delete.
8607         (files): Delete.
8608         (output_files): New.
8609         (oprintf): New.
8610         (create_file): Create an outf_p.  Add parameter to indicate output
8611         file name, change all callers.
8612         (open_base_files): Create gtype-desc.c here.
8613         (get_output_file_with_visibility): Rewrite.
8614         (get_output_file_name): Just look at 'name' field in struct outf.
8615         (close_output_files): Rewrite.
8616
8617 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
8618
8619         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
8620         (MASK_G_FLOAT): Define.
8621         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
8622         (TARGET_SWITCHES): Likewise.
8623         (TARGET_DEFAULT): Likewise.
8624
8625 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
8626
8627         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
8628         * config/mips/mips.c (mips_output_filename): Don't print a
8629         ".file" directive if we are using DWARF-2.
8630         (mips_output_function_prologue): Do not emit source file
8631         name for TARGET_GAS.
8632
8633 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
8634
8635         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
8636         decide whether emit the short opcode.
8637         * i386.h (x86_shift1): Declare.
8638         (TARGET_SHIFT1): New macro.
8639         * i386.c (x86_shift1): New global variable.
8640
8641         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
8642         unconditionally; make loop to rebuild CFG; kill unnecesary
8643         find_basic_block calls; kill compute_bb_for_insn call.
8644         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
8645         * haifa-sched.c (sched_init): Likewise.
8646         * ssa-ccp.c (ssa_const_prop): Likewise.
8647         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
8648
8649 2002-06-11  David S. Miller  <davem@redhat.com>
8650
8651         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
8652         active_insn_p.
8653
8654 2002-06-11  Richard Henderson  <rth@redhat.com>
8655
8656         * c-common.c (builtin_define_type_max): New.
8657         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
8658         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
8659
8660         From Joseph S. Myers:
8661         * glimits.h: Rewrite to expect the double underscore definitions
8662         from the compiler.
8663
8664         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
8665         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
8666         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
8667         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
8668         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
8669         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
8670         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
8671         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
8672
8673 2002-06-11  Richard Henderson  <rth@redhat.com>
8674
8675         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
8676         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
8677         (code_for_builtns): Update.
8678         (alpha_init_builtins): Add __builtin_thread_pointer and
8679         __builtin_set_thread_pointer.
8680         (alpha_expand_builtin): Handle void builtins.
8681         * doc/extend.texi (Alpha Built-in Functions): Update.
8682
8683 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
8684
8685         PR target/6997
8686         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
8687
8688 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
8689
8690         * config.gcc: Make the name of the extra-modes file adjustable
8691         by target stanzas.
8692         (s390x, strongarm, xscale stanzas): Use this facility.
8693         * configure.in: Update to match.
8694         * configure: Regenerate.
8695
8696 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
8697
8698         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
8699         max/mins as unsigned GE compares.
8700
8701 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
8702
8703         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
8704         * config/vax/bsd.h: New file.
8705         * config/vax/netbsd.h: Add missing notice.
8706         (CPP_PREDEFINES): Remove.
8707         (TARGET_OS_CPP_BUILTINS): Define.
8708         (CPP_SPEC): Use NETBSD_CPP_SPEC.
8709         * config/vax/openbsd.h: Update copyright years.
8710         (CPP_PREDEFINES): Remove.
8711         (TARGET_OS_CPP_BUILTINS): Define.
8712         * config/vax/ultrix.h: Likewise.
8713         * config/vax/vaxv.h: Likewise.
8714         * config/vax/vms.h: Likewise.
8715         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
8716         (CPP_PREDEFINES, CPP_SPEC): Remove.
8717
8718 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
8719
8720         * i386.md (addqi_1_slp, subqi_1_slp
8721         (andqi_ext0, testqi_ext0): Remove unnecesary check.
8722         (addhi*, addqi*): Simplify "dec" condition.
8723         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
8724         (and, or, xor to QImode splitters): New.
8725         (iorqi_ext*): New.
8726         (xorqi_ext_0): New.
8727         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
8728         (andqi_ext_1_rex64): New.
8729         (ashrqi*_slp): New.
8730         (ashlqi*_slp): New.
8731         (lshlqi*_slp): New.
8732         (rotrqi3*_slp): New.
8733         (rotlqi3*_slp): New.
8734
8735 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
8736
8737         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
8738         softfloat.h.
8739         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
8740         (CPP_ENDIAN_LITTLE_SPEC): Delete.
8741         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
8742         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
8743         __LONG_DOUBLE_128__ setting, _CALL_* setting.
8744         (CPP_DEFAULT_SPEC): Delete.
8745         (CPP_FLOAT_DEFAULT_SPEC): Delete.
8746         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
8747         (CPP_SYSV_DEFAULT_SPEC): Delete.
8748         (CPP_ENDIAN_BIG_SPEC): Delete.
8749         (CPP_ENDIAN_LITTLE_SPEC): Delete.
8750         (CPP_ENDIAN_SPEC): Delete.
8751         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
8752         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
8753         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
8754         cpp_longdouble_default.
8755         * config/rs6000/softfloat.h: Delete.
8756         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
8757         (EXTRA_SPECS): Delete cpp_cpu.
8758         (TARGET_CPU_CPP_BUILTINS): New.
8759         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
8760         prototype.
8761         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
8762         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
8763         (CPP_DEFAULT_SPEC): Delete.
8764         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
8765         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
8766         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
8767         (CPP_DEFAULT_SPEC): Delete.
8768         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
8769         (CPLUSPLUS_CPP_SPEC): Likewise.
8770         (CPP_CPU_SPEC): Delete.
8771         (CPP_DEFAULT_SPEC): Delete.
8772         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
8773         (CPLUSPLUS_CPP_SPEC): Likewise.
8774         (CPP_CPU_SPEC): Delete.
8775         (CPP_DEFAULT_SPEC): Delete.
8776         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
8777         (CPP_DEFAULT_SPEC): Delete.
8778         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
8779         (CPP_DEFAULT_SPEC): Delete.
8780
8781         * doc/gty.texi: Small updates.
8782
8783 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
8784
8785         * objc/objc-act.c (warn_with_ivar): Adjust calls to
8786         diagnostic_count_error.
8787         (warn_with_method): Likewise.
8788
8789         * diagnostic.h (warnings_are_errors_message): New field of
8790         diagnostic_context.
8791         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
8792         match semantics.
8793         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
8794         (diagnostic_count_diagnostic): Make aware of other kinds of
8795         diagnostics.
8796         (diagnostic_initialize): Initialize warnings_are_errors_message field.
8797
8798 2002-06-11  Tom Tromey  <tromey@redhat.com>
8799
8800         For PR java/6520:
8801         * fold-const.c (fold_convert): Don't modify existing tree's type.
8802
8803 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
8804
8805         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
8806
8807 2002-06-11  Richard Henderson  <rth@redhat.com>
8808
8809         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
8810
8811 2002-06-11  Richard Henderson  <rth@redhat.com>
8812
8813         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
8814         DWARF2_UNWIND_INFO is false.
8815
8816 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
8817
8818         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
8819
8820         * config/s390/s390.c (emit_prologue): gen_store_multiple
8821         returns an insn now, not a pattern.
8822
8823 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8824
8825         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
8826         $(TEXI2DVI) -o.
8827
8828 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
8829
8830         * i386.c (x86_promote_QImode): Set for Athlon
8831         (x86_fast_prefix): New global variable.
8832         (x86_arch_always_fancy_math_387): Fix formating.
8833         * i386.h (x86_fast_prefix): Declare
8834         (TARGET_FAST_PREFIX): define.
8835         * i386.md (and to strict_low_part, HI to SI
8836         promoting splitter): Use new macro.
8837
8838         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
8839
8840 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
8841
8842         * Makefile.in (distclean): Delete junk left in testsuite
8843         directory, too.
8844
8845 2002-06-11  Jeffrey Law <law@redhat.com>
8846
8847         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
8848         last insn created by the splitter.
8849
8850         * caller-save.c (init_caller_save): Move creation of SAVEINSN
8851         and RESTINSN into into the scope of the sequence.
8852
8853         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
8854         RETURN insns.
8855
8856         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
8857
8858         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
8859         not the pattern.  So extract the pattern from the insn.
8860
8861         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
8862
8863 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
8864
8865         * config/s390/s390.md (movsi): Only use floating point
8866         register alternatives when operands are already fprs.
8867         (movdi_31, movdi_64): Likewise.
8868
8869 2002-06-11  David S. Miller  <davem@redhat.com>
8870
8871         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
8872         Only run RTX equality checks on INSN_P rtl.
8873
8874 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
8875
8876         * config/s390/s390.md (reload_base, ltorg): Remove.
8877         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
8878         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
8879         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
8880         s390_asm_output_pool_prologue): Likewise.
8881         * s390.h (s390_pool_start_insn): Likewise.
8882
8883         * s390.c (s390_output_symbolic_const): Remove support for
8884         old-style pool chunks.
8885         (s390_function_epilogue): Likewise.
8886         (s390_output_constant_pool): Likewise.  Also, fix incorrect
8887         alignment for 64-bit literal pools.
8888         (print_operand_address): Remove 'y' and 'Y' format flags.
8889         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
8890         old-style pool chunks.
8891         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
8892         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
8893         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
8894
8895         * s390.c (consttable_operand): New function.
8896         * s390-protos.h (consttable_operand): Declare it.
8897         * s390.h (PREDICATE_CODES): Add consttable_operand.
8898         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
8899         consttable_sf, consttable_df, pool_start_31, pool_end_31,
8900         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
8901         * s390.c (struct constant, struct constant_pool): New data types.
8902         (constant_modes, gen_consttable): New variables.
8903         (s390_start_pool, s390_end_pool, s390_add_pool,
8904         s390_dump_pool, s390_free_pool): New functions.
8905         (s390_chunkify_pool): Completely reimplement literal pool
8906         overflow handling.
8907
8908         * s390.c (s390_pool_overflow): New variable.
8909         * s390.h (s390_pool_overflow): Declare it.
8910         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
8911         jumps in literal pool overflow situations.
8912
8913         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
8914         (s390_frame_info): Account for possible use of RETURN_REGNUM
8915         by new literal pool overflow code.
8916         (s390_emit_prologue): Likewise.
8917
8918 2002-06-05  David S. Miller  <davem@redhat.com>
8919
8920         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
8921         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
8922         emit_insns_before_scope, emit_insns_after,
8923         emit_insns_after_scope): Delete declaration.
8924         * ada/misc.c (insert_code_for): Use emit_insn* instead of
8925         emit_insns_foo.
8926         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
8927         (alpha_set_memflags): Fix comment.
8928         (set_frame_related_p): Use get_insns instead of gen_sequence.
8929         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
8930         emitting no insns.
8931         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
8932         gen_sequence.
8933         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
8934         * config/fr30/fr30.c (fr30_move_double): Likewise.
8935         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
8936         Likewise.
8937         * config/ia64/ia64.c (spill_restore_mem): Likewise.
8938         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
8939         no insns.
8940         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
8941         instead of gen_sequence.
8942         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
8943         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
8944         * config/sh/sh.c (sh_need_epilogue): Likewise.
8945         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
8946         attributes.
8947         (setjmp pattern and split): Use them to avoid splitter which emits
8948         no RTL.
8949         * genattrtab.c (main): Emit include of function.h
8950         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
8951         get_insns instead of gen_sequence.
8952         * config/cris/cris.c (cris_split_movdx): Likewise.
8953         * emit-rtl.c (emit_insns*): Kill.
8954         (try_split): Expect insn list instead of SEQUENCE.
8955         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
8956         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
8957         Make them abort if a SEQUENCE is given and RTL checking is
8958         enabled.
8959         (emit_*_scope): Don't forget to set scope on final insn.
8960         (gen_sequence): Move from here...
8961         * ssa.c (gen_sequence): To here as private function.
8962         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
8963         comments.
8964         (expand_builtin_return, expand_builtin_mathfn): Likewise.
8965         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
8966         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
8967         (expand_builtin_expect_jump): Use get_insns and fix comments.
8968         * calls.c (try_to_integrate): Use emit_insn_foo.
8969         (expand_call, emit_library_call_value_1): Likewise.
8970         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
8971         (emit_move_insn_1): Use get_insns instead of gen_sequence.
8972         (expand_expr): Use emit_insn_foo.
8973         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
8974         * except.c (build_post_landing_pads): Likewise.
8975         * flow.c (attempt_auto_inc): Likewise.
8976         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
8977         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
8978         * function.c (fixup_var_refs_insn): Use get_insns instead of
8979         gen_sequence.
8980         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
8981         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
8982         (fixup_stack_1, purge_addressof_1, expand_main_function,
8983         get_arg_pointer_save_area): Likewise.
8984         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
8985         expand_function_end): Use emit_insn_foo.
8986         (record_insns, keep_stack_depressed): Work with insn list instead
8987         of SEQUENCE, fix comments.
8988         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
8989         noce_try_store_flag_constants, noce_try_store_flag_inc,
8990         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
8991         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
8992         (noce_process_if_block): Use get_insns instead of gen_sequence.
8993         * optabs.c (add_equal_note): Work with insn list, fix comments.
8994         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
8995         (expand_unop, expand_complex_abs, expand_unop_insn,
8996         expand_no_conflict_block): Likewise.
8997         (gen_move_insn): Use get_insns instead of gen_sequence.
8998         (gen_cond_trap): Likewise.
8999         * integrate.c (copy_rtx_and_substitute): Likewise.
9000         (emit_initial_value_sets): Use emit_insn_foo.
9001         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
9002         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
9003         now that RTL generators give insn lists.
9004         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
9005         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
9006         instead of gen_sequence.
9007         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
9008         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
9009         instead of gen_sequence.
9010         * loop.c (move_movables, emit_prefetch_instructions,
9011         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
9012         Likewise.
9013         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
9014         (product_cheap_p): Likewise, and add commentary about RTL wastage
9015         here.
9016         * lcm.c (optimize_mode_switching): Use get_insns instead of
9017         gen_sequence.
9018         * profile.c (gen_edge_profiler): Likewise.
9019         * regmove.c (copy_src_to_dest): Likewise.
9020         * reg-stack.c (compensate_edge): Likewise and fix comment.
9021         * gcse.c (process_insert_insn): Likewise.
9022         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
9023         * jump.c (delete_prior_computation): Update comment.
9024         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
9025         of gen_sequence, update comments to match.
9026         * recog.c (peephole2_optimize): Work with insn lists instead of
9027         SEQUENCE rtl.
9028         * sched-vis.c (print_pattern): Abort on SEQUENCE.
9029         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
9030         Use get_insns instead of gen_sequence.
9031         (copy_loop_body): Likewise and don't emit dummy NOTE.
9032         * genrecog.c: Don't mention SEQUENCE rtl in comments.
9033         * combine.c (try_combine): Expect insn lists from split generator.
9034         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
9035         hand.
9036
9037 2002-06-11  Roger Sayle  <roger@eyesopen.com>
9038             Andreas Jaeger <aj@suse.de>
9039
9040         * cfgbuild.c: Update copyright years.
9041
9042 2002-06-11  Andreas Schwab  <schwab@suse.de>
9043
9044         * config/m68k/m68k.h (PREDICATE_CODES): Define.
9045
9046 2002-06-11  Eric Christopher  <echristo@redhat.com>
9047
9048         * doc/tm.texi (Run-time Target): Add comment about flag_iso
9049         and strict ANSI.
9050         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
9051         * config/mips/ecoffl.h: Ditto.
9052         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
9053         (CPP_PREDEFINES): Ditto.
9054         * config/mips/elfl64.h: Ditto.
9055         * config/mips/elfl.h: Ditto.
9056         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
9057         out until irix header consolidation.
9058         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
9059         with SUBTARGET_OS_CPP_BUILTINS.
9060         * config/mips/iris6.h: Ditto.
9061         (CPLUSPLUS_CPP_SPEC): Remove.
9062         * config/mips/linux.h: Ditto.
9063         * config/mips/netbsd.h: Ditto.
9064         * config/mips/openbsd.h: Ditto.
9065         * config/mips/rtems.h: Ditto.
9066         * config/mips/rtems64.h: Ditto.
9067         * config/mips/sni-svr4.h: Ditto.
9068         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
9069         ISA_MIPS32, ISA_MIPS64): New defines.
9070         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
9071         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
9072         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
9073         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
9074         (TARGET_CPU_CPP_BUILTINS): Define.
9075         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
9076         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
9077         (movdicc): Remove check for ISA_MIPS32.
9078          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
9079         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
9080         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
9081         sunge_sf, sunle_df, sunle_sf): New patterns.
9082
9083 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9084
9085         * Makefile.in: Update cppmain.o.
9086         * cpphash.h (struct cpp_reader): Move some members to a
9087         nested structure.
9088         (trad_line): Rename saved_line.
9089         (_cpp_read_logical_line_trad): Update.
9090         (_cpp_remove_overlay): New.
9091         * cppinit.c (cpp_create_reader): No need to set saved_line.
9092         (cpp_destroy): Update.
9093         (cpp_read_main_file): Only overlay if compiling.
9094         * cpplex.c (continue_after_nul): Return false if in directive.
9095         * cpplib.c (EXPAND): New.
9096         (directive_table, SEEN_EOL): Update.
9097         (end_directive): Remove overlay if traditional; don't skip
9098         line in traditional #define.
9099         (prepare_directive_trad): New.
9100         (_cpp_handle_directive, run_directive): Update for traditional
9101         directives.
9102         (lex_macro_node): Simplify, don't use lex_identifier_trad.
9103         * cpplib.h (struct options): Add preprocess_only.
9104         * cppmain.c: Don't include intl.h.
9105         (cpp_preprocess_file): Set options->preprocess_only.
9106         (scan_translation_unit_trad): Fix, and print line numbers.
9107         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
9108         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
9109         save_replacement_text, _cpp_create_trad_definition): Update for
9110         variable renaming.
9111         (_cpp_overlay_buffer): Save line number.
9112         (_cpp_remove_overlay): Rename from restore_buff, restore line.
9113         (_cpp_read_logical_line_trad): Don't handle overlays here.
9114         (scan_out_logical_line): Process directives.
9115
9116 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
9117
9118         * gthr-win32.h: Wrap functions in extern "C".
9119         (__gthread_key_t): Typedef as unsigned long,
9120         not win32 DWORD.
9121         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
9122         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
9123         (__gthr_win32_once, __gthr_win32_key_create,
9124         __gthr_win32_key_delete, __gthr_win32_getspecific,
9125         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
9126         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
9127         __gthr_win32_mutex_unlock): Declare.
9128         (__gthread_once,__gthread_key_create,
9129         __gthread_key_delete, __gthread_getspecific,
9130         __gthread_setspecific, __gthread_mutex_init_function,
9131         __gthread_mutex_lock,__gthread_mutex_trylock,
9132         __gthread_mutex_unlock): Call corresponding
9133         __gthr_win32_* extern implementations if #defined
9134         __GTHREAD_HIDE_WIN32API.
9135         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
9136         $(srcdir)/config/i386/gthr-win32.c
9137         * config/i386/gthr-win32.c: New implementation file.
9138         (__gthr_win32_once, __gthr_win32_key_create,
9139         __gthr_win32_key_delete, __gthr_win32_getspecific,
9140         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
9141         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
9142         __gthr_win32_mutex_unlock): New functions, based on
9143         static inlines in gthr-win32.h.
9144
9145 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
9146
9147         * config/xtensa/xtensa.c (override_options): Don't warn about
9148         using -fpic or -fPIC when PIC is enabled by default.
9149
9150 2002-06-10  Roger Sayle  <roger@eyesopen.com>
9151
9152         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
9153
9154 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
9155
9156         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
9157         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
9158         exists, substitute its pathname as @extra_modes_file@, define
9159         EXTRA_MODES_FILE to be an appropriate string to #include it
9160         with, and define EXTRA_CC_MODES to 1.
9161
9162         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
9163         it's defined.  Get rid of redundancy in calling sequence for
9164         CC; don't use it to define CCmode, to avoid a warning.
9165         * libgcc2.c: Include symcat.h for the sake of machmode.def.
9166
9167         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
9168         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
9169         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
9170         New files.
9171         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
9172         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
9173
9174         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
9175         defining extra CC modes.
9176
9177 2002-06-10  Roger Sayle  <roger@eyesopen.com>
9178             Andreas Jaeger <aj@suse.de>
9179
9180         * cfgrtl.c (create_basic_block_structure):  Remove index argument
9181         and use last_basic_block++ instead.  (create_basic_block): Update.
9182         * cfgbuild.c (find_basic_blocks_1): Likewise.
9183
9184         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
9185         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
9186         * sched-ebb.c (schedule_ebbs): Likewise.
9187         * sched-rgn.c (schedule_insns): Likewise.
9188         * ssa-ccp.c (ssa_const_prop): Likewise.
9189         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
9190         * toplev.c (rest_of_compilation): Likewise.
9191         * config/ia64/ia64.c (ia64_reorg): Likewise.
9192
9193 2002-06-10  Roger Sayle  <roger@eyesopen.com>
9194
9195         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
9196         of matching registers.
9197
9198 2002-06-10  Roger Sayle  <roger@eyesopen.com>
9199
9200         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
9201         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
9202
9203 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
9204
9205         * config/mmix/mmix.h: Improve comments.
9206         (CPP_SPEC, CPP_PREDEFINES): Don't define.
9207         (TARGET_CPU_CPP_BUILTINS): Define.
9208         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
9209         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
9210         unused predicate.
9211         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
9212         compiler warning.
9213         (mmix_constant_address_p): Remove another
9214         redundant test before case.
9215         (mmix_canonicalize_comparison): Remove unused function.
9216         (mmix_print_operand_address): Don't test and adjust for operand in
9217         non-canonical format.
9218         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
9219         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
9220
9221 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
9222
9223         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
9224         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
9225         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
9226         (gen_compare): Use CCmode unconditionally.
9227
9228 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
9229
9230         PR optimization/6759
9231         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
9232         the REQ_EQUAL note.
9233
9234 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
9235
9236         PR c/6660
9237         * c-decl.c (grokfield): Allow user defined types if they declare
9238         structs or unions for unnamed fields.
9239
9240 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
9241
9242         PR c/6809
9243         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
9244
9245 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
9246
9247         PR optimization/6842
9248         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
9249         operand subreg cannot be simplified.
9250
9251 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
9252
9253         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
9254         (compare_constant): Likewise.
9255         (output_addressed_constants): Likewise.
9256
9257 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
9258
9259         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
9260         merge bb with itself.
9261
9262 2002-06-10  Richard Henderson  <rth@redhat.com>
9263
9264         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
9265         (builtin_zapnot): Likewise.
9266
9267         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
9268         reservation.
9269
9270 2002-06-10  Eric Christopher  <echristo@redhat.com>
9271
9272         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
9273         prototype and function.
9274         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
9275         (call_insn_operand): Remove half pic references.
9276         (legitimate_address_p): Ditto.
9277         * config/i386/i386.h: Remove half pic defines.
9278
9279 2002-06-10  Eric Christopher  <echristo@redhat.com>
9280
9281         * doc/extend.texi (Return Address): Add note explaining the side-
9282         effects of inlining on __builtin_return_address.
9283
9284 2002-06-10  Tom Tromey  <tromey@redhat.com>
9285
9286         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
9287         (c-common.o): Depend on langhooks.h.
9288
9289 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9290
9291         * cpphash.h (_cpp_read_logical_line_trad,
9292         _cpp_expansions_different_trad): Update prototypes.
9293         * cpplex.c (continue_after_nul): New.
9294         * cppmain.c: Include cpphash.h.
9295         (scan_translation_unit_trad): New.
9296         (cpp_preprocess_file): Call it.
9297         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
9298         overlay.
9299         (_cpp_expansions_different_trad): Update prototype.
9300
9301 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
9302
9303         Fix cfi generation for SH[1-4]:
9304
9305         * sh.c (frame_insn): New function.
9306         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
9307         (push): Now returns rtx.  Use frame_insn.
9308         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
9309         of a DF register.
9310         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
9311
9312 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
9313
9314         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
9315         and gtype-desc.c.
9316         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
9317         (distclean): ... not here.  But do delete all testsuite/*.log,
9318         testsuite/*.sum files here.  Delete mkheaders.  Delete
9319         po/*.gmo and the testsuite directory in a split tree build.
9320
9321 2002-06-10  Jeffrey Law  <law@redhat.com>
9322
9323         * alias.c (static_reg_base_value): New to hold RTL for
9324         items allocated once per function for the aliasing code.
9325         (init_alias_once_per_function): Initialize static_reg_base_value.
9326         (init_alias_analysis): Avoid throw-away allocations of RTL by
9327         using pre-computed values in static_reg_base_value.
9328         * function.c (prepare_function_start): Call
9329         init_alias_once_per_function appropriately.
9330         * rtl.h (init_alias_once_per_function): Declare.
9331         * caller-save (init_caller_save): Restructure slightly to
9332         avoid lots of silly RTL generation.
9333         * expr.c (init_expr_once): Likewise.
9334         * reload1.c (reload_cse_regs_1): Allocate throw-away register
9335         RTL object here.  Pass it into children.
9336         (reload_cse_simplify_operands): Use passed-in register RTL
9337         object.
9338         (reload_cse_simplify): Pass through throw-away register
9339         RTL object.
9340
9341 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
9342
9343         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
9344
9345 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
9346
9347         * gcc.c (process_command): Avoid assignment to read-only location.
9348         Fix sizeof calculation.
9349
9350 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
9351
9352         * cpphash.h (struct cpp_macro): Put comments on their own lines.
9353         (_cpp_expansions_different_trad): New.
9354         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
9355         * cpptrad.c (canonicalize_text): New.
9356         (scan_out_logical_line): Handle no arguments correctly.
9357         (save_replacement_text): Commit memory when finished.
9358         (_cpp_expansions_different_trad): New.
9359
9360 2002-06-10  Tim Josling  <tej@melbpc.org.au>
9361
9362         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
9363         TREELANG and COBOL.
9364         (lang_names): Add treelang and cobol.
9365         (get_file_basename): Add code to support treelang and cobol as
9366         4th and 5th users of c-common.c.
9367
9368 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
9369
9370         * Makefile.in (install-driver): Install driver as
9371         $(target_alias)-gcc-$(version).
9372         * gcc.c (spec_version): Make const.
9373         (process_command): Handle -V and -b by using exec.
9374         * doc/invoke.texi (Target Options): Restore -V option,
9375         update docs for -b option.
9376
9377 2002-06-10  Tim Josling  <tej@melbpc.org.au>
9378
9379         * configure.in (remaining_languages_check):
9380         Added check that all languages specified were found.
9381         Exit if not found. Previous behavior was silent failure.
9382         * configure: Regenerated.
9383
9384 2002-06-10  Tim Josling  <tej@melbpc.org.au>
9385
9386          First steps to making treelang documentation compliant, based on
9387          instructions in sourcebuild.texi. Also add to gcc.c list of
9388          default languages.
9389
9390         * doc/contrib.texi: Add self as contributor of treelang.
9391
9392         * doc/frontends.texi: Add mention of treelang.
9393
9394         * doc/invoke.texi (Overall Options): Add mention of treelang.
9395
9396         * doc/standards.texi:  Add mention of treelang.
9397
9398 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
9399
9400         * config/cris/cris.c: Include ggc.h
9401
9402 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
9403
9404         * cpphash.h (_cpp_push_text_context): Update.
9405         (_cpp_arguments_ok): New.
9406         * cppmacro.c (_cpp_arguments_ok): New, split out from...
9407         (collect_args): ...here.
9408         (_cpp_push_text_context): Change inputs.
9409         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
9410         replace_args_and_push): New.
9411         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
9412         Don't use IS macros directly.
9413         (scan_out_logical_line): Handle function-like macro argument
9414         collection.
9415         (push_replacement_text): Update.
9416         (replacement_length): Remove.
9417         (_cpp_create_trad_definition): Don't skip whitespace before
9418         checking for '('.
9419
9420 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9421
9422         * config/avr/avr.c (avr_mcu_types): Update for new devices.
9423         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
9424         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
9425         * config/avr/avr.md ("type" and "length" attributes): New type
9426         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
9427         output a single "call" or "rcall" insn depending on device size.
9428         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
9429
9430 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
9431
9432         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
9433         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
9434         assembler option.
9435         (CPP_CPU_SPEC): Add power3 and power4.
9436         (PROCESSOR_DEFAULT): Change to 604e.
9437         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
9438         (CPP_CPU_SPEC): Similar additions.
9439         (enum process_type): Add POWER4.
9440         (RTX_COSTS): Add POWER4.
9441         (CPP_CPU_SPEC): Similar additions.
9442         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
9443         (PROCESSOR_DEFAULT64): Define.
9444         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
9445         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
9446         branch adjustment.
9447         (rs6000_issue_rate): Add Power4.
9448         * config/rs6000/rs6000.md (cpu attr): Add power4.
9449         (iu compare): Remove 604, 604e, 620, 630.
9450         Add basic Power4 scheduling information.
9451         (mfcr/mtcrf): Change type attribute to cr_logical.
9452
9453 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9454
9455         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
9456         ATTRIBUTE_PRINTF_2.
9457         * gengtype-lex.l: Fix format specifier warning.
9458
9459         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
9460         not isspace.
9461         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
9462         lieu of isspace/IDchar.
9463         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
9464         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
9465         ISSPACE.
9466
9467 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
9468
9469         * Makefile.in (LIBCPP_OBJS): Take out version.o.
9470         * cpphash.h (cpp_reader): Take out print_version member.
9471         * cppinit.c: (cpp_handle_option): Don't do anything with
9472         -version.  Just set help_only for --version, --target-help.
9473         Just set verbose option for -v.
9474         (cpp_post_options): Don't print a version string.
9475
9476 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9477
9478         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
9479         (avr_section_type_flags): New, handle .noinit* sections.
9480
9481 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9482
9483         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
9484         and include netbsd_entry_point.
9485         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
9486         (NETBSD_ENTRY_POINT): Define.
9487
9488 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9489
9490         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
9491         if not already defined.
9492         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
9493
9494 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9495
9496         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
9497         in a noreturn function.
9498         (avr_output_function_prologue, avr_output_function_epilogue):
9499         Correct function size calculation.  Do not crash on empty function.
9500         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
9501
9502 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9503
9504         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
9505         netbsd_link_spec and netbsd_entry_point.
9506         (LINK_SPEC): Use %(netbsd_link_spec).
9507         (NETBSD_ENTRY_POINT): Define.
9508
9509 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9510
9511         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
9512         linker emulation.
9513         (LINK_ARCH64_SPEC): Likewise.
9514         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
9515         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
9516
9517 2002-06-08  Marc Espie  <espie@openbsd.org>
9518
9519         * lists.c (free_list):  Fix typo in comment.
9520
9521 2002-06-08  Andreas Jaeger  <aj@suse.de>
9522
9523         * lcm.c (optimize_mode_switching): Add unused attribute for
9524         variable.
9525
9526         * sched-deps.c (sched_analyze): Remove unused variable.
9527
9528 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
9529
9530         * diagnostic.def: Don't capitalize diagnostict descriptors.
9531
9532 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9533
9534         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
9535         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
9536         (NETBSD_ENTRY_POINT): Define.
9537
9538 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9539
9540         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
9541         NETBSD_LINK_SPEC_ELF.
9542         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
9543         (NETBSD_ENTRY_POINT): Define.
9544         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
9545         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
9546         netbsd_entry_point.
9547         (NETBSD_ENTRY_POINT): Define.
9548
9549 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9550
9551         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
9552         netbsd_link_spec and netbsd_entry_point.
9553         (LINK_SPEC): Use %(netbsd_link_spec).
9554         (NETBSD_ENTRY_POINT): Define.
9555
9556 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
9557
9558         * config/netbsd-elf.h (LINK_SPEC): Rename to...
9559         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
9560         to specify program entry point.
9561
9562 2002-06-07  Jeff Law <law@redhat.com
9563
9564         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
9565         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
9566         than creating a new register.
9567         (distribute_notes): Likewise.
9568         * df.c (df_reg_use_gen): Likewise.
9569         (df_reg_clobber_gen): Likewise.
9570         (df_ref_record): Likewise.
9571         * expr.c (use_regs): Likewise.
9572         * flow.c (propagate_one_insn): Likewise.
9573         (mark_set_1): Likewise.
9574         (mark_used_reg): Likewise.
9575         * reload.c (emit_reload_insns): Likewise.
9576
9577 2002-06-07  Roger Sayle  <roger@eyesopen.com>
9578
9579         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
9580         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
9581         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
9582         comparison code comp can be reversed.
9583
9584 2002-06-07  Roger Sayle  <roger@eyesopen.com>
9585
9586         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
9587         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
9588         equivalent x > -1.0 when -ffast-math.
9589
9590 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
9591
9592         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
9593         * config/mips/t-netbsd: New file.
9594
9595 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
9596
9597         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
9598         options their own entries.
9599         (parse_option): Clarify comment.
9600         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
9601         special case.  Replace if/strcmp chain for -W options with
9602         use of new OPT_* entries for them.
9603         (cpp_handle_options): Update to match.
9604         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
9605         * c-decl.c: Update call to cpp_handle_option.
9606
9607 2002-06-07  Akim Demaille  <akim@epita.fr>
9608
9609         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
9610         Whitespace changes.
9611
9612 2002-06-07  Jeffrey Law  <law@redhat.com>
9613
9614         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
9615         on empty lists.
9616
9617 2002-06-07  H.J. Lu  (hjl@gnu.org)
9618
9619         * configure.in: Add --enable-__cxa_atexit.
9620         * configure: Regenerated.
9621         * config.in: Likewise.
9622
9623         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
9624         not defined.
9625
9626 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
9627
9628         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
9629
9630 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
9631
9632         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
9633
9634 2002-06-07  Jason Merrill  <jason@redhat.com>
9635
9636         * cppexp.c (num_equality_op): Use a temporary variable to work
9637         around gcc 3.0.4 bug.
9638
9639 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
9640
9641         * diagnostic.c (diagnostic_build_prefix): Tidy.
9642
9643 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9644
9645         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
9646         scan_parameters, save_replacement_text, replacement_length): New.
9647         (scan_out_logical_line): Take a macro and save parameters if
9648         non-NULL.
9649         (_cpp_logical_line_trad): Update.
9650         (_cpp_create_trad_definition): Update to handle function-like
9651         macros.
9652         * cpplex.c (new_buff): Update.
9653         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
9654         * cpphash.h: ...here.
9655         (CPP_ALIGN2, _cpp_save_parameter): New.
9656         * cppmacro.c (save_parameter): Rename, export.
9657         (parse_params): Update.
9658
9659 2002-06-07  Andreas Jaeger  <aj@suse.de>
9660
9661         * config/mmix/mmix.c: Remove extra broken prototype for
9662         mmix_init_machine_status.
9663
9664 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
9665
9666         * gengtype.c: Add comments before all the routines.
9667
9668 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
9669
9670         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
9671         from and add t-sh64 to ${tmake_file}.
9672         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
9673         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
9674         * config/sh/t-netbsd-sh5-32: Remove.
9675         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
9676         MULTILIB_ENDIAN.
9677         (MULTILIB_DIRNAMES): Define.
9678
9679 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
9680
9681         * i386.md (and promoting splitters): Disable QI to SImode promoting
9682         when doing so changes immediate to be 32bit.
9683
9684         * rtl.h (emit_*_scope): Declare.
9685         * emit-rtl.c (emit_*_scope): New global functions.
9686         (try_split): Copy scope.
9687         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
9688         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
9689         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
9690         noce_process_if_block, find_cond_trap): Copy scopes.
9691         * recog.c (peephole2_optimize): likewise.
9692
9693 2002-06-06  Jeffrey Law  <law@redhat.com>
9694
9695         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
9696
9697 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
9698
9699         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
9700
9701 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9702
9703         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
9704         ($(docdir)/gccinstall.info): New target.
9705         (info): Depend on it.
9706         (gccinstall.dvi): New target.
9707         (dvi): Depend on it.
9708         * doc/.cvsignore: Ignore new info files.
9709         * doc/install.texi (@setfilename): Reflect new info filename.
9710
9711 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
9712
9713         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
9714         on an UNSPEC.
9715
9716 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9717
9718         PR objc/6834
9719         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
9720         c_common_get_alias_set.
9721         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
9722
9723 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9724
9725         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
9726         functions.
9727         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
9728         * avr/avr.c (avr_output_function_epilogue): Use above to determine
9729         function size.
9730         * pa/pa.c (pa_output_function_prologue): Likewise.
9731
9732 2002-06-05  David S. Miller  <davem@redhat.com>
9733
9734         * integrate.c (subst_constants): Handle 'B' RTL format.
9735
9736 2002-06-05  Eric Christopher  <echristo@redhat.com>
9737
9738         * varasm.c (make_decl_rtl): Fix comment for removed
9739         halfpic.c.
9740
9741 2002-06-05  Eric Christopher  <echristo@redhat.com>
9742
9743         * Makefile.in: Remove missed halfpic bits.
9744
9745 2002-06-05  Eric Christopher  <echristo@redhat.com>
9746
9747         * toplev.c: Remove half-pic.
9748         * config/mips/mips.c: Ditto.
9749         * config/mips/mips.h: Ditto. Remove unused defines.
9750         * config/mips/openbsd.h: Update comment to reflect above.
9751         * config/mips/mips.md: Remove half-pic constraints.
9752         * halfpic.h: Delete.
9753         * halfpic.c: Ditto.
9754
9755 2002-06-05  Jeffrey Law  <law@redhat.com>
9756
9757         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
9758         rejects (mem (lo_sum (reg) (unspec))), but will allow
9759         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
9760
9761 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9762
9763         * cpphash.h (_cpp_create_definition): Update prototype.
9764         (_cpp_push_text_context, _cpp_create_trad_definition): New.
9765         ( cpp_lex_identifier_trad): New.
9766         (_cpp_set_trad_context): New.
9767         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
9768         * cpplib.c (SEEN_EOL): Update.
9769         (lex_macro_node): Update for -traditional.
9770         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
9771         * cppmacro.c (_cpp_create_definition): Split into
9772         create_iso_definition() and _cpp_create_trad_definition().
9773         (warn_of_redefinition): Update prototype; handle traditional
9774         macros.
9775         (_cpp_push_text_context): New.
9776         * cpptrad.c (skip_whitespace, push_replacement_text): New.
9777         (lex_identifier): Call ht_lookup with correct start.
9778         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
9779         _cpp_set_trad_context): New.
9780         (scan_out_logical_line): Update to handle changing contexts.
9781
9782 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
9783
9784         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
9785         (shl*-*-elf*): Add.
9786         * config/sh/t-be (MULTILIB_ENDIAN): Set.
9787         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
9788         * t-sh (MULTILIB_ENDIAN): Set.
9789         (MULTILIB_OPTIONS): Use it.
9790         * t-sh64 (MULTILIB_OPTIONS): Likewise.
9791         (MULTILIB_DIRNAMES): Likewise.
9792
9793 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
9794
9795         * toplev.h (report_error_function): Remove.
9796
9797         * diagnostic.h (location_t): New datatype.
9798         (text_info): Likewise.
9799         (diagnostic_info): Likewise.
9800         (output_prefix): New macro.
9801         (diagnostic_last_function_changed): Likewise.
9802         (diagnostic_set_last_function): Likewise.
9803         (diagnostic_last_module_changed): Likewise.
9804         (diagnostic_set_last_module): Likewise.
9805         (report_diagnostic): Now macro.
9806         (diagnostic_set_info): Declare.
9807
9808         * diagnostic.c (report_problematic_module): Rename to
9809         diagnostic_repor_current_module.
9810         (set_diagnostic_context): Remove.
9811         (count_error): Rename to diagnostic_error_count.
9812         (error_function_changed): Remove.
9813         (record_last_error_function): Likewise.
9814         (error_module_changed): Likewise.
9815         (record_last_error_module): Likewise.
9816         (context_as_prefix): Rename to diagnostic_build_prefix.
9817         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
9818         (diagnostic_set_info): New function.
9819
9820         * objc/objc-act.c: #include diagnostic.h
9821         (error_with_ivar): Adjust call to count_error.
9822         (warn_with_method): Likewise.
9823         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
9824
9825 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
9826
9827         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
9828         lang_hooks.types.make_type instead of make_node; set up
9829         __va_list_tag type decl.
9830         (xtensa_builtin_saveregs): Remove broken use of
9831         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
9832         for saved registers; add varargs alias set.
9833
9834 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
9835
9836 config:
9837         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
9838         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
9839         CPP_PREDEFINES and part of CPP_SPEC.
9840         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
9841         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
9842
9843 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
9844
9845         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
9846
9847 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
9848
9849         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
9850
9851 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
9852
9853         * gengtype-yacc.y: Make sure all rules end with a semicolon.
9854
9855 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
9856
9857         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
9858         typo in function prototype and include "ggc.h" header.
9859
9860 2002-06-04  Richard Henderson  <rth@redhat.com>
9861
9862         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
9863         (print_operand) ['U']: Likewise.
9864         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
9865         (alpha_expand_unaligned_store_words): Likewise.
9866         (alpha_expand_builtin_vector_binop): Fix typo.
9867         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
9868         umulh, and cix insns.
9869         (one_arg_builtins): Add cix builtins.
9870         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
9871         (alpha_expand_builtin): Fix typo in arity.
9872         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
9873         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
9874         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
9875         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
9876         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
9877         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
9878         builtin_ctlz, builtin_ctpop): New.
9879         * doc/extend.texi (Alpha Built-in Functions): Update.
9880
9881 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
9882
9883         * gengtype.c (write_gc_root): Don't unnecessarily prevent
9884         global variable-length arrays being roots.
9885
9886         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
9887         * configure.in (config_gtfiles): New variable.
9888         (all_gtfiles): Initialize from config_gtfiles.
9889         * configure: Regenerate.
9890
9891 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9892
9893 config/i386:
9894         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
9895         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
9896         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
9897         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
9898         win32.h (CPP_SPEC): Remove cpp_cpu.
9899         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
9900         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
9901
9902 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
9903
9904         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
9905
9906 2002-06-04  Jeff Law <law@redhat.com.
9907             David Edelsohn <edelsohn@gnu.org>
9908             Michael Matz <matz@kde.org>
9909
9910         * sched-int.h (struct deps): New field libcall_block_tail_insn.
9911         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
9912         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
9913         is set, then mark the current insn as being part of a libcall
9914         scheduling group.
9915         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
9916
9917         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
9918         insns against the issue rate.
9919
9920 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
9921
9922         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
9923         * final.c (final_scan_insn): Likewise.
9924         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
9925         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
9926         * haifa-sched.c (unlink_other_notes): Likeewise.
9927         (reemit_notes): Likewise.
9928         * print-rtl.c (print_rtx): Likewise.
9929         * sched-deps (sched-analyze): Likewise.
9930         * rtl.c (note_insn_name): Likewise.
9931         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
9932         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
9933         (RANGE_*): Kill.
9934
9935 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
9936
9937         * varasm.c (mark_constants): Handle RTX format 'B'.
9938
9939 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9940
9941         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
9942         (struct cpp_context): Add traditional fields.
9943         * cppmacro.c (paste_all_tokens, push_ptoken_context,
9944         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
9945         * cpptrad.c (skip_comment, lex_identifier,
9946         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
9947
9948 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
9949
9950         * gbl-ctors.h: Fix formatting.
9951         * gcc.c: Likewise.
9952         * gccspec.c: Likewise.
9953         * gcov.c: Likewise.
9954         * gcov-io.h: Likewise.
9955         * gcse.c: Likewise.
9956         * ggc-common.c: Likewise.
9957         * ggc.h: Likewise.
9958         * ggc-page.c: Likewise.
9959         * ggc-simple.c: Likewise.
9960         * global.c: Likewise.
9961         * graph.h: Likewise.
9962         * gthr-dce.h: Likewise.
9963         * gthr.h: Likewise.
9964         * gthr-posix.h: Likewise.
9965         * gthr-rtems.h: Likewise.
9966         * gthr-solaris.h: Likewise.
9967         * gthr-win32.h: Likewise.
9968
9969 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
9970
9971         Merge from pch-branch:
9972
9973         * gengtype.h (UNION_OR_STRUCT_P): New macro.
9974         * gengtype.c (write_gc_structure_fields): Use it.
9975         (write_gc_root): Use it here too.
9976
9977         * gengtype.c (write_gc_structure_fields): Assume that lengths
9978         of typenames fit into an 'int'; don't pass a size_t to "%d" in
9979         printf.
9980         (write_gc_marker_routine_for_structure): Likewise.
9981         (write_gc_types): Likewise.
9982         (write_gc_root): Likewise.
9983
9984         * varray.h (VARRAY_CLEAR): New.
9985         (varray_clear): Prototype.
9986         * varray.c (varray_clear): New.
9987         * cselib.c (reg_values_old): New.
9988         (used_regs_old): New.
9989         (cselib_init): Use cached varrays if available to avoid
9990         generating large amounts of garbage.
9991         (cselib_finish): Don't throw away old varrays.
9992
9993         * final.c (insn_addresses_): Move out of ifdef.
9994
9995         * varray.c (uses_ggc): Make more varray kinds GCable.
9996         * varray.h (union varray_data_tag): Let gengtype see
9997         fields 'generic' and 'te'.
9998         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
9999         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
10000         (reg_to_stack): Don't call VARRAY_FREE.
10001         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
10002         (insn_addresses_): Use gengtype to mark.
10003         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
10004         pointers; handle generic pointers in unused union fields.
10005         (get_output_file_with_visibility): Include cselib.h,
10006         insn-addr.h in gtype-desc.c.
10007         * function.c (prologue): Use gengtype to mark.
10008         (epilogue): Likewise.
10009         (sibcall_epilogue): Likewise.
10010         * dependence.c: Include gt-dependence.h, ggc.h.
10011         (struct def_use): Use gengtype to mark.
10012         (struct loop): Likewise.
10013         (struct induction): Likewise.
10014         (struct dependence): Likewise.
10015         (def_use_chain): Likewise.
10016         (dep_chain): Likewise.
10017         (loop_chain): Likewise.
10018         (induction_chain): Likewise.
10019         (init_dependence_analysis): Don't free anything, just clear pointers.
10020         (build_def_use): Use GGC to allocate def_use.
10021         (add_loop): Use GGC to allocate loop.
10022         (find_induction_variable): Use GGC to allocate induction.
10023         (check_node_dependence): Use GGC to allocate induction, dependence.
10024         (dump_node_dependence): Don't free varrays.
10025         (end_dependence_analysis): Likewise.
10026         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
10027         (struct elt_loc_list): Likewise.
10028         (struct elt_list): Likewise.
10029         * cselib.c: Don't include obstack.h.
10030         (hash_table): Use gengtype to mark.
10031         (reg_values): Use gengtype to mark.
10032         (used_regs): Use gengtype to mark.
10033         (cselib_obstack): Delete.
10034         (cselib_startobj): Delete.
10035         (empty_vals): Mark as deletable.
10036         (empty_elt_lists): Mark as deletable.
10037         (empty_elt_loc_lists): Mark as deletable.
10038         (new_elt_list): Use GGC to allocate struct elt_list.
10039         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
10040         (clear_table): Don't delete obstack; don't unnecessarily clear
10041         deletable variables.
10042         (new_cselib_val): Use GGC to allocate struct cselib_val.
10043         (cselib_init): Don't set up obstacks.  Use GGC to allocate
10044         hash table.
10045         (cselib_finish): Just clear variables, don't free anything.
10046         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
10047         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
10048         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
10049         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
10050         (gt-reg-stack.h): New rule.
10051         (gt-dependence.h): New rule.
10052         (gtype-desc.o): Add cselib.h, insn-addr.h.
10053
10054         * varray.c: Use only necessary headers.
10055         (element_size): New.
10056         (uses_ggc): New.
10057         (varray_init): Take type, not size.  Use GGC if appropriate.
10058         (varray_grow): Update for change to struct varray_head_tag.
10059         Use GGC if appropriate.
10060         * varray.h (struct const_equiv_data): Use gengtype.
10061         (enum varray_data_enum): New.
10062         (union varray_data_tag): Use gengtype.
10063         (struct varray_head_tag): Use gengtype.  Replace size field with
10064         enum varray_data_enum.
10065         (varray_init): Update prototype.
10066         (VARRAY_SCHED_INIT): Delete.
10067         (VARRAY_*_INIT): Update for change to varray_init.
10068         (VARRAY_SCHED): Delete.
10069         (VARRAY_PUSH_SCHED): Delete.
10070         (VARRAY_TOP_SCHED): Delete.
10071         * tree.h: Update for change to length specifier.
10072         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
10073         (clone_body): Likewise.
10074         * ssa.h (ssa_definition): Use gengtype to mark.
10075         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
10076         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
10077         * rtl.h (struct rtvec_def): Update for change to length specifier.
10078         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
10079         (struct initial_value_struct): Update for change to length specifier.
10080         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
10081         (ggc_add_tree_varray_root): Delete prototype.
10082         (ggc_mark_rtx_varray): Delete prototype.
10083         (ggc_mark_tree_varray): Delete prototype.
10084         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
10085         (ggc_add_tree_varray_root): Delete.
10086         (ggc_mark_rtx_varray): Delete.
10087         (ggc_mark_tree_varray): Delete.
10088         (ggc_mark_rtx_varray_ptr): Delete.
10089         (ggc_mark_tree_varray_ptr): Delete.
10090         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
10091         (create_varray): Delete prototype.
10092         * gengtype.c (varrays): Delete.
10093         (create_varray): Delete.
10094         (adjust_field_type): Detect array of string pointers.
10095         (process_gc_options): Remove code to handle varray_type option.
10096         (set_gc_used_type): Remove TYPE_VARRAY case.
10097         (output_escaped_param): New.
10098         (write_gc_structure_fields): Use output_escaped_param on all
10099         parameters.  Handle 'skip' with 'use_param' option.  Handle
10100         arrays of strings.  Remove TYPE_VARRAY handling.
10101         (write_gc_roots): Use boolean to detect 'length' option.
10102         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
10103         (struct_fields): Call adjust_field_type on array fields.
10104         (type): Remove VARRAY_TYPE case.
10105         (type_option): Likewise.
10106         * gengtype-lex.l: Don't consider varray_type a keyword.
10107         * function.h: Update for change to length specifier.
10108         (free_eh_status): Delete prototype.
10109         * function.c (free_after_compilation): Don't call free_eh_status.
10110         (reorder_blocks): Don't use VARRAY_FREE.
10111         * except.c (struct eh_status): Update for change to length specifier.
10112         remove varray_type specifier.
10113         (free_eh_status): Delete.
10114         * dwarf2out.c: Include gt-dwarf2out.h.
10115         (used_rtx_varray): Use gengtype to mark, move
10116         outside ifdefs.
10117         (incomplete_types): Likewise.
10118         (decl_scope_table): Likewise.
10119         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
10120         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
10121         * c-tree.h (struct lang_type): Update for change to length specifier.
10122         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
10123         * c-objc-common.c: Include gt-c-objc-common.h.
10124         (deferred_fns): Mark for gengtype.
10125         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
10126         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
10127         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
10128         (gtype-desc.o): Update dependencies.
10129         (dwarf2out.o): Add gt-dwarf2out.h.
10130         (varray.o): Update dependencies.
10131         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
10132         (gt-c-objc-common.h): New rule.
10133         (gt-dwarf2out.h): New rule.
10134         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
10135
10136         * doc/gty.texi (GTY Options): Correct spelling.
10137         (GGC Roots): Likewise.
10138         * Makefile.in (TEXI_CPP_FILES): New.
10139         (TEXI_GCC_FILES): New.
10140         (TEXI_GCCINT_FILES): New.
10141         (TEXI_CPPINT_FILES): New.
10142         ($(docdir)/cpp.info): Use new macros.
10143         ($(docdir)/gcc.info): Likewise.
10144         ($(docdir)/gccint.info): Likewise.
10145         ($(docdir)/cppinternals.info): Likewise.
10146         (cpp.dvi): Likewise.
10147         (gcc.dvi): Likewise.
10148         (gccint.dvi): Likewise.
10149         (cppinternals.dvi): Likewise.
10150
10151         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
10152         * doc/gccint.texi (Top): Include gty.texi.
10153         * doc/gty.texi: New file.
10154
10155         * bitmap.c: Include ggc.h, gt-bitmap.h.
10156         (bitmap_ggc_free): New.
10157         (bitmap_elem_to_freelist): New.
10158         (bitmap_element_free): Use bitmap_elem_to_freelist.
10159         (bitmap_element_allocate): Allow use of GGC.
10160         (bitmap_clear): Use bitmap_elem_to_freelist.
10161         (bitmap_copy): Update for change to bitmap_element_allocate.
10162         (bitmap_set_bit): Likewise.
10163         (bitmap_operation): Update for changes elsewhere.
10164         (bitmap_initialize): Allow to create bitmaps that will use GGC.
10165         * bitmap.h (struct bitmap_element_def): Use gengtype.
10166         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
10167         (bitmap_initialize): Add extra parameter.
10168         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
10169         (BITMAP_ALLOCA): Delete.
10170         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
10171         (BITMAP_GGC_ALLOC): New.
10172         * Makefile.in (gtype-desc.o): Add bitmap.h.
10173         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
10174         (GTFILES): Add bitmap.c.
10175         (gt-bitmap.h): New rule.
10176         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
10177         * basic-block.h: Update for changes to bitmap_initialize.
10178         * except.c (exception_handler_label_map): Move into...
10179         (struct eh_status): Here.
10180         (struct eh_region): Make 'aka' GCable.
10181         (free_eh_status): Don't need to specially handle
10182         exception_handler_label_map.
10183         (add_ehl_entry): Update for changes to exception_handler_label_map.
10184         (find_exception_handler_labels): Likewise.
10185         (remove_exception_handler_label): Likewise.
10186         (maybe_remove_eh_handler): Likewise.
10187         (for_each_eh_label): Likewise.
10188         (remove_eh_handler): Allocate 'aka' using GGC.
10189         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
10190         to list of includes.
10191
10192         * gengtype.c (write_gc_marker_routine_for_structure): Name
10193         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
10194         (write_gc_types): Arrange for the tests with NULL to be inlined.
10195         (write_gc_roots): Update uses of procedure pointers.
10196         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
10197
10198         * Makefile.in (explow.o): Add dependency on gt-explow.h.
10199         (sdbout.o): Add dependency on gt-sdbout.h.
10200
10201         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
10202         (mem_attrs_htab): Likewise.
10203         (init_emit_once): Don't call ggc_add_deletable_htab.
10204         * fold-const.c (size_htab): Use gengtype to clear unused entries.
10205         (size_int_type_wide): Don't call ggc_add_deletable_htab.
10206         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
10207         parameters, use them, change callers.
10208         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
10209         (write_gc_roots): Handle 'if_marked' option.
10210         (main): Don't need to call set_gc_used_type any more.
10211         * ggc.h (ggc_htab_marked_p): Delete.
10212         (ggc_htab_mark): Delete.
10213         (struct ggc_cache_tab): New.
10214         (gt_ggc_cache_rtab): New declaration.
10215         * ggc-common.c (struct d_htab_root): Delete.
10216         (d_htab_roots): Delete.
10217         (ggc_add_deletable_htab): Delete.
10218         (ggc_htab_delete): Handle new htab-deleting mechanism.
10219         (ggc_mark_roots): Use new htab-deleting mechanism.
10220         * tree.c (type_hash_table): Use gengtype to clear unused entries.
10221         Make static.
10222         (init_obstacks): Don't call ggc_add_deletable_htab.
10223
10224         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
10225         (struct hashed_entry): Likewise.
10226         (nst_method_hash_list): Likewise.
10227         (cls_method_hash_list): Likewise.
10228         (HASH_ALLOC_LIST_SIZE): Delete.
10229         (ATTR_ALLOC_LIST_SIZE): Delete.
10230         * objc/objc-act.c (hash_init): Use ggc to allocate
10231         nst_method_hash_list, cls_method_hash_list.
10232         (hash_enter): Use ggc to allocate; allocate one entry at a time.
10233         (hash_add_attr): Likewise.
10234         (ggc_mark_hash_table): Delete.
10235         (objc_act_parse_init): Delete.
10236         (objc_init): Delete reference to objc_act_parse_init.
10237         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
10238         obstack.h.  Replace references to 'struct hash_table' with htab_t.
10239         (struct symbol_hash_entry): Replace hash header with key field.
10240         (struct file_hash_entry): Replace hash header with key field.
10241         (struct demangled_hash_entry): Replace hash header with key field.
10242         (hash_string_eq): New.
10243         (hash_string_hash): New.
10244         (symbol_hash_newfunc): Delete.
10245         (symbol_hash_lookup): Modify to use htab_t.
10246         (file_hash_newfunc): Delete.
10247         (file_hash_lookup): Modify to use htab_t.
10248         (demangled_hash_newfunc): Delete.
10249         (demangled_hash_lookup): Modify to use htab_t.
10250         (tlink_init): Modify to use htab_t.
10251         * hash.h: Delete.
10252         * hash.c: Delete.
10253         * ggc.h: Delete forward structure declarations.
10254         Delete prototypes for deleted functions.
10255         * ggc-common.c: Don't include hash.h.
10256         (ggc_add_tree_hash_table_root): Delete.
10257         (ggc_mark_tree_hash_table_entry): Delete.
10258         (ggc_mark_tree_hash_table): Delete.
10259         (ggc_mark_tree_hash_table_ptr): Delete.
10260         * gengtype.c (write_gc_structure_fields): Allow param_is option.
10261         (write_gc_marker_routine_for_structure): Use visibility of
10262         the parameter if there is one.
10263         * function.c: Replace hash.h with hashtab.h.  Replace references
10264         to 'struct hash_table *' with htab_t.
10265         (struct insns_for_mem_entry): Include a plain key.
10266         (fixup_var_refs_insns_with_hash): Update to use htab_t.
10267         (insns_for_mem_newfunc): Delete.
10268         (insns_for_mem_hash): Update to use htab_t.
10269         (insns_for_mem_comp): Likewise.
10270         (insns_for_mem_walk): Likewise.
10271         * c-lang.c: Include ggc.h.
10272         * Makefile.in (OBJS): Remove hash.o.
10273         (c-lang.o): Add GGC_H.
10274         (COLLECT2_OBJS): Remove hash.o.
10275         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
10276         (ggc-common.o): Remove hash.h.
10277         (function.o): Remove hash.h, add HASHTAB_H.
10278         (genautomata.o): Remove hash.h, add HASHTAB_H.
10279
10280         * varasm.c (mark_const_str_htab_1): Delete.
10281         (mark_const_str_htab): Delete.
10282         (const_str_htab_del): Delete.
10283         (const_str_htab): Use gengtype to mark.
10284         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
10285         allocate them.
10286         * tree.c (mark_tree_hashtable_entry): Delete.
10287         (mark_tree_hashtable): Delete.
10288         * tree.h (mark_tree_hashtable): Delete prototype.
10289         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
10290         (ggc_mark): Likewise.
10291         (ggc_calloc): New.
10292         (htab_create_ggc): New.
10293         * ggc-common.c (ggc_calloc): New.
10294         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
10295         (struct type): Add param_struct structure.
10296         * gengtype.c (param_structs): New.
10297         (adjust_field_type): Handle param_is option.
10298         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
10299         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
10300         (write_gc_structure_fields): Add new PARAM parameter.  Update
10301         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
10302         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
10303         Use it to generate function name.  Update callers.
10304         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
10305         Process them.
10306         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
10307         option.
10308         (main): Define PTR as pointer-to-scalar.  Don't specially
10309         mark deferred_string or ehl_map_entry.
10310         * gengtype-yacc.y (PARAM_IS): Add new token.
10311         (externstatic): Use adjust_field_type.
10312         (type_option): Add PARAM_IS.
10313         * gengtype-lex.l: Add rule for typedef of function pointers.
10314         Add rule for PARAM_IS.
10315         (IWORD): Add size_t.
10316         * except.c (exception_handler_label_map): Use gengtype to mark.
10317         (type_to_runtime_map): Likewise.
10318         (mark_ehl_map_entry): Delete.
10319         (mark_ehl_map): Delete.
10320         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
10321         (t2r_mark_1): Delete.
10322         (t2r_mark): Delete.
10323         * Makefile.in (gtype-desc.o): Correct dependencies.
10324         (GTFILES): Add hashtab.h.
10325         (genautomata.o): Actually uses hashtab.h.
10326
10327         * Makefile.in (stringpool.o): Add $(GGC_H).
10328         (dwarf2asm.o): Likewise.
10329         (GTFILES): Add hashtable.h.
10330         * c-common.h (struct c_common_identifier): Use gengtype.
10331         * c-decl.h (c_mark_tree): Delete.
10332         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
10333         * c-tree.h (struct lang_identifier): Use gengtype.
10334         (union lang_tree_node): New.
10335         (c_mark_tree): Delete prototype.
10336         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
10337         dwarf2_debug_hooks.
10338         * gengtype-lex.l (IWORD): Allow 'bool'.
10339         (ptr_alias): Match.
10340         * gengtype-yacc.y (ALIAS): New token.
10341         (type_option): New rule.
10342         (option): Use type_option.
10343         * gengtype.c (process_gc_options): New.
10344         (set_gc_used_type): Use it.
10345         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
10346         Add new variable 't' to hold the type of the field being processed.
10347         Add more error checking.  Use UNION_P when looking at 'desc' option.
10348         Handle language-specific structures containing other
10349         language-specific structures.
10350         (write_gc_types): Handle 'ptr_alias' option.
10351         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
10352         * ggc-common.c (ggc_pending_trees): Delete.
10353         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
10354         (ggc_mark_trees): Delete.
10355         (gt_ggc_m_tree_node): Delete.
10356         * ggc.h (ggc_pending_trees): Delete.
10357         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
10358         * hashtable.h (ht_identifier): Use gengtype.
10359         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
10360         * langhooks.h (struct lang_hooks): Delete mark_tree.
10361         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
10362         anyway.
10363         * system.h: Poison LANG_HOOKS_MARK_TREE.
10364         * tree.c (tree_node_structure): New.
10365         * tree.h (struct tree_common): Use gengtype.
10366         (struct tree_int_cst): Likewise.
10367         (struct tree_real_cst): Likewise.
10368         (struct tree_string): Likewise.
10369         (struct tree_complex): Likewise.
10370         (struct tree_vector): Likewise.
10371         (struct tree_identifier): Likewise.
10372         (struct tree_list): Likewise.
10373         (struct tree_vec): Likewise.
10374         (struct tree_exp): Likewise.
10375         (struct tree_block): Likewise.
10376         (struct tree_type): Likewise.
10377         (struct tree_decl): Likewise.
10378         (enum tree_structure_enum): New.
10379         (union tree_node): Use gengtype, with an alias.
10380         (tree_node_structure): Prototype.
10381         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
10382
10383         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
10384         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
10385         to LANG_HOOKS_FUNCTION_FINAL.
10386         * Makefile.in (GTFILES): Add bitmap.h.
10387         * except.c (struct eh_region): Mark field 'aka' to be skipped.
10388
10389         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
10390         (alpha_init_machine_status): Give proper type.
10391         * Makefile.in (c-lang.o): Depend on gtype-c.h.
10392         (optabs.o): Depend on gt-optabs.h.
10393         (GTFILES): Add optabs.o.
10394         (gt-optabs.h): Add rule.
10395         * optabs.c: Include gt-optabs.h.
10396
10397         * gengtype.c (set_gc_used_type): Correct some errors in last change.
10398         (write_gc_structure_fields): If a field which should be NULL is
10399         not, abort.
10400         * c-pragma.c: Move struct align_stack and variable alignment_stack
10401         out from the ifdef.
10402
10403         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
10404         * config/xtensa/xtensa.c: Include gt-cris.h.
10405         (struct machine_function): Use gengtype to mark.
10406         * config/mmix/mmix.h (struct machine_function): Use gengtype
10407         to mark.
10408         * config/cris/t-cris: Add dependencies for gt-cris.h.
10409         * config/cris/cris.c: Include gt-cris.h.
10410         (struct machine_function): Use gengtype to mark.
10411         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
10412         to mark.
10413         * doc/tm.texi (Per-Function Data): Delete references to
10414         mark_machine_status.
10415         * config/ia64/ia64.c (ia64_override_options): Don't set
10416         mark_machine_status.
10417         * config/i386/i386.c (override_options): Likewise.
10418         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
10419         * config/arm/arm.c (arm_init_expanders): Likewise.
10420         * config/alpha/alpha.c (override_options): Likewise.
10421         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
10422         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
10423         (write_gc_structure_fields): Don't handle 'really' option.
10424         Handle 'maybe_null' option.
10425         (write_gc_types): Handle 'maybe_null' option.
10426         * function.h (struct function): Don't use "really".
10427         (mark_machine_status): Delete declaration.
10428         (mark_lang_status): Delete declaration.
10429         (gt_ggc_mr_machine_function): Delete prototype.
10430         (gt_ggc_mr_language_function): Delete prototype.
10431         * function.c (mark_machine_status): Delete.
10432         (mark_lang_status): Delete.
10433         (gt_ggc_mr_machine_function): Delete.
10434         (gt_ggc_mr_language_function): Delete.
10435         * c-tree.h (mark_c_function_context): Delete prototype.
10436         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
10437         * c-decl.c (struct language_function): Rename from struct
10438         c_language_function.  Update uses.  Use gengtype to mark.
10439         (mark_c_function_context): Delete.
10440         * c-common.h (struct c_language_function): Rename from struct
10441         language_function.
10442         (mark_stmt_tree): Delete prototype.
10443         (c_mark_lang_decl): Delete prototype.
10444         (mark_c_language_function): Delete prototype.
10445         * c-common.c (mark_stmt_tree): Delete.
10446         (c_mark_lang_decl): Delete.
10447         (mark_c_language_function): Delete.
10448
10449         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
10450         (lang_bitmap): New typedef.  Use where appropriate.
10451         (struct type): Add gc_used field, lang_struct field.
10452         (UNION_P): New macro.
10453         (new_structure): New prototype.
10454         (find_structure): Remove 'pos' parameter.  Change all callers.
10455         * gengtype-lex.l: Update for changes to find_structure.
10456         * gengtype-yacc.y (typedef_struct): Use new_structure.
10457         (yacc_ids): Suppress warning.
10458         (type): Use new_structure.
10459         * gengtype.c (string_type): Update for changes to struct type.
10460         (find_structure): Just find a structure, don't worry about
10461         creating one.
10462         (new_structure): New.
10463         (note_yacc_type): Use new_structure.
10464         (set_gc_used_type): New.
10465         (set_gc_used): New.
10466         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
10467         (write_gc_types): Handle TYPE_LANG_STRUCT.
10468         (write_gc_marker_routine_for_structure): New.
10469         (main): Call set_gc_used.  Add some calls to set_gc_used_type
10470         for places where GCC doesn't use gengtype properly yet.
10471         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
10472         (gt_ggc_m_tree_node): Likewise.
10473
10474         * varasm.c (copy_constant): Call expand_constant if we hit
10475         something we can't recognize.
10476
10477         * ggc-common.c (ggc_mark_rtvec_children): Delete.
10478         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
10479         (lang_mark_false_label_stack): Delete.
10480         * rtl.h (struct rtvec_def): Use gengtype to mark.
10481         * ggc.h (ggc_mark_rtvec): Delete.
10482         (gt_ggc_m_rtvec_def): Delete.
10483         (ggc_mark_nonnull_tree): Delete.
10484         (ggc_mark_rtvec_children): Delete prototype.
10485         (lang_mark_false_label_stack): Delete declaration.
10486
10487         * gengtype.h (note_yacc_type): Add prototype.
10488         * gengtype.c (note_yacc_type): New function.
10489         * gengtype-lex.l: Add lexer support for yacc files.
10490         * gengtype-yacc.y (start): Extract union from yacc files.
10491         (yacc_union): New rule.
10492         (yacc_typematch): New rule.
10493         (yacc_ids): New rule.
10494         (enum_items): Tweak for efficiency.
10495         (optionseq): Likewise.
10496
10497         * c-common.h (struct language_function): Use gengtype.
10498         (struct c_lang_decl): Likewise.
10499         * c-tree.h (struct lang_decl): Likewise.
10500         (struct lang_type): Likewise.
10501         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
10502         tree language substructures.
10503
10504         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
10505         ggc_mark_tree.
10506         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
10507
10508         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
10509
10510         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
10511         mark. Remove 'data.block.cleanup_ptr' field.
10512         (struct stmt_status): Use usual technique to mark struct nesting.
10513         (gt_ggc_mr_nesting_cond): Delete.
10514         (gt_ggc_mr_nesting_loop): Delete.
10515         (gt_ggc_mr_nesting_block): Delete.
10516         (gt_ggc_mr_nesting_case_stmt): Delete.
10517         (expand_start_cond): Set discriminator.
10518         (expand_start_loop): Likewise.
10519         (expand_start_null_loop): Likewise.
10520         (expand_start_bindings_and_block): Set discriminator.  Don't set
10521         deleted fields.
10522         (expand_decl_cleanup): Replace 'cleanup_ptr' with
10523         &thisblock->data.block.cleanups.
10524         (expand_start_case): Set discriminator.
10525         (expand_start_case_dummy): Set discriminator.
10526
10527         * ggc-callbacks.c: Remove.
10528
10529         * gengtype.h (struct type): Add 'u.s.bitmap' field.
10530         (find_structure): Add 'pos' parameter.
10531         * gengtype-lex.l: Update callers to find_structure.
10532         * gengtype-yacc.y: Likewise.
10533         * gengtype.c (find_structure): Allow for structures to be defined
10534         in multiple language backends.
10535         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
10536         (counter): Rename to gc_counter.
10537         (write_gc_structure_fields): Fail when writing out fields for
10538         an incomplete structure.  Ignore arrays of scalars.  Handle
10539         'tree_vec' special.
10540         (write_gc_types): Reset counter for each procedure written.
10541
10542         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
10543         (free_case_nodes): Delete.
10544         (expand_end_case_type): Delete call to free_case_nodes.
10545
10546         * Makefile.in (cselib.o): Include gt-<filename>.h.
10547         (gcse.o): Likewise.
10548         (profile.o): Likewise.
10549         (alias.o): Likewise.
10550         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
10551         alphabetize backend files.
10552         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
10553         * alias.c: Use gengtype for roots.
10554         * c-common.h (struct stmt_tree_s): Use gengtype.
10555         * c-decl.c: Use gengtype for roots.
10556         * cselib.c: Use gengtype for roots.
10557         * expr.c: Use gengtype for roots.
10558         * fold-const.c: Use gengtype for roots.
10559         * gcse.c: Use gengtype for roots.
10560         * gengtype-lex.l: Handle typedefs of function types.
10561         Allow for empty array bounds.
10562         Allow processing to stop on initializers.
10563         * gengtype-yacc.y (externstatic): Stop processing on initializers.
10564         (semiequal): New rule.
10565         * gengtype.c (create_file): Tidy output files.
10566         (get_output_file_with_visibility): Fix paren warning.  Fix bug
10567         involving multiple input files mapping to one output file.
10568         (write_gc_structure_fields): Skip arrays of scalars.
10569         (write_gc_types): Tidy output files.
10570         (write_gc_root): New function.
10571         (write_gc_roots): Fix bugs, add support for roots that are
10572         structures.
10573         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
10574         (ggc_mark_tree_ptr): Delete.
10575         (ggc_add_rtx_root): Delete.
10576         (ggc_add_tree_root): Delete.
10577         (ggc_del_root): Delete.
10578         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
10579         allocate struct initial_value_struct.
10580         * profile.c: Use gengtype for roots.
10581         * sdbout.c: Use gengtype for roots.
10582         * varasm.c (mark_weak_decls): Delete unused prototype.
10583         (mark_const_hash_entry): Delete unused function.
10584         * config/darwin-protos.h: Use gengtype for roots.
10585         (machopic_add_gc_roots): Delete.
10586         * config/arm/arm.c: Use gengtype for roots.
10587         * config/arm/arm.h: Use gengtype for roots.
10588         * config/c4x/c4x-protos.h: Use gengtype for roots.
10589         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
10590         * config/d30v/d30v-protos.h: Use gengtype for roots.
10591         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
10592         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
10593         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
10594         * config/ia64/ia64-protos.h: Use gengtype for roots.
10595         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
10596         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
10597         * config/m68hc11/m68hc11.c (z_reg): Make global.
10598         (z_reg_qi): Make global.
10599         (m68hc11_add_gc_roots): Delete.
10600         * config/mcore/mcore-protos.h: Use gengtype for roots.
10601         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
10602         * config/mips/mips.c (mips_add_gc_roots): Delete.
10603         * config/mips/mips.h: Use gengtype for roots.
10604         * config/mmix/mmix.c (override_options): Use gengtype for roots.
10605         * config/mmix/mmix.h: Use gengtype for roots.
10606         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
10607         * config/mn10200/mn10200.h: Use gengtype for roots.
10608         * config/pa/pa.c: Use gengtype for roots, marking.
10609         (struct deferred_plabel): Use GGC, gengtype.
10610         (pa_add_gc_roots): Delete.
10611         (mark_deferred_plabels): Delete.
10612         * config/pj/pj-protos.h: Use gengtype for roots.
10613         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
10614         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
10615         machopic_add_gc_roots.
10616         * config/rs6000/rs6000.h: Use gengtype for roots.
10617         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
10618         (gt-darwin.h): Add rule.
10619         * config/sh/sh.c: Use gengtype for roots.
10620         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
10621         (gt-sh.h): Add rule.
10622         * config/sparc/sparc.c: Use gengtype for roots.
10623         (sparc_add_gc_roots): Delete.
10624         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
10625         (mark_ultrasparc_pipeline_state): Delete.
10626         * config/sparc/sparc.h: Use gengtype for roots.
10627
10628         * Makefile.in (c-parse.o): Update dependencies.
10629         (c-common.o): Likewise.
10630         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
10631         Add dependencies for the files they generate.
10632         * c-common.c: Replace ggc_add_* uses with GTY annotations.
10633         * c-common.h: Likewise.
10634         * c-decl.c: Likewise.
10635         (gt_ggc_mp_binding_level): Delete.
10636         * c-lang.c: Include gtype-c.h.
10637         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
10638         gt-c-parse.h.
10639         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
10640         (gt_ggc_mp_align_stack): Delete.
10641         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
10642         * function.c: Replace ggc_add_* uses with GTY annotations.
10643         (gt_ggc_mp_function): Delete.
10644         * function.h: Replace ggc_add_* uses with GTY annotations.
10645         * gengtype.c (lang_names): New.
10646         (NUM_BASE_FILES): New.
10647         (open_base_files): Create language base files.
10648         (startswith): New.
10649         (get_file_basename): New.
10650         (get_base_file_bitmap): New.
10651         (get_output_file_with_visibility): Rename from get_output_file.
10652         Add more mappings for various C/Objc filenames.
10653         (finish_root_table): New.
10654         (write_gc_roots): Handle dependencies and scoping properly.
10655         * gengtype.h: Add prototypes for new functions.
10656         * ggc-common.c (struct deletable_root): Delete.
10657         (deletables): Delete.
10658         (ggc_add_deletable_root): Delete.
10659         (ggc_mark_roots): No need to deal with deleted functionality.
10660         * ggc.h (ggc_add_deletable_root): Delete prototype.
10661         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
10662         (gtype-objc.h): Add rule to create.
10663         * objc/config-lang.in (gtfiles): New.
10664         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
10665         ggc_add_* with GTY markers.  Include gtype-objc.h.
10666         (ggc_mark_imp_list): Delete.
10667         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
10668         * objc/objc-lang.c: Random Whitespace Change.
10669
10670         * except.h (exception_handler_labels): Delete.
10671         (get_exception_handler_labels): New.
10672         * except.c (exception_handler_labels): Delete.
10673         (struct eh_status): Add exception_handler_labels field.
10674         (doing_eh): Don't add exception_handler_labels as root.
10675         (free_eh_status): Don't need to free exception_handler_labels.
10676         (get_exception_handler_labels): New.
10677         (find_exception_handler_labels): Update for move of
10678         exception_handler_labels.
10679         (remove_exception_handler_label): Likewise.
10680         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
10681         * jump.c (rebuild_jump_labels): Likewise.
10682         * loop.c (find_and_verify_loops): Likewise.
10683         * sched-rgn.c (is_cfg_nonregular): Likewise.
10684
10685         * gengtype.c (write_gc_structure_fields): Handle variable-length
10686         TYPE_ARRAYs.
10687
10688         * varasm.c (struct weak_syms): Use GGC, gengtype.
10689         (mark_weak_decls): Delete.
10690         (weak_decls): Likewise.
10691         (add_weak): Likewise.
10692         (remove_from_pending_weak_list): Likewise.
10693         (init_varasm_once): Likewise.
10694
10695         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
10696         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
10697         stor-layout.c, regclass.c, and lists.c.
10698         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
10699         gt-regclass.h and gt-lists.h on s-gtype.
10700         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
10701         * except.c: Use gengtype for roots.
10702         * explow.c: Use gengtype for roots.  Include gt-explow.h.
10703         * expr.h (init_stor_layout_once): Delete prototype.
10704         * function.c: Use gengtype for roots.
10705         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
10706         * gengtype-yacc.y (start): Can also be an externstatic.
10707         (externstatic): New production.
10708         (struct_fields): Correct array bounds inversion for 2-d arrays.
10709         * gengtype.c (variables): New variable.
10710         (note_variable): New function.
10711         (get_output_file): Include libfuncs.h into gtype-desc.c.
10712         (get_output_file_name): New function.
10713         (write_gc_structure_fields): Suppress warnings.
10714         (write_gc_types): Make static.
10715         (put_mangled_filename): New function.
10716         (write_gc_roots): New function.
10717         (main): Call write_gc_roots.
10718         * gengtype.h (note_variable): Prototype.
10719         (get_output_file_name): Prototype.
10720         (write_gc_types): Delete prototype.
10721         * ggc.h: Clean up unnecessary structure predefinitions.
10722         (struct ggc_root_tab): Define.
10723         (gt_ggc_m_rtx_def): Make function, not macro.
10724         (gt_ggc_m_tree_node): Likewise.
10725         * libfuncs.h: Use gengtype for roots.
10726         * lists.c: Use gengtype for roots.  Include gt-lists.h.
10727         (init_EXPR_INSN_LIST_cache): Delete.
10728         * optabs.c: Use gengtype for roots.
10729         (gt_ggc_mp_optab): Delete.
10730         * optabs.h: Use gengtype for roots.
10731         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
10732         * rtl.h: Use gengtype for roots.
10733         (init_EXPR_INSN_LIST_cache): Delete prototype.
10734         * stor-layout.c: Use gengtype for roots.
10735         Include gt-stor-layout.h.
10736         (init_stor_layout_once): Delete.
10737         * toplev.c: Use gengtype for roots.  Delete calls to deleted
10738         routines.
10739         * tree.c: Use gengtype for roots.
10740         * tree.h: Use gengtype for roots.
10741         * varasm.c: Use gengtype for roots.
10742
10743         * Makefile.in (GTFILES): Add @all_gtfiles@.
10744         * configure: Regenerate.
10745         * configure.in: Construct all_gtfiles from the gtfiles definitions
10746         in config-lang.in.
10747         * gengtype-yacc.y (type): Warn about duplicate structure names.
10748         * gengtype.c (get_output_file): Handle .c files in language
10749         subdirectories.
10750
10751         * Makefile.in (GTFILES): Run gengtype on all the config files
10752         and on the target .c file.
10753         * except.c (mark_eh_region): Delete.
10754         (init_eh_for_function): Use GGC on struct eh_status.
10755         (mark_eh_status): Delete.
10756         (free_eh_status): Use GGC.
10757         (expand_eh_region_start): Use GGC to
10758         (collect_eh_region_array): Allocate last_region_number using GGC.
10759         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
10760         (remove_eh_handler): Let GGC free struct eh_region.
10761         (add_call_site): Use GGC to reallocate call_site_record array.
10762         * function.c (init_machine_status): Update calling sequence.
10763         (mark_machine_status): Likewise.
10764         (mark_lang_status): Likewise.
10765         (prepare_function_start): Update init_machine_status call.
10766         (mark_function_status): Delete.
10767         (maybe_mark_struct_function): Delete.
10768         (ggc_mark_struct_function): Delete.
10769         (gt_ggc_mp_function): New.
10770         (gt_ggc_mr_machine_function): New.
10771         (gt_ggc_mr_language_function): New.
10772         (init_function_once): Use canonical names.
10773         * function.h (struct function): Use gengtype.
10774         (init_machine_status): Return the structure.
10775         (mark_machine_status): Take a 'void *'.
10776         (mark_lang_status): Likewise.
10777         * ggc-common.c (ggc_mark_trees): Use canonical name for
10778         ggc_mark_struct_function.
10779         * tree.h (ggc_mark_struct_function): Delete prototype.
10780         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
10781         (alpha_init_machine_status): Likewise.
10782         (override_options): Use canonical name for alpha_mark_machine_status.
10783         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
10784         * config/arm/arm.h (struct machine_function): Use gengtype.
10785         * config/arm/arm.c (arm_mark_machine_status): Delete.
10786         (arm_init_machine_status): Update calling sequence.
10787         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
10788         * config/cris/cris.c (cris_init_machine_status): Update
10789         calling sequence.
10790         * config/d30v/d30v.h (struct machine_function): Use gengtype.
10791         * config/d30v/d30v.c (d30v_init_machine_status): Update
10792         calling sequence.
10793         (d30v_mark_machine_status): Delete.
10794         * config/i386/i386.c: Include gt-i386.h.
10795         (struct machine_function): Use gengtype.
10796         (ix86_init_machine_status): Update calling sequence.
10797         (ix86_mark_machine_status): Delete.
10798         (override_options): Use canonical namke for ix86_mark_machine_status.
10799         * config/ia64/ia64.h (struct machine_function): Use gengtype.
10800         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
10801         sequence.
10802         (ia64_mark_machine_status): Delete.
10803         (ia64_override_options): Use canonical name for
10804         ia64_mark_machine_status.
10805         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
10806         sequence.
10807         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
10808         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
10809         * gengtype.c (get_output_file): Fix warning.
10810         (main): Add prototype to suppress warning.
10811         * tree.c: Remove tree_hash_mark prototype.
10812
10813         * tree.h (init_stmt): Delete prototype.
10814         * toplev.c (lang_independent_init): Don't call init_stmt.
10815         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
10816         (stmt_obstack): Delete.
10817         (POPSTACK): No need to free 'struct nesting'.
10818         (gt_ggc_mr_nesting_cond): Use canonical names.
10819         (gt_ggc_mr_nesting_loop): Use canonical names.
10820         (gt_ggc_mr_nesting_block): Use canonical names.
10821         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
10822         (mark_stmt_status): Delete.
10823         (init_stmt): Delete.
10824         (clear_last_expr): Clear both last_expr_type and last_expr_value.
10825         Use it everywhere that last_expr_type was cleared.
10826         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
10827         (zap_lists): Delete.
10828         * ggc.h (ggc_add_deletable_root): Prototype.
10829         (mark_stmt_status): Remove prototype.
10830         * ggc-common.c (ggc_add_deletable_root): New.
10831         (ggc_mark_roots): Handle deletable roots.
10832         * function.c (ggc_mark_struct_function): Use canonical name
10833         for mark_stmt_status.
10834         * emit-rtl.c (free_sequence_stack): New.
10835         (start_sequence): Use a freelist for sequences.
10836         (end_sequence): Likewise.
10837         (init_emit_once): Add free_sequence_stack as a deleteable root.
10838         * c-pragma.c Include gt-c-pragma.h.
10839         (struct align_stack): Use gengtype.
10840         (push_alignment): Use GGC for struct align_stack.
10841         (mark_align_stack): Delete.
10842         (gt_ggc_mp_align_stack): New.
10843         (init_pragma): Use canonical name for mark_align_stack.
10844         * c-decl.c: Include gt-c-decl.h.
10845         (struct binding_level): Use gengtype.
10846         (make_binding_level): Use GGC; handle the freelist here.
10847         (pop_binding_level): New.
10848         (pushlevel): Move code into make_binding_level.
10849         (push_label_level): Likewise.
10850         (poplevel): Move code into pop_binding_level.
10851         (pop_label_level): Likewise.
10852         (mark_binding_level): Delete.
10853         (gt_ggc_mp_binding_level): New.
10854         (c_init_decl_processing): Use canonical name for mark_binding_level.
10855         Add free_binding_level as deletable root.
10856         (mark_c_function_context): Use canonical name for mark_binding_level.
10857         * Makefile.in (c-decl.o): Add gt-c-decl.h.
10858         (c-pragma.o): Add gt-c-pragma.h.
10859         (GTFILES): Add c-decl.c and c-pragma.c.
10860         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
10861
10862         * tree.c (struct type_hash): Use gengtype.
10863         (init_obstacks): Use canonical name for type_hash_mark.
10864         (type_hash_mark): Delete.
10865         Include gt-tree.h.
10866         * rtl.h (struct mem_attrs): Use gengtype.
10867         * optabs.h (struct optab): Use gengtype.
10868         * optabs.c (expand_binop): Squish signed/unsigned warning.
10869         (mark_optab): Make local, use canonical name, use autogenerated
10870         marker procedure.
10871         (init_optabs): Use canonical name for mark_optab.
10872         (new_optab): Use GGC to allocate optabs.
10873         * ggc.h: Delete mark_optab prototype.
10874         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
10875         mem_attrs marker procedure.
10876         * gengtype.c (get_output_file): Include headers in gtype-desc.c
10877         explicitly rather than deducing them from file names.
10878         (write_gc_structure_fields): Handle arrays of structures.
10879         (main): Return non-zero exit code if errors occur during output.
10880         * emit-rtl.c (mem_attrs_mark): Delete.
10881         (init_emit_once): Use canonical name for mem_attrs marker procedure.
10882         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
10883         (tree.o): Depend on gt-tree.h.
10884         (GTFILES): Add rtl.h, optabs.h, tree.c.
10885         (gt-tree.h): Add it to s-gtype rule.
10886
10887         * .cvsignore: Ignore gengtype flex/bison generated files.
10888         * Makefile.in (GGC_H): Add gtype-desc.h.
10889         (OBJS): Add gtype-desc.o.
10890         (GEN): Add gengtype.
10891         (STAGESTUFF): Add gengtype.
10892         (varasm.o): Add gt-varasm.h.
10893         (stmt.o): Add gt-stmt.h.
10894         (except.o): Add gt-except.h.
10895         (integrate.o): Add gt-integrate.h.
10896         (GTFILES): New.
10897         Add new rules for new files.
10898         * configure: Regenerate.
10899         * configure.in: Correct defaults.h paths.
10900         * emit-rtl.c (mark_sequence_stack): Delete.
10901         (mark_emit_status): Delete.
10902         (start_sequence): Allocate sequence structures using GGC.
10903         (end_sequence): Allocate sequence structures using GGC.
10904         * except.c: Use gengtype for various structures.  Include
10905         gt-except.h.
10906         * expr.c (mark_expr_status): Delete.
10907         * function.c: Use gengtype for various structures.  Include
10908         gt-function.h.
10909         (mark_function_status): Use standard gt_ggc names for marker functions.
10910         (ggc_mark_struct_function): Likewise.
10911         * function.h: Use gengtype for various structures.
10912         * gengtype-lex.l: New file.
10913         * gengtype-yacc.y: New file.
10914         * gengtype.c: New file.
10915         * gengtype.h: New file.
10916         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
10917         the standard names.  Remove some now-unnecessary prototypes.
10918         * integrate.c: Use gengtype for various structures.  Include
10919         gt-integrate.h.
10920         (mark_hard_reg_initial_vals): Delete.
10921         * integrate.h (mark_hard_reg_initial_vals): Delete.
10922         * stmt.c: Use gengtype for various structures.  Include
10923         gt-stmt.h.
10924         (mark_case_node): Delete.
10925         (mark_goto_fixup): Delete.
10926         (mark_stmt_status): Use standard gt_ggc names for marker functions.
10927         * system.h: Define GTY to empty.   In flex/bison files,
10928         don't poison malloc or realloc, instead just define them to
10929         xmalloc and xrealloc.
10930         * varasm.c: Use gengtype for various structures.  Include
10931         gt-varasm.h.  Use standard gt_ggc names for marker functions.
10932         (mark_pool_constant): Delete.
10933         (mark_varasm_status): Delete.
10934         (decode_rtx_const): #if 0 out non-typesafe hack.
10935
10936         * function.h (free_lang_status): Mark as obsolete.
10937         * function.c (free_lang_status): Mark as obsolete.
10938         * c-decl.c (push_c_function_context): Use GC to allocate and free
10939         struct language_function.
10940         (pop_c_function_context): Likewise.
10941         * c-common.c (mark_c_language_function): Mark struct
10942         language_function.
10943
10944         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
10945         Document that the machine_function structures must be allocated
10946         using GC.  Update mark_machine_status documentation.
10947         * function.h: Don't declare free_machine_status.
10948         * function.c (free_machine_status): Don't define.
10949         (free_after_compilation): Don't call free_machine_status.
10950         (ggc_mark_struct_function): Mark f->machine.  Call
10951         mark_machine_status only on non-NULL pointers.
10952         * system.h: Poison free_machine_status.
10953         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
10954         struct machine_function.
10955         (xtensa_free_machine_status): Delete.
10956         (override_options): Don't set free_machine_status.
10957         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
10958         free_machine_status.
10959         (rs6000_init_machine_status): Use GC on struct machine_function.
10960         (rs6000_free_machine_status): Delete.
10961         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
10962         machine_function.
10963         (ia64_mark_machine_status): Likewise.
10964         (ia64_free_machine_status): Delete.
10965         (ia64_override_options): Don't set free_machine_status.
10966         * config/i386/i386.c (override_options): Don't set
10967         free_machine_status.
10968         (ix86_init_machine_status): Use GC on struct machine_function.
10969         (ix86_mark_machine_status): Likewise.
10970         (ix86_free_machine_status): Delete.
10971         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
10972         machine_function.
10973         (d30v_mark_machine_status): Likewise.
10974         (d30v_free_machine_status): Delete.
10975         (d30v_init_expanders): Don't set free_machine_status.
10976         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
10977         machine_function.
10978         (arm_init_machine_status): Likewise.
10979         (arm_free_machine_status): Delete.
10980         (arm_init_expanders): Don't set free_machine_status.
10981         * config/alpha/alpha.c (override_options): Don't set
10982         free_machine_status.
10983         (alpha_init_machine_status): Use GC on struct machine_function.
10984         (alpha_mark_machine_status): Likewise.
10985         (alpha_free_machine_status): Delete.
10986
10987         * varasm.c (compare_constant): Fix typo.
10988
10989         * varasm.c: Don't include obstack.h.
10990         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
10991         (struct rtx_const): Give substructures names, improve formatting.
10992         (struct constant_descriptor): Delete.
10993         (struct constant_descriptor_tree): New, based on constant_descriptor.
10994         (const_hash_table): Is a hash table of trees.
10995         (mark_const_hash_entry): Is used for hashes of trees.  Mark
10996         constant_descriptor_tree structure.
10997         (mark_const_str_htab_1): Mark deferred_string structure.
10998         (compare_constant): Rewrite to compare trees.
10999         (compare_constant_1): Delete.
11000         (record_constant): Delete.
11001         (record_constant_1): Delete.
11002         (output_constant_def): Use struct constant_descriptor_tree.
11003         Don't duplicate trees twice.
11004         (struct constant_descriptor_rtx): New.
11005         (struct pool_constant): Used for rtx constants.
11006         (init_varasm_status): Update for change to struct varasm_status.
11007         (mark_varasm_status): Likewise.
11008         (free_varasm_status): Delete.
11009         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
11010         (record_constant_rtx): Likewise.
11011         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
11012         (force_const_mem): Likewise.
11013         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
11014         * function.c (free_after_compilation): Don't use free_varasm_status.
11015         * function.h: Don't prototype free_varasm_status.
11016
11017         * ggc-common.c (ggc_realloc): Handle X being NULL.
11018
11019         * ggc-common.c (ggc_realloc): New function.
11020         * ggc.h: Prototype it.
11021         * emit-rtl.c (free_emit_status): Delete.
11022         (init_emit): Allocate emit subarrays using GC.
11023         (gen_reg_rtx): Reallocate subarrays using GC.
11024         (init_emit): Use GC to allocate 'struct emit_status' and its
11025         subarrays.
11026         (mark_emit_status): Mark structure and its subarrays.
11027         * stmt.c (free_stmt_status): Delete.
11028         * expr.c (free_expr_status): Delete.
11029         * function.h: Remove prototypes for deleted functions.
11030         * function.c (free_after_compilation): Don't use deleted functions.
11031         Don't call free() on x_parm_reg_stack_loc.
11032         (free_after_parsing): Don't use free_stmt_status.
11033         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
11034         (mark_function_status): Mark x_parm_reg_stack_loc.
11035
11036         * varasm.c (init_varasm_status): Use GC to allocate
11037         'struct varasm_status' and its fields x_const_rtx_hash_table
11038         and x_const_rtx_sym_hash_table.
11039         (mark_varasm_status): Mark them.
11040         (free_varasm_status): Use GC to free them.
11041         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
11042         (mark_expr_status): Mark the structure itself.
11043         (free_expr_status): Use GC to free the structure.
11044         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
11045         (mark_stmt_status): Mark the 'struct stmt_status' itself.
11046         (init_stmt_for_function): Allocate the structure for GC.
11047
11048         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
11049         (equate_type_number_to_die): Likewise.
11050         * tree.h (TYPE_SYMTAB_DIE): New macro.
11051         (struct die_struct): Predeclare.
11052         (struct tree_type): Add field symtab.die.   Add a tag
11053         to the union type of field symtab.
11054
11055         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
11056         'struct rtvec_def *', not 'struct rtvec_def'.
11057
11058         * function.h (original_arg_vector): Make a real rtvec.
11059         * function.c (ggc_mark_struct_function): Adjust.
11060         * integrate.c (expand_inline_function): Adjust.
11061
11062 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
11063
11064         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
11065         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
11066         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
11067         (TARGET_VERSION_CPU): Define according to the
11068         default target.
11069         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
11070         TARGET_VERSION_CPU.
11071         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
11072         if TARGET_SHMEDIA64.
11073         (LINK_DEFAULT_CPU_EMUL): Define according to the
11074         default target.
11075         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
11076         (SUBTARGET_LINK_SPEC): Define.
11077         (LINK_SPEC): Use SH_LINK_SPEC.
11078         (ASM_SPEC): Remove.
11079         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
11080         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
11081         and TARGET_SHMEDIA64 which abort, for now.
11082         * config/sh/t-netbsd-sh5: New file.
11083         * config/sh/t-netbsd-sh5-32: New file.
11084         * config/sh/t-netbsd-sh5-64: New file.
11085
11086 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
11087             Richard Henderson  <rth@redhat.com>
11088
11089         * config/alpha/alpha.c (reg_or_const_int_operand): New.
11090         (some_operand, input_operand): Accept CONST_VECTOR.
11091         (alpha_extra_constraint): Add 'W'.
11092         (alpha_expand_zap_mask): New.
11093         (alpha_expand_builtin_vector_binop): New.
11094         (enum alpha_builtin): New.
11095         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
11096         (alpha_init_builtins, alpha_expand_builtin): New.
11097         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
11098         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
11099         (PREDICATE_CODES): Update.
11100         * config/alpha/alpha-protos.h: Update.
11101         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
11102         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
11103         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
11104         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
11105         (movv2si, movv2si_fix, movv2si_nofix): New.
11106         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
11107         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
11108         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
11109         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
11110         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
11111         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
11112         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
11113         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
11114         builtin_unpkbw, unpkbw): New.
11115         * doc/extend.texi (Alpha Built-in Functions): New.
11116
11117 2002-06-03  Richard Henderson  <rth@redhat.com>
11118
11119         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
11120         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
11121
11122 2002-06-03  Richard Henderson  <rth@redhat.com>
11123
11124         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
11125
11126         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
11127         (const0_operand): New.
11128         (reg_or_fp0_operand, fp0_operand): Remove.
11129         * config/alpha/alpha.h (PREDICATE_CODES): Update.
11130         * config/alpha/alpha-protos.h: Update.
11131         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
11132         and fp0_operand with reg_or_0_operand and const0_operand.
11133
11134 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
11135
11136         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
11137
11138 2002-06-03  Roger Sayle  <roger@eyesopen.com>
11139
11140         * gcse.c (cprop_jump): Use single_set to get the pattern
11141         from the setcc argument.
11142
11143 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
11144
11145         * diagnostic.h (diagnostic_count): Move from output_buffer to
11146         diagnostic_context.
11147         (diagnostic_kind_count): Adjust definition.
11148
11149 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
11150
11151         * except.c (except.c): Do not rebuild CFG.
11152         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
11153         optimization.
11154
11155 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
11156
11157         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
11158         * toplev.c: Include cfglahout.h
11159         * Makefile.in (toplev.c): Add dependnecy.
11160
11161 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
11162
11163         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
11164         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
11165         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
11166
11167 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
11168
11169         * config/ns32k/netbsd.h: Update copyright years.
11170         (TARGET_OS_CPP_BUILTINS): Define.
11171         (CPP_PREDEFINES): Remove.
11172         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
11173         (TARGET_CPU_CPP_BUILTINS): Define.
11174
11175 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
11176
11177         * emit-rtl.c: Fix formatting.
11178         * errors.h: Likewise.
11179         * except.c: Likewise.
11180         * explow.c: Likewise.
11181         * expmed.c: Likewise.
11182         * expr.c: Likewise.
11183         * expr.h: Likewise.
11184
11185 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
11186
11187         * config/h8300/elf.h: Fix formatting.
11188         * config/h8300/rtems.h: Likewise.
11189
11190 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
11191
11192         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
11193
11194 2002-06-02  Tom Tromey  <tromey@redhat.com>
11195
11196         * fixinc/fixincl.x: Rebuilt.
11197         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
11198
11199 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11200
11201 config/i370:
11202         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
11203         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
11204         * mvs.h: Similarly.
11205         * oe.h: Similarly.
11206
11207 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
11208
11209         * final.c (final):  Allow notes to not have computed addresses;
11210         kill no longer needed STACK_REGS ifdef.
11211
11212 2002-06-02  Richard Henderson  <rth@redhat.com>
11213
11214         * gcse.c (bypass_conditional_jumps): Fix typo last change.
11215
11216 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
11217
11218         * loop.c (emit_prefetch_instructions): Properly place the address
11219         computation.
11220
11221 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
11222
11223         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
11224         (set_block_for_insn): Turn into macro.
11225         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
11226         * cfglayout.c (insn_scopes): Kill.
11227         (scope_to_insns_initialize): Do not use insn_scopes.
11228         (scope_to_insns_finalize): Likewise.
11229         (duplicate_insn_chain): Likewise.
11230         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
11231         * cfgrtl.c (basic_block_for_insn): Kill.
11232         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
11233         (create_basic_block_structure): Use reorder_insns.
11234         (compute_bb_for_insn): Do not use basic_block_for_insn.
11235         (merge_blocks_nomove): Likewise.
11236         (update_bb_for_insn): Likewise.
11237         (verify_flow_info): Likewise.
11238         (set_block_for_insn): Kill.
11239         * combine.c (try_combine): Update gen_rtx_INSN call.
11240         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
11241         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
11242         scopes and BBs.
11243         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
11244         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
11245         Clear BB.
11246         (emit_insns_after): Simplify.
11247         (emit_copy_of_insn_after): Copy scope.
11248         * final.c (final_start_function): Lower scopes.
11249         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
11250         * integrate.c (copy_insn_list): Cope scopes.
11251         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
11252         * loop.c (loop_optimize): Do not care block notes.
11253         * print-rtl.c (print_rtx): Print BB.
11254         * recog.c (apply_change_group): Simplify.
11255         * rtl.c (copy_rtx): Handle 'B'.
11256         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
11257         * rtl.h (Field accessors): Update indexes.
11258         * sched-ebb.c (schedule_ebbs): Do not lower notes.
11259         * sched-rgn.c (schedule_insns): Likewise.
11260         * toplev.c (rest_of_compilation): Lower notes.
11261         * unroll.c (unroll_loop): Do not care scoping notes.
11262         (copy_loop_body): Copy scopes.
11263
11264 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11265
11266 config/h8300:
11267         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
11268         SUBTARGET_SPEC.
11269         * rtems.h: Similarly.
11270         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
11271         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
11272         (TARGET_CPU_CPP_BUILTINS): Use.
11273
11274 2002-06-02  Richard Henderson  <rth@redhat.com>
11275
11276         * alias.c: Include target.h.
11277         (mark_constant_function): Use targetm.binds_local_p instead
11278         of checking TREE_PUBLIC ourselves.
11279         * Makefile.in (alias.o): Add TARGET_H.
11280
11281 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11282
11283         * c-lex.c: Update copyright and file description.
11284
11285 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11286
11287         * config/fr30/fr30.h: Update to new CPP macros.
11288
11289 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11290
11291         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
11292
11293 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11294             Zack Weinberg <zack@codesourcery.com>
11295
11296         * c-common.c (c_common_init): Override cpplib's default
11297         warn_long_long setting.
11298         * c-lex.c (lex_number): Replace with interpret_integer,
11299         interpret_float, narrowest_unsigned_type and
11300         narrowest_signed_type, taking advantage of the new
11301         cpplib functionality.
11302         * cpperror.c (_cpp_begin_message): If a warning is turned
11303         into an error, avoid printing "warning:".
11304         * cppexp.c (cpp_num_sign_extend): New.
11305         * cppinit.c: Update comment.
11306         * cpplib.h (cpp_num_sign_extend): New.
11307         * tree.h: Update comment.
11308
11309 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
11310
11311         * diagnostic.h (struct diagnostic_context):  Add new member
11312         internal_error.
11313         (internal_error_function): Remove declaration.
11314         * diagnostic.c (internal_error_function): Remove definition..
11315         (internal_error): Adjust use.
11316
11317 2002-06-02  Richard Henderson  <rth@redhat.com>
11318
11319         * rtl.h (CC0_P): New.
11320         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
11321         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
11322         (bypass_block): Save old dest block for dump text.
11323         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
11324         Allow only true SET insns, not single_set.
11325
11326 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
11327
11328         * diagnostic.c (diagnostic_finish): Rename to output_flush.
11329         (clear_disgnostic_info): Rename to output_clear_data.  Use false
11330         instead of 0 for boolean value.
11331         Adjust function call throughout.
11332
11333 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
11334
11335         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
11336         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
11337
11338 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11339
11340         * d30v.h (CPP_PREDEFINES): Replace with
11341         (TARGET_CPU_CPP_BUILTINS): New.
11342
11343 2002-06-02  Roger Sayle  <roger@eyesopen.com>
11344
11345         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
11346
11347 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
11348
11349         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
11350
11351 2002-06-02  Richard Henderson  <rth@redhat.com>
11352
11353         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
11354
11355 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11356
11357         Support for C++ constructors/destructors.
11358         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
11359         instead of looping if main() returns.
11360         (asm_file_start): Output global symbols that cause .data and .bss
11361         initialization code to be linked in, unconditionally for now.
11362         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
11363         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
11364         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
11365         (LIBSTDCXX): New.
11366         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
11367         (__tablejump__): New.
11368         (__do_copy_data, __do_clear_bss): New.
11369         (__do_global_ctors, __do_global_dtors): New.
11370         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
11371         _ctors, _dtors.
11372
11373 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11374
11375         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
11376         (CPP_SPEC, CPP_PREDEFINES): Kill.
11377         * c4x/rtems.h (CPP_PREDEFINES): Kill.
11378         (TARGET_OS_CPP_BUILTINS): New.
11379
11380 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
11381
11382         * Makefile.in (tracer.o): New.
11383         * params.def (TRACER_*): New options.
11384         * rtl.h (tracer): Declare.
11385         * timevar.def (TV_TRACER): New.
11386         * toplev.c (dump_file_index): Add DFI_tracer.
11387         (dump_file_info): Add tracer.
11388         (flag_tracer): New.
11389         (lang_indepdenent_options): Add tracer.
11390         (rest_of_compilation): Call tracer.
11391         * tracer.c: New file.
11392         * invoke.texi (-ftracer): Document.
11393         (--param tracer-*): Document.
11394
11395 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
11396
11397         * tree-inline.c (expand_call_inline): Make the statement
11398         expression we generate have a COMPOUND_STMT.
11399
11400 2002-06-01  Roger Sayle  <roger@eyesopen.com>
11401
11402         * gcse.c (cprop_cc0_jump): Function deleted.
11403         (cprop_jump): Take an additional argument which is the possibly
11404         NULL cc setting insn immediately before the conditional jump.
11405         When a MODE_CC set is present, substitute it into the JUMP_INSN
11406         before attempting the constant propagation.
11407         (cprop_insn):  Recognize cc setters followed by conditional jumps
11408         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
11409         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
11410         (find_bypass_set): New function based upon find_avail_set used by
11411         cprop, but finds constant expressions available at the end of
11412         basic blocks.
11413         (bypass_block): New function.  Given a basic block that begins
11414         with a conditional jump and multiple incoming edges, perform
11415         the jump bypass optimization.
11416         (bypass_conditional_jumps): New function.  Call bypass_block with
11417         each suitable basic block in the CFG using a simple single pass.
11418
11419 2002-06-01  Roger Sayle  <roger@eyesopen.com>
11420
11421         * tree.c (real_minus_onep): New function to test for -1.0.
11422         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
11423
11424 2002-06-01  Roger Sayle  <roger@eyesopen.com>
11425
11426         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
11427         and "!p && !q" into "(p|q) == 0" under suitable conditions.
11428
11429 2002-06-01  Andreas Jaeger  <aj@suse.de>
11430
11431         * cppexp.c (cpp_classify_number): Cast precission to int for
11432         correct printf format.
11433
11434 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11435
11436         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
11437         expected, but don't really exist: atmega83, atmega85, attiny10.
11438         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
11439         emulations for all devices.
11440         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
11441         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
11442
11443 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
11444
11445         * config/h8300/h8300-protos.h: Add a prototype for
11446         h8300_shift_needs_scratch_p.
11447         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
11448         * config/h8300/h8300.h (OK_FOR_R): New.
11449         (OK_FOR_S): Likewise.
11450         (OK_FOR_T): Likewise.
11451         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
11452         * config/h8300/h8300.md (anonymous shift patterns): Use
11453         constraints R, S, and T.
11454
11455 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11456
11457         * basic-block.h (struct basic_block_def): New field loop_father.
11458         (BB_VISITED): New flag.
11459         (struct loop): New field pred, removed field shared.
11460         (struct loops): New field parray.
11461         (LOOP_EXITS_DOMS): Removed.
11462         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
11463         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
11464         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
11465         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
11466         verify_loop_structure): Declare.
11467         * cfg.c (entry_exit_blocks): Initialize loop_father field.
11468         * cfganal.c (dfs_enumerate_from): New function.
11469         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
11470         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
11471         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
11472         flow_loop_dump, flow_loops_dump, flow_loops_free,
11473         flow_loop_tree_node_add, flow_loop_level_compute,
11474         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
11475         flow_loop_outside_edge_p): Modified for new infrastructure.
11476         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
11477         redirect_edge_with_latch_update, flow_loop_free): New static functions.
11478         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
11479         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
11480         find_common_loop, verify_loop_structure, loop_latch_edge,
11481         loop_preheader_edge): New functions.
11482         (flow_loops_cfg_dump): Do not show dominators, as this information
11483         does not remain up to date long.
11484         (flow_loops_find): Store results in new format.
11485         * predict.c (propagate_freq, estimate_probability,
11486         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
11487         infrastructure.
11488
11489 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
11490
11491         * except.c (nothrow_function_p): Walk epilogue delay list
11492         checking the insn, not the chain for potential throws.
11493
11494 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
11495
11496         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
11497         (install): Refer to install-cpp directly.
11498         (uninstall-cpp): Folded into uninstall rule.
11499         * configure.in: Delete all code relating to --disable-cpp.
11500         * configure: Regenerate.
11501         * config/t-install-cpp: Delete.
11502
11503 2002-05-31  Richard Henderson  <rth@redhat.com>
11504
11505         * configure.in (HAVE_AS_TLS): Add alpha tests.
11506         * configure: Rebuild.
11507         * config/alpha/alpha.c (TARGET_AS_TLS): New.
11508         (alpha_tls_size, alpha_tls_size_string): New.
11509         (overide_options): Set it.  Always install machine_status hooks.
11510         (input_operand): Accept got tls predicates.
11511         (local_symbol_p): Merge into ...
11512         (local_symbolic_operand): ... here.  Reject tls symbols.
11513         (global_symbolic_operand): Likewise.
11514         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
11515         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
11516         (tp16_symbolic_operand, tp32_symbolic_operand): New.
11517         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
11518         (alpha_encode_section_info): Handle TLS symbols.
11519         (alpha_strip_name_encoding): Likewise.
11520         (alpha_legitimate_address_p): Likewise.
11521         (alpha_legitimize_address): Likewise.
11522         (alpha_expand_mov): Early exit to avoid nop moves.
11523         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
11524         (alpha_init_machine_status, alpha_mark_machine_status,
11525         alpha_free_machine_status): Always define.
11526         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
11527         (print_operand, print_operand_address): Add TLS relocs.
11528         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
11529         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
11530         (TARGET_SWITCHES): Add -mtls-kernel.
11531         (alpha_tls_size, alpha_tls_size_string): New.
11532         (TARGET_OPTIONS): Add -mtls-size=.
11533         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
11534         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
11535         (ASM_OUTPUT_LABELREF): Skip %.
11536         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
11537         (PREDICATE_CODES): Update.
11538         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
11539         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
11540         UNSPEC_TP, UNSPECV_SET_TP): New.
11541         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
11542         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
11543         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
11544         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
11545         (call_value_osf_2_er): Accept anything as op4.
11546         * config/alpha/alpha-protos.h: Update.
11547         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
11548
11549 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
11550
11551         * cppinit.c (append_include_chain): Always pay attention to
11552         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
11553         marker on argument.
11554
11555 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
11556
11557         * target.h: Fix formatting.
11558         * timevar.h: Likewise.
11559         * tlink.c: Likewise.
11560         * toplev.c: Likewise.
11561         * toplev.h: Likewise.
11562         * tree.c: Likewise.
11563         * tree-dump.h: Likewise.
11564         * tree.h: Likewise.
11565         * tree-inline.h: Likewise.
11566         * unroll.c: Likewise.
11567         * unwind-dw2.c: Likewise.
11568         * unwind-dw2-fde.c: Likewise.
11569         * unwind-dw2-fde-glibc.c: Likewise.
11570         * unwind-dw2-fde.h: Likewise.
11571         * unwind.h: Likewise.
11572         * unwind-sjlj.c: Likewise.
11573         * varasm.c: Likewise.
11574         * varray.h: Likewise.
11575         * vmsdbg.h: Likewise.
11576         * vmsdbgout.c: Likewise.
11577         * xcoffout.h: Likewise.
11578
11579 2002-05-31  Igor Shevlyakov <igor@microunity.com>
11580
11581         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
11582         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
11583
11584 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
11585
11586         * gcc.c (cpp_unique_options): Remove "-d" options.
11587         (cpp_debug_options): New spec string.
11588         (default_compilers): Use it.
11589         * objc/lang-specs.h: Likewise.
11590
11591 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
11592
11593         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
11594         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
11595         * gcc/mklibgcc.in: Likewise.
11596         * gcc/config/arc/t-arc: Likewise.
11597         * gcc/configure.in: Likewise.
11598         * gcc/configure: Regenerate.
11599
11600 2002-05-31  Stan Shebs  <shebs@apple.com>
11601             Turly O'Connor  <turly@apple.com>
11602
11603         * c-decl.c (struct binding_level): Change int field n_incomplete
11604         to tree list incomplete_list.
11605         (clear_binding_level): Init field with NULL.
11606         (pushdecl): Add incomplete type to list.
11607         (mark_binding_level): Mark the incomplete list.
11608         (finish_struct): Scan the incomplete list for types instead
11609         of all decls in the current binding level.
11610
11611 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11612
11613         * pa.c (output_millicode_call): Add missing '%' characters.
11614         (output_call): Likewise.
11615
11616 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
11617
11618         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
11619         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11620
11621 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
11622
11623         * varasm.c (mark_constant_pool): Walk epilogue delay list
11624         checking the insn, not the chain for potential constants.
11625
11626 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
11627
11628         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
11629
11630 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
11631
11632         * i386.c (classify_argument): Properly handle base types.
11633
11634         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
11635         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
11636         registers.
11637
11638 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
11639
11640         * gcse.c (gcse_emit_move_after): New.
11641         (pre_delete, hoist_store): Use it.
11642
11643         * reload1.c (emit_input_reload_insns): Use constrain_operands
11644         instead of constraint_accepts_reg_p to verify optimization.
11645         (constraint_accepts_reg_p): Kill
11646
11647         * reload1.c (reload_cse_delete_noop_set): Kill.
11648         (reload_cse_simplify): use delte_insn_and_edges.
11649
11650 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11651
11652         * cfgloop.c (flow_loops_find): Initialize first and last fields
11653         correctly.
11654
11655 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
11656
11657         * c-common.c (builtin_define_std): Correct logic.
11658
11659 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11660
11661         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
11662         (output_call): Likewise.
11663
11664 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11665
11666         * pa.c: Move output.h include after tree.h include.
11667         (pa_asm_output_mi_thunk): Constify identifier lab.
11668
11669 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
11670
11671         * config/ns32k/ns32k.h: Define named constants for the
11672         bits in target_flags and use them.
11673         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
11674
11675 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11676
11677         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
11678         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
11679         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
11680         default scheduling model.
11681         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
11682         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
11683         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
11684         * doc/install.texi (hppa*-*-*): Document default scheduling.
11685
11686 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11687
11688         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
11689
11690 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
11691
11692         * config.gcc (ns32k-*-netbsd*): Set tm_file to
11693         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
11694         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
11695         netbsd.h, or netbsd-aout.h.
11696
11697 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
11698
11699         * longlong.h (count_trailing_zeros): Add missing \, and clean up
11700         whitespace in __ns32000__ case.
11701
11702 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
11703
11704         * expr.c (expand_expr): Output partially zeroed out vectors with
11705         output_constant_def.
11706
11707 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
11708
11709         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
11710         (sh-*-netbsdelf*)
11711         (shl*-*-netbsdelf*): New targets.
11712         * config/sh/netbsd-elf.h: New file.
11713         * config/sh/t-netbsd: New file.
11714
11715 2002-05-30  Richard Henderson  <rth@redhat.com>
11716             Eric Botcazou  <ebotcazou@multimania.com>
11717
11718         PR optimization/6822
11719         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
11720         to unsigned int for op1 comparisons.  Use gen_int_mode.
11721
11722 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
11723
11724         * expmed.c (const_mult_add_overflow_p): New.
11725         * expr.h: Declare it.
11726         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
11727         Don't eliminate the biv if the giv has a constant multiplier and
11728         the rhs argument of the comparison does satisfy the predicate.
11729         Use expand_mult_add to compute the replacement constant.
11730
11731 2002-05-30  Osku Salerma  <osku@iki.fi>
11732
11733         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
11734         (c_common_get_alias_set): Handle it.
11735         * doc/extend.texi: Document it.
11736
11737 2002-05-30  Richard Henderson  <rth@redhat.com>
11738
11739         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
11740         * toplev.c (process_options): Don't check it.
11741         * doc/tm.texi: Don't document it.
11742         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
11743         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
11744         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
11745         frame pointer optimization if current_function_profile.
11746
11747 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
11748
11749         * langhooks.c: Fix formatting.
11750         * langhooks.h: Likewise.
11751         * lcm.c: Likewise.
11752         * libgcc2.c: Likewise.
11753         * lists.c: Likewise.
11754         * local-alloc.c: Likewise.
11755         * loop.c: Likewise.
11756         * loop.h: Likewise.
11757
11758 2002-05-30  Marc Espie <espie@openbsd.org>
11759
11760         * config.gcc (sparc64-*-openbsd*): New.
11761         * config/sparc/openbsd1-64.h: New.
11762         * config/sparc/openbsd64.h: New.
11763
11764 2002-05-30  Jeff Law <law@redhat.com>
11765
11766         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
11767         a dead insn with a REG_RETVAL note when the entire libcall is not
11768         dead and remove the associated REG_LIBCALL note at the same time.
11769
11770 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
11771
11772         * lcm.c (output.h): #include.
11773         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
11774         as an ordinary block.
11775         (optimize_mode_switching): Don't pretend that the exit block is
11776         an ordinary block, or handle sucessors of entry block specially.
11777         Instead, split edges from entry block and to exit block, and
11778         put a computing definition on the thus gained post-entry-block,
11779         and a need on the pre-exit-block.
11780
11781 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
11782
11783         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
11784         * rtl.texi: Document 'B'
11785
11786 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
11787
11788         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
11789         at run-time.
11790         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
11791
11792 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
11793
11794         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
11795         const0_rtx instead of NULL_RTX when in error.
11796         (altivec_expand_abs_builtin): Same.
11797         (rs6000_expand_binop_builtin): Same.
11798         (altivec_expand_predicate_builtin): Same.
11799         (altivec_expand_stv_builtin): Same.
11800         (rs6000_expand_ternop_builtin): Same.
11801         (altivec_expand_builtin): Same.
11802
11803 2002-05-29  David S. Miller  <davem@redhat.com>
11804
11805         * rtl.h (clear_emit_caches): Delete.
11806         * integrate.c (output_inline_function): Don't call it.
11807         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
11808         (clear_emit_caches): Delete definition.
11809         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
11810
11811 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
11812
11813         * config/mmix/mmix.c: Include real.h.
11814         (mmix_constant_address_p): Remove redundant test before switch.
11815
11816 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
11817
11818         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
11819         only if not already defined.
11820
11821 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
11822
11823         * config/h8300/h8300-protos.h: Remove prototypes for
11824         ok_for_bclr and small_power_of_two.
11825         * config/h8300/h8300.c (small_power_of_two): Remove.
11826         (ok_for_blcr): Likewise.
11827         (fix_bit_operand): Make WHAT deal with an integer instead of a
11828         constraint character.
11829         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
11830         (CONST_OK_FOR_P): Likewise.
11831         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
11832         CONST_OK_FOR_P any more.
11833         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
11834         of fix_bit_operand.
11835         (iorqi3): Likewise.
11836         (xorqi3): Likewise.
11837
11838 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
11839
11840         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
11841         (CPP_PREDEFINES): Make sure this is undefined.
11842         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
11843         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
11844         or -U__MIPSEB__ before defining one or the other.  Instead,
11845         use %(subtarget_endian_default) if neither -EB nor -EL are
11846         specified.
11847         (SUBTARGET_EXTRA_SPECS): Define.
11848         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
11849         %(netbsd_cpp_spec).
11850
11851 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
11852
11853         * doc/md.texi (Patterns): Note pattern condition pitfall
11854         for unnamed insn.
11855
11856 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
11857
11858         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
11859         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
11860         ternary operations from here...
11861         (rs6000_expand_builtin): ...to here.
11862         New argument expandedp.
11863         Change all instances of altivec_expand_binop_builtin to
11864         rs6000_expand_binop_builtin.
11865         (altivec_expand_unop_builtin): Rename to
11866         rs6000_expand_unop_builtin.
11867         (altivec_expand_binop_builtin): Rename to
11868         rs6000_expand_binop_builtin.
11869         (altivec_expand_ternop_builtin): Rename to
11870         rs6000_expand_ternop_builtin.
11871
11872 2002-05-29  Richard Henderson  <rth@redhat.com>
11873
11874         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
11875         (TARGET_BI_ARCH): Likewise.
11876         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
11877         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
11878         (TARGET_64BIT_DEFAULT): Default to 0.
11879         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
11880
11881 2002-05-29  Richard Henderson  <rth@redhat.com>
11882
11883         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
11884         (get_pc_thunk_name): New.
11885         (output_set_got): Use it.
11886         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
11887         into linkonce sections.
11888
11889 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
11890
11891         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
11892         (CPP_PREDEFINES): Make sure this is undefined.
11893         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
11894         (CPP_SUBTARGET_SPEC): Don't provide different versions for
11895         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
11896         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
11897         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
11898         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
11899         (CPP_PREDEFINES): Make sure this is undefined.
11900         (SUBTARGET_EXTRA_SPECS): Define.
11901         (CPP_SPEC): Use %(netbsd_cpp_spec).
11902
11903 2002-05-29  Jeff Law <law@redhat.com>
11904
11905         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
11906
11907         * flow.c (propagate_one_insn): Do not remove a dead insn if it
11908         contains a REG_RETVAL note.
11909
11910         * haifa-sched (sched_analyze): Remove another useless clearing
11911         of SCHED_GROUP_P I missed yesterday.
11912
11913         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
11914         * pa.c (pa_asm_output_mi_thunk): New function.
11915         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
11916
11917 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11918             Marek Michalkiewicz  <marekm@amelek.gda.pl>
11919
11920         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
11921         (avr_asm_only_p): Make non-static.
11922         (enum avr_arch): Remove.
11923         (avr_arch_types): New.
11924         (avr_mcu_types): Update.
11925         (avr_override_options): Use avr_arch_types table instead of switch.
11926         * avr.h (CPP_PREDEFINES): Die.
11927         (avr_base_arch_macro, avr_extra_arch_macro): New.
11928         (TARGET_CPU_CPP_BUILTINS): New.
11929         (CPP_SPEC, EXTRA_SPECS): Simplify.
11930         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
11931         CPP_AVR5_SPEC): Die.
11932
11933 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
11934
11935         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
11936         NETBSD_OS_CPP_BUILTINS_AOUT.
11937         (SUBTARGET_EXTRA_SPECS): Define.
11938         (CPP_SPEC): Use %(netbsd_cpp_spec).
11939
11940 2002-05-29  Richard Henderson  <rth@redhat.com>
11941
11942         * config/i386/i386.c (ix86_output_function_epilogue): New.
11943         (TARGET_ASM_FUNCTION_EPILOGUE): New.
11944         (pic_label_name): Remove.
11945         (pic_labels_used): New.
11946         (ix86_asm_file_end): Emit one pc load stub for each register used.
11947         (output_set_got): Generate deep pc load to any register.
11948         (ix86_select_alt_pic_regnum): New.
11949         (ix86_save_reg): Don't save pic register if we can find a valid
11950         call-clobbered replacement.
11951         (ix86_expand_prologue): If we found a valid replacement, renumber
11952         pic_offset_table_rtx.
11953         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
11954         pic_offset_table_rtx after reload.
11955         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
11956         * config/i386/i386.md (set_got): Make insn, not expander.
11957         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
11958
11959 2002-05-29  Richard Henderson  <rth@redhat.com>
11960
11961         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
11962         alignment for alloca.
11963
11964 2002-05-29  Richard Henderson  <rth@redhat.com>
11965
11966         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
11967         (print_operand_address): Only add rip for symbolic addresses
11968         for which we do not have another relocation type.
11969
11970 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
11971
11972         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
11973         (EXTRA_SPECS): Add netbsd_cpp_spec.
11974         (CPP_SPEC): Use %(netbsd_cpp_spec).
11975         (CPP_PREDEFINES): Remove.
11976         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
11977         (EXTRA_SPECS): Define.
11978         (CPP_SPEC): Use %(netbsd_cpp_spec).
11979         (CPP_PREDEFINES): Remove.
11980
11981 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11982
11983         PR preprocessor/6844
11984         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
11985         NUL.
11986
11987 2002-05-29  Eric Christopher  <echristo@redhat.com>
11988
11989         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
11990         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
11991
11992 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
11993
11994         * config/fr30/fr30.md: Remove previous restriction on splits.
11995         Enforce conformance through gen_lowpart and cont_int_operand.
11996         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
11997         as the assembler does not support ".bss".
11998
11999 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
12000
12001         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
12002         (CPP_PREDEFINES): Remove.
12003         (SUBTARGET_EXTRA_SPECS): Define.
12004         (CPP_SPEC): Use %(netbsd_cpp_spec).
12005         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
12006         (CPP_PREDEFINES): Remove.
12007         (SUBTARGET_EXTRA_SPECS): Define.
12008         (CPP_SPEC): Use %(netbsd_cpp_spec).
12009         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
12010         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
12011         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
12012         Add netbsd_cpp_spec.
12013         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
12014
12015 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12016             Zack Weinberg <zack@codesourcery.com>
12017
12018         * cppexp.c (cpp_num): Move to cpplib.h.
12019         (CPP_ERROR): Remove.
12020         (interpret_float_suffix, interpret_int_suffix): New.
12021         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
12022         (cpp_classify_number, cpp_interpret_integer): New.
12023         (interpret_number): Remove.
12024         (eval_token): Update to use new routines.
12025         * cpphash.h (cpp_num_part): Move to cpplib.h.
12026         * cppinit.c (cpp_post_options): Set warn_long_long.
12027         * cpplib.h (struct cpp_options): Add warn_long_long.
12028         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
12029         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
12030         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
12031         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
12032         cpp_interpret_integer): New.
12033
12034 2002-05-29  Joel Sherrill <joel@OARcorp.com>
12035
12036         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
12037
12038 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
12039
12040         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
12041         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
12042         (CPP_SUBTARGET_SPEC): Define.
12043         (SUBTARGET_EXTRA_SPECS): Define.
12044         (CPP_SPEC): Remove.
12045
12046 2002-05-29  Chris Lattner  <sabre@nondot.org>
12047
12048         * ssa.c (rename_insn_1): Rename uses of undefined registers to
12049         prevent confusion if/when the register is defined.
12050
12051 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
12052
12053         PR target/6838
12054         * config/cris/cris.md: Fix typos and thinkos in comments.
12055         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
12056         second alternative.
12057         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
12058         ("*mov_sideqi_mem"): Similar, but for operand 3.
12059         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
12060         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
12061         Remove spurious mode specifier on operand 2.
12062
12063 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
12064
12065         * config/h8300/h8300-protos.h: Remove the prototype for
12066         o_operand.
12067         Add prototypes for single_one_operand and single_zero_operand.
12068         * config/h8300/h8300.c (o_operand): Remove.
12069         (single_one_operand): New.
12070         (single_zero_operand): Likewise.
12071         (print_operand): For 'V' operand, and the operand with 0xff.
12072         For 'V' and 'W' operands, do not and the bit position with 7.
12073         * config/h8300/h8300.md (various anonymous patterns): Replace
12074         use of exact_log2 with single_one_operand/single_zero_operand.
12075
12076 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
12077
12078         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
12079
12080 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
12081
12082         * config/s390/s390.c (legitimate_pic_operand_p): Do not
12083         accept symbolic LARL operands.
12084         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
12085         epilogue insns.
12086
12087 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
12088
12089         * config/s390/s390.md (cmpstr_64/31): Mark whole
12090         input registers as used.
12091
12092 2002-05-28  Richard Henderson  <rth@redhat.com>
12093
12094         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
12095         not current_function_uses_pic_offset_table and
12096         current_function_uses_const_pool; examine current_function_profile.
12097         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
12098         input to blockage if needed.
12099         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
12100         (legitimize_pic_address): Likewise.  Set regs_ever_live for
12101         pic_offset_table_rtx when invoked during reload.
12102         * config/i386/i386.h (FINALIZE_PIC): Remove.
12103         * config/i386/i386.md (tablejump): Reformat.  Do not set
12104         current_function_uses_pic_offset_table.
12105         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
12106         (blockage): Accept anything as operand 0.
12107
12108 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
12109
12110         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
12111         common CPP built-ins for all NetBSD a.out targets.
12112         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
12113         common CPP built-ins for all NetBSD ELF targets.
12114         * config/netbsd.h: Add missing notice.
12115         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
12116         for all NetBSD targets.
12117         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
12118         for all NetBSD targets using an LP64 code model.
12119         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
12120         NetBSD targets.
12121
12122 2002-05-28  Richard Henderson  <rth@redhat.com>
12123
12124         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
12125         update if UPDATE_LIFE_LOCAL.
12126
12127 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12128
12129         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
12130
12131 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
12132                           Jason R. Thorpe <thorpej@wasabisystems.com>
12133
12134         config/sh reorganization to factor out endianness and coff:
12135
12136         * config/sh/little.h: New file.
12137         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
12138         defined, define to 0 to select big-endian.
12139         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
12140         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
12141         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
12142         * config/sh/t-be: New file.
12143         * config/sh/t-le: New file.
12144
12145         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
12146         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
12147         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
12148         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
12149         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
12150         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
12151         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
12152         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
12153         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
12154         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
12155         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
12156         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
12157         (LINK_SPEC): Define to SH_LINK_SPEC.
12158         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
12159         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
12160         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
12161         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
12162         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
12163         * config/sh/coff.h: New file.
12164         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
12165         (TARGET_OBJFMT_CPP_BUILTINS): Define.
12166         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
12167         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
12168         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
12169         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
12170         (PTRDIFF_TYPE): Likewise.
12171         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
12172         (CPP_PREDEFINES): Don't define.
12173         (TARGET_OBJFMT_CPP_BUILTINS): Define.
12174         (LINK_SPEC): Define to SH_LINK_SPEC.
12175         (LINK_EMUL_PREFIX): Redefine.
12176         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
12177         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
12178         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
12179         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
12180         (TARGET_OS_CPP_BUILTINS): Define.
12181         (TARGET_DEFAULT): Redefine.
12182         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
12183         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
12184         (LINK_SPEC): Don't redefine.
12185         (LINK_DEFAULT_CPU_EMUL): Redefine.
12186         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
12187         * sh.c (sh_asm_named_section): Don't declare / define.
12188         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
12189         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
12190         (sh64-*-elf* tm_file): Likewise.
12191         (sh-*-rtemself* tm_file): Likewise.
12192         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
12193         (sh-*-linux* tmake_file): Add sh/t-le.
12194         (sh-*-rtems* tm_file): Add sh/coff.h
12195         (sh-*-* tm_file): Likewise.
12196
12197 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
12198
12199         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
12200         CONSTANT_POOL_ADDRESS_P.
12201
12202         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
12203
12204 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
12205             Jeff Law <law@redhat.com>
12206
12207         * optabs.c (expand_binop): Fix nwords sign warnings.
12208         generate pseudo for add_optab.
12209
12210         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
12211         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
12212
12213 2002-05-28      Marc Espie <espie@openbsd.org>
12214
12215         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
12216         inherited from gas.h.
12217         (ASM_QUAD):  Undef.  OpenBSD does not support it.
12218
12219 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
12220
12221         * doc/install.texi (binaries): Change mingw binaries
12222         link to www.mingw.org.
12223
12224 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12225
12226         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
12227
12228 2002-05-28  Richard Henderson  <rth@redhat.com>
12229
12230         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
12231         bottom alignment for leaf functions.
12232
12233 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
12234
12235         * config/pa/milli32.S, config/pa/lib1funcs.asm,
12236         config/sparc/sol2-g1.asm: Delete unused files.
12237
12238 2002-05-28  Richard Henderson  <rth@redhat.com>
12239
12240         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
12241
12242         * flow.c (calculate_global_regs_live): Rename call_used to
12243         invalidated_by_call.  Initialize from regs_invalidated_by_call
12244         instead of call_used_regs.
12245
12246         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
12247         DECL_EXTERNAL.
12248
12249 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
12250
12251         * tree.h: Don't include real.h.
12252         Forward-declare struct realvaluetype.
12253         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
12254         contain it.
12255         (TREE_REAL_CST_PTR): New accessor.
12256         (TREE_REAL_CST): Update.
12257         * real.h: Include machmode.h.
12258         (realvaluetype): Make it struct realvaluetype, not a typedef.
12259         (build_real): Prototype here.
12260
12261         * tree.c: Include real.h.
12262         (build_real): Allocate the REAL_VALUE_TYPE as a separate
12263         object in GC memory, set TREE_REAL_CST_PTR to point to it.
12264         (build_real_from_int_cst): Use build_real.
12265         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
12266         REAL_CST.
12267
12268         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
12269         fold-const.c, print-tree.c, real.c: Include real.h.
12270         * Makefile.in: Update dependency lists.
12271
12272 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12273
12274         * basic-block.h (last_basic_block): Declare.
12275         (expunge_block_nocompact): Declaration removed.
12276         (compact_blocks): Declare.
12277         * cfg.c (last_basic_block): New variable.
12278         (expunge_block_nocompact): Removed.
12279         (expunge_block): Do not compact basic blocks.
12280         (compact_blocks): New.
12281         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
12282         longer change.
12283         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
12284         last_basic_block.
12285         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
12286         real positions of blocks.
12287         (delete_unreachable_blocks): Simplified -- quadratic behavior now
12288         cannot occur.
12289         (cleanup_cfg): Compact blocks.
12290         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
12291         basic_block_info varray.
12292         (flow_delete_block): Comment update.
12293         (back_edge_of_syntactic_loop_p): Modify position check code.
12294         (verify_flow_info): Update checking.
12295         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
12296         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
12297         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
12298         indices no longer change.
12299         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
12300         last_basic_block.
12301         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
12302         * profile.c (branch_prob): Compact blocks.
12303         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
12304         last_basic_block.
12305
12306 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
12307
12308         * config/h8300/h8300.md (two anonymous patterns): New.
12309
12310 2002-05-28  David S. Miller  <davem@redhat.com>
12311
12312         * config/sparc/sparc.md (cpu): Tidy.
12313         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
12314         'trap'.
12315         (in_call_delay): Delete reference to 'return' type.
12316         (eligible_for_return_delay, in_return_delay, define_delay
12317         referencing those): Delete.
12318         (rest of file): Use new type attributes as appropriate.
12319         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
12320         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
12321         * config/sparc/ultra1_2.md (us1_single): New reservation.
12322         (us1_ialuX): Likewise.
12323         * config/sparc/ultra3.md (us3_single): Likewise.
12324         (us3_ialuX): Likewise.
12325         (us3_imul, us3_idiv): Tweak.
12326
12327 2002-05-28  Richard Henderson  <rth@redhat.com>
12328
12329         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
12330         STRING_CST.
12331
12332 2002-05-28  Richard Henderson  <rth@redhat.com>
12333
12334         * config.gcc: Obsolete mn10200.
12335
12336 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12337
12338         * cppexp.c (interpret_number): Optimize for single-digit
12339         and less-than-half-precision cases.
12340         (num_trim, num_positive, num_div_op): Cast constants.
12341
12342 2002-05-27  Bo Thorsen  <bo@suse.de>
12343
12344         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
12345         3.1 branch. The file was made by Jakub Jelinek.
12346         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
12347         support so multilib doesn't break. And don't define this at all
12348         when -Dinhibit_libc is used.
12349         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
12350         * config/i386/t-linux64: Implement full multilib support. Patch
12351         originally done by Andreas Jaeger and Jakub Jelinek.
12352
12353 2002-05-27  Roger Sayle  <roger@eyesopen.com>
12354
12355         * c-common.c: Add support for __attribute__((nothrow)) to specify
12356         that a function cannot throw an exception (using TREE_NOTHROW).
12357         (handle_nothrow_attribute): New function to process this attribute.
12358
12359         * doc/extend.texi: Document the new nothrow function attribute.
12360
12361 2002-05-27  H.J. Lu  (hjl@gnu.org)
12362
12363         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
12364         (num_positive): Likewise.
12365         (num_div_op): Likewise.
12366
12367 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12368
12369         * c-common.c (c_common_init): Always use intmax_t.
12370
12371 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12372
12373         * c-common.c (c_common_init): Use intmax_t for now.
12374
12375 2002-05-24  Andrew Haley  <aph@redhat.com>
12376
12377         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
12378         if T is a boolean type.
12379
12380 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12381
12382         * basic-block.h (last_basic_block): Defined as synonym for
12383         n_basic_blocks.
12384         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
12385         flow_depth_first_order_compute, flow_preorder_transversal_compute,
12386         flow_dfs_compute_reverse_init): Replaced relevant occurences of
12387         n_basic_blocks with last_basic_block.
12388         * cfgbuild.c (make_edges): Likewise.
12389         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
12390         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
12391         * combine.c (combine_instructions): Likewise.
12392         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
12393         iterative_dataflow_bitmap): Likewise.
12394         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
12395         calc_idoms, idoms_to_doms): Likewise.
12396         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
12397         Likewise.
12398         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
12399         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
12400         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
12401         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
12402         delete_null_pointer_checks, compute_code_hoist_vbeinout,
12403         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
12404         compute_store_table, build_store_vectors): Likewise.
12405         * haifa-sched.c (sched_init): Likewise.
12406         * ifcvt.c (if_convert): Likewise.
12407         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
12408         pre_edge_lcm, compute_available, compute_nearerout,
12409         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
12410         Likewise.
12411         * predict.c (estimate_probability, process_note_prediction,
12412         note_prediction_to_br_prob): Likewise.
12413         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
12414         * recog.c (split_all_insns, peephole2_optimize): Likewise.
12415         * regrename.c (copyprop_hardreg_forward): Likewise.
12416         * resource.c (init_resource_info): Likewise.
12417         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
12418         init_regions, schedule_insns): Likewise.
12419         * ssa-ccp.c (ssa_const_prop): Likewise.
12420         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
12421         * ssa.c (compute_dominance_frontiers,
12422         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
12423
12424         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
12425         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
12426         sizes consistently.
12427
12428 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
12429
12430         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
12431         new.
12432         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
12433         hoist_insn_after, hoist_insn_to_edge): New.
12434
12435 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
12436
12437         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
12438         (PROP_FINAL): Include.
12439         * flow.c (life_analysis, update_life_info,
12440         init_propagate_block_info, mark_set_1, mark_used_rgs):
12441         Support SCAN_DEAD_STORE.
12442
12443 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12444
12445         * c-common.c (c_common_init): Set CPP arithmetic precision.
12446         * cppexp.c (cpp_num_part): Move typedef ...
12447         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
12448         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
12449         (sanity_checks): Update.
12450
12451 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
12452
12453         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
12454         (mkheaders): New rule.
12455         (install-mkheaders): New rule.
12456         * configure.in (all_outputs): Add mkheaders.
12457         * configure: Regenerate.
12458         * mkheaders.in: New file.
12459
12460 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
12461
12462         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
12463
12464 2002-05-26  Andreas Jaeger  <aj@suse.de>
12465
12466         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
12467
12468 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
12469
12470         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
12471         right_shift): Remove.
12472         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
12473         HIGH_PART): New.
12474         (struct op): Use cpp_num.
12475         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
12476         num_part_mul, num_unary_op, num_binary_op, num_negate,
12477         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
12478         num_div_op, num_lshift, num_rshift, append_digit): New.
12479         (interpret_number, parse_defined, eval_token, reduce): Update
12480         for two-integer arithmetic.
12481         (binary_handler): New typedef.
12482         (optab): Update.
12483         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
12484         (_cpp_parse_expr, reduce): Update to handle two-integers.
12485         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
12486
12487 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12488
12489         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
12490         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
12491         branch insn into account, do not assume 1.
12492         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
12493         over single word insn.  Handle upper half of I/O space too.
12494         * config/avr/avr.md (*sbrx_branch): Use it.
12495         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
12496         (*sbix_branch, *sbix_branch_bit7): Likewise.
12497         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
12498         Use RTL peepholes to optimize register operand sign tests.
12499
12500 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12501
12502         * config/avr/avr.c (avr_asm_only_p): New variable.
12503         (avr_override_options): Set it here if AVR1.
12504         (asm_file_start): Test it here, report an error if set.
12505
12506 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
12507
12508         * alias.c: Fix formatting.
12509         * attribs.c: Likewise.
12510         * bb-reorder.c: Likewise.
12511         * bitmap.c: Likewise.
12512         * bitmap.h: Likewise.
12513         * builtins.c: Likewise.
12514
12515 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
12516
12517         * reload.c (find_valid_class): Accept new argument DEST,
12518         choose class accordingly.
12519         (push_reload): Update callers.
12520
12521 2002-05-26  Andreas Jaeger  <aj@suse.de>
12522
12523         * combine.c (combine_instructions): Do not indent #if for
12524         traditional C.
12525
12526 2002-05-25  Richard Henderson  <rth@redhat.com>
12527
12528         * c-pragma.c (apply_pragma_weak): Convert value identifier to
12529         string for decl_attributes.
12530         (handle_pragma_weak): Call assemble_alias if we're modifying
12531         an existing decl.
12532
12533 2002-05-25  Richard Henderson  <rth@redhat.com>
12534
12535         PR target/6788
12536         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
12537         using rtl instead of fprintf.
12538         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
12539         * config/sparc/sparc-protos.h: Update.
12540
12541 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
12542
12543         * Makefile.in (C_COMMON_H): Fix.
12544         Update other targets.
12545         * c-common.c: Don't include c-lex.h.
12546         (builtin_define_with_value): Make static and prototype.
12547         (builtin_define_std): Move from c-lex.h.
12548         * c-common.h (init_c_lex): Move from c-lex.h.
12549         * c-decl.c: Don't include c-lex.h.
12550         (make_pointer_declarator): Move from c-parse.in.
12551         * c-lex.c: Don't include c-lex.h.
12552         * c-lex.h: Remove.
12553         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
12554         (make_pointer_declarator): Move to c-decl.c.
12555         * c-pragma.c: Don't include c-lex.h.
12556         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
12557         * c-tree.h (make_pointer_declarator): New.
12558 doc:
12559         * passes.texi, tm.texi: Update.
12560 objc:
12561         * Make-lang.in: Update and correct.
12562         * objc-act.c: Don't include c-lex.h or cpplib.h.
12563 treelang:
12564         * treetree.c: Don't include c-lex.h.
12565 config:
12566         * darwin-c.c: Don't include c-lex.h.
12567         * c4x/c4x-c.c: Don't include c-lex.h.
12568         * c4x/t-c4x: Update.
12569         * i370/i370-c.c: Don't include c-lex.h.
12570         * i370/t-i370: Update.
12571         * i960/i960-c.c: Don't include c-lex.h.
12572         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
12573         * i960/t-960bare: Update.
12574         * i960/t-vxworks: Update.
12575         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
12576         * rs6000/t-darwin: Update.
12577         * rs6000/t-rs6000-c-rule: Update.
12578         * v850/v850-c.c: Don't include c-lex.h.
12579         * v850/v850.c: Don't include c-lex.h or cpplib.h.
12580
12581
12582 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
12583
12584         * tree.def: Fix typos.
12585         * doc/install.texi: Likewise.
12586
12587 2002-05-25  Richard Henderson  <rth@redhat.com>
12588
12589         * configure.in (HAVE_AS_TLS): Add ia64 test.
12590         * configure: Rebuild.
12591         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
12592         (override_options): Set it.
12593         (TARGET_HAVE_TLS): New.
12594         (sdata_symbolic_operand): Look for 's'.
12595         (tls_symbolic_operand): New.
12596         (ia64_expand_load_address): Abort for tls symbols.
12597         (gen_tls_get_addr): New.
12598         (gen_thread_pointer): New.
12599         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
12600         (rtx_needs_barrier): Add new unspecs.
12601         (ia64_encode_section_info): Handle tls symbols.
12602         (ia64_strip_name_encoding): Strip two encoding chars.
12603         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
12604         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
12605         (TARGET_OPTIONS): Add tls-size.
12606         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
12607         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
12608         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
12609         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
12610         (movsf, movdf): Likewise.
12611         (movdi_symbolic): Use match_scratch.  Don't split if we won't
12612         have a scratch availiable.
12613         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
12614         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
12615         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
12616         * config/ia64/ia64-protos.h: Update.
12617         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
12618         sdata_symbolic_operand.
12619         (ASM_OUTPUT_LABELREF): Strip two characters.
12620
12621 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
12622
12623         * combine.c (simplify_set): Remove an unnecessary subreg.
12624
12625 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12626
12627         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
12628
12629         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
12630
12631 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
12632
12633         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
12634
12635 2002-05-25  Roger Sayle  <roger@eyesopen.com>
12636
12637         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
12638         (cond (compare x y) 0) into the equivalent (cond x y).
12639
12640 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
12641
12642         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
12643
12644 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
12645
12646         * config.gcc: Remove all stanzas for previously obsoleted
12647         systems.  Where necessary, add explicit error stanzas to
12648         prevent removed systems from being misidentified as something
12649         else.  Begin a fresh obsoletions list, with the systems that
12650         were reprieved last round.
12651         * doc/install.texi: Remove all mention of dead targets.
12652         * fixinc/mkfixinc.sh: Likewise.
12653
12654         * config/arm/arm.h: Bit 31 of target_flags is no longer
12655         reserved.
12656
12657         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
12658         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
12659         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
12660         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
12661         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
12662         config/alpha/osf12.h, config/alpha/osf2or3.h,
12663         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
12664         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
12665         config/clipper/clipper-protos.h, config/clipper/clipper.c,
12666         config/clipper/clipper.h, config/clipper/clipper.md,
12667         config/clipper/clix.h, config/convex/convex-protos.h,
12668         config/convex/convex.c, config/convex/convex.h,
12669         config/convex/convex.md, config/convex/fixinc.convex,
12670         config/convex/proto.h, config/elxsi/elxsi-protos.h,
12671         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
12672         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
12673         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
12674         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
12675         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
12676         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
12677         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
12678         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
12679         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
12680         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
12681         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
12682         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
12683         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
12684         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
12685         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
12686         config/m68k/altos3068.h, config/m68k/apollo68.h,
12687         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
12688         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
12689         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
12690         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
12691         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
12692         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
12693         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
12694         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
12695         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
12696         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
12697         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
12698         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
12699         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
12700         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
12701         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
12702         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
12703         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
12704         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
12705         config/mips/dec-osf1.h, config/mips/elflorion.h,
12706         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
12707         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
12708         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
12709         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
12710         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
12711         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
12712         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
12713         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
12714         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
12715         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
12716         config/ns32k/sequent.h, config/ns32k/tek6000.h,
12717         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
12718         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
12719         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
12720         config/sparc/rtems.h, config/we32k/we32k-protos.h,
12721         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
12722         Delete file.
12723
12724 2002-05-24  Richard Henderson  <rth@redhat.com>
12725
12726         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
12727         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
12728         * config/i386/i386.c (tls_model_chars): Add leading space.
12729         (tls_symbolic_operand): Don't bias by 1.
12730         (legitimize_address): Don't unbias by 1.
12731
12732 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12733
12734         * lcm.c (optimize_mode_switching): Change bb used as indices
12735         to bb->index.
12736
12737 2002-05-24  Richard Henderson  <rth@redhat.com>
12738
12739         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
12740         of update_life_info_in_dirty_blocks.
12741
12742 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
12743
12744         PR other/6782
12745         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
12746
12747 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
12748
12749         PR preprocessor/6780
12750         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
12751
12752 2002-05-24  Jim Blandy  <jimb@redhat.com>
12753
12754         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
12755         entry with a type code of zero, marking the end of the compilation
12756         unit's macro info.
12757
12758 2002-05-24  Richard Henderson  <rth@redhat.com>
12759
12760         * varasm.c (asm_output_bss): Always output one byte.
12761         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
12762
12763 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
12764
12765         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
12766         namespace.
12767
12768 2002-05-24  Andreas Jaeger  <aj@suse.de>
12769
12770         * ggc-page.c (alloc_page): Cast variables of type size_t to
12771         unsigned long, adjust printf format string.
12772         (ggc_alloc): Likewise.
12773         (ggc_print_statistics): Likewise.
12774         (ggc_print_statistics): Correct printf format string for SCALE to
12775         use unsigned long.
12776
12777 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
12778
12779         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
12780
12781 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
12782             Zack Weinberg     <zack@codesourcery.com>
12783
12784         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
12785         quoted strings.
12786         * dwarf2out.c (lookup_filename): Properly quote filename in .file
12787         directive in assembly file.
12788         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
12789         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
12790         * config/pj/pj.h (ASM_FILE_START): Likewise.
12791         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
12792         * config/avr/avr.c (asm_file_end): Likewise.
12793         * toplev.c (output_quoted_string): Handle possibly signed plain
12794         char.
12795         * toplev.h (output_clean_symbol_name): Declare
12796         * toplev.c (output_clean_symbol_name): Define.
12797         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
12798         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
12799
12800 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
12801
12802         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
12803
12804 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
12805
12806         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
12807         of size of unsigned.
12808
12809 2002-05-23  Richard Henderson  <rth@redhat.com>
12810
12811         * configure.in (HAVE_AS_TLS): New test.
12812         * config.in, configure: Rebuild.
12813         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
12814         (ix86_tls_dialect_string, ix86_tls_dialect): New.
12815         (override_options): Set it.
12816         (tls_model_chars, tls_symbolic_operand): New.
12817         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
12818         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
12819         (local_exec_symbolic_operand): New.
12820         (get_pic_label_name): Merge into output_set_got.
12821         (ix86_asm_file_end): Emit pic_label_name if defined.
12822         (legitimate_constant_p, constant_address_p): New.
12823         (legitimate_pic_operand_p): New.
12824         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
12825         (legitimate_address_p): Likewise.
12826         (ix86_encode_section_info): Rename from i386_; handle tls decls.
12827         (ix86_strip_name_encoding): New.
12828         (get_thread_pointer): New.
12829         (legitimize_address): Handle tls symbols.
12830         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
12831         Remove UNSPEC_PLT.
12832         (struct machine_function): Add some_ld_name.
12833         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
12834         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
12835         (output_addr_const_extra): New.
12836         (maybe_get_pool_constant): New.
12837         (ix86_split_to_parts): Use it.
12838         (ix86_expand_move): Handle tls symbols.
12839         (ix86_tls_get_addr): New.
12840         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
12841         (TARGET_OPTIONS): Add tls-dialect.
12842         (CONSTANT_ADDRESS_P): Use new out-of-line function.
12843         (LEGITIMATE_CONSTANT_P): Likewise.
12844         (LEGITIMATE_PIC_OPERAND_P): Likewise.
12845         (TARGET_STRIP_NAME_ENCODING): New.
12846         (ASM_OUTPUT_LABELREF): New.
12847         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
12848         (OUTPUT_ADDR_CONST_EXTRA): New.
12849         (PREDICATE_CODES): Update.
12850         (ix86_tls_dialect, ix86_tls_dialect_string): New.
12851         * config/i386/i386.md: Regroup and renumber unspec constants.
12852         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
12853         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
12854         (tls_global_dynamic, tls_local_dynamic_base): New.
12855         (tls_local_dynamic_once): New.
12856         * config/i386/i386-protos.h: Update.
12857
12858 2002-05-23  Richard Henderson  <rth@redhat.com>
12859
12860         * genemit.c (gen_insn): Print file:lineno comment before function.
12861         (main): likewise.
12862         * gensupport.c (struct queue_elem): Add filename member.
12863         (queue_pattern): Initialize it; update all callers.
12864         (process_include): Don't free filename.
12865         (read_md_rtx): Set read_rtx_filename.
12866
12867 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
12868
12869         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
12870
12871 2002-05-23  Richard Henderson  <rth@redhat.com>
12872
12873         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
12874
12875 2002-05-23  Richard Henderson  <rth@redhat.com>
12876
12877         * doc/extend.texi (C++98 Thread-Local Edits): Update with
12878         commentary from Mark.
12879
12880 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12881
12882         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
12883         Use FOR_EACH_BB macros to iterate over basic block chain.
12884         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
12885         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
12886         Likewise.
12887         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
12888         find_unreachable_blocks, create_edge_list, verify_edge_list,
12889         remove_fake_edges, add_noreturn_fake_exit_edges,
12890         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
12891         Likewise.
12892         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
12893         find_sub_basic_blocks): Likewise.
12894         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
12895         Likewise.
12896         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
12897         Likewise.
12898         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
12899         Likewise.
12900         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
12901         commit_edge_insertions, commit_edge_insertions_watch_calls,
12902         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
12903         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
12904         * conflict.c (conflict_graph_compute): Likewise.
12905         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
12906         df_modified_p, df_refs_unlink, df_dump): Likewise.
12907         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
12908         * final.c (compute_alignments): Likewise.
12909         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
12910         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
12911         count_or_remove_death_notes): Likewise.
12912         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
12913         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
12914         classic_gcse, compute_transp, cprop, compute_pre_data,
12915         compute_transpout, invalidate_nonnull_info,
12916         delete_null_pointer_checks_1, delete_null_pointer_checks,
12917         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
12918         compute_store_table, build_store_vectors, store_motion): Likewise.
12919         * global.c (global_conflicts, mark_elimination): Likewise.
12920         * graph.c (print_rtl_graph_with_bb): Likewise.
12921         * haifa-sched.c (sched_init): Likewise.
12922         * ifcvt.c (if_convert): Likewise.
12923         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
12924         compute_available, compute_nearerout, compute_rev_insert_delete,
12925         optimize_mode_switching): Likewise.
12926         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
12927         * predict.c (estimate_probability, note_prediction_to_br_prob,
12928         propagate_freq, counts_to_freqs, expensive_function_p,
12929         estimate_bb_frequencies): Likewise.
12930         * profile.c (instrument_edges, get_exec_counts,
12931         compute_branch_probabilities, compute_checksum, branch_prob,
12932         find_spanning_tree): Likewise.
12933         * recog.c (split_all_insns, peephole2_optimize): Likewise.
12934         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
12935         Likewise.
12936         * regclass.c (scan_one_insn, regclass): Likewise.
12937         * regmove.c (mark_flags_life_zones, regmove_optimize,
12938         record_stack_memrefs): Likewise.
12939         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
12940         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
12941         * resource.c (find_basic_block): Likewise.
12942         * sched-ebb.c (schedule_ebbs): Likewise.
12943         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
12944         find_single_block_region, find_rgns, schedule_insns)
12945         * sibcall.c (optimize_sibling_and_tail_recursive_call)
12946         * ssa-ccp.c (optimize_unexecutable_edges,
12947         ssa_ccp_df_delete_unreachable_insns): Likewise.
12948         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
12949         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
12950         rename_block, convert_to_ssa, compute_conservative_reg_partition,
12951         compute_coalesced_reg_partition, rename_equivalent_regs,
12952         convert_from_ssa): Likewise.
12953         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
12954         process_for_unwind_directive): Likewise.
12955
12956         * df.c (FOR_ALL_BBS): Removed.
12957         * gcse.c (struct null_pointer_info): Type of current_block field
12958         changed.
12959         (struct reg_avail_info): Type of last_bb field changed.
12960         * config/ia64/ia64.c (block_num): Removed.
12961         (need_copy_state): Type changed.
12962         (last_block): New.
12963
12964 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
12965
12966         * cppinit.c (mark_named_operators): Split out from init_builtins.
12967         (cpp_finish_options): Call it from here instead.
12968
12969 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
12970
12971         * builtin-attrs.def: Update copyright years.
12972         (ATTR_NONNULL): New attribute identifier.
12973         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
12974         attribute tree lists.
12975         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
12976         format operand.
12977         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
12978         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
12979         attribute lists.  Chain the appropriate nonnull attribute.
12980         * c-format.c (check_format_arg): Remove null format string
12981         warning.
12982         * testsuite/gcc.dg/format/null-1.c: New test.
12983
12984 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12985
12986         * Makefile.in (ADAC): Define.
12987         (SYSLIBS): Define.
12988         (.SUFFIXES): Move before language makefile fragments.
12989         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
12990
12991 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
12992
12993         * varasm.c (make_decl_rtl): Don't allow weak variables to be
12994         placed in common.
12995
12996 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
12997
12998         * cfg.c (dump_flow_info): Print results of
12999         maybe_hot/probably_never_executed predicates.
13000         * toplev.c (open_dump_file): Print function frequency.
13001
13002 2002-05-23  David S. Miller  <davem@redhat.com>
13003
13004         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
13005         regsets.
13006
13007 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
13008
13009         * c-common.c (warn_nonnull): Declare.
13010         (c_common_attribute_table): Add "nonnull" attribute.
13011         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
13012         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
13013         check_function_arguments_recurse): New functions.
13014         * c-common.h (warn_nonnull): Declare extern.
13015         (check_function_arguments, check_function_arguments_recurse): New
13016         prototypes.
13017         * c-decl.c (c_decode_option): Add -Wnonnull option.
13018         * c-format.c (set_Wformat): Set warn_nonnull if enabling
13019         format checking.
13020         (format_check_context): New structure.
13021         (check_format_info_recurse): Remove recursion and rename to...
13022         (check_format_arg): ...this.  Update comment.
13023         (check_format_info): Use check_function_arguments_recurse.
13024         * c-typeck.c (build_function_call): Call check_function_arguments
13025         instead of check_function_format.
13026         * doc/extend.texi: Document "nonnull" attribute.
13027         * doc/invoke.texi: Docuemnt -Wnonnull option.
13028         * testsuite/gcc.dg/nonnull-1.c: New test.
13029         * testsuite/gcc.dg/nonnull-2.c: New test.
13030
13031 2002-05-23  David S. Miller  <davem@redhat.com>
13032
13033         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
13034         * cfgcleanup.c (cleanup_cfg): If it is set do not
13035         attempt to delete trivially dead insns.
13036         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
13037         * toplev.c (rest_of_compilation): Document non-trivial aspect
13038         the RTL before optimize_save_area_alloca is run.
13039
13040 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13041
13042         * c-lex.c (indent_level): Remove.
13043         (cb_file_change, c_lex): Remove indent level handling.
13044         * c-lex.h (indent_level): Remove.
13045         * input.h (struct file_stack): Remove indent_level.
13046         * toplev.c (push_srcloc): Remove indent_level handling.
13047
13048 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
13049
13050         PR target/6753
13051         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
13052         of x in constraints for clarity.
13053         (sse_mov?fcc split): abort if op2 == op3.
13054         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
13055         sse_movsfcc_const0_4): Add earlyclobber.
13056         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
13057         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
13058         Use Y instead of x in constraints.
13059
13060 2002-05-23  Richard Henderson  <rth@redhat.com>
13061
13062         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
13063         (C++98 Thread-Local Edits): New subsection.
13064
13065         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
13066         (ix86_arch): Set type to enum processor_type.
13067
13068         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
13069         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
13070
13071 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
13072
13073         * configure.in: Fix as version test for binutils 2.12.1 releases
13074         (without dates).
13075         * configure: Rebuilt.
13076
13077 2002-05-23  Richard Henderson  <rth@redhat.com>
13078
13079         * config/i386/i386.c (get_pic_label_name): New.
13080         (load_pic_register): Remove.
13081         (output_set_got): New.
13082         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
13083         * config/i386/i386.md (UNSPEC_SET_GOT): New.
13084         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
13085         (prologue_set_got, prologue_get_pc): Remove.
13086         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
13087         (builtin_setjmp_receiver): Use gen_set_got.
13088         * config/i386/i386-protos.h: Update.
13089
13090 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
13091
13092         * gcse.c (hash_expr): Do not use alias set for hashing.
13093
13094 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
13095
13096         * dbxout.c (dbxout_class_name_qualifiers): New function.
13097         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
13098
13099 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13100
13101         * cpperror.c (_cpp_begin_message): No special casing
13102         of CPP_FATAL_LIMIT.
13103         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
13104         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
13105         * cpplib.c (do_include_common): Use DL_ERROR.
13106         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
13107         (DL_ICE): Renumber.
13108         * fix-header.c (read_scan_file): Update.
13109
13110 2002-05-22  Richard Henderson  <rth@redhat.com>
13111
13112         * config/i386/i386.c (ix86_expand_call): New function, extracted
13113         from md call patterns.  Add pic_offset_table_rtx to
13114         CALL_INSN_FUNCTION_USAGE when needed.
13115         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
13116         (call_value_pop, call_value, untyped_call): Likewise.
13117         (call_exp, call_value_exp): Remove.
13118         * config/i386/i386-protos.h: Update.
13119
13120 2002-05-22  Richard Henderson  <rth@redhat.com>
13121
13122         * varasm.c (default_section_type_flags): Check for VAR_DECL
13123         before using DECL_THREAD_LOCAL.
13124
13125 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
13126
13127         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
13128         (STARTFILE_SPEC): Delete PE crt0.o.
13129         * config/rs6000/aix51.h: Same.
13130         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
13131         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
13132         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
13133         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
13134         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
13135
13136 2002-05-22  Richard Henderson  <rth@redhat.com>
13137
13138         * varasm.c (default_section_type_flags): Handle tls data and
13139         default sections.
13140         (default_unique_section): Handle tls sections.
13141
13142 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
13143
13144         * configure.in (CROSS): Define NATIVE_CROSS.
13145         * configure: Regenerate.
13146         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
13147         (startfile_prefix_spec): New var.
13148         (static_specs): Add startfile_prefix_spec.
13149         (do_spec_2): Split out from..
13150         (do_spec): ..here.
13151         (main): Process startfile_prefix_spec.
13152         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
13153         dynamic linker.
13154         (STARTFILE_PREFIX_SPEC): Define.
13155         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
13156         absolute paths.
13157
13158 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
13159
13160         * cpperror.c: Fix formatting.
13161         * cppexp.c: Likewise.
13162         * cppfiles.c: Likewise.
13163         * cpphash.c: Likewise.
13164         * cpphash.h: Likewise.
13165         * cppinit.c: Likewise.
13166         * cpplex.c: Likewise.
13167         * cpplib.c: Likewise.
13168         * cppmacro.c: Likewise.
13169         * cppmain.c: Likewise.
13170         * cppspec.c: Likewise.
13171
13172 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
13173
13174         * combine.c (force_to_mode): Use gen_int_mode.
13175         Don't clear CONST_INT bits outside of mode.
13176
13177 2002-05-22  Richard Henderson  <rth@redhat.com>
13178
13179         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
13180         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
13181
13182 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
13183
13184         PR c/6643
13185         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
13186         if DECL_SIZE_UNIT is INTEGER_CST.
13187
13188 2002-05-22  Richard Henderson  <rth@redhat.com>
13189
13190         * flow.c (life_analysis): Delete broken reg_label check.
13191
13192 2002-05-22  Richard Henderson  <rth@redhat.com>
13193
13194         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
13195         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
13196
13197 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
13198
13199         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
13200         (embed-bb.c): New rule.
13201         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
13202         * config/sh/embed_bb.c: Delete.
13203
13204 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
13205
13206         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
13207
13208 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
13209
13210         * config/h8300/h8300.md (*andorqi3): New.
13211
13212 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
13213
13214         PR preprocessor/6517
13215         * Makefile.in: Update.
13216         * c-common.c (c_common_post_options): Add preprocessor
13217         errors to the error count.
13218         * c-lang.c (c_post_options): Kill.
13219         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
13220         * hooks.h: Add header guards.
13221         * langhooks-def.h: Include hooks.h.
13222         (LANG_HOOKS_POST_OPTIONS): Update.
13223         * langhooks.h (struct lang_hooks): Update post_options.
13224         * toplev.c (parse_options_and_default_flags): Update.
13225 objc:
13226         * objc-lang.c (objc_post_options): Kill.
13227         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
13228
13229 2002-05-21  Bruce Korb  <bkorb@gnu.org>
13230
13231         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
13232         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
13233         * fixinc/fixincl.x: regen.
13234
13235 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
13236
13237         * cfgbuild.c: Fix formatting.
13238         * cfg.c: Likewise.
13239         * cfgcleanup.c: Likewise.
13240         * cfglayout.c: Likewise.
13241         * cfgloop.c: Likewise.
13242         * cfgrtl.c: Likewise.
13243
13244 2002-05-21  Richard Henderson  <rth@redhat.com>
13245
13246         * c-common.h (enum rid): Add RID_THREAD.
13247         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
13248         (grokdeclarator): Grok __thread.
13249         * c-parse.in (reswords): Add __thread.
13250         (rid_to_yy): Add RID_THREAD.
13251
13252         * tree.h (DECL_THREAD_LOCAL): New.
13253         (struct tree_decl): Add thread_local_flag.
13254         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
13255         * tree.c (staticp): TLS variables are not static.
13256
13257         * target-def.h (TARGET_HAVE_TLS): New.
13258         * target.h (have_tls): New.
13259         * output.h (SECTION_TLS): New.
13260         * varasm.c (assemble_variable): TLS variables can't be common for now.
13261         (default_section_type_flags): Handle .tdata and .tbss.
13262         (default_elf_asm_named_section): Handle SECTION_TLS.
13263         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
13264
13265         * flags.h (flag_tls_default): Declare.
13266         * toplev.c (flag_tls_default): Define.
13267         (display_help): Display help for it.
13268         (decode_f_option): Set it.
13269
13270         * doc/extend.texi (Thread-Local): New node describing language-level
13271         thread-local storage.
13272         * doc/invoke.texi (-ftls-model): Document.
13273
13274         * fixinc/inclhack.def (thread_keyword): New.
13275         * fixinc/fixincl.x: Rebuild.
13276
13277 2002-05-21  Jeffrey A Law  <law@redhat.com>
13278
13279         * optabs.c (expand_binop): For double-word integer multiplies,
13280         do not compute intermediate results into something that is
13281         not a register (such as a SUBREG or MEM).
13282
13283         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
13284         (ix86_sched_reorder): Make sure to initialize scheduling
13285         data even when there's only one insn in the ready queue.
13286
13287 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
13288
13289         * genautomata.c (reserv_sets_hash_value): Fix a typo.
13290
13291 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
13292
13293         * genautomata.c (reserv_sets_hash_value): Define hash_value as
13294         set_el_t.  Transform the hash value into unsigned.
13295         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
13296         (transform_3): Add code to process `(A,B)+(D,E)'.
13297
13298 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
13299
13300         * reload1.c (do_output_reload): Run delete_output_reload
13301         only if optimizing.
13302
13303 2002-05-21  Roger Sayle  <roger@eyesopen.com>
13304
13305         PR middle-end/6600
13306         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
13307         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
13308         (can_store_by_pieces): ... and here to limit the largest mode used.
13309         Add a comment to document this function.
13310
13311 2002-05-21  Richard Henderson  <rth@redhat.com>
13312
13313         * flow.c (life_analysis): Fix test for deleted label.
13314
13315 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
13316
13317         * doc/tm.texi: Fix typo.
13318
13319 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
13320
13321         * c-common.c (c_common_init): Set options->unsigned_char from
13322         flag_signed_char.
13323         (cb_register_builtins): Define __STRICT_ANSI__ and
13324         __CHAR_UNSIGNED__ here...
13325         * cppinit.c (init_builtins): Not here.
13326         (cpp_create_reader): unsigned_char option defaults to 0, not
13327         !DEFAULT_SIGNED_CHAR.
13328         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
13329         and -funsigned-char.
13330
13331         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
13332         * cpphash.c (_cpp_init_hashtable): Don't set it.
13333         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
13334         directly.  Clarify comment.
13335
13336 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13337
13338         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
13339         neighboring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
13340         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
13341         BASIC_BLOCK (n_basic_blocks - 1).
13342         * cfganal.c (can_fallthru, flow_call_edges_add,
13343         flow_preorder_transversal_compute): Too.
13344         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
13345         find_sub_basic_blocks): Too.
13346         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
13347         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
13348         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
13349         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
13350         * combine.c (this_basic_block): Type changed to basic_block.
13351         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
13352         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
13353         get_last_value, distribute_notes, distribute_links): Too.
13354         * final.c (compute_alignments): Too.
13355         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
13356         * function.c (thread_prologue_and_epilogue_insns): Too.
13357         * gcse.c (compute_code_hoist_vbeinout): Too.
13358         * global.c (build_insn_chain): Too.
13359         * ifcvt.c (find_if_block, find_cond_trap): Too.
13360         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
13361         * regmove.c (regmove_optimize): Too.
13362         * resource.c (find_basic_block): Too.
13363         * sched-ebb.c (schedule_ebbs): Too.
13364         * ssa-dce.c (find_control_dependence, find_pdom): Too.
13365
13366 2002-05-21  Andreas Jaeger  <aj@suse.de>
13367
13368         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
13369
13370 2002-05-21  Richard Henderson  <rth@redhat.com>
13371
13372         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
13373         unspec names, not numbers.
13374
13375 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13376
13377         * doc/sourcebuild.texi: Mention snapshot-README and
13378         snapshot-index.html as needing updating for new front ends.
13379
13380 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13381
13382         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
13383         disabling checking, and avoid multiple evaluation of RTX.
13384
13385 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
13386
13387         * bitmap.c (bitmap_find_bit): Return early if we have the correct
13388         element cached.
13389
13390 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
13391
13392         * profile.c (gen_edge_profiler):  Set alias set before the memory is
13393         used.
13394
13395 2002-05-20  David S. Miller  <davem@redhat.com>
13396
13397         * cselib.c (max_value_regs): New.
13398         (cselib_lookup, cselib_invalidate_regno): Initialize it when
13399         adding new entries to the REG_VALUES table and we are dealing with
13400         a hard register.
13401         (clear_table): Initialize it.
13402         (cselib_invalidate_regno): Use it to determine which hard
13403         registers to scan when mode is not VOIDmode.
13404
13405 2002-05-20  Duraid Madina   <duraid@fl.net.au>
13406
13407         * tradcpp.c (fixup_newlines): Use old-style function header.
13408
13409 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
13410
13411         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
13412
13413 2002-05-20  H.J. Lu  (hjl@gnu.org)
13414
13415         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
13416
13417         * config/mips/mips.h (DFMODE_NAN): Defined.
13418         (SFMODE_NAN): Likewise.
13419
13420 2002-05-20  Dale Johannesen  <dalej@apple.com>
13421
13422         * combine.c (cant_combine_insn_p):  Back out my
13423         previous patch.
13424
13425 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
13426
13427         * params.c: Fix formatting.
13428         * params.h: Likewise.
13429         * predict.c: Likewise.
13430         * prefix.c: Likewise.
13431         * print-rtl.c: Likewise.
13432         * print-tree.c: Likewise.
13433         * profile.c: Likewise.
13434
13435 2002-05-20  H.J. Lu  (hjl@gnu.org)
13436
13437         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
13438
13439 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
13440
13441         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
13442         switches straight on to the assembler, do not abbreviate them.
13443         * config/arm/elf.h (ASM_SPEC): As above.
13444         * config/arm/semi.h (ASM_SPEC): As above.
13445         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
13446         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
13447         -mcpu=xscale on to the assembler by default.
13448         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
13449
13450 2002-05-20  Richard Henderson  <rth@redhat.com>
13451
13452         * cse.c (canon_hash): Reorder do_not_record test.  Always
13453         allow pic_offset_table_rtx.
13454
13455 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
13456
13457         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
13458         (expand_binop): Ditto (3 times).
13459
13460 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
13461
13462         * Makefile.in (distclean): Remove QMTest stuff.
13463         (QMTEST_PATH): New variable.
13464         (QMTESTFLAGS): Likewise.
13465         (QMTESTRUNFLAGS): Likewise.
13466         (QMTEST): Likewise.
13467         (QMTEST_GPP_TESTS): Likewise.
13468         (QMTEST_DIR): Likewise.
13469         (QMTEST_DIR/context): New target.
13470         (qmtest-g++): Likeise.
13471         (qmtest-gui): Likewise.
13472         (QMTEST_DIR/gpp-expected.qmr): Likewise.
13473
13474 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
13475
13476         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
13477         an altivec register if TARGET_ALTIVEC.
13478
13479         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
13480         to ALTIVEC_VECTOR_MODE.
13481         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
13482         (rs6000_va_arg): Vectors may go in registers if they are not
13483         altivec vectors.
13484
13485 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
13486
13487         * protoize.c: Fix formatting.
13488
13489 2002-05-19  Richard Henderson  <rth@redhat.com>
13490
13491         * gensupport.c (init_include_reader): Merge into ...
13492         (process_include): ... here.  Simplify composite path creation.
13493         Plug memory leaks.  Fix file/line number tracking.  Do not
13494         process_define_cond_exec.  Return void.
13495         (process_rtx): Don't check process_include return value.
13496
13497 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13498
13499         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
13500         fields.
13501         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
13502         traversing basic block chain.
13503         (create_basic_block_structure, create_basic_block): Declaration changed.
13504         (link_block, unlink_block): Declare.
13505         * cfg.c (entry_exit_blocks): Initialize new fields.
13506         (link_block, unlink_block): New.
13507         (expunge_block_nocompact): Unlink basic block.
13508         (dump_flow_info): Print prev_bb/next_bb fields.
13509         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
13510         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
13511         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
13512         * cfgrtl.c (create_basic_block_structure, create_basic_block,
13513         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
13514         (verify_flow_info): Check that list agrees with numbering.
13515
13516 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
13517
13518         * c-common.c (preprocessing_asm): New macro.
13519         * c-lex.h (builtin_define, builtin_assert): Use pfile.
13520 doc:
13521         * tm.texi: Update.
13522 config/alpha:
13523         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
13524         (CPP_SPEC): Simplify.
13525         (TARGET_CPU_CPP_BUILTINS): Update.
13526         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
13527         (CPP_SPEC): Simplify.
13528         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
13529         (TARGET_OS_CPP_BUILTINS): Update.
13530         * osf.h (CPP_XFLOAT_SPEC): Kill.
13531         (TARGET_OS_CPP_BUILTINS): Update.
13532         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
13533         * osf5.h (CPP_XFLOAT_SPEC): Kill.
13534         * vms.h (CPP_SUBTARGET_SPEC): Kill.
13535         (TARGET_OS_CPP_BUILTINS): Update.
13536
13537 2002-05-19  Richard Henderson  <rth@redhat.com>
13538
13539         * varasm.c (default_binds_local_p): Fix typo.
13540
13541 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13542
13543         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
13544         CONST_INT operand to the correct mode after adding 1 to it.
13545
13546 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
13547
13548         * config.gcc (powerpc-wrs-windiss*): New target.
13549
13550 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13551
13552         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
13553         (ashrdi3): Use it.
13554
13555 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
13556
13557         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
13558         alphasort.
13559         * config.in: Regenerated.
13560         * configure: Regenerated.
13561
13562 2002-05-19  Richard Henderson  <rth@redhat.com>
13563
13564         * target-def.h (TARGET_BINDS_LOCAL_P): New.
13565         * target.h (struct gcc_target): Move boolean fields to the end.
13566         Add binds_local_p.
13567         * varasm.c (default_binds_local_p): New.
13568         * output.h: Declare it.
13569
13570         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
13571         * config/cris/cris.c (cris_encode_section_info): Likewise.
13572         * config/i386/i386.c (i386_encode_section_info): Likewise.
13573         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
13574         * config/sh/sh.c (sh_encode_section_info): Likewise.
13575
13576         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
13577         (TARGET_BINDS_LOCAL_P): New.
13578
13579 2002-05-19  Richard Henderson  <rth@redhat.com>
13580
13581         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
13582         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
13583         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
13584
13585         * toplev.c (display_help): Kill -a -ax help.
13586
13587         * config/1750a/1750a.h, config/alpha/alpha.h,
13588         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
13589         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
13590         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
13591         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
13592
13593         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
13594         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
13595
13596         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
13597         (ix86_output_function_block_profiler): Kill.
13598         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
13599         (m68hc11_function_block_profiler): Kill.
13600         * config/m68hc11/m68hc11-protos.h: Update.
13601         * config/m88k/m88k.c (output_block_profiler): Kill.
13602         (output_function_block_profiler): Kill.
13603         * config/m88k/m88k-protos.h: Update.
13604
13605 2002-05-19  Richard Henderson  <rth@redhat.com>
13606
13607         * system.h (STRIP_NAME_ENCODING): Poison it.
13608         * output.h (STRIP_NAME_ENCODING): Remove.
13609         (default_strip_name_encoding): Declare.
13610         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
13611         * target.h (strip_name_encoding): New.
13612         * varasm.c (default_strip_name_encoding): New.
13613
13614         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
13615         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
13616         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
13617         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
13618         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
13619         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
13620         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
13621         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
13622         config/v850/v850.h: Use the hook, not the macro.
13623
13624         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
13625         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
13626         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
13627         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
13628         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
13629         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
13630         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
13631         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
13632         config/v850/v850.c, config/v850/v850.h:
13633         Move STRIP_NAME_ENCODING to out-of-line function and add
13634         TARGET_STRIP_NAME_ENCODING.
13635
13636         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
13637         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
13638         with TARGET_STRIP_NAME_ENCODING referencing existing function;
13639         make function static.
13640
13641         * xcoffout.c: Include target.h
13642         * Makefile.in (xcoffout.o): Update.
13643
13644         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
13645         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
13646         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
13647         reloc argument unused.
13648         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
13649
13650         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
13651         STRIP_NAME_ENCODING docs.
13652
13653 2002-05-19  Andreas Jaeger  <aj@suse.de>
13654
13655         * gengenrtl.c: Add prototype for excluded_rtx.
13656
13657         * real.h: Add prototype for exact_real_truncate.
13658
13659 2002-05-18  Richard Henderson  <rth@redhat.com>
13660
13661         * system.h (ENCODE_SECTION_INFO): Poison it.
13662         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
13663         * target.h (encode_section_info): New.
13664         * varasm.c (make_decl_rtl, output_constant_def): Use it.
13665         * hooks.c (hook_tree_int_void): New.
13666         * hooks.h: Declare it.
13667
13668         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
13669         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
13670         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
13671         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
13672         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
13673         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
13674         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
13675         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
13676         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
13677         config/mcore/mcore-protos.h, config/mcore/mcore.c,
13678         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
13679         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
13680         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
13681         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
13682         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
13683         referencing existing function.  Make function static.
13684
13685         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
13686         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
13687         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
13688         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
13689         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
13690         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
13691         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
13692         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
13693         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
13694         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
13695         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
13696         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
13697         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
13698         Move ENCODE_SECTION_INFO to out-of-line function and add
13699         TARGET_ENCODE_SECTION_INFO.
13700
13701         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
13702         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
13703
13704         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
13705         from SUBTARGET_*
13706         (switch_to_section): Replace in_rdata case with in_readonly_data.
13707
13708         * config/h8300/h8300.c (h8300_encode_label): Make static.
13709         * config/h8300/h8300-protos.h: Update.
13710
13711         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
13712         from rs6000_encode_section_info; make static.
13713         (rs6000_xcoff_encode_section_info): New.
13714
13715         * config/v850/v850.c (v850_encode_data_area): Make static.
13716         * config/v850/v850-protos.h: Update.
13717
13718         * config/vax/vax.c: Include flags.h.
13719         (vms_select_section): Fix typo.
13720
13721         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
13722         ENCODE_SECTION_INFO docs.
13723
13724 2002-05-18  Richard Henderson  <rth@redhat.com>
13725
13726         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
13727         REGISTER_TARGET_PRAGMAS.
13728         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
13729
13730         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
13731
13732 2002-05-18  Richard Henderson  <rth@redhat.com>
13733
13734         * system.h (SELECT_RTX_SECTION): Poison.
13735         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
13736         * target.h (select_rtx_section): New.
13737         * varasm.c (output_constant_pool): Use it.
13738         (default_select_rtx_section, default_elf_select_rtx_section): New.
13739         * output.h: Declare them.
13740
13741         * config/darwin.h (SELECT_RTX_SECTION): Move ...
13742         * config/darwin.c (machopic_select_rtx_section): ... here.
13743         * config/darwin-protos.h: Update.
13744
13745         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
13746         * config/nextstep.c (machopic_select_rtx_section): ... here.
13747         (nextstep_select_section): Rename variable to avoid macro clash.
13748         * config/nextstep-protos.h: Update.
13749
13750         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
13751         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
13752         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
13753         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
13754         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
13755         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
13756         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
13757         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
13758         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
13759         (SELECT_RTX_SECTION): Remove.
13760
13761         * config/darwin.h, config/elfos.h, config/nextstep.h,
13762         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
13763         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
13764         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
13765         config/sparc/lynx.h, config/xtensa/xtensa.c
13766         (TARGET_ASM_SELECT_RTX_SECTION): New.
13767
13768         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
13769         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
13770         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
13771         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
13772         (ia64_aix_select_rtx_section): New.
13773         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
13774         redefining.
13775         * config/mips/mips.c (mips_select_rtx_section): Make static.
13776         Support ELF SHF_MERGE features.
13777         * config/mips/mips-protos.h: Update.
13778         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
13779         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
13780         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
13781         make static, fall back to default_elf_select_rtx_section.
13782         * config/rs6000/rs6000-protos.h: Update.
13783         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
13784         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
13785         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
13786         * config/romp/romp.c (romp_select_rtx_section): New.
13787         * config/s390/s390.c (s390_select_rtx_section): New.
13788         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
13789         declarations before target macro definition.
13790         (xtensa_emit_call): Use static buffer.
13791         (xtensa_select_rtx_section): New.
13792         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
13793         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
13794         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
13795
13796         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
13797         SELECT_RTX_SECTION docs.
13798
13799 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
13800
13801         * i386.md (movsi/movdi): Fix template.
13802         (sse2 patterns): Set attributes consistently.
13803
13804         * i386.md (pushqi2, ashrqi_*): Fix constraint.
13805
13806 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
13807
13808         * optabs.c (complex_part_zero_p): New.
13809         * (expand_cmplxdiv_straight): Use it.
13810         * (expand_cmplxdiv_wide): Ditto.
13811         * (expand_binop): Ditto.
13812
13813 2002-05-18  Richard Henderson  <rth@redhat.com>
13814
13815         * final.c (HAVE_READONLY_DATA_SECTION): New.
13816         (shorten_branches): Use it instead of ifdefs.
13817         * varasm.c (enum in_section): Add in_readonly_data.
13818         (text_section, data_section): Tidy.
13819         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
13820
13821         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
13822         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
13823         (READONLY_DATA_SECTION): Don't undef.
13824
13825         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
13826         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
13827         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
13828
13829         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
13830         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
13831         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
13832         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
13833
13834         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
13835         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
13836         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
13837         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
13838         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
13839         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
13840         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
13841         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
13842         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
13843
13844         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
13845         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
13846         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
13847         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
13848         config/pa/pa64-hpux.h, config/sparc/litecoff.h
13849         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
13850
13851         * config/elfos.h, config/netware.h, config/svr3.h,
13852         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
13853         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
13854         config/h8300/h8300.h, config/i386/i386-interix.h,
13855         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
13856         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
13857
13858         * config/elfos.h, config/netware.h, config/svr3.h,
13859         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
13860         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
13861         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
13862         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
13863
13864         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
13865         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
13866         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
13867         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
13868         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
13869         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
13870         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
13871         config/rs6000/sysv4.h, config/v850/v850.h
13872         (EXTRA_SECTIONS): Remove in_const/in_rdata.
13873         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
13874
13875         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
13876         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
13877         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
13878         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
13879         * config/alpha/alpha.c (alpha_start_function): Likewise.
13880         (alpha_write_linkage): Likewise.
13881         * config/m32r/m32r.c (m32r_select_section): Likewise.
13882         * config/m88k/m88k.c (m88k_select_section): Likewise.
13883         * config/mips/mips.c (mips_select_rtx_section): Likewise.
13884         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
13885         (rs6000_elf_select_section): Likewise.
13886         * config/v850/v850.c (v850_select_section): Likewise.
13887
13888         * config/1750a/1750a.h, config/i860/sysv3.h
13889         (READONLY_DATA_SECTION_ASM_OP): New.
13890         READONLY_DATA_SECTION_ASM_OP.
13891         * config/i386/interix.c, config/i386/winnt.c
13892         (i386_pe_unique_section): Always use .rdata prefix.
13893         * config/pa/som.h (readonly_data): Always switch to read-only section.
13894         (READONLY_DATA_SECTION): Predicate on flag_pic.
13895         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
13896         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
13897         (READONLY_DATA_SECTION): Update.
13898
13899 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
13900
13901         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
13902         is used without -Wformat.
13903         * c-common.h (warn_format_zero_length): Declare extern.
13904         * c-decl.c (warn_options): Add "format-zero-length".
13905         * c-format.c (warn_format_zero_length): Declare.
13906         (set_Wformat): Set warn_format_zero_length for -Wformat.
13907         (check_format_info): Only warn about zero-length formats if
13908         warn_format_zero_length is true.  Include the format type
13909         name in the warning message.
13910         * doc/invoke.texi: Document -Wformat-zero-length.
13911         * testsuite/gcc.dg/format/zero-length-1.c: New test.
13912
13913 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
13914
13915         * timevar.c: Fix formatting.
13916         * tlink.c: Likewise.
13917         * toplev.c: Likewise.
13918         * tree-dump.c: Likewise.
13919         * tree-inline.c: Likewise.
13920
13921 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
13922
13923         * cppinit.c (cpp_post_options): If preprocessed, turn off
13924         traditional.  If traditional, turn off column numbers.
13925         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
13926         * cpptrad.c (handle_newline): Update line_base.
13927         (skip_comment): Handle -Wcomment.
13928
13929 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
13930
13931         * cppinit.c (struct builtin): Remove unused fields.
13932         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
13933         (operator_array): New - was second half of builtin_array.
13934         (init_builtins): Simplify loop over builtin_array/operator_array.
13935
13936 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
13937
13938         * defaults.h (UNIQUE_SECTION): Remove.
13939         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
13940
13941 2002-05-17  Richard Henderson  <rth@redhat.com>
13942
13943         * expr.c (init_expr_once): Don't use start/end_sequence.
13944         Use rtx_alloc instead of emit_insn.
13945         * toplev.c (lang_dependent_init): Run init_expr_once here ...
13946         (lang_independent_init): ... not here.
13947
13948 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
13949
13950         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
13951
13952 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13953
13954         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
13955         for fixed registers, possibly used for global register variables.
13956         (initial_elimination_offset, avr_output_function_prologue,
13957         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
13958
13959 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
13960
13961         * Makefile.in: Update for cpptrad.c.
13962         * cpphash.h (struct cpp_buffer): New members for buffer
13963         overlays.
13964         (struct cpp_reader): New members for traditional output.
13965         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
13966         * cppinit.c (cpp_create_reader): Set trad_line.
13967         (cpp_destroy): Free trad_out_base if used.
13968         (cpp_read_main_file): Overlay an empty buffer if traditional.
13969         (cpp_finish_options): Don't do builtins.
13970         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
13971         (cpp_handle_option): Handle it.
13972         * cpplex.c (continue_after_nul): New.
13973         (_cpp_lex_direct): Use handle_nul.
13974         * cpplib.h (struct cpp_options): New traditional option.
13975         * cpptrad.c: New file.
13976
13977 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
13978
13979         * c-common.c (c_common_init_options): Use C89 for Objective-C,
13980         and set the options flag.
13981         * cppinit.c (lang_flags): Remove objc.
13982         (lang_defaults): Remove OBJC and OBJCXX.
13983         (set_lang): Update.
13984         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
13985         (cpp_handle_option): Remove -+ and -lang-objc++.
13986         For ObjC, just set a flag.
13987         (print_help): Update.
13988         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
13989
13990 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13991
13992         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
13993         bootstrap with -mips3.
13994
13995 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
13996
13997         * final.c: Fix formatting.
13998         * fix-header.c: Likewise.
13999         * flow.c: Likewise.
14000         * fold-const.c: Likewise.
14001         * function.c: Likewise.
14002
14003 2002-05-17  David S. Miller  <davem@redhat.com>
14004
14005         PR c/6689, PR optimization/6615
14006         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
14007         and make it a pointer to rtx.  Update comments.
14008         (update_equiv_regs): When scanning for equivalences, record
14009         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
14010         it while making the equiv replacements.
14011
14012 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14013
14014         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
14015
14016 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
14017
14018         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
14019         when encoding visibility into SYMBOL_REF_FLAG.
14020
14021 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
14022
14023         * expr.c (force_operand): Fix reversed move.
14024
14025 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
14026
14027         * doc/install.texi (Testing): Mention two common DejaGnu warnings
14028         that can be ignored.
14029
14030 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14031
14032         * doc/install.texi (Final install): Recommend to install into a
14033         "clean" target directory.
14034
14035 2002-05-17  Richard Henderson  <rth@redhat.com>
14036
14037         * config/ia64/ia64.md: Use braced strings instead of quoted strings
14038         for code blocks.  Tidy whitespace.
14039
14040 2002-05-17  Richard Henderson  <rth@redhat.com>
14041
14042         * hooks.c (hook_tree_bool_false): New.
14043         * hooks.h: Declare it.
14044         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
14045         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
14046         * target.h (select_section, unique_section): New.
14047         (in_small_data_p): New.
14048         * varasm.c (resolve_unique_section): Use hooks instead of macros.
14049         (variable_section, output_constant_def_contents): Likewise.
14050         (default_select_section, default_unique_section): New.
14051         (categorize_decl_for_section, default_elf_select_section): New.
14052         * output.h: Declare them.
14053
14054         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
14055         (TARGET_ASM_SELECT_SECTION): New.
14056         (SELECT_SECTION): Move ...
14057         * config/darwin.c (machopic_select_section): ... here.
14058         * config/darwin-protos.h: Update.
14059
14060         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
14061         (SELECT_SECTION): Move ...
14062         * config/nextstep.c (nextstep_select_section): ... here.
14063         * config/nextstep-protos.h: Update.
14064
14065         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
14066         (TARGET_ASM_SELECT_SECTION): New.
14067         * config/svr3.h (SELECT_SECTION): Remove.
14068
14069         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
14070         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
14071         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
14072         (alpha_encode_section_info): Use it.
14073         * config/alpha/alpha-protos.h: Update.
14074         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
14075         (SELECT_SECTION, UNIQUE_SECTION): Remove.
14076         (TARGET_ASM_SELECT_SECTION): New.
14077         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
14078
14079         * config/arm/pe.h (UNIQUE_SECTION): Remove.
14080         (TARGET_ASM_UNIQUE_SECTION): New.
14081
14082         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
14083         (avr_unique_section): Rename from unique_section; make static.
14084         * config/avr/avr-protos.h: Update.
14085         * config/avr/avr.h (UNIQUE_SECTION): Remove.
14086
14087         * config/c4x/c4x.h (SELECT_SECTION): Remove.
14088
14089         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
14090         (TARGET_ASM_UNIQUE_SECTION): New.
14091         * config/i386/i386-interix.h: Likewise.
14092         * config/i386/win32.h: Likewise.
14093         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
14094         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
14095         * config/i386/sco5.h (SELECT_SECTION): Remove.
14096         (TARGET_ASM_SELECT_SECTION): New.
14097         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
14098
14099         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
14100         instead of SELECT_SECTION.
14101         * config/m68k/dpx2.h: Likewise.
14102         * config/rs6000/lynx.h: Likewise.
14103
14104         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
14105         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
14106         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
14107         (ia64_in_small_data_p): New.
14108         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
14109         (ia64_aix_select_section, ia64_aix_unique_section): New.
14110         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
14111         (SELECT_SECTION, UNIQUE_SECTION): Remove.
14112
14113         * config/m32r/m32r.h (SELECT_SECTION): Remove.
14114         (TARGET_ASM_SELECT_SECTION): New.
14115         * config/m32r/m32r.c (m32r_select_section): Take align argument.
14116         * config/m32r/m32r-protos.h: Update.
14117
14118         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
14119         (SELECT_SECTION): Move ...
14120         * config/m88k/m88k.c (m88k_select_section): ... here.
14121
14122         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
14123         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
14124         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
14125         (mcore_unique_section): Make static.
14126         * config/mcore/mcore-protos.h: Update.
14127
14128         * config/mips/elf.h (UNIQUE_SECTION): Remove.
14129         (TARGET_ASM_UNIQUE_SECTION): New.
14130         * config/mips/elf64.h: Likewise.
14131         * config/mips/iris6gld.h: Likewise.
14132         * config/mips/linux.h: Likewise.
14133         * config/mips/mips-protos.h: Update.
14134         * config/mips/mips.c (mips_select_section): Add align argument.
14135         * config/mips/mips.h (SELECT_SECTION): Remove.
14136         (TARGET_ASM_SELECT_SECTION): New.
14137
14138         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
14139         * config/mmix/mmix.c (mmix_select_section): Remove.
14140         (mmix_unique_section): Remove.
14141         * config/mmix/mmix-protos.h: Update.
14142
14143         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
14144         (SELECT_SECTION): Move ...
14145         * config/pa/pa.c (pa_select_section): ... here.
14146         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
14147
14148         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
14149         from rs6000_select_section and make static.
14150         (rs6000_elf_unique_section): Similarly.
14151         (rs6000_xcoff_select_section): From xcoff.h.
14152         (rs6000_xcoff_unique_section): Likewise.
14153         * config/rs6000/rs6000-protos.h: Update.
14154         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
14155         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
14156         * config/rs6000/xcoff.h: Likewise.
14157
14158         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
14159         (SELECT_SECTION): Move ...
14160         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
14161
14162         * config/v850/v850.h (SELECT_SECTION): Move ...
14163         * config/v850/v850.c (v850_select_section): ... here.
14164         (TARGET_ASM_SELECT_SECTION): New.
14165
14166         * config/vax/vms.h (SELECT_SECTION): Move ...
14167         * config/vax/vax.c (vms_select_section): ... here.
14168         (TARGET_ASM_SELECT_SECTION): New.
14169
14170         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
14171         for the target hooks.
14172
14173 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
14174
14175         * config/arm/arm.c (emit_multi_reg_push): Do not set
14176         RTX_FRAME_RELATED_P on the SEQUENCE.
14177
14178 2002-05-16  Richard Henderson  <rth@redhat.com>
14179
14180         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
14181         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
14182
14183 2002-05-16  Richard Henderson  <rth@redhat.com>
14184
14185         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
14186
14187         * config/ia64/ia64.c (saveable_obstack): Do not declare.
14188
14189 2002-05-16  Richard Henderson  <rth@redhat.com>
14190
14191         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
14192         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
14193         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
14194         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
14195         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
14196         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
14197         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
14198         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
14199         Revert "Basic block renumbering removal", and two followup patches.
14200
14201 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
14202
14203         * lcm.c (optimize_mode_switching): Revert previous change.
14204
14205 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14206
14207         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
14208         with only extant block numbers.
14209
14210 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
14211
14212         * lcm.c (optimize_mode_switching): Fix typo.
14213
14214 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14215
14216         * flow.c (calculate_global_regs_live): Queue blocks in program order.
14217
14218 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14219
14220         * doc/install.texi (Configuration): Document PWDCMD.
14221
14222 2002-05-16  Dale Johannesen  <dalej@apple.com>
14223
14224         * combine.c (cant_combine_insn_p):  Reenable combinations
14225         involving hard regs unless CLASS_LIKELY_SPILLED_P.
14226
14227 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
14228
14229         * c-common.c (cb_register_builtins): Handle more built-ins
14230         here rather than in gcc.c specs.
14231         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
14232         (cpp_options): Pass -O flags even when only preprocessing.
14233         * toplev.c (set_fast_math_flags): New prototype.
14234         (fast_math_flags_set_p): New.
14235         (set_no_fast_math_flags): Remove.
14236         (decode_f_option): Update.
14237         * toplev.h (set_fast_math_flags): Update.
14238         (fast_math_flags_set_p): New.
14239         (set_no_fast_math_flags): Remove.
14240 config:
14241         * c4x/c4x.c (c4x_override_options): Update.
14242
14243 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
14244
14245         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
14246         Default-define here.
14247         (builtin_define_with_value): Can now wrap the expansion in
14248         quotation marks if such is wanted.
14249         (cb_register_builtins): Update calls to builtin_define_with_value.
14250         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
14251         here.
14252         (c_common_init): Set options->stdc_0_in_system_headers.
14253         * c-lex.h: Update prototype of builtin_define_with_value.
14254         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
14255         and REGISTER_PREFIX.
14256
14257         * cppinit.c (VERS, ULP, C, X): Kill.
14258         (builtin_array): Remove entries for __VERSION__,
14259         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
14260         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
14261         a constant.
14262         (init_builtins): Kill off a bunch of now-dead code.
14263         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
14264         -fno-leading-underscore.
14265         (cpp_handle_option): Remove code to set user_label_prefix.
14266         (cpp_post_options): Likewise.
14267
14268         * cpplib.h (struct cpp_options): Remove user_label_prefix.
14269         (stdc_0_in_system_headers): New.
14270         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
14271         stdc_0_in_system_headers) too to decide the value of __STDC__.
14272
14273         * tradcpp.c (user_label_prefix): Kill.
14274         (main): Remove code handling -f(no-)leading-underscore.
14275         (initialize_builtins): Don't define __REGISTER_PREFIX__
14276         or __USER_LABEL_PREFIX__.
14277         (install_value): Wrap compound statement in dummy loop so the
14278         macro works properly in an if statement.
14279
14280
14281 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
14282
14283         * loop.h (struct loop_info): Add member has_prefetch.
14284         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
14285         (prescan_loop): Initialize has_prefetch.
14286         (struct prefetch_info): Change prefetch_in_loop and
14287         prefetch_before_loop from bit fields to ints.
14288         (emit_prefetch_instructions): Several small fixes.
14289         (check_dbra_loop): Don't reverse loop that uses prefetch.
14290
14291 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14292
14293         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
14294         * configure.in: Likewise.
14295         * fixinc/check.tpl: Likewise.
14296         * fixinc/fixinc.dgux: Likewise.
14297         * fixinc/fixinc.svr4: Likewise.
14298         * fixinc/fixinc.winnt: Likewise.
14299         * fixinc/fixincl.sh: Likewise.
14300         * fixproto: Likewise.
14301         * configure: Regenerate.
14302
14303 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14304
14305         Basic block renumbering removal:
14306         * basic_block.h (struct basic_block_def): Renamed index to sindex,
14307         added prev_bb and next_bb fields.
14308         (n_basic_blocks): Renamed to num_basic_blocks.
14309         (last_basic_block): New, index of last basic block.
14310         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
14311         traversing basic block chain.
14312         (BLOCK_NUM): index -> sindex.
14313         (create_basic_block_structure, create_basic_block): Declaration changed.
14314         (debug_num2bb): Declare.
14315         (expunge_block_nocompact): Declaration removed.
14316         (link_block, unlink_block, compact_blocks): Declare.
14317         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
14318         * cfg.c (entry_exit_blocks): Initialize new fields.
14319         (clear_edges, alloc_block, expunge_block, cached_make_edge,
14320         redirect_edge_pred, dump_flow_info, dump_edge_info,
14321         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
14322         free_aux_for_edges): Modified.
14323         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
14324         (expunge_block_nocompact): Removed.
14325         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
14326         find_unreachable_blocks, create_edge_list, print_edge_list,
14327         verify_edge_list, flow_edge_list_print, remove_fake_successors,
14328         remove_fake_edges, flow_reverse_top_sort_order_compute,
14329         flow_depth_first_order_compute, flow_preorder_transversal_compute,
14330         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
14331         flow_dfs_compute_reverse_execute): Modified.
14332         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
14333         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
14334         Modified.
14335         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
14336         merge_blocks_move_predecessor_nojumps,
14337         merge_blocks_move_successor_nojumps, merge_blocks,
14338         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
14339         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
14340         * cfglayout.c (skip_insns_after_block, label_for_bb,
14341         record_effective_endpoints, scope_to_insns_finalize,
14342         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
14343         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
14344         cfg_layout_duplicate_bb): Modified.
14345         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
14346         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
14347         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
14348         flow_loops_find, flow_loop_outside_edge_p): Modified.
14349         * cfgrtl.c (create_basic_block_structure, create_basic_block,
14350         flow_delete_block, compute_bb_for_insn, split_block,
14351         try_redirect_by_replacing_jump, redirect_edge_and_branch,
14352         force_nonfallthru_and_redirect, tidy_fallthru_edge,
14353         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
14354         commit_edge_insertions, commit_edge_insertions_watch_calls,
14355         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
14356         purge_all_dead_edges): Modified.
14357         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
14358         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
14359         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
14360         Modified.
14361         * conflict.c (conflict_graph_compute): Modified.
14362         * df.c (FOR_ALL_BBS): Removed.
14363         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
14364         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
14365         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
14366         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
14367         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
14368         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
14369         * final.c (compute_alignments, final_scan_insn): Modified.
14370         * flow.c (verify_local_live_at_start, update_life_info,
14371         update_life_info_in_dirty_blocks, free_basic_block_vars,
14372         delete_noop_moves, calculate_global_regs_live,
14373         initialize_uninitialized_subregs, allocate_bb_life_data,
14374         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
14375         mark_used_reg, count_or_remove_death_notes): Modified.
14376         * function.c (thread_prologue_and_epilogue_insns): Modified.
14377         * gcse.c (struct null_pointer_info): Change typo of current_block
14378         to basic_block.
14379         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
14380         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
14381         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
14382         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
14383         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
14384         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
14385         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
14386         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
14387         pre_delete, one_pre_gcse_pass, compute_transpout,
14388         invalidate_nonnull_info, delete_null_pointer_checks_1,
14389         free_code_hoist_mem, compute_code_hoist_vbeinout,
14390         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
14391         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
14392         compute_store_table, build_store_vectors, insert_insn_start_bb,
14393         insert_store, replace_store_insn, free_store_memory, store_motion):
14394         Modified.
14395         * global.c (global_alloc, global_conflicts, mark_elimination,
14396         build_insn_chain): Modified.
14397         * graph.c (print_rtl_graph_with_bb): Modified.
14398         * haifa-sched.c (sched_init): Modified.
14399         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
14400         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
14401         if_convert): Modified.
14402         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
14403         compute_insert_delete, pre_edge_lcm, compute_available,
14404         compute_farthest, compute_nearerout, compute_rev_insert_delete,
14405         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
14406         Modified.
14407         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
14408         * loop.c (loop_dump_aux): Modified.
14409         * predict.c (combine_predictions_for_insn, estimate_probability,
14410         last_basic_block_p, process_note_prediction, process_note_predictions,
14411         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
14412         expensive_function_p, estimate_bb_frequencies,
14413         compute_function_frequency): Modified.
14414         * print-rtl.c (print_rtx): Modified.
14415         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
14416         get_exec_counts, compute_branch_probabilities, compute_checksum,
14417         branch_prob, find_spanning_tree): Modified.
14418         * recog.c (split_all_insns, peephole2_optimize): Modified.
14419         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
14420         convert_regs_1, convert_regs_2, convert_regs): Modified.
14421         * regclass.c (scan_one_insn, regclass): Modified.
14422         * regmove.c (mark_flags_life_zones, regmove_optimize,
14423         combine_stack_adjustments): Modified.
14424         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
14425         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
14426         * reorg.c (dbr_schedule): Modified.
14427         * resource.c (find_basic_block, init_resource_info): Modified.
14428         * sbitmap.c (sbitmap_intersection_of_succs,
14429         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
14430         sbitmap_union_of_preds): Modified.
14431         * sched-deps.c (init_dependency_caches): Modified.
14432         * sched-ebb.c (schedule_ebbs): Modified.
14433         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
14434         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
14435         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
14436         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
14437         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
14438         ssa_const_prop): Modified.
14439         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
14440         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
14441         * ssa.c (remove_phi_alternative, find_evaluations,
14442         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
14443         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
14444         make_regs_equivalent_over_bad_edges,
14445         make_equivalent_phi_alternatives_equival,
14446         compute_conservative_reg_partition,
14447         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
14448         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
14449         Modified.
14450
14451 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
14452
14453         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
14454
14455 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
14456
14457         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
14458         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
14459         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
14460         calling CONSTANT_POOL_ADDRESS_P.
14461         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
14462         to decide whether to define __arm__ or __thumb.
14463         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
14464         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
14465
14466 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
14467
14468         * config/arc/arc.h (CPP_PREDEFINES): Remove.
14469         (CPP_SPEC): Update.
14470         (TARGET_CPU_CPP_BUILTINS): New.
14471
14472 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
14473
14474         * cpphash.h (cpp_macro): Move here, and make expansion a union.
14475         * cppmacro.c (cpp_macro): Remove.
14476         (enter_macro_context, replace_args, warn_of_redefinition,
14477         _cpp_create_definition, cpp_macro_definition): Update.
14478
14479 2002-05-16  Jason Merrill  <jason@redhat.com>
14480
14481         * config/mips/mips.c (mips_output_external): Don't do sdata
14482         optimization for a variable with DECL_COMDAT set.
14483
14484 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
14485
14486         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
14487         Cleanups for accepting modifiers on pointers.
14488         Fix predicate typos.
14489         Allow long pointers as well as int pointers.
14490
14491 2002-05-15  Richard Henderson  <rth@redhat.com>
14492
14493         * varasm.c (merge_weak): Remove special case for extern and common.
14494
14495 2002-05-15  Matt Hiller  <hiller@redhat.com>
14496
14497         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
14498         XFAILing.
14499         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
14500         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
14501         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
14502         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
14503         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
14504         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
14505
14506 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
14507
14508         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
14509
14510 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
14511
14512         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
14513         ("altivec_mfvscr"): Read from VSCR.
14514
14515         Add vscr sets for the following insns: altivec_vctuxs,
14516         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
14517         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
14518         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
14519         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
14520         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
14521         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
14522         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
14523         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
14524         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
14525         altivec_vsum2sws, altivec_vsumsws.
14526
14527         * config/rs6000/rs6000.h: Add VSCR fixed register.
14528         (CALL_REALLY_USED_REGISTERS): Add vscr.
14529         (CALL_USED_REGISTERS): Same.
14530         (FIXED_REGISTERS): Same.
14531         (REG_ALLOC_ORDER): Same.
14532         (reg_class): Add VSCR_REGS.
14533         (REG_CLASS_NAMES): Same.
14534         (REG_CLASS_CONTENTS): Same.
14535         (VSCR_REGNO): New.
14536         (REGISTER_NAMES): Add vscr.
14537         (DEBUG_REGISTER_NAMES): Same.
14538         (ADDITIONAL_REGISTER_NAMES): Same.
14539         (FIRST_PSEUDO_REGISTER): Increment.
14540         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
14541
14542 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
14543
14544         * fold-const.c (fold): Fix a typo.
14545
14546 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
14547
14548         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
14549         comparison against the highest or lowest integer value before
14550         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
14551         transformation and that of an unsigned comparison against 0
14552         right after.
14553
14554 2002-05-15  Richard Henderson  <rth@redhat.com>
14555
14556         * varasm.c (merge_weak): Error for any weakening after definition.
14557         Adjust weakening after use warning to catch more cases.
14558         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
14559         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
14560
14561 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
14562
14563         * invoke.texi (-malign-double): Re-add lost warning.
14564
14565         * i386-protos.h (x86_output_mi_thunk): Declare.
14566         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
14567         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
14568
14569         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
14570         when flag_asynchronous_unwind_tables is set.
14571
14572         * flags.h (flag_reorder_functions): Declare.
14573         * function.c (prepare_function_start): Initialize frequnecy.
14574         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
14575         * Makefile.in (predict.o): Add dependency on target.h and params.h
14576         * defaults.h (HOT_TEXT_SECTION_NAME,
14577         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
14578         * predict.c (choose_function_section): New function.
14579         (estimate_bb_frequencies): Use it.
14580         * toplev.c (flag_reorder_functions): New global variable.
14581         (lang_independent_options): New.
14582         (parse_options_and_default_flags): Set.
14583         * varasm.c (assemble_start_function): Bypass functdion alignment
14584         for never executed functions.
14585         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
14586         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
14587         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
14588         Document.
14589
14590         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
14591
14592         * predict.c: Inlude profile.h
14593         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
14594         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
14595         Use the information about maximal counter in the program.
14596
14597         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
14598
14599         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
14600         probably_never_executed_bb_p): New functions.
14601         * cfgcleanup.c (outgoing_edges_match): Use them.
14602         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
14603         (maybe_hot_bb_p, probably_cold_bb_p,
14604         probably_never_executed_bb_p): New functions.
14605
14606         * function.h (function): Add new field function_frequency.
14607         * predict.c (compute_function_frequency): New function.
14608         (estimate_probability): Call it.
14609
14610 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
14611
14612         PR optimization/5172, optimization/5200
14613         * gcse.c (gcse_main): Disable store_motion.
14614
14615 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
14616
14617         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
14618         (c_common_nodes_and_builtins): Use it.
14619         (builtin_define_with_value): New function.
14620         (cb_register_builtins): Define __SIZE_TYPE__,
14621         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
14622         using builtin_define_with_value.  Use consistent notation when
14623         defining __GXX_WEAK__.
14624         (WCHAR_TYPE_SIZE): Don't redefine.
14625         (combine_strings): Don't use WCHAR_TYPE_SIZE.
14626
14627         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
14628         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
14629         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
14630         * tradcpp.c (initialize_builtins): Likewise.
14631         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
14632
14633         * c-lex.h (builtin_define_with_value): Prototype.
14634         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
14635         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
14636         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
14637
14638         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
14639         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
14640         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
14641         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
14642         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
14643         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
14644         config/sparc/sol2-bi.h, config/sparc/sparc.h:
14645         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
14646         to __SIZE_TYPE__ etc from all spec strings. When this makes
14647         extra specs empty, delete them.
14648
14649 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14650
14651         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
14652         for PA8000 or generating dwarf2 call frame information.
14653         (output_call): Remove DO_FRAME_NOTES check from return pointer
14654         optimization.
14655         (following_call): Return 0 when scheduling for PA8000 or generating
14656         dwarf2 call frame information.  Revise comment.
14657
14658 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
14659
14660 config/alpha:
14661         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
14662         and __IEEE_FP_INEXACT as appropriate.
14663         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
14664         (CPP_SPEC): Remove ieee defines.
14665         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
14666
14667 2002-05-14  Richard Henderson  <rth@redhat.com>
14668
14669         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
14670         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
14671
14672 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
14673
14674         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
14675         (CPP_SPEC): Update.
14676         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
14677         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
14678         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
14679         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
14680         (EXTRA_SPECS): Update.
14681         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
14682         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
14683         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
14684         define TARGET_OS_CPP_BUILTINS if necessary.
14685
14686 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
14687
14688         * gcc.c (cpp_options): Must pass -m* and -f* options
14689         to the front end even when only preprocessing.
14690         (cc1_options): Remove redundant -lang-c.
14691         * tradcpp.c (main): Ignore -m options.
14692 objc:
14693         * lang-specs.h: Similarly.
14694
14695 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
14696
14697         * genautomata.c (transform_3): Add code for transformation
14698         `(A,B,...)+C -> A+C,B,...'.
14699
14700 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
14701
14702         * final.c (end_final): Do not output profile_arcs constructor, when
14703         no functions are instrumented.
14704
14705 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
14706
14707         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
14708
14709 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14710
14711         * doc/install.texi: Remove special markup originally required for
14712         HTML generation with texi2html.
14713
14714 2002-05-14  Andreas Schwab  <schwab@suse.de>
14715
14716         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
14717         SELECT_SECTION.
14718         (UNIQUE_SECTION): Define to get small data correctly.
14719
14720         * varasm.c (resolve_unique_section): Add third parameter
14721         flag_function_or_data_sections and use it instead of
14722         flag_function_sections.
14723         (assemble_start_function): Pass flag_function_sections.
14724         (asm_emit_uninitialised): Pass flag_data_sections.
14725         (assemble_variable): Likewise.
14726
14727 2002-05-14  Richard Henderson  <rth@redhat.com>
14728
14729         * config/i386/i386.md: Use define_constants for unspec numbers.
14730         * config/i386/i386.c: Likewise.
14731
14732 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
14733
14734         * doc/contrib.texi: Update my entry.
14735
14736 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
14737
14738         * fixinc/inclhack.def (winidss_valist): Limit applicability.
14739         * fixinc/fixincl.x: Regenerated.
14740         * fixinc/tests/base/math.h: Update.
14741         * fixinc/tests/base/testing.h: Likewise.
14742
14743 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
14744
14745         * genattr.c (gen_attr): Don't emit a comma after the last
14746         enumerator.
14747
14748 2002-05-13  Richard Henderson  <rth@redhat.com>
14749
14750         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
14751         by non-local gotos.
14752         * recog.c (peephole2_optimize): Likewise.
14753
14754 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
14755
14756         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
14757         input to O_BINARY.
14758
14759 2002-05-13  Jeffrey A Law  (law@redhat.com)
14760
14761         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
14762         Update prototype and callers.
14763         (propagate_one_insn): Stack pointer adjustments kill MEMs on
14764         the mem_set_list which reference the stack pointer, as do
14765         calls to constant functions as they may clobber outgoing
14766         argument space.
14767
14768         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
14769
14770         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
14771         (ia32_multipass_dfa_lookahead): New function.
14772
14773 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
14774
14775         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
14776         (translate_options): Remove 'V'.
14777         (process_command): Similarly.
14778 doc:
14779         * invoke.texi: Remove documentation of 'V'.
14780
14781 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
14782
14783         * config/s390/linux.h: Revert 2002-04-22 changes.
14784
14785 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
14786
14787         * config/fr30/fr30.md: Only allow splits of immediate loads
14788         if the destination is a register.
14789
14790 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
14791
14792         * Makefile.in (c-common.o, cppinit.o): Update.
14793         * c-common.c: Include except.h.
14794         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
14795         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
14796         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
14797         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
14798         CPP_PREDEFINES): Handle here.
14799 config:
14800         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
14801         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
14802         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
14803         TARGET_OS_CPP_BUILTINS.
14804         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
14805         (CPP_SPEC, EXTRA_SPECS): Update.
14806         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
14807         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
14808         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
14809         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
14810         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
14811 doc:
14812         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
14813         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
14814
14815 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
14816
14817         * emit-rtl.c (global_rtl): Update comment.
14818         (const_double_htab, const_double_htab_hash,
14819         const_double_htab_hash, lookup_const_double): New.
14820         (const_int_htab_hash, const_int_htab_eq): Remove const
14821         qualifiers, which cause tons of warnings with RTL checking on.
14822         (gen_rtx_CONST_DOUBLE): Deleted.
14823         (const_double_from_real_value): New function - bears some
14824         resemblance to the former immed_real_const_1.
14825         (immed_double_const): Moved here from varasm.c and
14826         simplified.
14827         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
14828         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
14829         (gen_rtx): Use immed_double_const.
14830         (init_emit_once): Initialize the const_double_htab.  Use
14831         REAL_VALUE_FROM_INT where possible.  Can now use
14832         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
14833         * varasm.c (struct varasm_status): Remove x_const_double_chain.
14834         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
14835         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
14836         (init_varasm_status, mark_varasm_status): Don't touch
14837         x_const_double_chain.
14838
14839         * output.h: Delete prototype for clear_const_double_mem.
14840         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
14841         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
14842         const_double_from_real_value, not immed_real_const_1, and use
14843         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
14844         CONST_DOUBLE_ATOF.
14845         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
14846         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
14847         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
14848         (gen_rtx_REG): Second arg is unsigned.
14849
14850         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
14851         (excluded_rtx): New, return true for CONST_DOUBLE.
14852         (genmacro): Write nothing for excluded codes.
14853         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
14854         * expr.c (expand_expr): Likewise.
14855         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
14856         CONST_DOUBLE_CHAIN.
14857         * toplev.c (rest_of_compilation): Don't call
14858         clear_const_double_mem.
14859
14860         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
14861         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
14862         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
14863         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
14864         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
14865         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
14866         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
14867         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
14868
14869 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14870
14871         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
14872
14873 2002-05-12  Tom Tromey  <tromey@redhat.com>
14874
14875         * tree.h (copy_node): Don't mention TREE_PERMANENT.
14876
14877 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
14878
14879         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
14880         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
14881         * gensupport.h: Prototype new routines.
14882         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
14883         use of printf.
14884         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
14885         (next_comma_elt): Use scan_comma_elt.
14886
14887         * config/i386/i386.md: Use new attribute notation to break up
14888         long lines in define_attr forms.
14889
14890 2002-05-12  Richard Henderson  <rth@redhat.com>
14891
14892         * expr.c (compress_float_constant): New.
14893         (emit_move_insn): Use it.
14894         (float_extend_from_mem): New.
14895         (init_expr_once): Initialize it.
14896         * real.c (exact_real_truncate): New.
14897
14898         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
14899         dropped into memory; penalize for size.
14900         (RTX_COSTS): FLOAT_EXTEND is free.
14901         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
14902         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
14903
14904 2002-05-12  Richard Henderson  <rth@redhat.com>
14905
14906         * profile.h (profile_info): Add missing extern to declaration.
14907         * profile.c (profile_info): Define it.
14908
14909 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14910
14911         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
14912         used for DImode and TImode.
14913
14914 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
14915
14916         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
14917         fake a newline.
14918
14919 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
14920
14921         * config/rs6000/rs6000.c (rs6000_default_long_calls,
14922         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
14923         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
14924         (rs6000_override_options): Handle -m(no-)longcall.
14925         (init_cumulative_args, output_mi_thunk): Check for both
14926         longcall and shortcall attributes on the function.
14927         (rs6000_attribute_table): Add "shortcall".
14928         (rs6000_handle_longcall_attribute): Update comment.
14929         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
14930         altivec_expand_ternop_builtin): Add default clauses to switches
14931         to silence warnings.
14932
14933         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
14934         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
14935         (TARGET_OPTIONS): Add longcall and no-longcall.
14936
14937         * config/rs6000/rs6000.md (call_nonlocal_sysv,
14938         call_value_nonlocal_sysv): Split by alternatives.  One pair
14939         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
14940         the call cookie.  The other pair accepts only LR/CTR and has
14941         no restriction.
14942
14943         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
14944         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
14945         tmake_file.
14946         * config/rs6000/rs6000-c.c: New file.
14947         * config/rs6000/t-rs6000-c-rule: New file.
14948         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
14949         Prototype rs6000_pragma_longcall.
14950
14951         * doc/extend.texi: Document shortcall attribute.
14952         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
14953
14954 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14955
14956         * reorg.c (dbr_schedule): Remove unnecessary test.
14957
14958 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
14959
14960         * i386.md (testsi to testqi spliters): New.
14961
14962         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
14963
14964         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
14965
14966         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
14967
14968         * basic-block.h: New flag EDGE_CAN_FALLTHRU
14969         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
14970         that can be made fallthru.
14971
14972         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
14973
14974         * cfglayout.c (cleanup_unconditional_jumps): New static function.
14975         (cfg_layout_initialize): Use it.
14976
14977 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14978
14979         * config/avr/avr.c (avr_mcu_types): Update supported devices.
14980         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
14981         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
14982
14983 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
14984
14985         * dbxout.c: Fix formatting.
14986         * dependence.c: Likewise.
14987         * df.c: Likewise.
14988         * diagnostic.c: Likewise.
14989         * doloop.c: Likewise.
14990         * dominance.c: Likewise.
14991         * doschk.c: Likewise.
14992         * dwarf2asm.c: Likewise.
14993         * dwarf2out.c: Likewise.
14994         * dwarfout.c: Likewise.
14995
14996 2002-05-10  Richard Henderson  <rth@redhat.com>
14997
14998         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
14999         Convert integers constants as needed.  Replace "nwords" field with
15000         "sizeof_bb".
15001         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
15002         * function.h: Fix typo in comment.
15003         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
15004
15005 2002-05-10  Roger Sayle  <roger@eyesopen.com>
15006
15007         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
15008         into the equivalent (signed char)c > 0.
15009
15010 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
15011
15012         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
15013         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
15014         (struct prefetch_info): Fix spelling of member bytes_accessed.
15015         (emit_prefetch_instructions): Make dump messages more regular;
15016         restructure code to add more dump messages; use new macros for
15017         heuristics. (There are no code generation changes in any of this).
15018
15019 2002-05-10  David S. Miller  <davem@redhat.com>
15020
15021         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
15022         (struct rtx_def): Update unchanging flag comment.
15023         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
15024         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
15025         to be handled to INSN too.
15026         (dbr_schedule): Likewise.
15027         * resource.c (next_insn_no_annul): Likewise.
15028
15029         * cse.c (rtx_cost): Remove multiplication by power of 2 special
15030         casing.
15031
15032 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15033
15034         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
15035         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
15036         (possibly) work around broken /bin/sh.
15037
15038 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15039
15040         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
15041         . as N64/N32 libgcc_s.so subdirs.
15042
15043 2002-05-10  David S. Miller  <davem@redhat.com>
15044
15045         * config/sparc/sparc.md: Use define_constants for unspec numbers.
15046
15047         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
15048         more accurately.
15049         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
15050         comment.
15051         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
15052         * doc/rtl.texi: Document these macros more accurately.
15053         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
15054         JUMP_INSNs and CALL_INSNs.
15055         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
15056         or INSN_FROM_TARGET_P if the code is appropriate.
15057
15058 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15059
15060         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
15061         before using SYMBOL_REF_FLAG (addr).
15062
15063         * config/avr/avr-protos.h (avr_io_address_p): Declare.
15064         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
15065         Make non-static.  Update all callers.
15066         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
15067         New insns to clear/set/test a single bit in I/O address space.
15068
15069 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15070
15071         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
15072
15073 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
15074
15075         * Makefile.in: Update.
15076         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
15077         builtin_define_std): New.
15078         (c_common_init): Register CPP builtins callback.
15079         * c-common.h (flag_iso, flag_undef): New.
15080         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
15081         * c-lex.c: Don't include target.h.
15082         (cb_register_builtins): Move to c-common.c.
15083         (init_c_lex): Don't register hook here.
15084         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
15085         (cpp_define, cpp_assert): Remove.
15086         * gcc.c (cc1_options): Pass -undef to front end.
15087         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
15088         (TARGET_INITIALIZER): Update.
15089         * target.h (struct cpp_reader): Don't predeclare.
15090         (struct gcc_target): Remove cpp builtin hook.
15091         * tree.c (default_register_cpp_builtins): Remove.
15092 doc:
15093         * tm.texi: Update.
15094
15095 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
15096
15097         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
15098
15099 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15100
15101         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
15102         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
15103
15104 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
15105
15106         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
15107         * config/sparc/libgcc-sparc-glibc.ver: New file.
15108         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
15109         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
15110
15111 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
15112
15113         PR target/6429
15114         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
15115         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
15116         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
15117         base multilibs.
15118         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
15119         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
15120         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
15121         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
15122
15123 2002-05-09  Richard Henderson  <rth@redhat.com>
15124
15125         * config/ia64/ia64.md: Use define_constants for unspec numbers.
15126         * config/ia64/ia64.c: Likewise.
15127
15128 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
15129
15130         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
15131         (save_restore_insns): Likewise.
15132         (mips_expand_prologue, mips_expand_epilogue): Update callers.
15133         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
15134
15135 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
15136
15137         * athlon.md, k6.md, pentium.md, ppro.md): New files.
15138         * i386.md: Move scheduling information into new files.
15139
15140         * i386.md (type attribute): Add "rotate" for rotate insns.
15141         (rotate insns): Set type to "rotate".
15142         (various attributes and function units): Treat rotate like shift.
15143         (pent_pair attribute): Only rotates by one bit position are
15144         pairable.
15145         (sbb insns): Explicitly set pent_pair attribute on a couple
15146         that were missing it.
15147
15148 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
15149
15150         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
15151         make sure that buffer starts on odd word address.
15152         (sh_va_arg): Skip odd fp registers when reading a double precision
15153         value.
15154
15155 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
15156
15157         * tree.h (preserve_data, object_permanent_p, type_precision):
15158         Remove.
15159
15160 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
15161
15162         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
15163         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
15164 doc:
15165         * cpp.texi: Update for removal of obsolete features.
15166
15167 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
15168                           Jeffrey A Law  (law@redhat.com)
15169
15170         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
15171         the DFA interface for Pentium processors.
15172         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
15173         (attr_pent_pair, ix86_pent_find_pair): Remove.
15174         (ix86_sched_reorder_pentium): Remove.
15175         (ix86_sched_reorder): Remove reordering for Pentium.
15176         * i386.md (Pentium scheduling): Rewrite using DFA description.
15177
15178 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
15179
15180         * cfganal.c (can_fallthru): Fix fast path.
15181         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
15182         with edges to the next block.
15183
15184 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
15185                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
15186
15187         * final.c (end_final): Use C trees to output data structures for profiling.
15188
15189         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
15190         (profile.o): New dependency profile.h
15191         (final.o): New dependency profile.h
15192         * profile.h: New file. New global structure profile_info.
15193         * final.h (count_edges_instrumented_now): Declare.
15194         (current_function_cfg_checksum): Declare.
15195         (function_list): New structure.
15196         (functions_head, functions_tail): New static variables.
15197         (end_final): Emits more data, removed some -ax stuff.
15198         (final): Stores function names and chcksums.
15199         * gcov-io.h (__write_gcov_string): New function.
15200         (__read_gcov_string): New function.
15201         * gcov.c (read_profile): New function.
15202         (create_program_flow_graph): Uses read_profile instead of reading
15203         da_file.
15204         (read_files): Removed da_file checking, it's done by read_profile now.
15205         * libgcc2.c (bb_function_info): New structure.
15206         (bb): New field in structure, removed some -ax stuff.
15207         (__bb_exit_func): Changed structure of da_file.
15208         * profile.c (count_edges_instrumented_now): New global variable.
15209         (current_function_cfg_checksum): New global variable.
15210         (max_counter_in_program): New global variable.
15211         (get_exec_counts): New function.
15212         (compute_checksum): New function.
15213         (instrument_edges): Sets count_edges_instrumented_now.
15214         (compute_branch_probabilities): Uses get_exec_counts instead of
15215         reading da_file.
15216         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
15217         (init_branch_prob): Removed da_file checking, done in get_exec_counts
15218         now.
15219         (end_branch_prob): Removed da_file checking, done in get_exec_counts
15220         now.
15221         * gcov.texi: Updated information about gcov file format.
15222
15223 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
15224
15225         * sbitmap.c: Fix formatting.
15226         * scan.c: Likewise.
15227         * scan-decls.c: Likewise.
15228         * sched-deps.c: Likewise.
15229         * sched-ebb.c: Likewise.
15230         * sched-rgn.c: Likewise.
15231         * sched-vis.c: Likewise.
15232         * sdbout.c: Likewise.
15233         * sibcall.c: Likewise.
15234         * simplify-rtx.c: Likewise.
15235         * ssa.c: Likewise.
15236         * ssa-ccp.c: Likewise.
15237         * ssa-dce.c: Likewise.
15238         * stmt.c: Likewise.
15239         * stor-layout.c: Likewise.
15240         * stringpool.c: Likewise.
15241
15242 2002-05-09  David S. Miller  <davem@redhat.com>
15243
15244         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
15245
15246 2002-05-07  David S. Miller  <davem@redhat.com>
15247
15248         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
15249         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
15250         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
15251         library implementation clobbers the output before the inputs
15252         are fully consumed, use stack temporary for the output.
15253
15254 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
15255
15256         * config/netbsd.h (CPP_SPEC): Remove.
15257         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
15258         * config/i386/netbsd.h (CPP_SPEC): Define.
15259         * config/ns32k/netbsd.h (CPP_SPEC): Define.
15260         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
15261         * config/sparc/netbsd.h (CPP_SPEC): Define.
15262         * config/vax/netbsd.h (CPP_SPEC): Define.
15263
15264 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
15265
15266         * read-rtl.c: Fix formatting.
15267         * real.c: Likewise.
15268         * recog.c: Likewise.
15269         * regclass.c: Likewise.
15270         * regmove.c: Likewise.
15271         * reg-stack.c: Likewise.
15272         * reload1.c: Likewise.
15273         * reload.c: Likewise.
15274         * resource.c: Likewise.
15275         * rtlanal.c: Likewise.
15276         * rtl.c: Likewise.
15277         * rtl-error.c: Likewise.
15278
15279 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15280
15281         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
15282         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
15283
15284 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
15285
15286         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
15287         use __SSE2__ macro instead.
15288         * config/i386/xmmintrin.h: Likewise.
15289
15290 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
15291
15292         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
15293         and use it in all invocations of these macros.  Clean up comments.
15294         * rtl.c (rtl_check_failed_flag): Add an argument for the name
15295         of the flag access macro whose check failed.
15296         * doc/rtl.texi (Flags): Document additional flag uses.
15297
15298 2002-05-08  Robert Spier <rspier@pobox.com>
15299             Neil Booth  <neil@daikokuya.demon.co.uk>
15300
15301         PR preprocessor/6521
15302         * cppfiles.c (handle_missing_header): Don't do anything
15303         different for <> includes.
15304 doc:
15305         * cppopts.texi: Update documentation for -MG.
15306
15307 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
15308
15309         * cpplex.c (cpp_interpret_charconst): Truncate as well as
15310         sign-extend.
15311 doc:
15312         * cpp.texi: Clarify multichar charconst valuation.
15313
15314 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
15315
15316         * doc/invoke.texi: Document -mwindiss option.
15317
15318 2002-05-08  Jason Merrill  <jason@redhat.com>
15319
15320         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
15321
15322         * dwarf2out.c (gen_type_die): Abort on broken recursion.
15323
15324         PR c++/6381
15325         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
15326         REAL_CST.
15327
15328 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
15329
15330         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
15331         little-endian multilibs to override arm/thumb multilibs.
15332         Do not build hardware floating point multilibs, nor apcs-26
15333         multilibs for the Thumb.
15334
15335 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
15336
15337         PR c/6569.
15338         * varasm.c (mark_weak): New function.
15339         (merge_weak): Use it.  Do not call declare_weak.
15340         (declare_weak): Use merge_weak.
15341
15342 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
15343
15344         * cse.c (dead_libcall_p): Update counts.
15345         (delete_trivially_dead_insns): Update call of dead_libcall_p.
15346
15347 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
15348
15349         * cfglayout.c (function_tail_eff_head): Rename to ...
15350         (function_footer): ... this one.
15351         (unlink_insn_chain): New functions.
15352         (label_for_bb): Only call block_label and emit debug message.
15353         (record_effective_endpoints): Actually unlink the headers and footers.
15354         (fixup_reorder_cahin): Re-insert the unlinked sequences.
15355         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
15356         * cfglayout.h (struct reorder_block_def): New fields footer/header;
15357         remove eff_head/eff_end.
15358         * rtl.h (set_first_insn): Declare.
15359         * emit-rtl.c (set_first_insn): New function.
15360
15361         * cfglayout.c (fixup_reorder_chain): Dump duplicated
15362         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
15363         cfg_layout_duplicate_bb): New global function.
15364         (duplicate_insn_chain): New static function.
15365         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
15366         cfg_layout_duplicate_bb): Declare.
15367         (struct reorder_block_def): Add "original" field.
15368         * emit-rtl.c (emit_copy_of_insn_after): New function.
15369         * rtl.h (emit_copy_of_insn_after): Declare.
15370
15371         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
15372         (fixup_reorder_chain): properly handle edges to exit block.
15373
15374 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15375                                Jan Hubicka  <jh@suse.cz>
15376
15377         * basic-block.h (note_prediction_to_br_prob): declare.
15378         * c-semantics.c: Inlucde predit.h
15379         (expand_stmt): predict GOTO_STMT as not taken.
15380         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
15381         (cleanup_cfg): Do not free tail_recursion_list.
15382         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
15383         (flow_delete_block): Kill predictions past end of basic block.
15384         * output.h (delete_unreachable_blocks): Declare.
15385         * predict.c (predicted_by_p, process_note_predictions,
15386         process_note_prediction, last_block_p): New function.
15387         (estimate_probability): Bypass loop on PRED_CONTINUE;
15388         do not handle noreturn heuristics; kill PRED_RETURN; add
15389         PRED_EARLY_RETURN.
15390         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
15391         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
15392         * predict.h (IS_TAKEN): New constant.
15393         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
15394         * rtl.c (NOTE_INSN_PREDICTION): New.
15395         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
15396         New macro.
15397         (insn_note): add NOTE_INSN_PREDICTION.
15398         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
15399         CFG; free tail_recursion_label_list.
15400         * stmt.c: Include predict.h;
15401         (return_prediction): New.
15402         (expand_value_return): Use it.
15403         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
15404
15405 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
15406
15407         * config/mips/mips.md: Name the unspecs with define_constant.
15408         (*HILO_delay): Rename to 'hilo_delay' (no star).
15409         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
15410         (reload_outdi, reload_outsi): Likewise.
15411
15412 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
15413
15414         * toplev.c: Fix formatting.
15415
15416 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
15417
15418         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
15419         * configure.in (ac_rtlflag_checking): New.
15420         * doc/install.texi (--enable-checking): Document RTL flag checking.
15421
15422 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
15423
15424         * c-common.c (c_common_init): Set options->unsigned_wchar.
15425         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
15426         group target dependencies.
15427         (init_builtins, cpp_handle_option): Update.
15428         * cpplex.c (cpp_interpret_charconst): Update.
15429         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
15430         signed_char to unsigned_char, group target dependencies.
15431         * defaults.h (WCHAR_UNSIGNED): Remove.
15432         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
15433 config:
15434         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
15435         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
15436         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
15437         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
15438         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
15439 doc:
15440         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
15441
15442 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
15443
15444         * fixinc/inclhack.def (windiss_math1): New fix.
15445         (windiss_math2): Likewise.
15446         (windiss_valist): Likewise.
15447         * fixinc/fixincl.x: Regenerated.
15448
15449 2002-05-07  Andreas Jaeger  <aj@suse.de>
15450
15451         * genautomata.c (output_internal_min_issue_delay_func): Add
15452         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
15453         (output_internal_trans_func): Likewise.
15454
15455 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
15456
15457         * pa.c (hppa_profile_hook): Use force_reg to get the address
15458         of the profile hook into an appropriate pseudo register.
15459
15460 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
15461
15462         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
15463         (LINK_START_SPEC): Handle it.
15464         (LINK_OS_SPEC): Likewise.
15465         (CPP_SPEC): Likewise.
15466         (STARTFILE_SPEC): Likewise.
15467         (LIB_SPEC): Likewise.
15468         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
15469         all platforms.
15470         (CRTSAVRES_DEFAULT_SPEC): New macro.
15471         (LIB_WINDISS_SPEC): New macro.
15472         (CPP_OS_WINDISS_SPEC): Likewise.
15473         (STARTFILE_WINDISS_SPEC): Likewise.
15474         (ENDFILE_WINDISS_SPEC): Likewise.
15475         (LINK_START_WINDISS_SPEC): Likewise.
15476         (LINK_OS_WINDISS_SPEC): Likewise.
15477         * config/rs6000/windiss.h: New file.
15478
15479 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
15480
15481         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
15482
15483 2002-05-06  David S. Miller  <davem@redhat.com>
15484
15485         * config/sparc/sparc.md (shift insns): Do not mask off
15486         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
15487         take care of it.
15488
15489 2002-05-06  Richard Henderson  <rth@redhat.com>
15490
15491         PR c++/6212
15492         * expr.c (highest_pow2_factor_for_type): New.
15493         (expand_assignment): Use it.
15494
15495 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
15496
15497         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
15498         unspec_volatile.
15499         ("altivec_mfvscr"): Same.
15500
15501 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
15502
15503         * rtl.h (struct rtx_def): Update comments.
15504         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
15505         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
15506         RTL_FLAG_CHECK macros with list of expected RTL codes.
15507         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
15508         (rtl_check_failed_flag): New.
15509         * reload1.c (reload): Use REG macro before changing rtx to MEM.
15510         (reload_cse_noop_set_p): Check rtx code before using access macro.
15511         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
15512         before using access macro.
15513
15514 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
15515
15516         * doc/rtl.texi (Flags): Update to reflect current usage.
15517
15518 2002-05-06  Roger Sayle  <roger@eyesopen.com>
15519
15520         PR opt/3995
15521         * fold-const.c (sign_bit_p): New function.
15522         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
15523         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
15524         Reapply fold when converting (A & C) == C into (A & C) != 0.
15525         (fold_binary_op_with_conditional_arg): Fix typo in comment.
15526
15527 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
15528
15529         * c-common.c (warn_multichar): New.
15530         (c_common_init): Set CPP's warn_multichar.
15531         * c-common.h (warn_multichar): New.
15532         * c-decl.c (warn_multichar): Remove.
15533         * c-lex.c (lex_charconst): Update.
15534         * c-tree.h (warn_multichar): Remove.
15535         * cppexp.c (eval_token): Sign-extend charconst value.
15536         * cppinit.c (cpp_create_reader): Set warn_multichar.
15537         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
15538         each character.  Update prototype.  Sign-extend the result.
15539         * cpplib.h: Fix conditions.
15540         (struct cpp_options): Add new warning flag.
15541         (cpp_interpret_charconst): Update prototype.
15542 doc:
15543         * cpp.texi: Update documentation.
15544
15545 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
15546
15547         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
15548         Fix typo in usage of allof instead of unit.
15549
15550 2002-05-06  Richard Henderson  <rth@redhat.com>
15551
15552         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
15553         and any jump or call for IN.
15554
15555 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
15556
15557         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
15558         -msse2.
15559         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
15560
15561 2002-05-06  Roger Sayle  <roger@eyesopen.com>
15562
15563         * fold-const.c (lshift-double): Cast the high word to an unsigned
15564         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
15565         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
15566         avoid compiler warning.  (fold): Remove redundant code from
15567         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
15568
15569 2002-05-06  Jeff Law  <law@redhat.com>
15570
15571         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
15572         * pa.c (pa_adjust_cost): Remove all true dependency cost
15573         adjustments.  Also remove support for non-DFA scheduling.
15574         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
15575         to adjust true dependency costs.  Update various comments.
15576         (7100lc, 7200, 7300 scheduling): Simplify by combining the
15577         FP ALU & MPY units into a single unit.
15578
15579 2002-05-06  Catherine Moore  <clm@redhat.com>
15580
15581         * config/v850/v850.c (compute_register_save_size): Make sure
15582         to count all of the registers that will be saved.
15583
15584 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
15585
15586         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
15587
15588 2002-05-06  David S. Miller  <davem@redhat.com>
15589
15590         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
15591         allow result to overlap input operands in memory.
15592
15593 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
15594
15595 doc:
15596         * cpp.texi: Update multichar charconst docs.
15597
15598 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
15599
15600         * cpplex.c (cpp_interpret_charconst): Sign-extend each
15601         character.  Don't ignore excess characters.  Treat
15602         multicharacter character constants as signed.
15603         (cpp_parse_escape): Clarify diagnostic.
15604
15605 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
15606
15607         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
15608         use add instead of shift.
15609         (ashldi3_sp64): Likewise.
15610         (ashlsi3_const1, ashldi3_const1): Remove.
15611         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
15612         * config/sparc/sparc.c (const1_operand): New.
15613
15614 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
15615
15616         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
15617
15618 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
15619
15620         PR target/6561
15621         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
15622
15623 2002-05-05  Richard Henderson  <rth@redhat.com>
15624
15625         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
15626         memory latency adjustments.
15627         (alpha_variable_issue): Remove.
15628         (alpha_use_dfa_pipeline_interface): New.
15629         (alpha_multipass_dfa_lookahead): New.
15630         * config/alpha/alpha.md: Remove define_function_unit scheduling;
15631         include new dfa scheduling.
15632         (attr type): Add none.
15633         (blockage): Use it.
15634         * config/alpha/ev4.md: New.
15635         * config/alpha/ev5.md: New.
15636         * config/alpha/ev6.md: New.
15637
15638 2002-05-05  David S. Miller  <davem@redhat.com>
15639
15640         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
15641
15642 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
15643
15644         * cse.c: Fix formatting.
15645         * emit-rtl.c: Likewise.
15646
15647 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
15648
15649         * genautomata.c (initiate_states): Add additional guard to
15650         initialize `units_array'.
15651
15652 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
15653
15654         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
15655         process_unit_to_form_the_same_automaton_unit_lists,
15656         form_the_same_automaton_unit_lists
15657         check_unit_distributions_to_automata): New prototypes and
15658         functions.
15659         (check_automata): Rename it into `check_automata_insn_issues'.
15660         (unit_decl): New fields `the_same_automaton_unit' and
15661         `the_same_automaton_message_reported_p'.
15662         (unit_decl_t): New typedef.
15663         (the_same_automaton_lists): New gloval variable.
15664         (unit_regexp, unit_set_el, units_array, units_cmp,
15665         output_get_cpu_unit_code_func): Use the typedef.
15666         (evaluate_max_reserv_cycles): Increment
15667         `description->max_insn_reserv_cycles'.
15668         (initiate_states): Don't increment `max_cycles_num'.
15669         (transform_insn_regexps): Move code around transformation of
15670         regexps from `generate'.
15671         (generate): Remove call of `transform_insn_regexps'.
15672         (expand_automata): Call `transform_insn_regexps' and
15673         `check_unit_distributions_to_automata'.  Check errors before
15674         `generate'.
15675
15676         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
15677         automaton `ultrasparc3_1'.
15678
15679 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
15680
15681         * c-common.c (c_common_init): Set up CPP arithmetic.
15682         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
15683         something reasonable for the host.
15684         (sanity_checks): Add checks.
15685         (cpp_read_main_file): Call sanity_checks() from here...
15686         (cpp_post_options): ... not here.
15687         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
15688         * cpplib.h (struct cpp_options): New member int_precision.
15689
15690 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15691
15692         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
15693
15694 2002-05-04  David S. Miller  <davem@redhat.com>
15695
15696         * config/sparc/linux.h, config/sparc/linux64.h
15697         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
15698
15699         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
15700         more RTX codes.
15701         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
15702
15703         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
15704         of SETs.
15705
15706 2002-05-05  Tim Josling  <tej@melbpc.org.au>
15707
15708         * treelang; New directory for new sample language treelang.
15709
15710 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
15711
15712         * Makefile.in (c-lex.o): Update.
15713         * c-lex.c: Include target.h.
15714         (cb_register_builtins): New.
15715         (init_c_lex): Set builtins callback.
15716         * c-lex.h (cpp_define, cpp_assert): New prototypes.
15717         * cppinit.c (init_builtins): Use callback, including for
15718         GXX_WEAK.
15719         * cpplib.h (struct cpp_callbacks): New member.
15720         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
15721         (TARGET_INITIALIZER): Update.
15722         * target.h (struct gcc_target): New hook.
15723         * tree.c (default_register_cpp_builtins): New.
15724         * tree.h (default_register_cpp_builtins): New.
15725 doc:
15726         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
15727
15728 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
15729
15730         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
15731         (cpp_post_options): Move sanity checks to...
15732         (sanity_checks): New.
15733         * cpplex.c (maybe_read_ucs): Fix prototype.
15734         (parse_string, cpp_parse_escape): Cast for %c format specifier.
15735         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
15736         if necessary.
15737
15738 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
15739
15740         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
15741         builtins.  Use V2DI patterns instead of TI for logical operations.
15742         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
15743         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
15744         (ix86_expand_builtins): Change the pattern used for movntdq.
15745         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
15746         sse2_nandv2di3): New patterns.
15747         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
15748         on operands.
15749         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
15750         (cvtdq2pd): Correct mode on operand 1.
15751         (sse2_umulsidi3): Describe without unspec.
15752         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
15753         machine modes.
15754         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
15755         (ashlv2di3): Likewise, from sse2_ashlv2di3.
15756         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
15757         ashlv4si3, ashlv2di3): Use SImode for shift count.
15758         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
15759         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
15760         New patterns.
15761         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
15762         New typedefs.
15763         (__m128i, __m128d): New macros.
15764         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
15765         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
15766         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
15767         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
15768         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
15769         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
15770         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
15771         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
15772         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
15773         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
15774         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
15775         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
15776         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
15777         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
15778         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
15779         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
15780         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
15781         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
15782         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
15783         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
15784         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
15785         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
15786         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
15787         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
15788         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
15789         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
15790         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
15791         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
15792         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
15793         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
15794         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
15795         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
15796         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
15797         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
15798         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
15799         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
15800         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
15801         functions.
15802         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
15803         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
15804
15805 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
15806
15807         * dwarf2out.c: Fix formatting.
15808         * varasm.c: Likewise.
15809
15810 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
15811
15812         PR c/6543
15813         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
15814         clobber and use result as temporary value.
15815
15816 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
15817
15818         * expr.c (force_operand): Use expand_simple_* to handle more
15819         cases.
15820
15821 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
15822
15823         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
15824         and sign-extension.
15825         (lex_charconst): Update for change in prototype of
15826         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
15827         appropriately.
15828         * cpphash.h (BITS_PER_CPPCHAR_T): New.
15829         * cppinit.c (cpp_create_reader): Initialize them for no
15830         change in semantics.
15831         (cpp_post_options): Add sanity checks.
15832         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
15833         and truncation issues.  Calculate in type cppchar_t.
15834         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
15835         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
15836         run-time dependent precision correctly.  Return whether the
15837         result is signed or not.
15838         * cpplib.c (dequote_string): Use cppchar_t; update.
15839         * cpplib.h (cppchar_signed_t): New.
15840         struct cpp_options): New precision members.
15841         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
15842         * cppexp.c (eval_token): Update.
15843
15844 2002-05-03  David S. Miller  <davem@redhat.com>
15845
15846         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
15847         * config/sparc/sparc.c (sparc_rtx_costs): New function
15848         implementing RTX_COSTS and CONST_COSTS.
15849         * config/sparc/sparc.h (CONST_COSTS): Delete.
15850         (RTX_COSTS_CASES): Define.
15851         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
15852         the work.
15853
15854         * config/sparc/sparc.md (DFA schedulers): Split out...
15855         * config/sparc/cypress.md, config/sparc/hypersparc.md,
15856         config/sparc/sparclet.md, config/sparc/supersparc.md,
15857         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
15858
15859         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
15860         checks on it, always defined for SPARC.
15861
15862         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
15863         Tweak, and add more detailed comments.
15864
15865 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
15866
15867         * Re-apply patch accidentally reverted with
15868         DFA scheduler merge: remove all rules and variables to slurp
15869         source files out of libiberty and rebuild them with HOST_CC.
15870         ($(HOST_PREFIX_1)varray.o): New rule.
15871         (genattrtab rule): Word wrap.
15872
15873 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
15874
15875         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
15876         (CPP_SUBTARGET_SPEC): Define.
15877         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
15878         cpp_subtarget specs.
15879         (CPP_SPEC): Redefine to include %(cpp_subtarget).
15880
15881 2002-05-03  David S. Miller  <davem@redhat.com>
15882
15883         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
15884         * target.h (struct gcc_target): Delete cycle_display member.
15885
15886         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
15887         (rtx_needs_barrier): Delete reference to cycle_display unspec.
15888         (ia64_sched_reorder2): Mention need for cycle display handling
15889         once such notes exist.
15890
15891 2002-05-03  Richard Henderson  <rth@redhat.com>
15892
15893         * real.c (etoasc): Strip most trailing zeros for clarity.
15894         * sched-vis.c: Include real.h.
15895         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
15896         * Makefile.in (sched-vis.o): Add real.h.
15897
15898 2002-05-03  David S. Miller  <davem@redhat.com>
15899
15900         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
15901         no longer needed.
15902
15903 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
15904
15905         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
15906         when we get an out of range literal.
15907         (altivec_expand_ternop_builtin): Same.
15908         (altivec_expand_unop_builtin): Same.
15909         (altivec_expand_builtin): Same, for dss.
15910         (altivec_expand_builtin): Use trees instead of rtl when
15911         determining literal argument validity.
15912
15913 2002-05-03  David S. Miller  <davem@redhat.com>
15914
15915         Delete cycle display scheduling hook.
15916         * config/ia64/ia64.c (ia64_cycle_display,
15917         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
15918         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
15919         and use emit_insn_before instead of ia64_emit_insn_before.
15920         * config/ia64/ia64.md (unspec usage): Delete cycle display.
15921         (cycle_display): Delete insn pattern.
15922         * config/sparc/sparc.md (unspec usage): Delete cycle display.
15923         (cycle_display): Delete insn pattern.
15924         * config/sparc/sparc.c (sparc_cycle_display,
15925         TARGET_SCHED_CYCLE_DISPLAY): Delete.
15926         * doc/md.texi (cycle_display): Don't mention.
15927         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
15928
15929 2002-05-03  Richard Henderson  <rth@redhat.com>
15930
15931         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
15932         * recog.h: Declare them.
15933
15934         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
15935         * config/sparc/sparc.md: Use store_data_bypass_p instead.
15936         * config/sparc/sparc-protos.h: Update.
15937
15938 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
15939
15940         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
15941         -D__arch64__.  Add -D_LP64.
15942         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
15943         from sparc.h.
15944         (CPP_ARCH64_SPEC): Likewise.
15945         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
15946         (NO_BUILTIN_SIZE_TYPE): Undef.
15947
15948 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
15949
15950         * genautomata.c (min_issue_delay_pass_states): Change return type
15951         in the prototype.
15952         (min_issue_delay_pass_states): Change the algorithm.
15953         (min_issue_delay): Set up min_insn_issue_delay for the state.
15954         (output_min_issue_delay_table): Interchange the nested loops and
15955         and initiate min_insn_issue_delay for states.
15956
15957 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
15958
15959         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
15960         jump is simplejump.
15961
15962 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
15963
15964         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
15965         sequence.
15966
15967 2002-05-03  Richard Henderson  <rth@redhat.com>
15968
15969         PR opt/6534
15970         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
15971         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
15972         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
15973         code before JUMP, not EARLIEST.
15974
15975 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
15976
15977         * c-format.c (check_format_info_main): Don't check for presence of
15978         parameter for * width until after operand number has been read,
15979         and only check for it if format parameters are available.
15980         Fixes PR c/6547.
15981
15982 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
15983
15984         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
15985         (LINK_SPEC): Undef before defining.
15986
15987 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
15988
15989         PR preprocessor/6489
15990         * tradcpp.c (fixup_newlines): New.
15991         (main, finclude): Use it.
15992
15993 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
15994
15995         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
15996         * config/mips/mips.c (mips_unique_section): Strip encoding from
15997         decl name.
15998
15999 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
16000
16001         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
16002         mode.
16003
16004 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16005
16006         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
16007         (Specific): Removed buildstats references.
16008         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
16009         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
16010         Accomodate Solaris versions beyond 8.
16011         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
16012         (Specific, *-*-solaris2.8): Removed, obsolete.
16013
16014 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
16015
16016         PR target/6542
16017         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
16018         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
16019         fill leaf_reg_remap with identity.
16020         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
16021
16022 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
16023
16024         * config/h8300/crti.asm: Remove trailing spaces.
16025         * config/h8300/h8300.c: Likewise.
16026         * config/h8300/lib1funcs.asm: Likewise.
16027
16028 2002-05-02  Jason Merrill  <jason@redhat.com>
16029
16030         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
16031         * c-decl.c (c_init_decl_processing): Use it.
16032         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
16033         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
16034         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
16035
16036 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
16037
16038         * regrename.c: Fix formatting.
16039         * tree.c: Likewise.
16040
16041 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
16042
16043         * i386.md (attribute memory): Handle compares properly.
16044
16045 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
16046
16047         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
16048         to none.
16049
16050 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
16051
16052         * function.c: Fix formatting.
16053
16054 2002-05-02  Jan Hubicka  <jh@suse.cz>
16055
16056         * haifa-sched.c (schedule_insn): Print table of instructions and
16057         reservations.
16058         (sched_block): Do not print ready list at verbosity level 1.
16059         * sched-vis.c (print_insn): Make global.
16060         * sched-ebb.c (ebb_print_insn): Rename from...
16061         (print_insn): ... this one.
16062         * sched-int.h (print_insn): Declare
16063
16064 2002-05-02  Richard Henderson  <rth@redhat.com>
16065
16066         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
16067         emitted by cycle_display.
16068
16069 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
16070
16071         * doc/install.texi (*-*-freebsd*): Update to latest status.
16072
16073 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
16074
16075         PR target/6540
16076         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
16077         * config/float-sparc.h: Assume 128-bit long double if
16078         __LONG_DOUBLE_128__ is defined.
16079
16080 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
16081
16082         * genattrtab.c (write_function_unit_info): Add a dummy element
16083         when num_units == 0.
16084
16085 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16086
16087         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
16088         TYPE_MODE (double_type_node) instead of DFmode.
16089
16090 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
16091
16092         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
16093         jumps post reload.
16094         * toplev.c (rest_of_compilation): Revert Richard's patch.
16095
16096 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16097
16098         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
16099
16100 2002-05-02  Catherine Moore  <clm@redhat.com>
16101
16102         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
16103
16104 2002-05-02  Kazu Hirata  <kazu@hxi.com>
16105
16106         * combine.c: Fix comment typos.
16107         * expr.c: Likewise.
16108         * genautomata.c: Likewise.
16109         * stmt.c: Likewise.
16110         * tree.h: Likewise.
16111
16112 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
16113
16114         * doc/install.texi: State GNAT version requirements.
16115
16116 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
16117
16118         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
16119         of the frame pointer or arg pointer register which strict register
16120         checking is not enabled.
16121
16122 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
16123
16124         * gcc.dg/altivec-8.c: New.
16125
16126         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
16127         PRE_INC and PRE_DEC for altivec modes.
16128
16129 2002-05-01  Bruce Korb  <bkorb@gnu.org>
16130
16131         * fixinc/check.tpl(set-writable): make sure the function exists first
16132         * fixinc/inclhack.def(alpha_assert): fix test_text
16133         * fixinc/tests/base/assert.h: add in missing result
16134
16135 2002-05-01  Jeff Law  <law@redhat.com>
16136
16137         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
16138         'T' constraint.
16139
16140 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
16141
16142         * dbxout.c (dbxout_type): Emit size information for range types,
16143         as well, but only when using GDB extensions.
16144
16145 2002-05-01  Richard Henderson  <rth@redhat.com>
16146
16147         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
16148         target-independent gnu binutils date test.
16149
16150 2002-05-01  Richard Henderson  <rth@redhat.com>
16151
16152         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
16153         info before expunging the block.
16154
16155 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
16156
16157         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
16158         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
16159         -M -or -MM is in effect.
16160
16161 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
16162
16163         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
16164         A29k configurations.
16165         * doc/install.texi: Update to match.
16166
16167 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16168
16169         PR bootstrap/6514
16170         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
16171         for duplicates. Always loop over whole list.
16172
16173 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16174
16175         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
16176
16177 2002-05-01      Joel Sherrill <joel@OARcorp.com>
16178
16179         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
16180         support routines.
16181
16182 2002-05-01      Joel Sherrill <joel@OARcorp.com>
16183
16184         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
16185
16186 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
16187
16188         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
16189         (nabs_nopower): Same.
16190         (floatdisf2): New pattern.
16191         (absdi2): Convert to define_insn_and_split.
16192         (nabsdi2): Same.
16193         (trunctfsf2): Same.
16194         (floatditf2): Same.
16195         (floatsitf2): Same.
16196         (fix_trunctfdi2): Same.
16197         (fix_trunctfsi2): Same.
16198
16199 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
16200
16201         * doc/install.texi: Update Texinfo version requirement
16202         documentation.
16203
16204 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
16205
16206         PR target/6512, PR target/5628
16207         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
16208         when memory is not aligned.
16209         (movdf_insn_v9only_vis): Likewise.
16210         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
16211         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
16212         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
16213
16214 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
16215
16216         * gcc.dg/altivec-7.c: New.
16217
16218         * config/rs6000/altivec.h: Cleanup.
16219
16220 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
16221
16222         * doc/invoke.texi (Option Summary): Add -mvrsave=.
16223         (RS/6000 and PowerPC Options): Document -mvrsave=.
16224
16225         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
16226         (rs6000_altivec_vrsave_string): Same.
16227         (rs6000_override_options): Call rs6000_parse_vrsave_option.
16228         (rs6000_parse_vrsave_option): New.
16229         (rs6000_stack_info): Only generate vrsave instructions when
16230         TARGET_ALTIVEC_VRSAVE.
16231
16232         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
16233         (rs6000_altivec_vrsave_string): Define extern.
16234         (rs6000_altivec_vrsave): Same.
16235         (TARGET_ALTIVEC_VRSAVE): New.
16236
16237 2002-04-30  Richard Henderson  <rth@redhat.com>
16238
16239         PR opt/6516
16240         * toplev.c (rest_of_compilation): Don't run cross-jump before
16241         bb-reorder.
16242
16243 2002-04-30  Tom Rix  <trix@redhat.com>
16244
16245         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
16246         check which_alternative.
16247
16248 2002-04-30  Kazu Hirata  <kazu@hxi.com>
16249
16250         * cpplex.c: Fix comment formatting.
16251         * function.c: Likewise.
16252         * integrate.c: Likewise.
16253         * regrename.c: Likewise.
16254         * sibcall.c: Likewise.
16255         * simplify-rtx.c: Likewise.
16256         * tree-inline.c: Likewise.
16257
16258 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16259
16260         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
16261         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
16262         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
16263         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
16264         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
16265         * pa/x-ada: New file.  Define ADA_CFLAGS.
16266
16267 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
16268
16269         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
16270         from MMIX_LAST_REGISTER_FILE_REGNUM.
16271         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
16272         (struct machine_function): New member highest_saved_stack_register
16273         previously static variable in mmix.c.
16274         (MACHINE_DEPENDENT_REORG): Define.
16275         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
16276         (MMIX_OUTPUT_REGNO): New.
16277         (mmix_target_asm_function_prologue): Move calculation of last used
16278         saved-stack-register into...
16279         (mmix_machine_dependent_reorg): New function.  Update to also handle
16280         !TARGET_ABI_GNU.
16281         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
16282         register names, simplify somewhat by new variable regno.
16283         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
16284         register.
16285         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
16286         emitting register names.
16287         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
16288         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
16289         Remove fixed FIXME.
16290         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
16291         Declare.
16292
16293         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
16294
16295 2002-04-30  Richard Henderson  <rth@redhat.com>
16296
16297         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
16298         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
16299         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
16300         emit_tfmode_cvt): New.
16301         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
16302         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
16303         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
16304         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
16305         * config/sparc/sparc-protos.h: Update.
16306
16307 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
16308
16309         * install.texi (Final install): Add to the list of info to include
16310         in a report of a successful bootstrap, and add link to 3.1 list.
16311
16312 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
16313
16314         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
16315         (mode): Add vector modes
16316         (i387): Kill attribute.
16317         (unit): New attribute.
16318         (length_immediate): Grok new types.
16319         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
16320         (modrm): Use "unit".
16321         (memory): Handle MMX/SSE properly.
16322         (scheduling descriptions): Kill uses of fop1.
16323         (sse, mmx, fp patterns): Set type and mode properly.
16324
16325 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
16326
16327         * pa.c (override_options): Default to PA8000 scheduling.
16328         * doc/invoke.texi (HP-PA options): Mention newly added 7300
16329         scheduling parameter.
16330
16331         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
16332         handling of double precision multiplies.
16333
16334         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
16335         fpdiv and fpsqrt instructions.
16336         (7200 & 7300 scheduling): Fix typo in handling of
16337         store-load and store-store penalties.
16338
16339 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16340
16341         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
16342         mips.  Add two missing commas.
16343
16344 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
16345
16346         * doc/contrib.texi (Contributors): Update Paolo Carlini's
16347         and Benjamin Kosnik's entries.
16348
16349 2002-04-29  David S. Miller  <davem@redhat.com>
16350
16351         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
16352         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
16353         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
16354         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
16355
16356 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16357
16358         * combine.c (find_split_point): Use gen_int_mode.
16359
16360 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
16361
16362         Merging code from dfa-branch:
16363
16364         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
16365
16366         * genautomata.c (output_reserv_sets): Fix typo.
16367
16368         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
16369
16370         * genautomata.c (output_reserv_sets): Remove
16371         next_cycle_output_flag.
16372
16373         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
16374
16375         * sched-rgn.c (init_ready_list): Make the DFA code handle
16376         USE/CLOBBER insns in the same way as the traditional
16377         scheduler.
16378         (new_ready): Similarly..
16379
16380         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
16381
16382         * haifa-sched.c (schedule_block): Change the DFA state only after
16383         issuing insn.
16384
16385         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
16386
16387         * pa.c (hppa_use_dfa_pipeline_interface): New function.
16388         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
16389         (override_options): Add PA7300 scheduling support.
16390         (pa_adjust_cost): Update various comments.  Properly
16391         handle anti and output dependencies when using the
16392         DFA scheduler.
16393         (pa_issue_rate): Add PA7300 scheduling support.
16394         (pa_can_combine_p): Call extract_insn before calling
16395         constrain_operands (taken from mainline tree).
16396         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
16397         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
16398         descriptions using DFA descriptions.  Add PA7300
16399         scheduling support.
16400
16401         2002-03-30  David S. Miller  <davem@redhat.com>
16402
16403         Add UltraSPARC-III DFA scheduling support.
16404         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
16405         Update FP conditional move on register insn patterns to use it, as
16406         appropriate.
16407         (define_attr cpu): Add ultrasparc3.
16408         (define_attr us3load_type): New, update integer load patterns to
16409         set it, as appropriate.
16410         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
16411         (rest): Add UltraSPARC3 scheduling description.
16412         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
16413         (PROCESSOR_ULTRASPARC3): New.
16414         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
16415         ({ASM,CPP}_CPU_SPEC): Likewise.
16416         (REGISTER_MOVE_COST): Likewise.
16417         (RTX_COSTS): Likewise.
16418         * config/sparc/sparc.c (sparc_override_options,
16419         sparc_initialize_trampoline, sparc64_initialize_trampoline,
16420         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
16421         sparc_issue_rate): Likewise.
16422         * config/sparc/sol2.h: Likewise.
16423         * config/sparc/sol2-sld-64.h: Likewise.
16424         * config/sparc/linux64.h: Likewise.
16425
16426         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
16427
16428         * doc/md.texi: Add comments about usage the latency time for the
16429         different dependencies and about case when two or more conditions
16430         in different define_insn_reservations returns TRUE for an insn.
16431
16432         * doc/md.texi: Add reference for automaton based pipeline
16433         description.
16434
16435         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
16436
16437         * doc/passes.texi: Add missed information about genattrtab.
16438
16439         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
16440
16441         * genautomata.c (output_automata_list_transition_code): Check
16442         automata_list on NULL.
16443
16444         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
16445
16446         * genautomata.c (output_insn_code_cases,
16447         output_automata_list_min_issue_delay_code,
16448         output_automata_list_transition_code,
16449         output_automata_list_state_alts_code): Comment the functions.
16450
16451         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
16452
16453         * genautomata.c (automata_list_el_t): New typedef.
16454         (get_free_automata_list_el,free_automata_list_el,
16455         free_automata_list, automata_list_hash, automata_list_eq_p,
16456         initiate_automata_lists, automata_list_start, automata_list_add,
16457         automata_list_finish, finish_automata_lists,
16458         output_insn_code_cases, output_automata_list_min_issue_delay_code,
16459         output_automata_list_transition_code,
16460         output_automata_list_state_alts_code, add_automaton_state,
16461         form_important_insn_automata_lists): New functions and prototypes.
16462         (insn_reserv_decl): Add members important_automata_list and
16463         processed_p.
16464         (ainsn): Add members important_p.
16465         (automata_list_el): New structure.
16466         (first_free_automata_list_el, current_automata_list,
16467         automata_list_table): New global variables.
16468         (create_ainsns): Initiate member important_p.
16469         (output_internal_min_issue_delay_func): Generate the switch and
16470         call output_insn_code_cases.
16471         (output_internal_trans_func, output_internal_state_alts_func):
16472         Ditto.
16473         (generate): Call initiate_automata_lists.
16474         (automaton_states): New global variable.
16475         (expand_automata): Call form_important_insn_automata_lists.
16476         (write_automata): Call finish_automata_lists.
16477
16478         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
16479
16480         * genautomata.c (add_excls, add_presence_absence): Check that
16481         cpu units in the sets belong the same automaton.
16482
16483         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
16484         about that cpu units in the sets belong the same automaton.
16485
16486         * doc/md.texi: Ditto.
16487
16488         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
16489                     Nitin Gupta  <niting@noida.hcltech.com>
16490
16491         * config/sh/sh.c (sh_use_dfa_interface): New function.
16492
16493         (sh_issue_rate): New Function.
16494         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
16495         TARGET_SCHED_ISSUE_RATE: define.
16496
16497         * config/sh/sh.md: Add DFA based pipeline description for SH4.
16498
16499         (define_attr insn_class): New attribute used for DFA
16500          scheduling.
16501         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
16502         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
16503          cmpeqdi_t): Likewise.
16504
16505         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
16506          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
16507          ex_group.
16508         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
16509
16510         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
16511
16512         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
16513         break.
16514
16515         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
16516
16517         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
16518         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
16519         necessary.
16520         (output_dfa_start_func): Initiate new variable insn_codes_length,
16521         (write_automata): Output definition of the new variable.
16522
16523         2001-10-02  David S. Miller  <davem@redhat.com>
16524
16525         * haifa-sched.c (advance_one_cycle): New function.
16526         (schedule_block): Use it.
16527         (queue_to_ready): Use it, and also make sure to advance the DFA
16528         state on all stall cycles, not just those where insn_queue links
16529         are found.
16530
16531         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
16532
16533         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
16534         non-zero if the highest-priority instruction could be scheduled.
16535         (choose_ready): Remove last argument from max_issue call.
16536
16537         2001-09-28  David S. Miller  <davem@redhat.com>
16538
16539         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
16540         ultrasparc and 3 for other multi-issue sparcs.
16541
16542         2001-09-27  David S. Miller  <davem@redhat.com>
16543
16544         * config/sparc/sparc.md (cycle_display): New pattern.
16545         * config/sparc/sparc.c (sparc_cycle_display): New.
16546         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
16547
16548         2001-09-25  David S. Miller  <davem@redhat.com>
16549
16550         Convert all of SPARC scheduling to DFA
16551         * config/sparc/sparc.md: Kill all define_function_unit
16552         directives and replace with DFA equivalent.
16553         * config/sparc/sparc.c (ultrasparc_adjust_cost,
16554         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
16555         ultra_fpmode_conflict_exists, ultra_find_type,
16556         ultra_build_types_avail, ultra_flush_pipeline,
16557         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
16558         ultrasparc_variable_issue, ultrasparc_sched_init,
16559         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
16560         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
16561         ultra_cur_hist, ultra_cycles_elapsed): Kill.
16562         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
16563         ultrasparc_store_bypass_p): New.
16564         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
16565         Declare.
16566
16567         2001-09-24  David S. Miller  <davem@redhat.com>
16568
16569         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
16570         ready->vec[foo] not ready[foo].
16571
16572         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
16573
16574         * doc/md.texi: Correct examples for define_insn_reservations
16575         `mult' and `div'.
16576
16577         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
16578
16579         * genautomata.c (create_automata): Print message about creation of
16580         each automaton.
16581         (generate): Remove printing meease about creation of
16582         automata.
16583
16584         2001-09-05  David S. Miller  <davem@redhat.com>
16585
16586         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
16587         * config/sparc/linux64.h: Likewise.
16588
16589         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
16590
16591         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
16592         schedule_block, sched_init, sched_finish): Add missed calls of
16593         use_dfa_pipeline_interface.
16594
16595         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
16596         Ditto.
16597
16598         * sched-vis.c (get_visual_tbl_length): Ditto.
16599
16600         2001-08-27  Richard Henderson  <rth@redhat.com>
16601
16602         * genattr.c (main): Emit state_t even when not doing scheduling.
16603
16604         2001-08-27  Richard Henderson  <rth@redhat.com>
16605
16606         * genautomata.c (expand_automata): Always create a description.
16607
16608         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
16609
16610         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
16611         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
16612         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
16613         RTL constructions.
16614
16615         * genattr.c (main): New variable num_insn_reservations.  Increase
16616         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
16617         pipeline hazard recognizer interface.
16618
16619         * genattrtab.h: New file.
16620
16621         * genattrtab.c: Include genattrtab.h.
16622         (attr_printf, check_attr_test, make_internal_attr,
16623         make_numeric_value): Move protypes into genattrtab.h.  Define them
16624         as external.
16625         (num_dfa_decls): New global variable.
16626         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
16627         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
16628         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
16629         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
16630
16631         * genautomata.c: New file.
16632
16633         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
16634
16635         * sched-int.h: (curr_state): Add the external definition for
16636         automaton pipeline interface.
16637         (haifa_insn_data): Add comments for members blockage and units.
16638
16639         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
16640         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
16641         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
16642         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
16643         TARGET_SCHED_DFA_POST_CYCLE_INSN,
16644         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
16645         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
16646         macros.
16647         (TARGET_SCHED): Use the new macros.
16648
16649         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
16650         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
16651         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
16652         dfa_bubble): New members in gcc_target.sched.
16653
16654         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
16655         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
16656         (insn_queue): Redefine it as pointer to array.
16657         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
16658         INSN_QUEUE_SIZE.
16659         (max_insn_queue_index_macro_value): New variable.
16660         (curr_state, dfa_state_size, ready_try): New varaibles for
16661         automaton interface.
16662         (ready_element, ready_remove, max_issue): New function prototypes
16663         for automaton interface.
16664         (choose_ready): New function prototype.
16665         (insn_unit, blockage_range): Add comments.
16666         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
16667         FUNCTION_UNITS_SIZE == 0.
16668         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
16669         actual_hazard, potential_hazard): Add comments.
16670         (insn_cost): Use cost -1 as undefined value.  Remove
16671         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
16672         pipeline interface.
16673         (ready_element, ready_remove): New functions for automaton
16674         interface.
16675         (schedule_insn): Add new code for automaton pipeline interface.
16676         (queue_to_ready): Add new code for automaton pipeline interface.
16677         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
16678         (debug_ready_list): Print newline when the queue is empty.
16679         (max_issue): New function for automaton pipeline interface.
16680         (choose_ready): New function.
16681         (schedule_block): Add new code for automaton pipeline interface.
16682         Print ready list before scheduling each insn.
16683         (sched_init): Add new code for automaton pipeline interface.
16684         Initiate insn cost by -1.
16685         (sched_finish): Free the current automaton state and finalize
16686         automaton pipeline interface.
16687
16688         * sched-rgn.c: Include target.h.
16689         (init_ready_list, new_ready, debug_dependencies): Add new code for
16690         automaton pipeline interface.
16691
16692         * sched-vis.c: Include target.h.
16693         (get_visual_tbl_length): Add code for automaton interface.
16694         (target_units, print_block_visualization):  Add comments.
16695
16696         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
16697         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
16698         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
16699         (getruntime.o, genautomata.o): New entries.
16700         (genattrtab.o): Add new dependency file genattrtab.h.
16701         (genattrtab): Add new dependencies.  Link it with `libm.a'.
16702         (getruntime.o, hashtab.o): New entries for canadian cross.
16703
16704         * doc/md.texi: Description of automaton based model.
16705
16706         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
16707         Add comments.
16708         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
16709         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
16710         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
16711         TARGET_SCHED_DFA_POST_CYCLE_INSN,
16712         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
16713         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
16714         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
16715         hook descriptions.
16716         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
16717         MAX_DFA_ISSUE_RATE): New macro descriptions.
16718
16719         * doc/contrib.texi: Add dfa based scheduler contribution.
16720
16721         * doc/gcc.texi: Add more information about genattrtab.
16722
16723 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16724
16725         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
16726         adjust_address_nv call.
16727
16728 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
16729
16730         * doc/install.texi (Testing): Provide additional information, and
16731         a stronger encouragement, for running the testsuites.
16732
16733 2002-04-29  DJ Delorie  <dj@redhat.com>
16734
16735         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
16736         given in upper case.
16737
16738 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16739
16740         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
16741         Solaris 2 <widec.h> if missing.
16742         * fixinc/fixincl.x: Regenerate.
16743         * fixinc/tests/base/widec.h: New file.
16744
16745 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
16746
16747         * toplev.c (f_options): Add "profile" switch so that
16748         -fno-profile can be used to disable -p.
16749
16750 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
16751
16752         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
16753         UV2DImode.
16754         * tree.c (build_common_tree_nodes_2): Likewise.
16755         * tree.h (enum tree_index): Likewise.
16756         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
16757
16758         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
16759         entries.
16760         (init_mmx_sse_builtins): Initialize SSE2 builtins.
16761         (ix86_expand_builtin): Add support for SSE2 builtins.
16762         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
16763         (VALID_SSE_REG_MODE): Use it.
16764         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
16765         (enum ix86_builtins): Add SSE2 builtins.
16766         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
16767         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
16768         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
16769         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
16770         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
16771         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
16772         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
16773         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
16774         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
16775         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
16776         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
16777         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
16778         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
16779         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
16780         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
16781         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
16782         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
16783         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
16784         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
16785         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
16786         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
16787         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
16788         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
16789         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
16790         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
16791         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
16792         lfence_insn): New patterns.
16793         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
16794         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
16795
16796 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
16797
16798         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
16799
16800 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16801
16802         * doc/contrib.texi (Contributors): Add Paolo Carlini and
16803         Janis Johnson.
16804         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
16805         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
16806         and CPU instead of cpu.
16807
16808 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
16809
16810         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
16811         variables.
16812         (lang_independent_options): Add -fif-conversion, -fif-conversion2
16813         (rest_of_compilation): Do if conversion only when asked for.
16814         (parse_options_and_default_flags): Set new variables to 1 for -O1
16815         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
16816
16817 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
16818
16819         * i386.c (dbx64_register_map): Fix typo.
16820
16821 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
16822
16823         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
16824         real_one_half, real_bb_freq_max): New static variables.
16825         (debug_profile_bbauxs): Kill.
16826         (process_note_predictions): Kill unused variable.
16827         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
16828         volatile double.
16829         (propagate_freq): Use REAL_ARITHMETICS.
16830         (estimate_bb_frequencies): Likevise; init new static variables.
16831         * Makefile.in (predict.o): Add dependency on real.h
16832
16833 2002-04-28  David S. Miller  <davem@redhat.com>
16834
16835         PR target/6500
16836         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
16837         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
16838         several {reads,writes} instead.
16839         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
16840         Define.
16841
16842 2002-04-27  David S. Miller  <davem@redhat.com>
16843
16844         PR target/6494
16845         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
16846         of the stack bias.
16847
16848         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
16849         including signal.h and sys/ucontext.h, not needed.
16850
16851 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
16852
16853         * varasm.c (output_constant_def): Correct test for not calling
16854         ENCODE_SECTION_INFO for INTEGER_CST.
16855
16856 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16857
16858         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
16859         keep most cases as function eval_token.
16860         (eval_token): New function.
16861         (_cpp_parse_expr): Read token here for improved diagnostics.
16862         Don't use op_as_text.  Detect bad ':' here.
16863         (reduce): Don't detect bad ':' here.
16864         (op_as_text): Remove.
16865         * cpphash.h (_cpp_test_assertion): Change prototype.
16866         * cpplib.c (_cpp_test_assertion): Change prototype.
16867
16868 2002-04-28  Richard Henderson  <rth@redhat.com>
16869
16870         PR c/5154
16871         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
16872         (ggc_mark_rtx_children): New.
16873
16874 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
16875
16876         PR target/6496
16877         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
16878         after call peepholes for UltraSPARC.
16879         (call + jump 64-bit peepholes): Remove.
16880
16881 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16882
16883         PR c/6497
16884         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
16885         result as temporary value.
16886
16887 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
16888
16889         PR c++/6396
16890         * toplev.c (rest_of_compilation): Only run regrename and copy
16891         propagation if optimizing.
16892
16893 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
16894
16895         PR optimization/6475
16896         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
16897         register of REGNO_DECL (i).
16898         * Makefile.in (reload1.o): Add $(TREE_H).
16899
16900 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
16901
16902         * cppexp.c (lex): Update to use state.skip_eval.
16903         (struct op): Remove prio and flags members.
16904         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
16905         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
16906         (LEFT_ASSOC): New macro.
16907         (optab): New table of operator priorities and flags.
16908         (SHIFT): Update.
16909         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
16910         malloc-ed parser stack.
16911         (reduce): New; reduce the operator stack.
16912         (_cpp_expand_op_stack): Expand the operator stack as necessary.
16913         * cpphash.h (struct op): Predeclare.
16914         (struct cpp_reader): New members op_stack, op_limit.
16915         (struct lexer_state): New member skip_eval.
16916         (_cpp_parse_expr): Update.
16917         (_cpp_expand_op_stack): New.
16918         * cpplib.c (do_if): Update.
16919         * cppinit.c (cpp_create_reader): Create op stack.
16920         (cpp_destroy): And destroy it.
16921         * cpplib.h (CPP_LAST_CPP_OP): Correct.
16922         (TTYPE_TABLE): Correct.
16923
16924 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16925
16926         PR c/6343
16927         * c-decl.c (duplicate_decls): Call merge_weak.
16928         * c-pragma.c (apply_pragma_weak): Warn about misuse.
16929         * output.h (merge_weak): Prototype merge_weak.
16930         * varasm.c (merge_weak): New function.
16931         (declare_weak): Make sure we don't give an error on VAR_DECLs.
16932         Mark RTL with SYMBOL_REF_WEAK.
16933
16934 2002-04-27  Kurt Garloff <garloff@suse.de>
16935
16936         * tree-inline.c (inlinable_function_p): Improve heuristics
16937         by using a smoother function to cut down allowable inlinable size.
16938         * param.def: Add parameters max-inline-insns-single,
16939         max-inline-slope, min-inline-insns that determine the exact
16940         shape of the above function.
16941         * param.h: Likewise.
16942
16943 2002-04-26  Richard Henderson  <rth@redhat.com>
16944
16945         * c-parse.in (malloced_yyss, malloced_yyvs): New.
16946         (yyoverflow): Re-add.  Set them.
16947         (free_parser_stacks): New.
16948         * c-common.h: Declare it.
16949         * c-lex.c (c_common_parse_file): Call it.
16950
16951 2002-04-26  Richard Henderson  <rth@redhat.com>
16952
16953         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
16954         for fallthru search.
16955
16956 2002-04-26  Eric Christopher  <echristo@redhat.com>
16957
16958         PR optimization/3700
16959         * config/mips/mips.c (mips_issue_rate): Define.  New function.
16960         (TARGET_SCHED_ISSUE_RATE): Use.
16961
16962 2002-04-25  David S. Miller  <davem@redhat.com>
16963
16964         PR target/6422
16965         * reorg.c (optimize_skip): Do not allow exception causing
16966         instructions to be considered for delay slots.
16967         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
16968         (relax_delay_slots): Do not try to consider exception causing
16969         instructions as redundant.
16970
16971 2002-04-26  Richard Henderson  <rth@redhat.com>
16972
16973         PR c/5225
16974         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
16975
16976 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
16977
16978         PR bootstrap/6445
16979         * config/i386/i386.md (untyped_call): Return the value in a float
16980         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
16981         TARGET_80387.
16982
16983 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
16984
16985         * tree.c (tree_int_cst_lt): Compare constants whose types differ
16986         in unsigned-ness correctly.
16987
16988 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16989
16990         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
16991         portable runtime model.
16992
16993 2002-04-26  Richard Henderson  <rth@redhat.com>
16994
16995         * c-parse.in (yyoverflow): Revert.
16996
16997 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
16998             Richard Henderson  <rth@redhat.com>
16999
17000         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
17001         result as temporary value.
17002
17003 2002-04-26  Richard Henderson  <rth@redhat.com>
17004
17005         PR c/3581
17006         * c-common.c (fix_string_type): Split out of ...
17007         (combine_strings): ... here.  Take a varray, not a tree list.
17008         (c_expand_builtin_printf): Use fix_string_type.
17009         * c-common.h: Update decls.
17010         * c-parse.in (string): Remove.  Update all uses to use STRING
17011         instead, and not call combine_strings.
17012         (yylexstring): New.
17013         (_yylex): Use it.
17014         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
17015         (build_asm_stmt): Likewise.
17016         * objc/objc-act.c (my_build_string): Use fix_string_type.
17017         (build_objc_string_object): Build varray for combine_strings.
17018
17019 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
17020
17021         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
17022         x86-64.
17023
17024 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
17025
17026         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
17027         (HAVE_NO_R_OPERAND): Remove.
17028         (HAVE_VALUE): Remove.
17029         (op_to_prio): Update.
17030         (UNARY): Don't alter flags.
17031         (_cpp_parse_expr): want_value used to indicate whether
17032         a number or unary operator is expected next.  Distinguish
17033         unary and binary +/-.
17034         (op_as_text): Update for unary operators.
17035
17036 2002-04-25  Richard Henderson  <rth@redhat.com>
17037
17038         PR c/2161
17039         * c-parse.in (yyoverflow): New.
17040
17041 2002-04-25  Richard Henderson  <rth@redhat.com>
17042
17043         PR c/2098
17044         * c-common.c (shorten_compare): Simplfy conditions leading to
17045         the generation of a warning.
17046
17047 2002-04-25  Richard Henderson  <rth@redhat.com>
17048
17049         PR c/2035
17050         * expmed.c (extract_bit_field): Fall through to generic code rather
17051         than aborting on subreg special case.
17052
17053 2002-04-25  David S. Miller  <davem@redhat.com>
17054
17055         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
17056         for DECL being NULL.
17057
17058 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
17059
17060         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
17061
17062 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
17063
17064         * c-decl.c (grokdeclarator): Remove outdated ??? note
17065         on invalid declaration of flexible array members.
17066
17067 2002-04-25  Richard Henderson  <rth@redhat.com>
17068
17069         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
17070
17071 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
17072
17073         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
17074         needed by the compiler, even if they are used as global regs.
17075
17076 2002-04-25  Matt Hiller  <hiller@redhat.com>
17077
17078         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
17079         functions.
17080         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
17081         of the corresponding functions.
17082         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
17083         New prototypes.
17084
17085 2002-04-25  Matt Hiller  <hiller@redhat.com>
17086
17087         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
17088
17089         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
17090         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
17091         registers, adjust comment accordingly.
17092         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
17093         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
17094         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
17095         for coprocessor registers.
17096         (ADDITIONAL_REGISTER_NAMES): Include
17097         ALL_COP_ADDITIONAL_REGISTER_NAMES.
17098
17099         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
17100         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
17101         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
17102         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
17103         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
17104
17105         (mips_char_to_class): Adjust comment to include coprocessor
17106         constraint letters.
17107
17108         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
17109         New functions.
17110         (mips_reg_names, mips_regno_to_class): Include coprocessor
17111         information.
17112         (mips_sw_reg_names): Ditto, make non-static.
17113         (mips_move_1word): Handle moves to and from coprocessor registers.
17114         (mips_move_2words): Handle moves to and from coprocessor
17115         registers.
17116         (mips_class_max_nregs, mips_register_move_cost): Handle
17117         coprocessor register classes.
17118         (override_options): Initialize mips_char_to_class and
17119         mips_hard_regno_mode_ok properly for coprocessor registers.
17120
17121         * config/mips/mips.md (movdi_internal, movdi_internal2,
17122         movsi_internal1, movsi_internal2): Add constraint-sets for
17123         coprocessor registers.
17124         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
17125         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
17126         isn't mips.
17127         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
17128         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
17129         isn't mips.
17130         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
17131         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
17132         isn't mips.
17133         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
17134         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
17135         isn't mips.
17136
17137         * doc/tm.texi: Document feature.
17138
17139 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
17140
17141         * integrate.c (function_attribute_inlinable_p): Simplify.
17142         Check the table pointer is not NULL.
17143
17144 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
17145
17146         * doc/c-tree.texi: Fix typo in introduction.
17147
17148 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
17149
17150         * c-common.h (c_common_parse_file): Update.
17151         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
17152         * c-lex.c (YYDEBUG): Get from c-lex.h.
17153         (c_common_parse_file): Update.
17154         * c-lex.h (YYDEBUG, yydebug): New.
17155         * c-parse.in (YYDEBUG): Get from c-lex.h.
17156         (c_set_yydebug): Remove.
17157         * c-tree.h (c_set_yydebug): Remove.
17158         * langhooks-def.h (lhd_do_nothing_i): New.
17159         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
17160         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
17161         * langhooks.c  (lhd_do_nothing_i): New.
17162         (lhd_set_yydebug): Remove.
17163         * langhooks.h (struct lang_hooks): Update.
17164         * toplev.c (set_yydebug): New.
17165         (compile_file): Update call to parse_file hook.
17166         (decode_d_option): Update.
17167 objc:
17168         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
17169
17170 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
17171
17172         * loop.c (load_mems): Don't change the interface of called functions.
17173
17174         * calls.c (expand_call): Take current_function_pretend_args_size
17175         into account when setting argblock for sibcalls.
17176
17177 2002-04-24  Matt Hiller  <hiller@redhat.com>
17178
17179         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
17180         * c-lex.c: Ditto.
17181
17182         * cpplex.c (skip_line_comment): Process comment one multibyte
17183         character at a time rather than one char at a time, if
17184         appropriate.
17185         (parse_string): Process string one multibyte character at a time
17186         rather than one char at a time, if appropriate.
17187         * c-lex.c (lex_string): Lex and copy multibyte strings
17188         appropriately.
17189         * cpplib.h (cppchar_t): Change to unsigned.
17190
17191 2002-04-24  Richard Henderson  <rth@redhat.com>
17192
17193         PR c/3467
17194         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
17195         for c99.
17196
17197 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
17198
17199         * sh.c (sh_va_arg): If argument was passed by reference,
17200         dereference the pointer.
17201
17202         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
17203
17204         * sh.md (divsi3_i4_media): Use match_operand for input values
17205         rather than hard registers.
17206         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
17207         unnecessarily through hard registers.  Keep copies of pseudo
17208         registers outside of the libcall sequence.
17209
17210         * sh.md (casesi_shift_media): Add modes.
17211
17212         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
17213         values in memory.
17214
17215 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
17216
17217         * attribs.c (c_common_attribute_table): Move table and handlers
17218         to c-common.c.
17219         (format_attribute_table, lang_attribute_table,
17220         lang_attribute_common): Remove.
17221         (init_attributes): Replace NULL pointers with pointers to the
17222         empty table.
17223         (handle_packed_attribute, handle_nocommon_attribute,
17224         handle_common_attribute, handle_noreturn_attribute,
17225         handle_noinline_attribute, handle_always_inline_attribute,
17226         handle_used_attribute, handle_unused_attribute,
17227         handle_const_attribute, handle_transparent_union_attribute,
17228         handle_constructor_attribute, handle_destructor_attribute,
17229         handle_mode_attribute, handle_section_attribute,
17230         handle_aligned_attribute, handle_weak_attribute,
17231         handle_alias_attribute, handle_visibility_attribute,
17232         handle_no_instrument_function_attribute, handle_malloc_attribute,
17233         handle_no_limit_stack_attribute, handle_pure_attribute,
17234         handle_deprecated_attribute, handle_vector_size_attribute,
17235         vector_size_helper): Move to c-common.c.
17236         * c-common.c (c_common_attribute_table,
17237         handle_packed_attribute, handle_nocommon_attribute,
17238         handle_common_attribute, handle_noreturn_attribute,
17239         handle_noinline_attribute, handle_always_inline_attribute,
17240         handle_used_attribute, handle_unused_attribute,
17241         handle_const_attribute, handle_transparent_union_attribute,
17242         handle_constructor_attribute, handle_destructor_attribute,
17243         handle_mode_attribute, handle_section_attribute,
17244         handle_aligned_attribute, handle_weak_attribute,
17245         handle_alias_attribute, handle_visibility_attribute,
17246         handle_no_instrument_function_attribute, handle_malloc_attribute,
17247         handle_no_limit_stack_attribute, handle_pure_attribute,
17248         handle_deprecated_attribute, handle_vector_size_attribute,
17249         vector_size_helper): Move from attribs.c.
17250         * c-common.h (c_common_attribute_table,
17251         c_common_format_attribute_table): New.
17252         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
17253         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
17254         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
17255         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
17256         (LANG_HOOKS_INITIALIZER): Update.
17257         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
17258         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
17259         * target.h: Update comment.
17260         * tree.c (default_target_attribute_table): Remove.
17261         * tree.h (default_target_attribute_table, format_attribute_table,
17262         lang_attribute_table, lang_attribute_common): Remove.
17263 objc:
17264         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
17265         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
17266
17267 2002-04-24  Jason Merrill  <jason@redhat.com>
17268
17269         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
17270         * dwarf2out.c (dwarf_attr_name): Support it.
17271         (gen_array_type_die): Emit it.
17272         (lookup_type_die): No special handling for VECTOR_TYPE.
17273         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
17274
17275 2002-04-24  Richard Henderson  <rth@redhat.com>
17276
17277         * config/mips/mips.md (movdi_usd): Renumber.
17278
17279 2002-04-24  David S. Miller  <davem@redhat.com>
17280
17281         PR target/6420
17282         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
17283         32-bit SPARC and current_function_returns_struct is true.
17284
17285 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
17286
17287         * loop.c (canonicalize_condition): Use gen_int_mode.
17288
17289 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
17290
17291         * config/rs6000/altivec.h: Cleanup file.  Add non individual
17292         variants.
17293         (vec_vaddubm): New.
17294         (vec_vadduhm): New.
17295         (vec_vadduwm): New.
17296         (vec_vaddfp): New.
17297         (vec_vaddcuw): New.
17298         (vec_vaddubs): New.
17299         (vec_vaddsbs): New.
17300         (vec_vadduhs): New.
17301         (vec_vadduws): New.
17302         (vec_vaddsws): New.
17303         (vec_vand): New.
17304         (vec_vandc): New.
17305         (vec_vavgub): New.
17306         (vec_vavgsb): New.
17307         (vec_vavguh): New.
17308         (vec_vavgsh): New.
17309         (vec_vavguw): New.
17310         (vec_vavgsw): New.
17311         (vec_vrfip): New.
17312         (vec_vcmpbfp): New.
17313         (vec_vcmpequb): New.
17314         (vec_vcmpequh): New.
17315         (vec_vcmpequw): New.
17316         (vec_vcmpeqfp): New.
17317         (vec_vcmpgefp): New.
17318         (vec_vcmpgtub): New.
17319         (vec_vcmpgtsb): New.
17320         (vec_vcmpgtuh): New.
17321         (vec_vcmpgtsh): New.
17322         (vec_vcmpgtuw): New.
17323         (vec_vcmpgtsw): New.
17324         (vec_vcmpgtfp): New.
17325         (vec_vcmpgefp): New.
17326         (vec_vcfux): New.
17327         (vec_vcfsx): New.
17328         (vec_vctsxs): New.
17329         (vec_vctuxs): New.
17330         (vec_vexptefp): New.
17331         (vec_vrfim): New.
17332         (vec_lvx): New.
17333         (vec_lvebx): New.
17334         (vec_lvehx): New.
17335         (vec_lde): Add vector float variant.
17336         (vec_lvewx): New.
17337         (vec_lvxl): New.
17338         (vec_vlogefp): New.
17339         (vec_vmaddfp): New.
17340         (vec_vmhaddshs): New.
17341         (vec_vmaxub): New.
17342         (vec_vmaxsb): New.
17343         (vec_vmaxuh): New.
17344         (vec_vmaxsh): New.
17345         (vec_vmaxuw): New.
17346         (vec_vmaxsw): New.
17347         (vec_vmaxsw): New.
17348         (vec_vmaxfp): New.
17349         (vec_vmrghb): New.
17350         (vec_vmrghh): New.
17351         (vec_vmrghw): New.
17352         (vec_vmrglb): New.
17353         (vec_vmrglh): New.
17354         (vec_vmrglw): New.
17355         (vec_vminub): New.
17356         (vec_vminsb): New.
17357         (vec_vminuh): New.
17358         (vec_vminsh): New.
17359         (vec_vminuw): New.
17360         (vec_vminsw): New.
17361         (vec_vminfp): New.
17362         (vec_vmladduhm): New.
17363         (vec_vmhraddshs): New.
17364         (vec_msumubm): New.
17365         (vec_vmsummbm): New.
17366         (vec_vmsumuhm): New.
17367         (vec_vmsumshm): New.
17368         (vec_vmsumuhs): New.
17369         (vec_vmsumshs): New.
17370         (vec_vmuleub): New.
17371         (vec_vmulesb): New.
17372         (vec_vmuleuh): New.
17373         (vec_vmulesh): New.
17374         (vec_vmuloub): New.
17375         (vec_mulosb): New.
17376         (vec_vmulouh): New.
17377         (vec_vmulosh): New.
17378         (vec_vnmsubfp): New.
17379         (vec_vnor): New.
17380         (vec_vor): New.
17381         (vec_vpkuhum): New.
17382         (vec_vpkuwum): New.
17383         (vec_vpkpx): New.
17384         (vec_vpkuhus): New.
17385         (vec_vpkshss): New.
17386         (vec_vpkuwus): New.
17387         (vec_vpkswss): New.
17388         (vec_vpkshus): New.
17389         (vec_vpkswus): New.
17390         (vec_vperm): New.
17391         (vec_vrefp): New.
17392         (vec_vrlb): New.
17393         (vec_vrlh): New.
17394         (vec_vrlw): New.
17395         (vec_vrfin): New.
17396         (vec_vrsqrtefp): New.
17397         (vec_vsel): New.
17398         (vec_vslb): New.
17399         (vec_vslh): New.
17400         (vec_vslw): New.
17401         (vec_vsldoi): New.
17402         (vec_vsl): New.
17403         (vec_vslo): New.
17404         (vec_vspltb): New.
17405         (vec_vsplth): New.
17406         (vec_vspltw): New.
17407         (vec_vspltisb): New.
17408         (vec_vspltish): New.
17409         (vec_vspltisw): New.
17410         (vec_vsrb): New.
17411         (vec_vsrh): New.
17412         (vec_vsrw): New.
17413         (vec_vsrab): New.
17414         (vec_vsrah): New.
17415         (vec_vsraw): New.
17416         (vec_vsr): New.
17417         (vec_vsro): New.
17418         (vec_stvx): New.
17419         (vec_stvebx): New.
17420         (vec_stvehx): New.
17421         (vec_stvewx): New.
17422         (vec_stvxl): New.
17423         (vec_vsububm): New.
17424         (vec_vsubuhm): New.
17425         (vec_vsubuwm): New.
17426         (vec_vsubfp): New.
17427         (vec_vsubcuw): New.
17428         (vec_vsububs): New.
17429         (vec_vsubsbs): New.
17430         (vec_vsubuhs): New.
17431         (vec_vsubshs): New.
17432         (vec_vsubuws): New.
17433         (vec_vsubsws): New.
17434         (vec_vsum4ubs): New.
17435         (vec_vsum4sbs): New.
17436         (vec_vsum4shs): New.
17437         (vec_vsum2sws): New.
17438         (vec_vsumsws): New.
17439         (vec_vrfiz): New.
17440         (vec_vupkhsb): New.
17441         (vec_vupkhpx): New.
17442         (vec_vupkhsh): New.
17443         (vec_vupklsb): New.
17444         (vec_vupklpx): New.
17445         (vec_vupklsh): New.
17446         (vec_vxor): New.
17447
17448 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
17449
17450         PR c/5430
17451         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
17452         added literals from substracted literals.
17453         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
17454         (fold) [associate]: Preserve MINUS_EXPR if needed.
17455
17456 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
17457
17458         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
17459         are obsoleted.
17460
17461 2002-04-23  Tom Tromey  <tromey@redhat.com>
17462
17463         * gcc.c: Added --resource.  For PR java/6314.
17464
17465 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
17466
17467         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
17468         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
17469         these libraries.
17470
17471 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
17472
17473         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
17474
17475 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
17476
17477         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
17478         workaround.
17479         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
17480         (ix86_expand_clrstr): Fix typo.
17481         * loop.c (gen_load_of_final_value): New.
17482         (loop_givs_rescan, strength_reduce, check_dbra_loop):
17483         Use it.
17484
17485 2002-04-23  Roger Sayle  <roger@eyesopen.com>
17486
17487         * builtins.c (builtin_memset_gen_str): New function.
17488         (expand_builtin_memset): Optimize the case of constant length, but
17489         unknown value.
17490
17491 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
17492
17493         * config/rs6000/altivec.h (vec_step): Remove extraneous
17494         parentheses.
17495         (vec_ctu): Cast return.
17496
17497 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
17498
17499         PR target/6413
17500         * function.h: (struct function): Add profile_label_no field.
17501         (current_function_profile_label_no): Define.
17502         * function.c: (profile_label_no): New static var.
17503         (expand_function_start): Increment it, and copy to
17504         current_function_profile_label_no.
17505         * output.h (profile_label_no): Delete.
17506         * final.c (profile_label_no): Delete.
17507         (profile_function): Use current_function_profile_label_no.
17508         (final_end_function): Don't increment profile_label_no here.
17509         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
17510         profile_label_no with current_function_profile_label_no.
17511         * config/pa/pa.c (current_function_number): Delete.
17512         (pa_output_function_prologue): Don't output profile label here.
17513         (hppa_profile_hook): Use label_no param rather than
17514         current_function_number.
17515         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
17516         * config/pa/pa.h: .. here.
17517         (FUNCTION_PROFILER): Output profile label here.
17518
17519 2002-04-22  Eric Christopher  <echristo@redhat.com>
17520
17521         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
17522         patch of 2002-04-09 due to binutils issues.
17523         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
17524
17525 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
17526
17527         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
17528         constraint to 'o' for m=r and r=m alternatives.
17529         ("*movv8hi_internal1"): Same.
17530         ("*movv16qi_internal1"): Same.
17531         ("*movv4sf_internal1"): Same.
17532
17533 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
17534
17535         * rtl.h (RTX_FLAG): New macro.
17536         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
17537         * final.c (alter_subreg): Use macro to access rtx flag.
17538         * integrate.c (copy_rtx_and_substitute): Use new access macro.
17539         * print-rtl.c (print_rtx): Use new access macro.
17540
17541         * cse.c (insert): Check rtx code before accessing flag.
17542
17543         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
17544         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
17545         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
17546         convert_const_symbol_ref, make_canonical, make_alternative_compare,
17547         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
17548         simplify_test_exp, optimize_attrs, simplify_by_exploding,
17549         find_and_mark_used_attributes, unmark_used_attributes,
17550         add_values_to_cover, simplify_with_current_value,
17551         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
17552         copy_rtx_unchanging, main): Use new access macros.
17553
17554 2002-04-22  Tom Rix  <trix@redhat.com>
17555
17556         * expmed.c (init_expmed): Generate shifted constant once.
17557
17558 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
17559
17560         * c-lex.c (lex_charconst): Call convert to get constant in
17561         proper type; don't just smash the type field.
17562         Fixes PR c/6300.
17563
17564         * config.gcc: Add list of obsolete configurations.  Disallow
17565         building these without --enable-obsolete.
17566         * doc/install.texi: Document --enable-obsolete and obsoletion
17567         policy.  Mention obsoletion of individual targets in
17568         appropriate places.
17569
17570 2002-04-22  Richard Henderson  <rth@redhat.com>
17571
17572         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
17573
17574 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
17575
17576         PR f/6138.
17577         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
17578         (walk_fixup_memory_subreg): Likewise.
17579         (fixup_var_refs_insn): Adjust accordingly.
17580         (fixup_var_refs_1): Likewise.
17581
17582 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
17583
17584         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
17585         LIBPATH_ARCH64_SPEC): Define.
17586         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
17587         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
17588         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
17589         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
17590
17591 2002-04-22      Joel Sherrill <joel@OARcorp.com>
17592
17593         * gthr-rtems.h: Correct prototypes to remove warnings.
17594
17595 2002-04-22  Richard Henderson  <rth@redhat.com>
17596
17597         PR c/6344
17598         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
17599
17600         * gcse.c (free_insn_expr_list_list): New.
17601         (clear_modify_mem_tables): Use it.  Fix bit set usage.
17602         (canon_list_insert): Use EXPR_LISTs for expressions.
17603         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
17604
17605 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
17606
17607         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
17608         file change and include code to _cpp_pop_buffer.
17609         * cpphash.h (struct pending_option): Predeclare.
17610         (struct cpp_reader): New member next_include_file.
17611         (_cpp_pop_file_buffer): Update.
17612         (_cpp_push_next_buffer): Update, rename.
17613         * cppinit.c (cpp_destroy): Free include chain and pending here.
17614         (cpp_finish_options): Simplify.
17615         (_cpp_push_next_buffer): Rename and clean up.
17616         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
17617         Clarify.
17618         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
17619
17620 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
17621
17622         * config/rs6000/altivec.h (vec_xor): Add variant for both args
17623         being vector signed int.
17624         (vec_andc): Same.
17625         (vec_xor): Add variant for both args being vector signed char.
17626         Remove redundant variant.
17627         (vec_andc): Same.
17628
17629 2002-04-21  David S. Miller  <davem@redhat.com>
17630
17631         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
17632         compare mode in output RTL.
17633
17634 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
17635
17636         * config/rs6000/rs6000.c (rs6000_override_options): Correct
17637         style and formatting of previous patch.
17638
17639 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
17640
17641         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
17642         flag_pic for ABI_AIX.
17643
17644 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
17645
17646         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
17647         * cppfiles.c (read_include_file): Similarly.
17648         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
17649         uxstrdup ustrchr, ufputs): Similarly.
17650         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
17651         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
17652         cpp_ideq, parse_identifier, parse_number): Similarly.
17653         * cpplib.c (struct directive, dequote_string, D, run_directive,
17654         cpp_push_buffer): Similarly.
17655         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
17656         _cpp_create_definition, check_trad_stringification,
17657         cpp_macro_definition): Similarly.
17658
17659 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
17660
17661         * cppmacro.c (funlike_invocation_p): Don't step back
17662         over CPP_EOF.
17663
17664 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
17665
17666         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
17667         labelno.
17668
17669 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
17670
17671         * doc/invoke.texi: Remove Chill references.
17672         * doc/gcc.texi: Update last modified date.
17673
17674 2002-04-20  Kazu Hirata  <kazu@hxi.com>
17675
17676         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
17677         push and pop.  Replace add.l with add.w.
17678
17679 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
17680
17681         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
17682         multiply instructions for H8/300H case.
17683
17684 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
17685
17686         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
17687         Bum three instructions from each routine.
17688
17689 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
17690
17691         * Makefile.in: Update.
17692         * decl.c (push_c_function_context, pop_c_function_context,
17693         mark_c_function_context): Rename for consistency.
17694         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
17695         * c-tree.h (push_c_function_context, pop_c_function_context,
17696         mark_c_function_context): Rename for consistency.
17697         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
17698         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
17699         * function.c (init_lang_status, save_lang_status,
17700         restore_lang_status, mark_lang_status, free_lang_status):
17701         Move to langhooks.h.
17702         (push_function_context_to, pop_function_context_from,
17703         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
17704         Update.
17705         * function.h (init_lang_status, save_lang_status,
17706         restore_lang_status, mark_lang_status, free_lang_status):
17707         Move to langhooks.h.
17708         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
17709         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
17710         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
17711         LANG_HOOKS_FUNCTION_INITIALIZER): New.
17712         (LANG_HOOKS_INITIALIZER): Update.
17713         (lhd_do_nothing_f): New.
17714         * langhooks.h (struct lang_hooks_for_functions): New.
17715         (struct lang_hooks): New hooks.
17716         * langhooks.c (lhd_do_nothing_f): New.
17717 objc:
17718         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
17719         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
17720
17721 2002-04-19  David S. Miller  <davem@redhat.com>
17722
17723         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
17724         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
17725
17726 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
17727
17728         PR optimization/3756
17729         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
17730         x = ((int) y < 0) ? cst1 : cst2.
17731
17732 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
17733
17734         PR c/6358
17735         * function.c: Reapply patch for c/6358.
17736         (expand_function_end): Copy decl_rtl's mode, not
17737         current_function_return_rtx mode.
17738
17739 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
17740
17741         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
17742         targets.
17743
17744 2002-04-19  Tom Tromey  <tromey@redhat.com>
17745
17746         * doc/install.texi (Specific): Update status of Solaris 2.8.
17747         For PR libgcj/6158.
17748
17749 2002-04-19  Andreas Schwab  <schwab@suse.de>
17750
17751         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
17752         (PUT_REAL): Restore old definition.
17753
17754 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
17755             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17756
17757         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
17758         binutils 2.11.2 and higher generate smaller binaries than Sun's
17759         native tools.
17760
17761 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
17762
17763         PR c++/6352
17764         * toplev.c (rest_of_compilation): Do not defer functions for which
17765         TREE_SYMBOL_REFERENCED has already been set.
17766
17767 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
17768
17769         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
17770         alternative.
17771
17772 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
17773
17774         * builtins.c: Include langhooks.h.
17775         (lang_type_promotes_to): Remove.
17776         (expand_builtin_va_arg): Use new hook.
17777         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
17778         (simple_type_promotes_to): Move to c-typeck.c.
17779         * c-common.h (simple_type_promotes_to): Remove.
17780         * c-decl.c (duplicate_decls, grokdeclarator): Update.
17781         * c-format.c: Include langhooks.h.
17782         (check_format_types): Update.
17783         * c-tree.h (c_type_promotes_to): New.
17784         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
17785         (type_lists_compatible_p): Update.
17786         * langhooks-def.h (lhd_type_promotes_to): New.
17787         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
17788         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
17789         * langhooks.c (lhd_type_promotes_to): New.
17790         * langhooks.h (struct lang_hooks_for_types): New hook.
17791         * tree.h (lang_type_promotes_to): Remove.
17792 objc:
17793         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
17794
17795 2002-04-18  Richard Henderson  <rth@redhat.com>
17796
17797         * function.c: Revert patch for c/6358.
17798
17799 2002-04-18  Richard Henderson  <rth@redhat.com>
17800
17801         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
17802         blocks.  Handle multiple references to the TRAP block.  Handle
17803         non-adjacent THEN and OTHER blocks.
17804
17805 2002-04-18  Richard Henderson  <rth@redhat.com>
17806
17807         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
17808         crash with no type for by-mode libcalls.
17809
17810         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
17811
17812 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
17813
17814         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
17815         __xtensa_nonlocal_goto): Use a syscall instructions to flush
17816         the register windows.
17817
17818 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
17819
17820         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
17821         appropriate.  Document need for extended precision even when
17822         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
17823         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
17824         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
17825         instead of relying on later syntax error when REAL_WIDTH > 5.
17826         * real.c: Define NE based only on whether or not we have a
17827         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
17828         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
17829         define GET_REAL and PUT_REAL as simple memcpy operations; no
17830         need to byteswap or round.
17831         Use #error instead of #ifdef-ing out the entire file, for
17832         prompt error detection.
17833
17834         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
17835
17836 2002-04-18  David S. Miller  <davem@redhat.com>
17837
17838         * config/sparc/sparc.h (BRANCH_COST): Define.
17839
17840         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
17841         does it.
17842
17843 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
17844
17845         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
17846         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
17847         propagate_block calls after relaxation loop using new variable
17848         stabilized_prop_flags.
17849
17850 2002-04-18  Richard Henderson  <rth@redhat.com>
17851
17852         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
17853         (ia64_va_arg): Expect variable sized types by reference.
17854         * config/ia64/ia64-protos.h: Update.
17855         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
17856         ia64_function_arg_pass_by_reference.
17857
17858 2002-04-18  Richard Henderson  <rth@redhat.com>
17859
17860         * ifcvt.c: Include except.h.
17861         (block_has_only_trap): Break out from find_cond_trap.
17862         (find_cond_trap): Use it.  Always delete the trap block.
17863         (merge_if_block): Allow then block null.  Be less simplistic about
17864         what insns can end a block.
17865         * Makefile.in (ifcvt.o): Depend on except.h.
17866
17867         * config/ia64/ia64.md (trap, conditional_trap): New.
17868
17869 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
17870
17871         PR c/6358
17872         * function.c (assign_parms): Assign hard current_function_return_rtx
17873         register here...
17874         (expand_function_end): ...not here.
17875
17876 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
17877
17878         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
17879         * c-tree.h (c_incomplete_type_error): New.
17880         * c-typeck.c (require_complete_type, build_component_ref): Update.
17881         (incomplete_type_error): Rename.
17882         * langhooks-def.h (lhd_incomplete_type_error): New.
17883         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
17884         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
17885         * langhooks.c (lhd_incomplete_type_error): New.
17886         * langhooks.h (struct lang_hooks_for_types): New hook.
17887         * tree.c (size_in_bytes): Use new hook.
17888         * tree.h (incomplete_type_error): Remove.
17889 objc:
17890         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
17891
17892 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
17893
17894         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
17895         TARGET_FLOAT_FORMAT blocks.
17896
17897 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17898
17899         * doc/install.texi (Downloading the source): Do not mention Chill
17900         any longer, but mention Ada.
17901         (Configuration): Do not mention Chill any longer.
17902
17903 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
17904
17905         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
17906
17907 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
17908
17909         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
17910         in last patch.
17911
17912 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
17913
17914         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
17915         instead of unsigned_type.
17916
17917 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
17918
17919         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
17920         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
17921         later.
17922
17923 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
17924
17925         * attribs.c (vector_type_node_list): New static variable.
17926         (handle_vector_size_attribute): Use it to avoid generating a
17927         new type node each time we are called.
17928
17929         * combine.c (subst): Avoid trying to make a vector mode subreg of
17930         an integer constant.
17931         (gen_lowpart_for_combine): Likewise.
17932
17933 2002-04-18  Roger Sayle  <roger@eyesopen.com>
17934             Jakub Jelinek  <jakub@redhat.com>
17935
17936         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
17937         for integer constant c (if x has unsigned type or sign bit is not
17938         set in c).  This folds the zero/sign extension into the bit-wise and
17939         operation.
17940
17941 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
17942
17943         PR middle-end/6205
17944         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
17945         otherwise xorps.
17946
17947 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
17948
17949         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
17950
17951 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
17952
17953         * gcc.c (read_specs): Detect and fail if an attempt is made to
17954         rename a spec string to an already existing string.
17955
17956 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
17957
17958         * config/s390/s390.c (legitimize_pic_address): Do not generate
17959         illegal address constant without CONST.
17960
17961 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17962
17963         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
17964         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
17965
17966 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
17967
17968         PR optimization/6305
17969         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
17970         to make sure previous reloads are taken into account.  Generate
17971         better code if one operand is an in-range immediate constant.
17972
17973 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
17974
17975         * doc/install.texi (Building): libgcj requires GNU make.
17976
17977 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
17978
17979         PR bootstrap/6315
17980         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
17981         even if hard quad and register is not floating.
17982         (movtf reg<-mem split): Disallow splitting if hard quad and
17983         register is floating.
17984         (movtf mem<-reg split): Likewise.
17985         * config/sparc/sparc.c (fp_register_operand): New predicate.
17986         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
17987
17988 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
17989
17990         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
17991         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
17992         (unprotoize.o): Ditto.  Build from protoize.c.  Define
17993         UNPROTOIZE on command line.
17994         * protoize.c: Include cppdefault.h.  Delete include_defaults.
17995         (in_system_include_dir): Use cpp_include_defaults (defined in
17996         cppdefault.o).
17997         * unprotoize.c: Delete file.
17998
17999 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
18000
18001         * config/rs6000/altivec.h (vec_ld): Add array variants.
18002         (vec_lde): Same.
18003         (vec_ldl): Same.
18004
18005 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
18006             Aldy Hernandez <aldyh@redhat.com>
18007
18008         * config/rs6000/altivec.h: Define __ALTIVEC__.
18009         (bool): New.
18010         (__pixel): New.
18011         (pixel): New.
18012         (vec_cfux): New.
18013         (vec_vmaddfp): New.
18014         (vec_vsldoi): New.
18015         Add parentheses to all macro arguments.
18016
18017 2002-04-16  Richard Henderson  <rth@redhat.com>
18018
18019         PR c++/6320
18020         * except.c (remove_eh_handler): Insert inner regions at beginning
18021         of sibling chain.  Refactor expressions.
18022
18023 2002-04-16  Richard Henderson  <rth@redhat.com>
18024
18025         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
18026         * config/sparc/sol2-gas-bi.h: New file.
18027         * config.gcc (sparc*-solaris): Add it as needed.
18028         * configure.in (AS_SPARC64_FLAG): Remove check.
18029         * config.in, configure: Regenerate.
18030
18031         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
18032
18033 2002-04-16  Richard Henderson  <rth@redhat.com>
18034
18035         * config/mips/mips.c (override_options): Don't override N32 for
18036         a 64-bit ISA.
18037
18038         PR 6202
18039         * config/mips/mips.md (can_delay): Split out of existing define_delays.
18040         (HILO_delay): Set can_delay false.
18041
18042 2002-04-16  Dale Johannesen <dalej@apple.com>
18043
18044         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
18045         instruction addresses.
18046         (rs6000_output_function_epilogue): Likewise.
18047
18048 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
18049
18050         * c-parse.in (poplevel, compstmt_start,
18051         compstmt_primary_start): Add ending ';', in accordance
18052         with POSIX.
18053
18054 2002-04-16  Richard Henderson  <rth@redhat.com>
18055
18056         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
18057         Adjust tm_file order to get TARGET_DEFAULT set properly.
18058         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
18059         * doc/install.texi (sparc-solaris): Update.
18060
18061 2002-04-16  Dale Johannesen <dalej@apple.com>
18062
18063         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
18064         comparison operands do not match each other or if modes of
18065         conditions do not match result.
18066
18067 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
18068
18069         PR target/6305
18070         * config/s390/s390.md (mulsidi3): Set both subregs of the
18071         multiword register.
18072
18073 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
18074
18075         * config/rs6000/altivec.h (vec_addc): Type check.
18076
18077 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
18078
18079         PR middle-end/6279
18080         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
18081
18082         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
18083
18084 2002-04-15  Richard Henderson  <rth@redhat.com>
18085
18086         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
18087         call_really_used_regs too.
18088
18089 2002-04-15  Richard Henderson  <rth@redhat.com>
18090
18091         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
18092
18093 2002-04-15  David S. Miller  <davem@redhat.com>
18094
18095         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
18096         as being CLOBBERed.
18097
18098 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
18099
18100         PR c/6290
18101         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
18102         CONST_VECTOR is { 0, ... 0 }.
18103
18104 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
18105
18106         * doc/install.texi (Installing GCC: Configuration): Clarify
18107         the only supported ways to configure gcc.
18108
18109 2002-04-15  Roland McGrath  <roland@frob.com>
18110
18111         * config.gcc (alpha*-*-gnu*): New target configuration.
18112         * config/alpha/gnu.h: New file for it.
18113         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
18114
18115 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
18116
18117         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
18118         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
18119         * tree.h (expand_start_stmt_expr): Update prototype.
18120         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
18121         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
18122         on the STMT_EXPR created for the inline function.
18123
18124 2002-04-15  Richard Henderson  <rth@redhat.com>
18125
18126         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
18127         config/i386/linux-aout.h, config/i386/linux-oldld.h,
18128         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
18129         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
18130         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
18131         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
18132         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
18133         Define __gnu_linux__, not gnu_linux.
18134         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
18135
18136 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
18137
18138         Remove Chill front end.
18139         * gcc.c (default_compilers): Remove Chill entries.
18140         * ch: Remove directory.
18141         * doc/frontends.texi: Remove information about Chill.
18142         * doc/sourcebuild.texi: Likewise.
18143         * doc/standards.texi: Likewise.
18144
18145 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
18146
18147         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
18148         (LONGLONG_STANDALONE): Define.
18149
18150 2002-04-15  David S. Miller  <davem@redhat.com>
18151
18152         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
18153         Call emit_library_call with LCT_NORMAL.
18154         (sparc_initialize_trampoline): Use LCT_foo instead of
18155         magic constant in emit_library_call invocations.
18156         (sparc64_initialize_trampoline): Likewise.
18157         (sparc_profile_hook): Likewise.
18158         * config/sparc/sparc.md: Likewise.
18159
18160         * config/sparc/sparc.c (sparc_extra_constraint_check):
18161         Fix type of argument 'c'.
18162         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
18163         Likewise.
18164
18165 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
18166
18167         * diagnostic.h (output_buffer_state): Redefine.
18168         (output_format_decoder): New macro.
18169         (output_prefixing_rule): Likewise.
18170         (output_line_cutoff): Likewise.
18171         (diagnostic_format_decoder): Adjust.
18172         (diagnostic_prefixing_rule): Likewise.
18173         (diagnostic_line_cutoff): Likewise.
18174         (diagnostic_state): Likewise.
18175         (diagnostic_kind_count): Likewise.
18176         (diagnostic_buffer): Now a macro.
18177
18178         * diagnostic.c (diagnostic_buffer): Remove definition.
18179         (output_is_line_wrapping): Adjust.
18180         (set_real_maximum_length): Likewise.
18181         (output_set_maximum_length): Likewise.
18182         (init_output_buffer): Likewise.
18183         (lhd_print_error_function): Likewise.
18184         (output_do_verbatim): Likewise.
18185
18186 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
18187
18188         * cpperror.c (print_location): Don't print include chain
18189         if line == 0.
18190         (cpp_begin_message): Update to use DL_ macros.
18191         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
18192         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
18193         cpp_notice, cpp_notice_from_errno): Remove.
18194         (cpp_error, cpp_error_with_line): Update to take a diagnostic
18195         level.
18196         (cpp_errno): New.
18197         * cppexp.c (CPP_ICE): Remove.
18198         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
18199         lex, integer_overflow, _cpp_parse_expr): Update.
18200         * cppfiles.c (read_include_file, find_include_file,
18201         handle_missing_header, _cpp_read_file, remap_filename): Update.
18202         * cpphash.h (enum error_type): Remove.
18203         (_cpp_begin_message): Update.
18204         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
18205         cpp_handle_option, cpp_post_options): Update.
18206         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
18207         skip_whitespace, parse_identifier, parse_slow, parse_string,
18208         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
18209         cpp_interpret_charconst): Update.
18210         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
18211         lex_macro_node, do_undef, glue_header_name, parse_include,
18212         do_include_common, read_flag, do_line, do_linemarker, do_ident,
18213         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
18214         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
18215         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
18216         _cpp_pop_buffer, do_diagnostic): Update.
18217         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
18218         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
18219         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
18220         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
18221         cpp_notice, cpp_notice_from_errno): Remove.
18222         (cpp_error, cpp_error_with_line): Update to take a diagnostic
18223         level.
18224         (cpp_errno): New.
18225         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
18226         collect_args, enter_macro_context, save_parameter, parse_params,
18227         _cpp_create_definition, check_trad_stringification,
18228         cpp_macro_definition): Update.
18229         * cppmain.c (cpp_preprocess_file): Update.
18230         * fix-header.c (read_scan_file): Update.
18231
18232 2002-04-14  Andreas Schwab  <schwab@suse.de>
18233
18234         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
18235
18236 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
18237
18238         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
18239
18240 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
18241
18242         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
18243         not gnu_hurd.
18244
18245 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
18246
18247         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
18248
18249 2002-04-13      Joel Sherrill <joel@OARcorp.com>
18250
18251         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
18252         sparc-elf and sparc-rtems targets.
18253
18254 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
18255
18256         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
18257         defined, and __gnu_hurd__ wherever __GNU__ is defined.
18258         * arm/linux-elf.h: Likewise.
18259         * cris/aout.h: Likewise.
18260         * cris/linux.h: Likewise.
18261         * i370/linux.h: Likewise.
18262         * i386/gnu.h: Likewise.
18263         * i386/linux-aout.h: Likewise.
18264         * i386/linux-oldld.h: Likewise.
18265         * i386/linux.h: Likewise.
18266         * i386/linux64.h: Likewise.
18267         * ia64/linux.h: Likewise.
18268         * m68k/linux-aout.h: Likewise.
18269         * m68k/linux.h: Likewise.
18270         * mips/linux.h: Likewise.
18271         * pa/pa-linux.h: Likewise.
18272         * pj/linux.h: Likewise.
18273         * rs6000/sysv4.h: Likewise.
18274         * s390/linux.h: Likewise.
18275         * sh/linux.h: Likewise.
18276         * sparc/linux-aout.h: Likewise.
18277         * sparc/linux.h: Likewise.
18278         * sparc/linux64.h: Likewise.
18279         * xtensa/linux.h: Likewise.
18280
18281 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
18282
18283         * stmt.c (check_unique_operand_names): Expect operand names to
18284         be strings rather than identifiers.  Use simple_cst_equal to
18285         compare them.
18286         (resolve_operand_name_1): Make same identifier to string change here.
18287         * c-parse.in (asm_operand): Convert a named operand into a string.
18288         * cp/parse.y (asm_operand): Likewise.
18289
18290 2002-04-13  Andreas Schwab  <schwab@suse.de>
18291
18292         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
18293
18294 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
18295
18296         Revert these changes:
18297
18298         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
18299
18300         PR c++/5571
18301         * stor-layout.c (layout_decl): Reset the RTL for the decl.
18302
18303 2002-04-12  Richard Henderson  <rth@redhat.com>
18304
18305         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
18306         (sparc*-*-solaris): Clean up header files.
18307         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
18308         and plan on generating 64-bit code.
18309         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
18310         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
18311         * config/sparc/sol2-sld-64.h: Rename ...
18312         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
18313         for AS_SPARC64_FLAG not defined.
18314         * config/sparc/sol2-gld-bi.h: New.
18315         * config/sparc/sol2-sld.h: Remove.
18316         * config/sparc/sol26-sld.h: New.
18317         * config/sparc/sol2.h: Tidy comments.
18318         * doc/install.texi: Document sparc-solaris configury changes.
18319
18320 2002-04-12  Richard Henderson  <rth@redhat.com>
18321
18322         * recog.c (offsettable_address_p): Match the logic in adjust_address.
18323
18324         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
18325         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
18326
18327 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18328
18329         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
18330
18331 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
18332
18333         * pa.c (pa_can_combine_p): Call extract_insn before calling
18334         constrain_operands.
18335
18336 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
18337
18338         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
18339         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
18340         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
18341         (CPP_PREDEFINES): Handle __declspec.
18342         * config/i386/t-interix (USER_H): Remove.
18343
18344 2002-04-12  DJ Delorie  <dj@redhat.com>
18345
18346         * integrate.c (compare_blocks): Make comparisons safe for when
18347         sizeof(int) < sizeof(char *).
18348         (find_block): Likewise.
18349
18350 2002-04-12  Jan Hubicka  <jh@suse.cz>
18351             David Edelsohn  <edelsohn@gnu.org>
18352
18353         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
18354         registers.
18355         (symbol_ref_operand): New.
18356         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
18357         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
18358
18359 2002-04-12  Andreas Schwab  <schwab@suse.de>
18360
18361         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
18362         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
18363         overrides the definition in config/svr4.h.
18364
18365 2002-04-12      Eric Norum <eric.norum@usask.ca>
18366
18367         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
18368         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
18369         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
18370         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
18371         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
18372         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
18373         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
18374         definitions to config/rtems.h and make the targets more similar.
18375
18376 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18377
18378         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
18379         POINTERS_EXTEND_UNSIGNED.
18380         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
18381         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
18382
18383         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
18384         not specified.
18385
18386 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
18387
18388         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
18389         depends on TARGET_SHMEDIA, not TARGET_SH5.
18390
18391 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
18392
18393         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
18394         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
18395
18396 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
18397
18398         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
18399         no r0 clobber.
18400
18401 2002-04-12  Andreas Schwab  <schwab@suse.de>
18402
18403         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
18404
18405 2002-04-12  Richard Henderson  <rth@redhat.com>
18406
18407         PR bootstrap/4191
18408         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
18409
18410         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
18411         modes spanning multiple hard regs.
18412
18413         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
18414
18415 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18416
18417         * pa.c (pa_output_function_prologue): Don't accumulate the total
18418         number of code bytes when using TARGET_64BIT, or gas, SOM and not
18419         the portable runtime.
18420         (output_deferred_plabels): Handle 64bit plabels.
18421         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
18422         generating pic code using the GAS assembler for object formats that
18423         are not SOM (ie., ELF32 and ELF64).
18424         (output_millicode_call): Check attribute type if attribute length is 28.
18425         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
18426         dbr_sequence_length once.
18427         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
18428         dbr_sequence_length once.
18429         * pa.h (TARGET_SOM): Define if not defined.
18430         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
18431         with GAS and not SOM.
18432         (jump, call_internal_reg, call_value_internal_reg): Likewise.
18433         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
18434
18435 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
18436
18437         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
18438         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
18439         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
18440         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
18441         elfos.h and dbxelf.h values are fine now.
18442         * config/i386/freebsd.h, config/alpha/freebsd.h
18443         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
18444
18445 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
18446
18447         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
18448         or set Acpu or Amachine.  Reformat.
18449         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
18450         define.
18451         (LINK_SPEC): Do not need to undef.
18452         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
18453         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
18454         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
18455         define.
18456         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
18457         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
18458         (LINK_SPEC): Do not need to undef.
18459         (DONT_USE_BUILTIN_SETJMP): Do not define.
18460         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
18461         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
18462         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
18463         Remove trailing spaces.
18464         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
18465         __ELF__, or set Acpu or Amachine.  Reformat.
18466         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
18467         define.
18468
18469 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
18470
18471         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
18472         all other *-*-freebsd* targets.
18473
18474 2002-04-11  Richard Henderson  <rth@redhat.com>
18475
18476         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
18477
18478 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
18479
18480         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
18481         Include {cpu}/{cpu}.h thru tm_file.
18482         (alpha*-*-linux*ecoff): Remove target.
18483         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
18484         (LINK_SPEC): Remove, is not OS independent.
18485         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
18486         (LINK_SPEC): Do not need to #undef any longer.
18487         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
18488         any longer.
18489         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
18490         __ELF__.
18491         (LINK_SPEC): Moved here from alpha/elf.h.
18492         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
18493         SUB_CPP_PREDEFINES.
18494         * config/alpha/linux-ecoff.h: Remove.
18495         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
18496         (CPP_SPEC): Define _POSIX_SOURCE as needed.
18497         (CPP_SUBTARGET_SPEC): Do not define.
18498         (LINK_SPEC): Do not need to #undef any longer.
18499         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
18500         * config/alpha/vms.h: Likewise.
18501
18502 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
18503
18504         * doc/extend.texi: Remove old claim that typedefs cannot have
18505         an alignment attribute.
18506
18507 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
18508
18509         PR optimization/6177
18510         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
18511         bitpos is 0 and bitsize CONCAT size.
18512
18513 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
18514
18515         PR c/6223
18516         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
18517
18518 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
18519
18520         * config/alpha/freebsd.h: Minor reformatting.
18521         (CPP_SPEC): Define ELF and add cpp_subtarget.
18522         (ASM_SPEC): No longer needed.
18523
18524 2002-04-11  Richard Henderson  <rth@redhat.com>
18525
18526         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
18527         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
18528         (dimode mem/zero splitter): New.
18529
18530 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
18531
18532         * config/cris/cris.c (cris_override_options): Tweak error message
18533         for PIC not implemented.
18534
18535         * config/cris/cris.h: Tweak comments related to parameter-passing.
18536
18537         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
18538
18539 2002-04-10  Richard Henderson  <rth@redhat.com>
18540
18541         * except.c (add_ehl_entry): Allow duplicates after landing pad
18542         creation.
18543
18544 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
18545
18546         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
18547
18548 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
18549
18550         * c-decl.c (c_init_decl_processing): Move generation of
18551         decls for g77_integer_type_node and friends from here ...
18552         * c-common.c (c_common_nodes_and_builtins): ... to here.
18553
18554 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
18555
18556         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
18557         is only used as frame pointer when frame_pointer_needed is true.
18558
18559 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
18560
18561         PR target/817
18562         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
18563         for the fact that the pool entry uses two words.
18564         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
18565         1k bytes.
18566         (movdf_soft_insn): Similarly.
18567         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
18568         for the fact that the pool entry uses three words.
18569
18570 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
18571
18572         * config/mips/mips.c (mips_va_arg): When using the struct version
18573         of the EABI va_list, allow arguments in the register save area to
18574         take up less room than a stack argument.
18575
18576 2002-04-10  Richard Henderson  <rth@redhat.com>
18577
18578         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
18579         if EXPAND_INITIALIZER.
18580
18581 2002-04-09  Richard Henderson  <rth@redhat.com>
18582
18583         * config/alpha/alpha.md (movdi_er_maybe_g): New.
18584         * config/alpha/alpha.c (alpha_expand_mov): Use it.
18585
18586 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
18587
18588         PR optimization/6233
18589         * rtlanal.c (pure_call_p): New function.
18590         * rtl.h (pure_call_p): Declare.
18591         * loop.c (prescan_loop): Use it to set has_nonconst_call.
18592         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
18593
18594 2002-04-09  Eric Christopher  <echristo@redhat.com>
18595
18596         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
18597         information to .comm directive.
18598
18599 2002-04-09  Richard Henderson  <rth@redhat.com>
18600
18601         PR c/5078
18602         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
18603
18604 2002-04-09  Richard Henderson  <rth@redhat.com>
18605
18606         * basic-block.h (flow_delete_block_noexpunge): Declare.
18607         (expunge_block_nocompact): Declare.
18608         * cfg.c (expunge_block_nocompact): Split out from ...
18609         (expunge_block): ... here.
18610         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
18611         (flow_delete_block_noexpunge): Split out from ...
18612         (flow_delete_block): ... here.
18613         * cfgcleanup.c (delete_unreachable_blocks): Compact while
18614         removing dead blocks.
18615         * except.c (exception_handler_labels): Remove.
18616         (exception_handler_label_map): New.
18617         (struct eh_region): Add aka member.
18618         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
18619         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
18620         (for_each_eh_label, for_each_eh_label_1): New.
18621         (init_eh): Register exception_handler_label_map.
18622         (free_eh_status): Use free_region.
18623         (find_exception_handler_labels): Use the map, not the list.
18624         (remove_exception_handler_label): Likewise.
18625         (maybe_remove_eh_handler): Likewise.
18626         (remove_eh_handler): Use the region aka bitmap.
18627         * except.h (exception_handler_labels): Remove.
18628         (for_each_eh_label): Declare.
18629         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
18630         * loop.c (invalidate_loops_containing_label): New.
18631         (find_and_verify_loops): Use it.  Use for_each_eh_label.
18632         * sched-rgn.c (is_cfg_nonregular): Use
18633         current_function_has_exception_handlers.
18634
18635 2002-04-09  Richard Henderson  <rth@redhat.com>
18636
18637         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
18638         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
18639         Do not return changed status.
18640         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
18641         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
18642         New functions that do return changed status.
18643         * sbitmap.h: Update decls.
18644         * gcse.c, lcm.c: Use _cg functions as needed.
18645
18646 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
18647
18648         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
18649         (sh64-*-elf*, sh-*-rtemself*): Likewise.
18650         * config/sh/embed_bb.c: New file.
18651         * config/sh/embed-elf.h: New file.
18652         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
18653         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
18654         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
18655         __PTRDIFF_TYPE__ .
18656         (SUBTARGET_CPP_PTR_SPEC): Don't define.
18657         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
18658         Add subtarget_asm_endian_spec.
18659         (ASM_SPEC): Use subtarget_asm_endian_spec.
18660         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
18661         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
18662         (WCHAR_UNSIGNED): Define.
18663         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
18664         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
18665         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
18666         Fix value.
18667         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
18668         (sh_adjust_cost): Likewise.
18669         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
18670         __PTRDIFF_TYPE__ .
18671         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
18672         (WCHAR_TYPE_SIZE): Likewise.
18673         (ASM_SPEC): Use subtarget_asm_endian_spec.
18674         (SH_ELF_WCHAR_TYPE): #undef/ #define.
18675         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
18676         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
18677         (MAX_WCHAR_TYPE_SIZE): Don't #define .
18678         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
18679         (USER_LABEL_PREFIX): Don't #undef /#define .
18680         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
18681         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
18682         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
18683         (ASM_SPEC): Likewise.
18684         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
18685         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
18686         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
18687         (LIB2FUNCS_EXTRA): Define.
18688         * t-sh64 (LIB2FUNCS_EXTRA): Define.
18689         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
18690         (LIB1ASMFUNCS_CACHE): Define.
18691         (LIB2FUNCS_EXTRA): Redefine empty.
18692
18693 2002-04-08  Richard Henderson  <rth@redhat.com>
18694
18695         * reorg.c (get_branch_condition): Use reversed_comparison_code.
18696
18697 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
18698
18699         * config/m68hc11/larith.asm (__map_data_section): Fix condition
18700         and optimize for size.
18701         (__do_global_ctors): Fix pointer comparison.
18702         (__do_global_dtors): Likewise.
18703
18704 2002-04-09  David S. Miller  <davem@redhat.com>
18705
18706         * config/sparc/sparc.c (sparc_extra_constraint_check): New
18707         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
18708         allow reloading pseudos.
18709         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
18710         * config/sparc/sparc-protos.h: Declare it.
18711
18712         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
18713         unsigned comparison warning.
18714         (output_restore_regs): Mark leaf_function as unused.
18715
18716 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18717
18718         * expr.c (is_aligning_offset): New function.
18719         (expand_expr, case COMPONENT_EXPR): Call it.
18720
18721 2002-04-08  David S. Miller  <davem@redhat.com>
18722
18723         PR target/6082
18724         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
18725
18726         Make init_priority work on SPARC when using GNU ld.
18727         * config/sparc/linux.h, config/sparc/linux64.h,
18728         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
18729         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
18730         * config/sparc/sol2-gld.h: New file to do the same.
18731         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
18732         sparc/sol2-gld.h to tm_file.
18733
18734         PR optimization/4328
18735         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
18736         * doc/md.texi: Document it.
18737         * config/sparc/sparc.md (movdi_insn_sp64_novis,
18738         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
18739         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
18740         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
18741         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
18742
18743 2002-04-08  Andreas Jaeger  <aj@suse.de>
18744
18745         * stmt.c (expand_asm_operands): Revert last patch from Richard
18746         Henderson.
18747
18748 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18749
18750         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
18751         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
18752
18753 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18754
18755         * doc/contrib.texi (Contributors): Add David O'Brien.
18756
18757 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
18758
18759         * configure.in (auto-build.h): Use target_alias and build_alias
18760         when running configure.
18761         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
18762         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
18763         * configure: Regenerate.
18764
18765 2002-04-07  David S. Miller  <davem@redhat.com>
18766
18767         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
18768
18769 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18770
18771         PR 5933
18772         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
18773         generating 32-bit pic code.
18774
18775 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
18776
18777         * cppinit.c (cpp_create_reader): Initialize
18778         discard_comments_in_macro_exp.
18779         (COMMAND_LINE_OPTIONS): Add "-CC" option.
18780         (cpp_handle_option): Handle "-CC" option.
18781         * cpplex.c (save_comment): If saving a C++ comment in
18782         a directive, convert it to a C comment.
18783         (_cpp_lex_direct): Pass second comment start character to
18784         save_comment to indicate comment type.
18785         * cpplib.c (_cpp_handle_directive): If processing
18786         a "#define" directive and discard_comments_in_macro_exp
18787         is false,  re-enable saving of comments.
18788         (lex_macro_node): If discard_comments_in_macro_exp is false,
18789         discard any comments before the macro identifier.
18790         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
18791         member.
18792         * cppmacro.c (cpp_get_token): If expanding a macro while
18793         processing a directive, discard any comments we might encounter.
18794         (parse_params): If discard_comments_in_macro_exp is false,
18795         ignore comments in the macro parameter list.
18796         * gcc.c (cpp_unique_options): Add "-CC" option.
18797         (option_map): Map "--comments-in-macros" to "-CC".
18798         * doc/cppopts.texi: Document "-CC" option.
18799         * f/lang-specs.h: Add "-CC" option.
18800         * testsuite/gcc.dg/cpp/maccom1.c: New test.
18801         * testsuite/gcc.dg/cpp/maccom2.c: New test.
18802         * testsuite/gcc.dg/cpp/maccom3.c: New test.
18803         * testsuite/gcc.dg/cpp/maccom4.c: New test.
18804         * testsuite/gcc.dg/cpp/maccom5.c: New test.
18805         * testsuite/gcc.dg/cpp/maccom6.c: New test.
18806
18807 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18808
18809         PR middle-end/6180
18810         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
18811
18812 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
18813
18814         PR c++/5571
18815         * stor-layout.c (layout_decl): Reset the RTL for the decl.
18816
18817         PR opt/5120
18818         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
18819         RTX_UNCHANGING_P for the functions arguments when a tail call
18820         is made.
18821
18822 2002-04-06  Jason Merrill  <jason@redhat.com>
18823
18824         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
18825         (parse_options_and_default_flags): Set them appropriately.
18826         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
18827
18828 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
18829
18830         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
18831         here.
18832
18833         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
18834         semicolon.
18835
18836         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
18837         types come in by-reference.  Fix typo in comment.
18838
18839 2002-04-05  David S. Miller  <davem@redhat.com>
18840
18841         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
18842         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
18843         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
18844         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
18845
18846 2002-04-05  David S. Miller  <davem@redhat.com>
18847
18848         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
18849         are not going to emit return instructions, emit at least a nop
18850         for the sake of sane backtraces.
18851
18852 2002-04-05  Richard Henderson  <rth@redhat.com>
18853
18854         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
18855
18856 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
18857
18858         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
18859
18860 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
18861
18862         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
18863         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
18864         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
18865
18866 2002-04-05  Andreas Schwab  <schwab@suse.de>
18867
18868         * c-convert.c: Include c-common.h.
18869         * Makefile.in (c-convert.o): Updated.
18870
18871 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
18872
18873         * mklibgcc.in: Use separate libgcc.map for each multilib.
18874         * Makefile.in (distclean): Don't remove libgcc.map here.
18875
18876 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
18877
18878         * Makefile.in (s-mlib): Handle --disable-multilib by separate
18879         genmultilib invocation.
18880
18881 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
18882
18883         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
18884         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
18885         to num_gprs for symmetry.
18886         * config/mips/mips.c: Adjust accordingly.
18887
18888 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
18889
18890         * c-common.c (truthvalue_conversion): Rename, update.
18891         * c-common.h (c_common_truthvalue_conversion): New.
18892         * c-convert.c (convert): Update.
18893         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
18894         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
18895         * c-typeck.c (build_binary_op, build_unary_op,
18896         build_conditional_expr): Update.
18897         * fold-const.c (constant_boolean_node, fold): Use langhook.
18898         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
18899         * langhooks.h (struct lang_hooks): New hook.
18900         * stmt.c (expand_decl_cleanup): Use langhook.
18901         * tree.h (truthvalue_conversion): Remove.
18902 objc:
18903         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
18904
18905 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
18906
18907         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
18908         Add rules to make null object file.
18909
18910 2002-04-04  Jim Blandy  <jimb@redhat.com>
18911
18912         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
18913         macro formal parameter names.
18914
18915 2002-04-04  David S. Miller  <davem@redhat.com>
18916
18917         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
18918
18919 2002-04-04  Richard Henderson  <rth@redhat.com>
18920
18921         PR middle-end/5099
18922         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
18923         Support copies into and out of memory.  Don't accept allows_reg
18924         and allows_mem as gospel.
18925
18926 2002-04-04  Richard Henderson  <rth@redhat.com>
18927
18928         PR opt/6165
18929         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
18930         (write_dependence_p): Likewise.
18931
18932 2002-04-04  Richard Henderson  <rth@redhat.com>
18933
18934         * predict.c (estimate_bb_frequencies): Do frequency calculation
18935         with a volatile temporary.
18936
18937 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
18938
18939         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
18940
18941 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
18942
18943         PR c++/6119
18944         * final.c (final_start_function): Don't bump profile_label_no here...
18945         (final_end_function): ...but here.
18946
18947 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
18948
18949         * config/sparc/sparc.md (pic): New attribute.
18950         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
18951         into stack slots.
18952         (split after do_builtin_setjmp_setup): New.
18953
18954 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
18955
18956         PR fortran/6106
18957         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
18958         change.
18959
18960 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
18961
18962         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
18963         UNITS_PER_WORD for zero sized aggregates.
18964
18965 2002-04-03  David S. Miller  <davem@redhat.com>
18966
18967         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
18968         one-character spec for this, just use %(link_gcc_c_sequence).
18969
18970 2002-04-03  David S. Miller  <davem@redhat.com>
18971
18972         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
18973         handling.
18974
18975 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18976
18977         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
18978         (DWARF_FRAME_RETURN_COLUMN): Move.
18979         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
18980         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
18981         * pa.c (except.h, predict.h): Include.
18982         (FRP): Delete.
18983         (store_reg_modify, set_reg_plus_d): Revise prototypes.
18984         (output_ascii): Add cast.
18985         (store_reg_modify): Revise to add frame notes.
18986         (set_reg_plus_d): Likewise.
18987         (compute_frame_size): Include space for eh data registers in frame if
18988         the current function calls eh_return.
18989         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
18990         function calls eh_return.  Save eh data registers if the current
18991         function calls eh_return.  Fix code to add frame notes.  Emit
18992         blockage to prevent insns with frame notes being scheduled in the
18993         delay slot of calls.
18994         (hppa_expand_epilogue): Restore eh data registers and do final stack
18995         adjustment if the current function calls eh_return.  Don't add frame
18996         notes.
18997         (output_call): Revise for change in length of call insn.  Don't do
18998         return pointer adjustment for an unconditional jump in the delay slot
18999         of a call when using frame notes.
19000         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
19001         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
19002         (ARG_POINTER_CFA_OFFSET): Define.
19003         * pa.md (return_external_pic): New pattern.
19004         (prologue): Correct formatting.  Use return_external_pic if current
19005         function calls eh_return.
19006         (call_internal_symref, call_value_internal_symref,
19007         sibcall_internal_symref, sibcall_value_internal_symref): Change default
19008         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
19009         respectively.
19010         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
19011
19012         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
19013         list of targets to check using "nop" insn.
19014         * configure: Rebuilt.
19015
19016 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
19017
19018         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
19019
19020 2002-04-03  David S. Miller  <davem@redhat.com>
19021
19022         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
19023         library sequence passed to the linker.
19024         (LINK_COMMAND_SPEC): Use it.
19025         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
19026         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
19027         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19028
19029 2002-04-03  Jason Merrill  <jason@redhat.com>
19030
19031         * except.c (struct eh_status): Remove protect_list.
19032         (begin_protect_partials, end_protect_partials): Remove.
19033         (add_partial_entry): Remove.
19034         * except.h: Remove prototypes.
19035
19036         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
19037         expand_decl_cleanup_eh.
19038
19039         PR c++/5636
19040         * tree.h (CLEANUP_EH_ONLY): New macro.
19041         * stmt.c (expand_decl_cleanup_eh): New fn.
19042         (expand_cleanups): Check CLEANUP_EH_ONLY.
19043         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
19044         Use expand_decl_cleanup_eh.
19045         (expand_stmt): Adjust.
19046         * c-common.h: Adjust prototype.
19047
19048 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
19049
19050         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
19051         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
19052         (cris_target_asm_function_epilogue): Ditto.
19053         (cris_initial_frame_pointer_offset): Ditto.
19054         (cris_simple_epilogue): Ditto.
19055         (cris_expand_builtin_va_arg): Variable-size types come in
19056         by-reference.
19057
19058 2002-04-03  David S. Miller  <davem@redhat.com>
19059
19060         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
19061         little-endian.
19062         (set_fast_math): Correct 'fsr' type.
19063
19064 2002-04-03  Richard Henderson  <rth@redhat.com>
19065
19066         PR opt/3569
19067         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
19068         * toplev.c (check_global_declarations): Use it.
19069         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
19070         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
19071         (LANG_HOOKS_DECLS): Add it.
19072         * langhooks.c (lhd_warn_unused_global_decl): New.
19073         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
19074         * c-objc-common.c (c_warn_unused_global_decl): New.
19075         * c-tree.h (c_warn_unused_global_decl): Declare.
19076         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
19077
19078 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19079
19080         * langhooks-def.h (lhd_set_decl_assembler_name,
19081         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
19082         (LANG_HOOKS_INITIALIZER): Update.
19083         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
19084         * langhooks.h (struct lang_hooks): New hook.
19085         * tree.c (set_decl_assembler_name): Move to langhooks.c.
19086         (lang_set_decl_assembler_name): Remove.
19087         (init_obstacks): Don't set hook.
19088         (decl_assembler_name): New function.
19089         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
19090         (decl_assembler_name): New.
19091         (lang_set_decl_assembler_name): Remove.
19092
19093 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
19094
19095         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
19096         works properly with .hidden symbols.
19097         * configure: Rebuilt.
19098         * config.in: Rebuilt.
19099         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
19100         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
19101         properly with .hidden symbols.
19102
19103 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
19104
19105         PR middle-end/6102
19106         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
19107         USE argument.
19108
19109 2002-04-03  Richard Henderson  <rth@redhat.com>
19110
19111         PR opt/4120
19112         * sched-rgn.c (sets_likely_spilled): New.
19113         (sets_likely_spilled_1): New.
19114         (add_branch_dependences): Use it.
19115
19116 2002-04-02  Richard Henderson  <rth@redhat.com>
19117
19118         PR opt/4311
19119         * loop.h (LOOP_FIRST_PASS): New.
19120         * loop.c (strength_reduce): Mind it when deciding to unroll.
19121         * toplev.c (rest_of_compilation): Set it.
19122
19123 2002-04-02  David S. Miller  <davem@redhat.com>
19124
19125         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
19126         mems_ok_for_ldd_peep when the order of the loads being examined
19127         is reversed.
19128         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
19129         existing comment to increase comprehension of this situation.
19130
19131 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
19132
19133         * config/sh/sh.md: Don't use union real_extract.
19134
19135 2002-04-02  Richard Henderson  <rth@redhat.com>
19136
19137         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
19138
19139 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
19140
19141         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
19142         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
19143         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
19144         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
19145         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
19146         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
19147         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
19148         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
19149         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
19150         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
19151         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
19152         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
19153         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
19154         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
19155         Include as many configury headers via tm_file as possible.  This
19156         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
19157         * config/openbsd-oldgas.h: New file.
19158         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
19159         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
19160         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
19161         config/i386/i386-coff.h, config/i386/i386-interix.h,
19162         config/i386/iscdbx.h, config/i386/linux-aout.h,
19163         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
19164         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
19165         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
19166         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
19167         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
19168         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
19169         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
19170         config/i386/vxi386.h: Do not directly include configury headers.
19171         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
19172         Directly include configury headers that are no longer automatically
19173         included by the above headers.
19174         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
19175         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
19176         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
19177         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
19178         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
19179         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
19180         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
19181         (TARGET_VERSION): Define.
19182         * config/i386/beos-elf.h, config/i386/freebsd.h,
19183         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
19184         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
19185         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
19186         config/i386/sco5.h, config/i386/sysv4.h
19187         (TARGET_VERSION): Do not need to protect.
19188         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
19189         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
19190         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
19191         config/i386/i386-interix.h, config/i386/linux-aout.h,
19192         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
19193         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
19194         (YES_UNDERSCORES): Do not define - not needed.
19195         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
19196         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
19197         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
19198         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
19199         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
19200         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
19201         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
19202         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
19203
19204 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
19205             Richard Henderson  <rth@redhat.com>
19206
19207         PR c/5484
19208         * function.c (assign_temp): Accept either type or decl argument.
19209         Detect variables whose size is too large to fit into an integer.
19210         * stmt.c (expand_decl): Pass the decl, not the type.
19211
19212 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
19213
19214         * protoize.c: Match include directory usage with cppdefault.c.
19215
19216 2002-04-03  Jeffrey A Law  (law@redhat.com)
19217             Hans-Peter Nilsson  <hp@bitrange.com>
19218
19219         * combine.c (simplify_comparison): Avoid narrowing a comparison
19220         with a paradoxical subreg when doing so would drop signficant bits.
19221
19222 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
19223
19224         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
19225         if POINTERS_EXTEND_UNSIGNED is defined.
19226
19227 2002-04-02  Richard Henderson  <rth@redhat.com>
19228
19229         PR opt/3967
19230         * local-alloc.c (contains_replace_regs): LO_SUM may contain
19231         replace regs.
19232
19233 2002-04-02  Richard Henderson  <rth@redhat.com>
19234
19235         * doc/standards.texi: Document required freestanding libc entry points.
19236
19237 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
19238
19239         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
19240         associated splitter.  Remove MQ constraint.
19241         (ctrdi_internal4): Correct CCmode clobber.
19242
19243 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19244
19245         * milli64.S ($$dyncall): New function.
19246         * t-linux (LIB1ASMFUNCS): Revise module list.
19247         (LIB1ASMSRC): Use pa/milli64.S.
19248
19249 2002-04-02  Richard Henderson  <rth@redhat.com>
19250
19251         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
19252         rename solaris_sys_varargs_h.
19253
19254 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19255
19256         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
19257         the same mode as its component.
19258
19259 2002-04-02  Richard Henderson  <rth@redhat.com>
19260
19261         PR opt/190
19262         * final.c (this_is_asm_operands): Export.
19263         * output.h (this_is_asm_operands): Declare.
19264         * config/i386/i386.c (print_operand): Error odd asm operands.
19265
19266 2002-04-02  Richard Henderson  <rth@redhat.com>
19267
19268         PR opt/420
19269         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
19270
19271 2002-04-01  Richard Henderson  <rth@redhat.com>
19272
19273         PR target/1538
19274         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
19275         * fixinc/fixincl.x: Rebuild.
19276
19277 2002-04-01  Richard Henderson  <rth@redhat.com>
19278
19279         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
19280         (atomic_alloc, atomic_free): New.
19281         (SIZE, MASK_FOR, PTR_IN): New.
19282         (emergency_reg_state, emergency_reg_state_free): New.
19283         (emergency_labeled_state, emergency_labeled_state_free): New.
19284         (reg_state_alloced, labeled_state_alloced): New.
19285         (alloc_reg_state, free_reg_state): New.
19286         (alloc_label_state, free_label_state, free_label_states): New.
19287         (push, pop, dup_state_stack, free_state_stack): Use them.
19288         (desc_label_state): Likewise.
19289         (uw_frame_state_for): Free label states and state stack.
19290         (uw_update_reg_address): Eliminate warnings.
19291
19292 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
19293
19294         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
19295         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
19296
19297 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
19298
19299         * c-decl.c (grokdeclarator): Update.
19300         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
19301         * c-tree.h (c_mark_addressable): New.
19302         * c-typeck.c (default_function_array_conversion, build_unary_op,
19303         build_array_ref, convert_for_assignment): Update.
19304         (mark_addressable): Rename.
19305         * calls.c (try_to_integrate, expand_call): Use langhook.
19306         * expr.c (expand_expr): Use langhook.
19307         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
19308         * langhooks.h (struct lang_hooks): New hook.
19309         * stmt.c (expand_asm_operands): Use langhook.
19310         * tree.h (mark_addressable): Remove.
19311 objc:
19312         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
19313
19314 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
19315
19316         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
19317         in previous change.
19318
19319 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
19320
19321         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
19322         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
19323
19324 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
19325
19326         * c-common.c (unsigned_conversion_warning, convert_and_check,
19327         unsigned_type, signed_type, shorten_compare,
19328         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
19329         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
19330         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
19331         New.
19332         * c-decl.c (grokdeclarator): Update.
19333         * c-format.c (check_format_types): Update.
19334         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
19335         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
19336         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
19337         * convert.c (convert_to_integer): Use new hooks.
19338         * expmed.c (make_tree): Use new hooks.
19339         * expr.c (store_expr): Use new hooks.
19340         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
19341         all_ones_mask_p, unextend, fold): Use new hooks.
19342         * langhooks.h (struct lang_hooks_for_types): New hooks.
19343         * tree.h (signed_or_unsigned_type, signed_type,
19344         unsigned_type): Remove.
19345 objc:
19346         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
19347         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
19348
19349 2002-03-31  Richard Henderson  <rth@redhat.com>
19350
19351         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
19352         (desc_frgr_mem): Fix reference to f16-f31.
19353
19354 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19355
19356         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
19357         RTVEC_ELT): Const-ify.
19358         * varray.h (VARRAY_CHECK): Const-ify.
19359         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
19360         ggc_mark_rtvec, ggc_mark): Const-ify.
19361
19362 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
19363
19364         * diagnostic.c: Include langhooks-def.h.
19365         * Makefile.in (diagnostic.o): Update.
19366
19367 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
19368
19369         * c-common.c (c_unsafe_for_reeval): Rename.
19370         * c-common.h (c_unsafe_for_reeval): Rename.
19371         * c-decl.c (finish_incomplete_decl): Rename.
19372         (c_init_decl_processing): Don't set langhook.
19373         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
19374         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
19375         * c-objc-common.c (c_objc_common_init): Don't set langhook.
19376         * c-tree.h (finish_incomplete_decl): Rename.
19377         * langhooks-def.h (lhd_unsafe_for_reeval): New.
19378         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
19379         (LANG_HOOKS_INITIALIZER): Update.
19380         * langhooks.c (lhd_unsafe_For_reeval): New.
19381         * langhooks.h (struct langhooks): New hooks.
19382         * toplev.c (incomplete_decl_finalize_hook): Remove.
19383         (wrapup_global_declarations): Update.
19384         * tree.c (lang_unsafe_for_reeval): Remove.
19385         (unsafe_for_reeval): Update.
19386         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
19387         Remove.
19388 objc:
19389         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
19390         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
19391
19392 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
19393
19394         * diagnostic.c (print_error_function): Remove.
19395         (default_print_error_function): Rename.
19396         (report_error_function): Update.
19397         * diagnostic.h (print_error_function): Remove.
19398         (default_print_error_function): Remove.
19399         * langhooks-def.h (struct diagnostic_context): Predeclare.
19400         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
19401         (LANG_HOOKS_INITIALIZER): Update.
19402         * langhooks.h (struct diagnostic context): Predeclare.
19403         (struct lang_hooks): New hook.
19404
19405 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19406
19407         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
19408         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
19409         !flag_pic.
19410         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
19411         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
19412         of PIC_OFFSET_TABLE_REGNUM thruout.
19413         * config/rs6000/rs6000.md: Likewise.
19414         * config/rs6000/darwin.h: Likewise.
19415
19416 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19417
19418         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
19419         unsigned HOST_WIDE_INT, not unsigned int.
19420
19421 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
19422
19423         PR middle-end/6096, middle-end/6098, middle-end/6099
19424         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
19425         CODE_LABELs.
19426         (fill_slots_from_thread): Likewise.
19427
19428 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
19429
19430         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
19431         floating fields in float regs.
19432         (function_arg_record_value_2): Likewise.
19433
19434 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
19435
19436         * config/mmix/mmix.md (define_constants): Remove misleading
19437         FIXME.  Add MMIX_fp_rO_OFFSET.
19438         ("nonlocal_goto_receiver"): Don't have stack-frame address of
19439         saved rO as part of the pattern.  Remove FIXME.
19440         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
19441         here, at output-time.
19442
19443 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
19444
19445         PR middle-end/6100
19446         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
19447         REG_BR_PRED.
19448         (output_v9branch): Likewise.
19449
19450 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
19451
19452         * gcc.c: Revert previous patch for now.
19453         * config/i386/djgpp.h: Likewise.
19454
19455 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
19456
19457         * config/mmix/crti.asm (_init): Register _fini with atexit.
19458         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
19459
19460 2002-03-31  Richard Henderson  <rth@redhat.com>
19461
19462         PR target/3997
19463         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
19464         (ASM_OUTPUT_DEF_FROM_DECLS): New.
19465
19466 2002-03-31  Richard Henderson  <rth@redhat.com>
19467
19468         * libgcc2.c (__bb_exit_func): Make static.
19469
19470         * config/alpha/alpha.md (trap): New.
19471
19472 2002-03-31  Richard Henderson  <rth@redhat.com>
19473
19474         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
19475         promoted argument types; build trap.
19476         (expand_builtin_trap): New.
19477         (expand_builtin): Use it.
19478         * stmt.c (expand_nl_goto_receivers): Likewise.
19479         * expr.h (expand_builtin_trap): Declare.
19480         * libfuncs.h (LTI_abort, abort_libfunc): New.
19481         * optabs.c (init_optabs): Init abort_libfunc.
19482
19483 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
19484
19485         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
19486         (LINK_COMMAND_SPEC): ... from here.
19487         (init_gcc_specs): Duplicate it here too, omitting
19488         shared_name in the second copy.
19489         (init_spec): Test for duplicate
19490         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
19491
19492 2002-03-30  David S. Miller  <davem@redhat.com>
19493
19494         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
19495         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
19496
19497 2002-03-30  Roger Sayle <roger@eyesopen.com>
19498             Richard Henderson  <rth@redhat.com>
19499
19500         * regmove.c (combine_stack_adjustments_for_block): Avoid
19501         emitting a stack adjustment of zero bytes.  Let delete_insn
19502         update bb->head.
19503
19504 2002-03-30  Richard Henderson  <rth@redhat.com>
19505
19506         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
19507         (sparc_emitting_epilogue): New.
19508         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
19509         * config/sparc/sparc-protos.h: Update.
19510         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
19511         (TARGET_SWITCHES): Update.
19512         * config/sparc/sparc.md (return): Remove.
19513         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
19514         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
19515         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
19516         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
19517         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
19518         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
19519         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
19520         Remove MASK_EPILOGUE.
19521         * doc/invoke.texi: Update.
19522
19523 2002-03-30  Daniel Berlin  <dan@dberlin.org>
19524
19525         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
19526         CPP will start the file for us.
19527
19528 2002-03-30  Richard Henderson  <rth@redhat.com>
19529
19530         PR target/5446
19531         * config/ia64/ia64.c (group_barrier_needed_p): Special case
19532         prologue_allocate_stack.
19533         (ia64_single_set): Use insn codes for recognition of special
19534         cases, not rtl matching.
19535         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
19536
19537 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
19538
19539         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
19540
19541 2002-03-30  Richard Henderson  <rth@redhat.com>
19542
19543         PR target/6032
19544         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
19545         or -fomit-frame-pointer with profiling.
19546         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
19547         (FUNCTION_PROFILER): Do nothing.
19548         (PROFILE_HOOK): New.
19549         * config/sparc/sparc.c (sparc_override_options): Don't check
19550         code models for profiling.
19551         (sparc_function_profiler): Remove.
19552         (sparc_profile_hook): New.
19553         * config/sparc/sparc-protos.h: Update.
19554
19555 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
19556
19557         PR optimization/6086
19558         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
19559         of SUBREG of volatile MEM or because the MEM was mode dependent,
19560         return CLOBBER instead of unmodified SUBREG.
19561
19562 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
19563
19564         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
19565         when not optimizing.
19566
19567         * toplev.c (rest_of_compilation): Cann mark_constant_function
19568         only when optimizing.
19569
19570         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
19571         are NULL.
19572
19573         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
19574         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
19575         (try_optimize_cfg): clear all AUX fields.
19576
19577         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
19578         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
19579         (ix86_address_cost): Be prepared for SUBREGed registers.
19580         (legitimate_address_p): Accept SUBREGed registers.
19581
19582 2002-03-29  Richard Henderson  <rth@redhat.com>
19583
19584         PR target/5672
19585         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
19586
19587 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19588
19589         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
19590         for aggregate and TFmode types.
19591
19592 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
19593
19594         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
19595
19596 2002-03-29  Richard Henderson  <rth@redhat.com>
19597
19598         PR target/5886
19599         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
19600         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
19601
19602 2002-03-29  Richard Henderson  <rth@redhat.com>
19603
19604         PR target/6041
19605         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
19606         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
19607         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
19608         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
19609         conditional.
19610         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
19611
19612 2002-03-29  Dale Johannesen <dalej@apple.com>
19613
19614         * loop.c (combine_movables): Do allow combination of pseudos.
19615
19616 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
19617
19618         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
19619         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
19620         No functional change except ...
19621         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
19622         * doc/install.texi (*-*-freebsd*): Document port configuration.
19623
19624 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
19625
19626         * Makefile.in (convert.o, calls.o, expmed.o): Update.
19627         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
19628         Use new hooks.
19629         * builtin-types.def (BT_PTRMODE): Update.
19630         * c-common.c (type_for_size): Rename c_common_type_for_size.
19631         (type_for_mode): Similarly.
19632         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
19633         Use new hook.
19634         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
19635         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
19636         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
19637         Redefine.
19638         * c-typeck.c (common_type, comptypes, default_conversion):
19639         Use new hooks.
19640         * calls.c: Include langhooks.h.
19641         (emit_library_call_value_1): Use new hooks.  Avoid redundant
19642         calls.
19643         * convert.c: Include langhooks.h
19644         (convert_to_pointer, convert_to_integer): Use new hooks.
19645         * except.c (init_eh): Similarly.
19646         * expmed.c: Include langhooks.h.
19647         (expand_mult_add): Use new hooks.
19648         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
19649         try_casesi): Similarly.
19650         * fold-const.c (optimize_bit_field_compare, make_range,
19651         decode_field_reference, fold_truthop, fold): Similarly.
19652         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
19653         put_var_into_stack): Similarly.
19654         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
19655         LANG_HOOKS_TYPE_FOR_SIZE): New.
19656         (LANG_HOOKS_TYPES_INITIALIZER): Update.
19657         * langhooks.h (lang_hooks_for_types): New hooks.
19658         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
19659         * tree.c (get_unwidened, get_narrower): Similarly.
19660         * tree.h (type_for_mode, type_for_size): Remove.
19661         * varasm.c (force_const_mem): Use new hooks.
19662         * utils2.c (nonbinary_modular_operation): Update.
19663 objc:
19664         * objc-act.c (handle_impent): Update.
19665         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
19666         Redefine.
19667
19668 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
19669
19670         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
19671         * config/ia64/ia64.c (basereg_operand): New.
19672         * config/ia64/ia64-protos.h (basereg_operand): Declare.
19673         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
19674
19675 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
19676
19677         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
19678         unwind information when frame_pointer_needed.
19679         (mmix_assemble_integer): Tweak wording in comment.
19680
19681 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
19682
19683         * Makefile.in (except.o): Update.
19684         * except.c: Include langhooks.h.
19685         (init_eh): Use langhook.
19686         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
19687         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
19688         (LANG_HOOKS_INITIALIZER): Update.
19689         * langhooks.h (lang_hooks_for_types): New.
19690         (struct lang_hooks): Add it.
19691         * tree.c (make_lang_type_fn, make_lang_type): Remove.
19692         * tree.h (make_lang_type_fn, make_lang_type): Remove.
19693 config:
19694         * alpha/alpha.c: Include langhooks.h.
19695         (alpha_build_va_list): Use langhook.
19696         * d30v/d30v.c: Include langhooks.h.
19697         (d30v_build_va_list): Use langhook.
19698         * i386/i386.c: Include langhooks.h.
19699         (ix86_build_va_list): Use langhook.
19700         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
19701         * s390/s390.c: Include langhooks.h.
19702         (s390_build_va_list): Use langhook.
19703         * stormy16/stormy16.c: Include langhooks.h.
19704         (stormy16_build_va_list): Use langhook.
19705
19706 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
19707
19708         PR c++/5964
19709         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
19710         attributes.
19711         (length): Compute variable length for branches/calls/jumps here.
19712         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
19713         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
19714         define branch_type attribute.
19715         (divsi3_sp32): Maximum length is 6 not 7.
19716         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
19717         call_address_untyped_struct_value_sp32,
19718         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
19719         * config/sparc/sparc.c (empty_delay_slot): New function.
19720         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
19721         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
19722
19723 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
19724
19725         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
19726         nonzero_bits if not needed.
19727         (nonzero_bits) [XOR]: Likewise.
19728         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
19729         reg_last_set_mode and mode are both MODE_INT, but not equal.
19730         (record_value_for_reg): Compute reg_last_set_nonzero_bits
19731         in nonzero_bits_mode for MODE_INT modes.
19732
19733 2002-03-28  Richard Henderson  <rth@redhat.com>
19734
19735         PR target/5715
19736         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
19737         to GAS.  Correct drift between alternatives.
19738
19739 2002-03-28  Richard Henderson  <rth@redhat.com>
19740
19741         PR target/6087
19742         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
19743
19744 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
19745
19746         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
19747         emulation to the linker.
19748
19749 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
19750
19751         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
19752         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
19753
19754 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
19755
19756         * combine.c (simplify_and_const_int): Make sure to apply mask
19757         when force_to_mode returns a constant integer.  PR3311.
19758
19759 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19760
19761         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
19762
19763 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19764
19765         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
19766         and Objective-C Dialect Options.
19767
19768 2002-03-28  Richard Henderson  <rth@redhat.com>
19769
19770         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
19771         comparison should be done vs !=0 not >0 return code.  Tidy cases.
19772
19773 2002-03-28  Richard Henderson  <rth@redhat.com>
19774
19775         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
19776         on to c_expand_body.
19777         * c-tree.h (finish_function): Update decl.
19778         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
19779
19780 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
19781
19782         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
19783
19784 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
19785
19786         * rtlanal.c: Include flags.h
19787         (may_trap_p): Do not mark FP operations if trapping
19788         if !flag_trapping_math
19789         * Makefile.in (rtlanal.o): Add dependency on flag.h
19790         * ifcvt.c (noce_operand_ok): Avoid the lameness.
19791
19792 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
19793
19794         * mips.md: Use dconst1, not 1.0, as first argument of
19795         REAL_VALUE_LDEXP.  Don't use union real_extract.
19796
19797 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
19798
19799         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
19800         rather than $target.  Heed program_prefix and
19801         program_transform_name.  Search for gas in cross-compiler case too.
19802         "test -x" rather than "test -f".
19803         (gcc_cv_ld): Likewise.
19804         (gcc_cv_nm): Heed program_prefix and program_transform_name.
19805         (gcc_cv_objdump): Likewise.
19806         * configure: Regenerate.
19807
19808 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
19809
19810         * Makefile.in (attribs.o): Update.
19811         * attribs.c: Include langhooks.h.
19812         (decl_attributes): Use langhook.
19813         * c-decl.c (insert_default_attributes): Rename.
19814         * c-tree.h (c_insert_default_attributes): New.
19815         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
19816         (LANG_HOOKS_INITIALIZER): Update.
19817         * langhooks.h (struct lang_hooks): New hook.
19818         * tree.h (insert_default_attributes): Remove.
19819 objc:
19820         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
19821
19822 2002-03-27  Andreas Schwab  <schwab@suse.de>
19823
19824         * config/i386/i386.c (classify_argument): Also check for
19825         QUAL_UNION_TYPE.
19826
19827 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19828
19829         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
19830         any more.
19831
19832 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
19833
19834         * i960.md (ret): Set PC.
19835         (nonlocal_goto): Fix expander.
19836         * builtins.c (epxand_builin_longjmp): Check that we've emitted
19837         some jump or call.
19838
19839 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
19840
19841         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
19842         of libcall regions.
19843
19844 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
19845
19846         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
19847         assigning to BLOCK_FOR_INSN directly.
19848
19849 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
19850
19851         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
19852
19853 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
19854
19855         * c-common.c (c_expand_expr): Fix prototype.
19856         * c-common.h (c_expand_expr): Always declare, update.
19857         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
19858         * c-objc-common.c (c_objc_common_init): No global hook.
19859         * expr.c (expand_expr): Use langhook.
19860         * expr.h (enum expand_modifier): Conditionally declare.
19861         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
19862         (LANG_HOOKS_INITIALIZER): Update.
19863         * langhooks.c (lhd_expand_expr): New.
19864         * langhooks.h (struct lang_hooks): New hook.
19865         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
19866         (lang_independent_init): Don't default hook.
19867 objc:
19868         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
19869
19870 2002-03-27  Richard Henderson  <rth@redhat.com>
19871
19872         PR target/6054
19873         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
19874         TARGET_CONST_GP.  Simplify conditions.
19875
19876 2002-03-27  Richard Henderson  <rth@redhat.com>
19877
19878         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
19879         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
19880         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
19881
19882 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
19883
19884         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
19885         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
19886         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
19887         Remove unnecessary masks.
19888         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
19889         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
19890         -mwindows, -mdll switches and their negations.
19891
19892 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
19893
19894         * gcc-common.c (lang_mark_false_label_stack): Remove.
19895         * ggc.h (lang_mark_false_label_stack): Similarly.
19896
19897 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
19898
19899         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
19900
19901         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
19902         or __rtems_ is defined.
19903
19904 2002-03-26  Richard Henderson  <rth@redhat.com>
19905
19906         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
19907         if a non-trivial load was emitted.
19908         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
19909         in high+extra+low case.
19910
19911 2002-03-26  Richard Henderson  <rth@redhat.com>
19912
19913         * config.gcc (sparc*-solaris): Use float_format=sparc.
19914
19915 2002-03-26  Richard Henderson  <rth@redhat.com>
19916
19917         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
19918         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
19919         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
19920         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
19921         (WINT_TYPE_SIZE): Fix at 32.
19922
19923 2002-03-26  Richard Henderson  <rth@redhat.com>
19924
19925         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
19926         until after eh landing pad generation.
19927         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
19928         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
19929
19930 2002-03-26  Richard Henderson  <rth@redhat.com>
19931
19932         * expr.h (ADD_PARM_SIZE): One more convert for INC.
19933
19934 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
19935
19936         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
19937         and warning switches.
19938         (cc1_options):  Likewise.
19939
19940 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
19941
19942         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
19943         Restore more of the signal context.  Set no_reg_stack_frame.
19944         * config/ia64/unwind-ia64.c (unw_state_record):
19945         Add no_reg_stack_frame, comments.
19946         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
19947         (uw_update_context): Adjust bsp when unwinding from leaf,
19948         but not signal frame.
19949
19950 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
19951
19952         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
19953
19954 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
19955
19956         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
19957
19958 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
19959
19960         PR target/5621
19961         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
19962         "Add a pool_range attribute", which was lost during the ARM/Thumb
19963         merge.
19964
19965 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
19966
19967         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
19968         a register into the MAC16 accumulator.
19969
19970 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
19971
19972         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
19973         (Warning Options): Document -Wswitch-enum.
19974         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
19975         -Wswitch.
19976         (warn_switch_enum): Define variables.
19977         * flags.h (warn_switch_enum): Declare variables.
19978         * stmt.c (expand_end_case_type): When warn_switch_enum /
19979         -Wswitch-enum, perform switch checks.
19980         Fix PR c/5044.
19981
19982 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
19983
19984         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
19985         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
19986         (reload_muladdsi_compare0_scratch): Delete.
19987
19988 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
19989
19990         * doc/install.texi (*-*-freebsd*): Update.
19991
19992 2002-03-26  Richard Henderson  <rth@redhat.com>
19993
19994         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
19995         (SUB_PARM_SIZE): Cast DEC to ssizetype.
19996
19997         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
19998         types from the normal argument frame.
19999
20000         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
20001         variable sized objects by reference.
20002         (sparc_va_arg): Receive them by reference too.
20003
20004 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
20005
20006         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
20007         code to not restoring global registers.
20008
20009 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
20010
20011         * Makefile.in (ggc-common.o): Update.
20012         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
20013         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
20014         * c-tree.h (c_mark_tree): New.
20015         * ggc-common.c: Include langhooks.h.
20016         (gcc_mark_trees): Use new langhook.
20017         * ggc-callbacks.c: Delete file.
20018         * ggc.h (lang_mark_tree): Remove.
20019         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
20020         (LANG_HOOKS_INITIALIZER): Update.
20021         * langhooks.h (struct lang_hooks): New hook.
20022 objc:
20023         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
20024
20025 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
20026
20027         * doc/cpp.texi: Exclude entire Top node from printed manual.
20028         Move option index after directive index.  Insert page breaks
20029         before GFDL and concept index.  Index environment variables
20030         with command line options.
20031         * doc/cppenv.texi: Use @vtable for environment variable list.
20032         Add paragraph explaining semantics of empty elements in path
20033         variables.  Exclude a cross-reference to Fishkill from the
20034         manpage.  Remove an unnecessary cross-reference of the entry
20035         right above the referer.  Don't use @anchor in text that goes
20036         into manpage.
20037         * doc/cppopts.texi: Cross-reference the environment variables
20038         section, not the specific environment variable, for consistency.
20039
20040 2002-03-25  Richard Henderson  <rth@redhat.com>
20041
20042         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
20043         anywhere in the block.  Don't refer to insns that have been
20044         removed from the chain.  Iterate backward through the new insns.
20045         Don't refer to edges that have been removed.
20046
20047 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
20048
20049         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
20050         test for overflow of constant.
20051
20052 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
20053
20054         PR target/2623
20055         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
20056         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
20057         these patterns on arm_archv4.
20058
20059 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
20060
20061         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
20062         int".
20063
20064 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
20065
20066         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
20067         float_handled, float_handler, float_signal, set_float_handler,
20068         and do_float_handler.  Set handler for SIGFPE to crash_signal.
20069         * toplev.h: Don't prototype do_float_handler.
20070
20071         * c-lex.c: Fold parse_float into lex_number.  Make warning
20072         about portability of hex float constants more informative, and
20073         don't issue it on top of a syntax error.
20074         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
20075         their callers.
20076         * real.h: Define REAL_VALUE_ABS here...
20077         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
20078         simplify_unary_real, simplify_binary_real, and
20079         simplify_binary_is2orm1 into their callers.
20080         * tree.c: Fold build_real_from_int_cst_1 into caller.
20081
20082         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
20083
20084         * tsystem.h: Include float.h here...
20085         * libgcc2.c: ... not here.
20086
20087 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
20088
20089         Fixes for: PR bootstrap/3591, target/5676
20090         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
20091         defined.  Do not disable exceptions or rtti.
20092         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
20093         mcore.h.  Disable exceptions and rtti, since they are not
20094         supported by EPOC.
20095
20096 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
20097
20098         * c-decl.c (maybe_build_cleanup): Remove.
20099         * expr.c (expand_expr): Use langhook.
20100         * langhooks-def.h (lhd_return_null_tree,
20101         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
20102         (LANGHOOKS_INITIALIZER): Update.
20103         * langhooks.c (lhd_return_null_tree): New.
20104         * langhooks.h (struct lang_hooks): New hook.
20105         * tree-inline.c (initialize_inlined_parameters): Use langhook.
20106         * tree.h (maybe_build_cleanup): Remove.
20107
20108 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
20109
20110         * regrename.c (build_def_use): Move recog_memoized
20111         before extract_insn.
20112
20113 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
20114
20115         PR target/6043
20116         * expr.c (emit_group_store): Handle storing into CONCAT.
20117
20118 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
20119
20120         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
20121         corresponding MATCH_DUP.
20122
20123 2002-03-24  Richard Henderson  <rth@redhat.com>
20124
20125         * unroll.c (unroll_loop): Zero label_map.
20126
20127         * gcse.c: Include except.h.
20128         * Makefile.in (gcse.o): Update.
20129
20130 2002-03-24  Richard Henderson  <rth@redhat.com>
20131
20132         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
20133         Do resolve_unique_section before shared data clause.
20134
20135 2002-03-24  Richard Henderson  <rth@redhat.com>
20136
20137         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
20138
20139 2002-03-24  Richard Henderson  <rth@redhat.com>
20140
20141         * recog.c (peephole2_optimize): Split blocks when EH insns are
20142         generated in the middle of a block.  Do global life update if
20143         zapped EH edges.
20144
20145 2002-03-24  Richard Henderson  <rth@redhat.com>
20146
20147         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
20148
20149 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
20150
20151         preprocessor/3951
20152         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
20153         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
20154         (init_dependency_output): Don't make no_output decision here.
20155
20156 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
20157
20158         * stmt.c (check_for_full_enumeration_handling): Remove tests of
20159         warn_switch.  Update description.
20160         (expand_end_case_type): Call check_for_full_enumeration_handling
20161         when warn_switch.
20162
20163 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
20164
20165         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
20166         (m68hc11_split_move): Call it to see if the source and destination
20167         operands use the same direction auto inc/dec mode, otherwise make the
20168         source an offsetable memory operand and generate an add.
20169
20170 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
20171
20172         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
20173         register for operand 2.
20174         ("*subsi3_zero_extendqi"): Likewise.
20175         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
20176         bits so that it is compatible with a pop.
20177         ("*andhi3_gen"): Likewise.
20178         ("xorhi3"): Likewise.
20179
20180 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
20181
20182         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
20183         -pedantic here...
20184         (cpp_post_options): ... not here.
20185
20186 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
20187             Aldy Hernandez  <aldyh@redhat.com>
20188
20189         Removal of separate preprocessor cpp0.
20190
20191         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
20192         cpp0, install-common): Update.
20193         * c-common.c (flag_preprocess_only): New.
20194         (c_common_init): Preprocess for -E.
20195         * c-common.h (flag_preprocess_only): New.
20196         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
20197         * c-objc-common.c (c_init_decl_processing): Exit quickly
20198         for NULL return from c_common_init.
20199         * cpplib.h (cpp_preprocess_file): New.
20200         * cppmain.c (main, general_init, pfile, progname): Remove.
20201         (do_preprocessing): Rename cpp_preprocess_file, don't call
20202         cpp_finish.  Don't close stdout here.
20203         (setup_callbacks): Update prototype.
20204         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
20205         Update.
20206         * tradcpp.c (main): Ignore -quiet.
20207 objc:
20208         * lang-specs.h (default_compilers): Preprocess with cc1obj.
20209
20210 2002-03-24  Richard Henderson  <rth@redhat.com>
20211
20212         PR optimization/5742
20213         * machmode.def: Add inner mode field to complex modes.
20214         * config/mips/mips.c (mips_function_value): Always define.  Add
20215         new argument to handle libcalls.
20216         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
20217         (FUNCTION_VALUE): Likewise.
20218         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
20219         * config/mips/mips-protos.h: Update.
20220
20221 2002-03-23  Richard Henderson  <rth@redhat.com>
20222
20223         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
20224         * config/sparc/sparc-protos.h: Update.
20225         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
20226
20227 2002-03-23  Richard Henderson  <rth@redhat.com>
20228
20229         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
20230         _start or _init begins the text segment.
20231
20232 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
20233
20234         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
20235         not HOST_WIDEST_INT.
20236         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
20237
20238 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
20239
20240         PR java/5489
20241         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
20242         operand argument to output_return_instruction.
20243         * arm.c (arm_print_operand, case 'd'): If the operand is
20244         const_true_rtx then just return.
20245         (arm_print_operand, case 'D'): If the operand is const_true_rtx
20246         then abort.
20247
20248 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
20249
20250         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
20251         (Warning Options): Document -Wswitch-default.
20252         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
20253         -Wswitch.
20254         (warn_switch_default): Define variable.
20255         (warn_switch): Update comment.
20256         * flags.h (warn_switch_default): Declare variable.
20257         (warn_switch): Update comment.
20258         * stmt.c (expand_end_case): Check for and, when
20259         warn_switch_no_default, warn of a missing default case.
20260
20261 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
20262
20263         * real.h (N): Special case 128 bit doubles.
20264
20265         * combine.c (simplify_comparison): When widening modes, ignore
20266         sign extension on CONST_INTs.
20267
20268 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
20269
20270         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
20271         passed to adjust_address.  Fix comment formatting.
20272
20273
20274 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
20275
20276         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
20277         Always make REAL_VALUE_TYPE a struct containing an array of
20278         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
20279         big it is.  Don't declare or use union real_extract.
20280
20281         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
20282         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
20283         (print_operand), config/arm/arm.c (output_move_double),
20284         config/arm/arm.md (consttable_4, consttable_8),
20285         config/romp/romp.c (output_fpops), config/s390/s390.h
20286         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
20287         (xtensa_output_literal): Don't use union real_extract.
20288
20289         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
20290         (sfmode_constant_to_ulong), config/ns32k/merlin.h
20291         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
20292         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
20293         (PRINT_OPERAND): Don't use local version of union
20294         real_extract.
20295
20296         * config/convex/convex.c (check_float_value), config/vax/vax.c
20297         (vax_float_literal), config/m88k/m88k.md (divdf3),
20298         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
20299         config/pdp11/pdp11.c (output_move_quad): Don't do host
20300         arithmetic on target floating point quantities.
20301
20302         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
20303         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
20304
20305         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
20306         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
20307
20308         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
20309         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
20310         INFINITY.
20311         * print-rtl.c (print_rtx): Disable code which needs
20312         floating-point emulator.
20313         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
20314         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
20315         depending on HOST_FLOAT_FORMAT to be defined properly.
20316
20317         * config/1750a/1750a.c (get_double, float_label): Delete.
20318         (print_operand): Delete huge commented-out chunk.  Use
20319         REAL_VALUE_TO_DECIMAL.
20320         * config/1750a/1750a-protos.h: Delete prototypes of deleted
20321         functions.
20322         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
20323         IEEE_FLOAT_FORMAT.
20324         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
20325         Use REAL_VALUE_TO_DECIMAL as ELF version does.
20326         * config/m88k/m88k.c (real_power_of_2_operand,
20327         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
20328         real_extract out of the union; run the input through
20329         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
20330         from that into the union.
20331         * config/pdp11/pdp11.c (output_move_double): Rearrange
20332         parentheses to make automatic indenter happy.
20333
20334         * doc/tm.texi (Cross-compilation): Rename node to "Floating
20335         Point" and rewrite to describe current situation.  Also adjust
20336         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
20337         match code.
20338         * doc/rtl.texi: Adjust cross reference.
20339
20340 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
20341
20342         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
20343         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
20344         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
20345         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
20346         prevent use of sp as a reload register.
20347         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
20348         non_acc_reg_operand.
20349         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
20350         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
20351         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
20352         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
20353
20354 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
20355
20356         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
20357         * cpplex.c (unterminated): Delete.
20358         (parse_string): No string literal may extend over multiple
20359         lines.  Suppress the error when preprocessing assembly.
20360         * cppmain.c (scan_translation_unit): Strings are single-line.
20361
20362         * doc/cpp.texi: Update to match.
20363
20364 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
20365
20366         PR optimization/5854
20367         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
20368         Shut up warnings.
20369         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
20370         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
20371         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
20372         const0 if scratch register was not allocated.
20373         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
20374         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
20375         with GEN_INT (...).
20376         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
20377         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
20378         with GEN_INT (...) everywhere.  Remove constraints in define_split
20379         patterns.
20380         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
20381         require scratch register for setting 0 into regs/non-pushable memory.
20382
20383 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
20384
20385         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
20386         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
20387
20388 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
20389
20390         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
20391         * cppinit.c (cpp_create_reader):  On by default.
20392         (cpp_handle_option):  Handle -W[no-]endif-labels.
20393         (cpp_post_options):  Also enable if -pedantic.
20394         * cpplib.c (do_else):  Use it.
20395         (do_endif):  Likewise.
20396         * doc/cppopts.texi:  Document new option.
20397         * doc/invoke.texi:  Document new option.
20398
20399 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
20400
20401         * config/i386/i386.c, config/i386/i386.md: Change all occurences
20402         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
20403
20404 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
20405
20406         * flow.c (calculate_global_regs_live): Clear aux fields of
20407         ENTRY and EXIT.
20408
20409 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
20410
20411         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
20412         REG or MEM subregs, pass rtx * instead of rtx to it.
20413         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
20414         rtx * instead of rtx to alter_subreg.
20415         * config/m32r/m32r.c (gen_split_move_double): Likewise.
20416         * config/pj/pj.c (pj_output_rval): Likewise.
20417
20418 2002-03-22  Richard Henderson  <rth@redhat.com>
20419
20420         PR target/3177
20421         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
20422         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
20423         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
20424         (ia64_expand_prologue): Look at int_regs, not words, for number
20425         of incomming int regs.
20426
20427 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
20428
20429         * expr.c (expand_expr): A RESULT_DECL is part of a call.
20430
20431 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
20432
20433         * toplev.c (flag_loop_optimize, flag_crossjumping):
20434         New static variables.
20435         (rest_of_compilation): Conditionalize crossjumping and
20436         loop optimizer.
20437         (parse_options_and_default_flags): Default loop_optimize and
20438         crossjumping.
20439         (lang_independent_options): Add -fcrossjumping and -floop-optimize
20440         * invoke.texi (crossjumping, loop-optimize): Document.
20441
20442 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
20443
20444         * real.c (eiisneg): Move outside #ifdef NANS.
20445
20446 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
20447
20448         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
20449         frequencies match; avoid match on different loop depths.
20450         (try_crossjump_to_bb): Kill tests that no longer brings time
20451         savings.
20452         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
20453         updating code.
20454         (split_edge): Likewise.
20455
20456         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
20457         variable.
20458
20459         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
20460         * cfgrtl.c: Include insn-config.h
20461         (split_block) Dirtify block in presence of conditional execution
20462
20463 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
20464
20465         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
20466         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
20467         (function_arg): Constify CUMULATIVE_ARGS.
20468         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
20469         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
20470         (UNITS_PER_DOUBLE): New macro.
20471         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
20472         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
20473         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
20474         fp_regs and stack_words.
20475         (EABI_FLOAT_VARARGS_P): New macro.
20476         * config/mips/mips.c (struct mips_arg_info): New.
20477         (mips_arg_info): New function.
20478         (function_arg_advance): Use it.  Add adjustment instructions here
20479         rather than in function_arg.
20480         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
20481         for VOIDmode at the beginning of the function.
20482         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
20483         (function_arg_pass_by_reference): Likewise.
20484         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
20485         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
20486         (mips_va_start): Likewise.  Use the new stack_words field of
20487         CUMULATIVE_ARGS to set up overflow area.  Reformat.
20488         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
20489         doubles and other types, aligning the overflow pointer for non-doubles
20490         too.  Remove some code duplication.  Replace hard-coded constants.
20491
20492 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
20493
20494         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
20495         (CLASS_UNITS): Undefine.
20496         (CLASS_MAX_NREGS): Use FP_INC.
20497         * config/mips/mips.c (compute_frame_size): Likewise.
20498         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
20499
20500 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
20501
20502         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
20503         prototype, and handle lexing numbers and identifiers.
20504         (parse_identifier): Update to new form of parse_slow.
20505         (parse_number): Fast path only, use parse_slow otherwise.
20506         (_cpp_lex_direct): Update calls to parse_number.
20507
20508 2002-03-21  DJ Delorie  <dj@redhat.com>
20509
20510         * bb-reorder.c (make_reorder_chain_1): Protect against
20511         when redundant edges are omitted.
20512         * predict.c (dump_prediction): Likewise.
20513
20514 2002-03-21  Richard Henderson  <rth@redhat.com>
20515
20516         PR target/5996
20517         * fixinc/inclhack.def (solaris_stdio_tag): New.
20518         * fixinc/fixincl.x: Regenerate.
20519
20520 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
20521
20522         PR c/5597
20523         * c-typeck.c (process_init_element): Flag non-static
20524         initialization of a flexible array member as illegal.
20525
20526 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
20527
20528         * config/rs6000/t-linux64: New.
20529         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
20530         t-ppccomm.  Use t-rs6000 and t-linux64.
20531         (powerpc64-*-gnu* <tmake_file>): Likewise.
20532         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
20533         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
20534         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
20535
20536 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
20537
20538         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
20539         flag_really_no_inline instead of optimize == 0.
20540
20541         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
20542
20543         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
20544
20545         * flags.h (flag_really_no_inline): New.
20546
20547         * c-common.c (c_common_post_options): Initialize
20548         flag_really_no_inline.
20549
20550         * toplev.c (flag_really_no_inline): New.
20551
20552 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
20553
20554         * config/avr/avr.md (length): Fix length computation for
20555         conditional branches.
20556
20557 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
20558
20559         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
20560         sdbout.o, profile.o): Update.
20561         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
20562         langhook.
20563         * c-common.h (gettags): Move here from tree.h.
20564         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
20565         insert_block, getdecls, kept_level_p, global_bindings_p): New.
20566         * dbxout.c (dbxout_init): Use getdecls langhook.
20567         * expr.c (expand_expr): Use insert_block langhook.
20568         * fold-const.c: Include langhooks.h.
20569         (fold_range_test, fold_binary_op_with_conditional_arg,
20570         fold): Use global_bindings_p langhook.
20571         * integrate.c (expand_inline_function): Use insert_block langhook.
20572         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
20573         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
20574         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
20575         LANG_HOOKS_GETDECLS): New.
20576         (LANG_HOOKS_INITIALIZER): Update.
20577         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
20578         langhook.
20579         * langhooks.h (struct lang_hooks_for_decls): New.
20580         (struct lang_hooks): Update.
20581         * profile.c: Include langhooks.h.
20582         (output_func_start_profiler): Use new langhooks.
20583         * sdbout.c: Include langhooks.h.
20584         (sdbout_init, sdbout_finish): Use getdecls langhook.
20585         * stmt.c: Include langhooks.h.
20586         (expand_fixup, fixup_gotos): Use new langhooks.
20587         * stor-layout.c: Include langhooks.h.
20588         (variable_size): Use global_bindings_p langhook.
20589         * toplev.c (compile_file): Use getdecls langhook.
20590         * tree-inline.c (remap_block): Use insert_block langhook.
20591         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
20592         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
20593
20594 2002-03-21  Richard Henderson  <rth@redhat.com>
20595
20596         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
20597         constants in .data when -fpic.
20598
20599 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20600
20601         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
20602         where appropriate.
20603
20604 2002-03-21  Tom Tromey  <tromey@redhat.com>
20605
20606         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
20607
20608 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20609
20610         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
20611
20612         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
20613
20614 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
20615             Richard Henderson  <rth@redhat.com>
20616
20617         PR c/5354
20618         * c-common.c (c_expand_expr): Preserve result of a statement
20619         expression if needed.
20620
20621 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
20622
20623         PR bootstrap/4195
20624         * genrecog.c (maybe_both_true_mode): Remove.
20625         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
20626         * machmode.def (Pmode): Likewise.
20627
20628 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
20629
20630         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
20631         (nonlocal_mentioned_p_1): New function.
20632         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
20633         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
20634         (mark_constant_function): Recognize pure functions.
20635         * rtl.h (global_reg_mentioned_p): New prototype.
20636         * rtlanal.c (global_reg_mentioned_p,
20637         global_reg_mentioned_p_1): New function.
20638
20639 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20640
20641         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
20642         UNIX assert.h.
20643         * fixinc/fixincl.x: Regenerate.
20644
20645 2002-03-20  Jason Merrill  <jason@redhat.com>
20646
20647         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
20648
20649 2002-03-20  Michael Meissner  <meissner@redhat.com>
20650
20651         * doc/invoke.texi (Optimize Options): Document that -O2 sets
20652         -fstrict-aliasing.
20653
20654 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
20655
20656         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
20657         ".literal_position" directive before the constant pool.
20658
20659 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20660
20661         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
20662         Add Craig Rodrigues.
20663         Add Brad Lucier to testers.
20664
20665 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
20666
20667         PR target/4792
20668         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
20669         to if_then_else.
20670         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
20671         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
20672         instead of insn_extract.
20673
20674 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
20675
20676         PR bootstrap/4192
20677         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
20678
20679         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
20680         stmt if some case has been output.
20681
20682 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
20683
20684         PR c/5972
20685         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
20686         movsfcc_1, movdfcc_1): Add %O2.
20687         * config/i386/i386.c (print_operand): Handle %ON.
20688         Print . before float condition codes in Sun as cmov syntax.
20689         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
20690         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
20691         no longer true.
20692
20693 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
20694
20695         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
20696         return instruction if PC was popped.
20697
20698 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
20699
20700         * config/xtensa/xtensa.md: Remove unused type attributes.
20701         (adddi_carry, subddi_carry): Change type attribute to "multi".
20702
20703 2002-03-19  Dale Johannesen  <dalej@apple.com>
20704
20705         PR optimization/5999, middle-end/5731
20706         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
20707         multiplications by reciprocals.
20708
20709 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
20710
20711         * Makefile.in: Update.
20712         * c-common.c: Include langhooks.h.
20713         (inline_forbidden_p): Use new hook.
20714         * diagnostic.c: Include langhooks.h.
20715         (format_with_decl, announce_function,
20716         default_print_error_function): Use new hook.
20717         * dwarf2out.c (dwarf2_name): Use new hook.
20718         * function.c: Include langhooks.h.
20719         (init_function_start): Use new hook.
20720         * langhooks-def.h (lhd_decl_printable_name): New.
20721         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
20722         (LANGHOOKS_INITIALIZER): Update.
20723         * langhooks.c (lhd_decl_printable_name): New.
20724         * langhooks.h (struct lang_hooks): New hook.
20725         * toplev.c (decl_name, decl_printable_name): Remove.
20726         (open_dump_file): Use new hook.
20727         (process_options): Remove old hook.
20728         * tree.h (decl_printable_name): Remove.
20729 objc:
20730         * objc-act.c (objc_init): Remove old hook.
20731         (objc_printable_name): Export.
20732         * objc-act.h (objc_printable_name): New.
20733         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
20734
20735 2002-03-19  Jim Blandy  <jimb@redhat.com>
20736
20737         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
20738         the start_source_file debug hook, not the current line number.
20739
20740 2002-03-19  Richard Henderson  <rth@redhat.com>
20741
20742         * flow.c (EH_USES): Provide default.
20743         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
20744         * doc/tm.texi (EH_USES): New.
20745
20746         * config/ia64/ia64.c (ia64_eh_uses): New.
20747         * config/ia64/ia64-protos.h: Update.
20748         * config/ia64/ia64.h (EH_USES): New.
20749
20750 2002-03-19  Richard Henderson  <rth@redhat.com>
20751
20752         * varasm.c (output_constant_def): Fix stupid typo.
20753
20754 2002-03-19  Richard Henderson  <rth@redhat.com>
20755
20756         PR 5879
20757         * except.c (current_function_has_exception_handlers): New.
20758         * except.h: Declare it.
20759         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
20760         Combine tests that disable all sibcalls for the function.
20761
20762 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
20763
20764         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
20765         for INTEGER_CST.
20766
20767 2002-03-19  Richard Henderson  <rth@redhat.com>
20768
20769         PR 5977, 5991
20770         * config/ia64/ia64.c: Revert 2002-03-01 patch.
20771         * config/ia64/ia64.h (INIT_EXPANDERS): New.
20772
20773 2002-03-19  Jim Blandy  <jimb@redhat.com>
20774
20775         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
20776         name, even if the replacement list contains no tokens, as required
20777         by Dwarf.
20778
20779 2002-03-19  Jason Merrill  <jason@redhat.com>
20780
20781         * varasm.c (globalize_decl): Get the name from the RTL, not
20782         DECL_ASSEMBLER_NAME.
20783
20784         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
20785
20786 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
20787
20788         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
20789         subdi_carry): Define.
20790
20791 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
20792
20793         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
20794         about -fpic/-fPIC if extra_warnings set.
20795
20796 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
20797
20798         * expr.c (expand_expr): Sign-extend CONST_INT generated from
20799         TREE_STRING_POINTER.
20800         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
20801
20802 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20803
20804         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
20805         in favor of SP if FRAME_POINTER_REQUIRED is false.
20806
20807 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
20808
20809         * emit-rtl.c (gen_int_mode): New function.
20810         * rtl.h: Prototype for it.
20811         * combine.c (make_extraction, simplify_comparison), expmed.c
20812         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
20813         (convert_modes, store_field), optabs.c (expand_fix),
20814         simplify-rtx.c (neg_const_int, simplify_unary_real),
20815
20816         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
20817         Use it instead of GEN_INT (trunc_int_for_mode (...)).
20818
20819 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
20820
20821         PR c/5656
20822         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
20823         convert_parm_for_inlining.
20824         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
20825         Define.
20826         * langhooks-def.h: Likewise.
20827         * objc/objc-lang.c: Likewise.
20828         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
20829         function.
20830         * tree-inline.c (initialize_inlined_parameters):
20831         Call convert_parm_for_inlining lang hook if needed.
20832         * c-typeck.c (c_convert_parm_for_inlining): New function.
20833         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
20834
20835 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
20836
20837         * calls.c (precompute_arguments): Do not assume that temporaries
20838         can be destroyed after expanding the argument.
20839         (expand_call): Likewise.
20840
20841 2002-03-15  Eric Christopher  <echristo@redhat.com>
20842
20843         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
20844         Fix register preference on last change.
20845         * config/mips/mips.c (mips_return_in_memory): New function.
20846         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
20847         * config/mips/mips-protos.h: Declare.
20848         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
20849         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
20850
20851 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
20852
20853         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
20854         a register too.
20855         (anddi3, iorsi3): Likewise.
20856
20857         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
20858         use %gprel for symbols that are going to be placed in linkonce
20859         sections.
20860
20861         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
20862         RETURN_ADDRESS_POINTER_REGNUM to $ra.
20863         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
20864         not needed.  Disregard leaf_function_p().
20865         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
20866         mips16 frame pointer.
20867         * config/mips/mips.md (store ra): Only to small SP offsets.
20868         2001-08-22  Graham Stott  <grahams@redhat.com>
20869         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
20870         return a REG rtx for the return address register.
20871
20872 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
20873
20874         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
20875         constant-pool addresses as "mode-dependent".
20876         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
20877
20878 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
20879
20880         PR target/5740
20881         * expr.c (emit_group_load): Use extract_bit_field if
20882         needed for CONCAT arguments.
20883
20884 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
20885
20886         PR target/4863
20887         * arm.md (tablejump): Make this a define_expand.  For PIC add the
20888         offset to the base of the table.
20889         (thumb_tablejump): Matcher for Thumb tablejump insn.
20890         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
20891         as the difference of two labels.
20892         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
20893         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
20894         tables in the code.
20895         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
20896         * arm.c (get_jump_table_size): If the table is not in the text
20897         section, return zero.
20898
20899 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
20900
20901         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
20902         of gen_rtx_SUBREG.
20903         (arm_reload_out_hi): Use gen_lowpart instead of
20904         gen_rtx_SUBREG to access QImode components.
20905         * config/arm/arm.md: Disable zero_extend split for QImode
20906         subregs in BIG_ENDIAN mode.
20907         (storehi_bigend): Match use of least significant byte.
20908         (storeinthi): Remove extraneous SUBREG.
20909         Add missing construction of operands[2].
20910         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
20911         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
20912         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
20913
20914 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
20915
20916         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
20917         any_operand.
20918
20919 2002-03-17  Richard Henderson  <rth@redhat.com>
20920
20921         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
20922         explicitly.
20923
20924 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
20925
20926         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
20927         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
20928
20929 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20930
20931         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
20932
20933         * predict.c (estimate_bb_frequencies): Delete unused variables.
20934
20935 2002-03-17  Richard Henderson  <rth@redhat.com>
20936
20937         * config/ia64/ia64.c (ia64_attribute_table): Move before
20938         targetm definition.  Make static.
20939
20940 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
20941
20942         * c-common.h (yyparse, c_common_parse_file): New.
20943         * c-lang.c: Include c-common.h.
20944         (LANG_HOOKS_PARSE_FILE): Redefine.
20945         * c-lex.c: Include c-common.h.
20946         (yyparse): Rename c_common_parse_file.  Call yyparse.
20947         * c-parse.in (yyparse): Remove macro.
20948         * c-tree.h (yyparse_1): Remove.
20949         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
20950         (LANG_HOOKS_INITIALIZER): Update.
20951         * langhooks.h (struct lang_hoooks): New hook parse_file.
20952         * toplev.c (compile_file): Use parse_file hook.
20953         * tree.h (yyparse): Remove.
20954         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
20955
20956 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
20957
20958         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
20959         float_truncate, not fix.
20960         ("*truncdfsf2_real"): Ditto.
20961         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
20962
20963         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
20964
20965 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
20966
20967         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
20968         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
20969         where appropriate.  Make the second reference to
20970         leaf_function_p a function call, as intended.  Reindented.
20971
20972         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
20973         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
20974
20975         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
20976         add register to non-constant into sp.
20977
20978         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
20979         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
20980         (mips16_gp_pseudo_rtx): Lose.
20981         (INIT_EXPANDERS): Deleted.
20982         * config/mips/mips.c (mips_init_machine_status): New.
20983         (mips_free_machine_status): New.
20984         (mips_mark_machine_status): New.
20985         (override_options): Set them.
20986         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
20987         (struct machine_function): ... new.  Replaced all references.
20988         (mips_add_gc_roots): Don't mark them.
20989         (embedded_pic_fnaddr_reg): New, extracted from...
20990         (embedded_pic_offset): ... here.
20991         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
20992         (movsi): Likewise.
20993
20994 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
20995
20996         * cppinit.c: Revert -MD removal.
20997
20998 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
20999
21000         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
21001         soft registers by default for 68HC12.
21002         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
21003         when compiling with -fomit-frame-pointer.
21004         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
21005         (expand_epilogue): Likewise.
21006         (m68hc11_gen_rotate): Use exg when rotating by 8.
21007
21008 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21009
21010         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
21011         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
21012         (splits): Remove unused add splits.
21013         ("*addhi3_68hc12"): Tune constraints.
21014         ("addhi_sp"): Try to use X instead of Y in all cases and if the
21015         constant fits in 8-bits and D is dead use abx/aby instructions.
21016         ("*addhi3"): Remove extern declaration of ix_reg.
21017         ("*subsi3"): Optimize and provide new split.
21018         ("subhi3"): Cleanup.
21019         ("*subhi3_sp"): Avoid saving X if we know it is dead.
21020         (arith splits): For 68hc12 save the address register on the stack
21021         and do the arithmetic operation with a pop.
21022
21023 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21024
21025         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
21026         allocating QImode in address registers.
21027         ("*movqi_m68hc11"): Likewise.
21028
21029 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
21030
21031         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
21032
21033 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
21034
21035         * cppinit.c (print_help): Display -MD and -MMD.
21036         Don't display usage string.  Update assertion syntax and
21037         typo.
21038         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
21039         (cpp_handle_option): Update.
21040
21041 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
21042
21043         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
21044         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
21045         and define it so that regardless of target CPU size,
21046         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
21047         of "int" rather than "long."
21048
21049 2002-03-15  Richard Henderson  <rth@redhat.com>
21050
21051         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
21052         size as a tree.
21053
21054 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21055
21056         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
21057         ("tstqi" split): Avoid using memory for tstqi on address register.
21058         (splits): Remove constraints.
21059         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
21060         ("cmpdf", "cmpsf"): Remove since not used.
21061         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
21062         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
21063
21064 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21065
21066         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
21067         ("neghi2"): Tighten constraints.
21068         ("one_cmplsi2"): Optimize and simplify split.
21069         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
21070
21071 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21072
21073         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
21074         and split of AND operation to clear the upper bits.
21075         ("*logicalsi3_zextqi"): Likewise.
21076         ("*logicallhi3_zexthi_ashift8"): Likewise.
21077         ("*logicalsi3_silshr16"): Likewise.
21078         ("logicalsi3_silshl16"): Likewise.
21079         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
21080
21081 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21082
21083         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
21084         (m68hc11_indirect_p): New function.
21085         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
21086         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
21087         TARGET_M6812.
21088         (asm_print_register): Likewise.
21089         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
21090         (m68hc11_indirect_p): Declare.
21091         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
21092         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
21093         (TARGET_SWITCHES): New option -mrelax.
21094         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
21095         destination.
21096         ("iorsi3", "xorsi3"): Likewise.
21097         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
21098         ("*andhi3_mem"): New to handle destination in memory with bclr
21099         and a scratch register.
21100         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
21101         ("*andhi3_const"): New when operand2 is constant.
21102         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
21103         ("*andhi3_gen"): Cleanup of the old "andhi3".
21104         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
21105         ("xorqi3"): Update constraints.
21106
21107 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21108
21109         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
21110         for reg_equiv_memory_loc when the operand is a register that does
21111         not get a hard register (stack location).
21112         (tst_operand): After reload, accept all memory operand.
21113         (symbolic_memory_operand): Fix detection of symbolic references.
21114         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
21115         accept symbols and any constant.
21116
21117 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21118
21119         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
21120         note on the insn that sets the soft frame register.
21121         (must_parenthesize): ix and iy are also reserved names.
21122         (print_operand_address): One more place where parenthesis are required
21123         to avoid confusion with register names.
21124         (m68hc11_gen_movhi): Allow push of stack pointer.
21125         (m68hc11_check_z_replacement): Fix handling of parallel with a
21126         clobber.
21127         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
21128         the replacement register is.
21129         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
21130         and D8_REGS classes.
21131         (MODES_TIEABLE_P): All modes are tieable except QImode.
21132
21133 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21134
21135         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
21136         (___subdi3): Likewise.
21137         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
21138         (__map_data_section): Optimize 68hc11 case.
21139
21140 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
21141
21142         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
21143         than a shift to avoid adding a register with itself.
21144         (m68hc11_memory_move_cost): Take into account NO_REGS.
21145         (m68hc11_register_move_cost): Update and use memory move cost
21146         for soft registers.
21147         (m68hc11_address_cost): Make cost of valid offset not 0 so that
21148         it gives more opportunities to cse to optimize.
21149         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
21150         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
21151
21152 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
21153
21154         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
21155         * c-common.def (CLEANUP_STMT): New tree node.
21156         * c-common.h (CLEANUP_DECL): New macro.
21157         (CLEANUP_EXPR): Likewise.
21158         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
21159         * expr.c (expand_expr): Tidy.
21160         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
21161         * tree-inline.c (initialize_inlined_parameters): Clean up
21162         new local variables.
21163
21164 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
21165
21166         PR bootstrap/4128
21167         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
21168         before movrXX only, use reg_overlap_mentioned_p.
21169         Only special case NE if just one insn can be generated.
21170
21171 2002-03-15  Jason Merrill  <jason@redhat.com>
21172
21173         * varasm.c (assemble_variable): Call resolve_unique_section before
21174         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
21175         of error_mark_node.
21176
21177 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
21178
21179         PR target/5170
21180         * arm.md (split pattern for thumb shiftable immediates): Add comment
21181         explaining non-obvious test.
21182
21183 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
21184
21185         PR target/5712
21186         * arm.md (movaddr, movaddr_insn): Delete.
21187
21188 2002-03-15  Jason Merrill  <jason@redhat.com>
21189
21190         * toplev.c (wrapup_global_declarations): Clarify variable handling.
21191         -fkeep-static-consts doesn't apply to comdats.
21192
21193 2002-03-14  Richard Henderson  <rth@redhat.com>
21194
21195         * c-decl.c: Include c-pragma.h.
21196         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
21197         (finish_function): Tidy.
21198         * c-pragma.c: Include c-common.h.
21199         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
21200         (handle_pragma_weak): Use them.
21201         (init_pragma): Register pending_weaks.
21202         * c-pragma.h (maybe_apply_pragma_weak): Declare.
21203         * print-tree.c (print_node): Print DECL_WEAK.
21204         * varasm.c (mark_weak_decls): Remove.
21205         (remove_from_pending_weak_list): Remove.
21206         (add_weak): Remove.
21207         (asm_emit_uninitialised): Call globalize_decl for weak commons.
21208         (weak_decls): Make a tree_list.
21209         (declare_weak): Cons weak_decls directly.
21210         (globalize_decl): Remove weak_decls elements directly.
21211         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
21212         symbols.  Don't pretend to handle aliases.
21213         (init_varasm_once): Update weak_decls registry.
21214         * Makefile.in: Update dependencies.
21215
21216 2002-03-14  Richard Henderson  <rth@redhat.com>
21217
21218         PR target/5312
21219         * config/ia64/ia64.c: Include tm_p.h last.
21220         (gen_nop_type): Remove duplicate definition.
21221         (cycle_end_fill_slots): Set sched_data for second L slot.
21222         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
21223         (nop_cycles_until): Fix typos.
21224
21225 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
21226
21227         PR optimization/5891
21228         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
21229
21230 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
21231
21232         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
21233           descriptors correctly.
21234
21235 2002-03-14  Michael Meissner  <meissner@redhat.com>
21236
21237         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
21238         100, allowing MAX_UNROLLED_INSNS to be overridden.
21239
21240         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
21241         --param.
21242
21243         * unroll.c (params.h): Include.
21244         (MAX_UNROLLED_INSNS): Delete, now in params.h.
21245
21246         * doc/invoke.texi (--param max-unroll-insns): Document.
21247
21248         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
21249
21250 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
21251
21252         * arm.md: Fix warnings about constraints in peepholes and splits.
21253
21254 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
21255
21256         * cpphash.h (struct lexer_state): Remove line_extension member.
21257         * cpplib.c (dequote_string, do_linemarker): New functions.
21258         (linemarker_dir): New data object.
21259         (DIRECTIVE_TABLE): No longer need to interpret #line in
21260         preprocessed source.  Delete obsolete comment about return
21261         values of handlers.
21262         (end_directive, directive_diagnostics, _cpp_handle_directive):
21263         Don't muck with line_extension.
21264         (directive_diagnostics): No need to issue warnings for
21265         linemarkers here.
21266         (_cpp_handle_directive): Issue warnings for linemarkers here,
21267         when appropriate.  Dispatch linemarkers to do_linemarker, not
21268         do_line.
21269         (do_line): Code to handle linemarkers split out to do_linemarker.
21270         Convert escape sequences in filename argument, both places.
21271
21272         * cppmacro.c (quote_string): Rename cpp_quote_string and
21273         export.  All callers changed.
21274         * cpplib.h (cpp_quote_string): Prototype.
21275         * cppmain.c (print_line): Call cpp_quote_string on to_file
21276         before printing it.
21277
21278         * doc/cpp.texi: Document that escapes are now interpreted in
21279         #line and in linemarkers, and that non-printing characters are
21280         converted to octal escapes when linemarkers are generated.
21281
21282 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
21283
21284         * emit-rtl.c (try_split): Use delete_insns.
21285         * recog.c (split_all_insns): Fix terminating condition.
21286
21287 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
21288             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
21289
21290         PR target/5828
21291         * arm.c (arm_output_epilogue): Fix floating-point register save
21292         adjustment when using a frame pointer.
21293
21294 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
21295
21296         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
21297         * config/mips/mips.c (compute_frame_size): Retrofit them here.
21298         (save_restore_insns, mips_expand_epilogue): And here.
21299         (build_mips16_call_stub): And here.
21300         (mips_function_value): Use the new macros to decide whether a single
21301         or complex float can be returned in floating-point registers.  Return
21302         a parallel rtx in the complex case.
21303
21304 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
21305
21306         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
21307         call after liveness analysis.
21308
21309         * recog.c (split_insn): Use delete_insn_and_edges.
21310
21311         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
21312         instructions to have branch prediction notes.
21313         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
21314
21315 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
21316
21317         * configure.in: Don't pass -Wno-long-long to a ADA compiler
21318         that doesn't support it.
21319         * configure: Regenerate.
21320
21321 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
21322
21323         PR target/5626
21324         * config/sparc/sparc.md (normal_branch, inverted_branch,
21325         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
21326         inverted_fp_branch): Adjust calls to output_cbranch.
21327         Set length attribute.
21328         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
21329         output_v9branch.  Set length attribute.
21330         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
21331         predicates.
21332         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
21333         (output_cbranch): Likewise.  Handle far branches.
21334         (output_v9branch): Handle far branches.
21335         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
21336         Adjust prototypes.
21337         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
21338         noov_compare64_op predicates.
21339
21340 2002-03-13  Jason Merrill  <jason@redhat.com>
21341
21342         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
21343         into the function and constify it.
21344         * gthr-dce.h, gthr-solaris.h: Likewise.
21345
21346 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
21347
21348         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
21349         * config/rs6000/rs6000.c (rs6000_va_arg): Use
21350         std_expand_builtin_va_arg if not ABI_V4.
21351
21352 2002-03-13  Jason Merrill  <jason@redhat.com>
21353
21354         * varasm.c (globalize_decl): New fn.
21355         (assemble_start_function): Use it.
21356         (asm_emit_uninitialized): Use it.
21357         (assemble_alias): Use it.
21358         (assemble_variable): Use it.
21359
21360 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
21361
21362         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
21363         2002-03-12 internal visibility change.
21364         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
21365         visibility into SYMBOL_REF_FLAG.
21366
21367 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
21368
21369         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
21370         VOIDmode operand.  Add compile-time optimization for constant results.
21371
21372 2002-03-12  Jason Merrill  <jason@redhat.com>
21373
21374         * c-typeck.c (convert_for_assignment): Don't allow conversions
21375         between pointers and references.  Only allow lvalues to convert to
21376         reference.
21377
21378 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
21379
21380         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
21381         before prologue, to avoid scheduling problems.
21382
21383 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
21384
21385         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
21386         (ELIMINABLE_REGS): Add sfp->sp.
21387         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
21388
21389 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
21390
21391         PR optimization/5892
21392         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
21393
21394 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
21395
21396         * loop.c (basic_induction_var): Don't call convert_modes if mode
21397         classes are different.
21398
21399 2002-03-12  Richard Henderson  <rth@redhat.com>
21400
21401         PR optimization/5901
21402         * function.c (reposition_prologue_and_epilogue_notes): Position
21403         the markers after/before the last/first insn not deleted.
21404
21405 2002-03-12  Richard Henderson  <rth@redhat.com>
21406
21407         PR optimization/5878
21408         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
21409         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
21410         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
21411
21412         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
21413         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
21414         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
21415
21416         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
21417         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
21418         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
21419         also.  Don't set it if not flag_pic.
21420         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
21421         to be INVALID_REGNUM when not used.
21422
21423 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
21424
21425         * expmed.c (store_bit_field): Reset alias set for memory.
21426         (extract_bit_field): Same.
21427
21428 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21429
21430         * c-common.c (c_tree_code_type, c_tree_code_length,
21431         c_tree_code_name, add_c_tree_codes): Delete.
21432         * c-common.h (add_c_tree_codes): Delete.
21433         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
21434         Define.
21435         * c-objc-common.c (c_objc_common_init): Don't call
21436         add_c_tree_codes, instead set lang_unsafe_for_reeval.
21437         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
21438         objc_tree_code_name, add_objc_tree_codes): Delete.
21439         (objc_init): Don't call add_objc_tree_codes.
21440         * objc/objc-lang.c (tree_code_type, tree_code_length,
21441         tree_code_name): Define.
21442         * toplev.c (lang_independent_init): Don't set
21443         tree_code_length[IDENTIFIER_NODE].
21444         * tree.c (tree_code_type, tree_code_length, tree_code_name):
21445         Delete definitions, moved to language front-ends.
21446         * tree.def (IDENTIFIER_NODE): Hardwire the length.
21447         * tree.h (tree_code_type, tree_code_length, tree_code_name):
21448         Const-ify.
21449         (tree_code_length): Change type to unsigned char.
21450
21451 2002-03-12  Richard Henderson  <rth@redhat.com>
21452
21453         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
21454         internal visibility change.
21455
21456 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
21457
21458         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
21459         validize_mem() instead of change_address to avoid clobbering
21460         memory attributes.
21461
21462 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
21463
21464         * c-lex.h (position_after_whitespace): Remove.
21465
21466 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
21467
21468         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
21469         (lex_string): Use unsigned char pointers.
21470
21471 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
21472
21473         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
21474         is not a valid memory_operand.
21475
21476 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
21477
21478         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
21479         * config/xtensa/lib1funcs.asm: Fix copyright to include
21480         special case for libgcc files.
21481         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
21482         (__divsi3): Likewise.
21483         (__umodsi3): Likewise.
21484         (__modsi3): Likewise.
21485         * config/xtensa/lib2funcs.S: Fix copyright to include
21486         special case for libgcc files.
21487
21488 2002-03-12  Tom Rix  <trix@redhat.com>
21489
21490         * collect2.c (resolve_lib_name): Move outside of
21491         OBJECT_FORMAT_COFF ifdef.
21492         (ignore_library): Same.
21493
21494 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
21495
21496         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
21497
21498 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
21499
21500         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
21501         to function_section before writing out the constant pool.
21502
21503 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
21504
21505         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
21506         zero_constant.
21507         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
21508
21509 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
21510
21511         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
21512         (adddi3): Likewise.
21513         (movdf): Likewise.
21514         (movdi): Likewise.
21515         (cmpsi splitter): Likewise.
21516         (modsi3): Fail if <= 0.
21517         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
21518         redundant test when HOST_BITS_PER_WIDE_INT != 32.
21519         (reg_or_sub_cint64_operand): Likewise.
21520         (num_insns_constant_wide): Optimize sign extension.
21521         (rs6000_legitimize_address): Likewise.
21522
21523 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
21524
21525         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
21526         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
21527
21528 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
21529
21530         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
21531         address calculation.
21532
21533 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
21534
21535         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
21536         scratch register to DImode / TImode.
21537         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
21538         register used does not overlap the target.
21539
21540 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21541
21542         * Makefile.in (debug.o): Depend on debug.h.
21543         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
21544         * debug.c (do_nothing_debug_hooks): Likewise.
21545         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
21546         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
21547         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
21548         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
21549         * dwarfout.c (dwarf_debug_hooks): Likewise.
21550         * integrate.c (output_inline_function): Likewise.
21551         * objc/objc-act.c (synth_module_prologue): Likewise.
21552         * sdbout.c (sdb_debug_hooks): Likewise.
21553         * toplev.c (debug_hooks): Likewise.
21554         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
21555
21556 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21557
21558         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
21559         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
21560         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
21561         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
21562         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
21563         * defaults.h (POINTER_SIZE): Define.
21564         * doc/tm.texi (POINTER_SIZE): Document default.
21565
21566 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21567
21568         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
21569
21570 2002-03-11  Richard Henderson  <rth@redhat.com>
21571
21572         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
21573         if rebuild_label_notes_after_reload.
21574
21575 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
21576
21577         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
21578         emit pic register load if "internal" visibility.
21579         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
21580         (cris_expand_builtin_va_arg): Do all computations on trees.
21581
21582 2002-03-11  Richard Henderson  <rth@redhat.com>
21583
21584         * rtlanal.c: Include recog.h.
21585         (keep_with_call_p): Fix thinko.
21586         * Makefile.in (rtlanal.o): Update dependencies.
21587
21588 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
21589
21590         * genflags.c (gen_insn): Use IS_VSPACE.
21591         * genoutput.c (output_insn_data): Likewise.
21592         (process_template): Likewise.
21593
21594 2002-03-11  Richard Henderson  <rth@redhat.com>
21595
21596         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
21597
21598 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
21599
21600         * Makefile.in: Update.
21601         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
21602         Update documentation.
21603         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
21604         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
21605
21606 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
21607
21608         * Makefile.in: Give texi2pod its input file as a command line
21609         argument, not on stdin.
21610
21611 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
21612             Daniel Berlin  <dan@dberlin.org>
21613
21614         C++ alias analysis improvement.
21615         * alias.c (record_component_aliases): Record aliases for base
21616         classes too.
21617
21618 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
21619
21620         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
21621
21622 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
21623
21624         * toplev.c (vms_fopen): Remove, not needed.
21625
21626         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
21627
21628         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
21629
21630         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
21631         for FP, already done later.
21632
21633         * toplev.c (debug_args): Add entry for VMS_DEBUG.
21634         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
21635
21636 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
21637
21638         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
21639         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
21640         LARGEST_EXPONENT_IS_NORMAL for the given mode.
21641         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
21642         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
21643         (ediv, emul, eldexp, esqrt): Likewise.
21644         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
21645         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
21646         (saturate): New function.
21647         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
21648         (make_nan): Use a saturation value instead of a NaN if
21649         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
21650         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
21651         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
21652         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
21653         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
21654         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
21655         !ROUND_TOWARDS_ZERO.
21656         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
21657         (ROUND_TOWARDS_ZERO): Document.
21658
21659 2002-03-11  Andreas Jaeger  <aj@suse.de>
21660
21661         * cfg.c (dump_flow_info): Remove unused variable.
21662
21663 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
21664
21665         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
21666         computations on trees.
21667
21668 2002-03-10  Richard Henderson  <rth@redhat.com>
21669
21670         PR 5693:
21671         * reload.c (copy_replacements_1): New.
21672         (copy_replacements): Use it to recurse through the rtx.
21673
21674 2002-03-10  Richard Henderson  <rth@redhat.com>
21675
21676         * loop.c (strength_reduce): Compute number of iterations as
21677         unsigned HOST_WIDE_INT.
21678
21679 2002-03-10  Richard Henderson  <rth@redhat.com>
21680
21681         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
21682         to move away from the end of the block.
21683
21684 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
21685
21686         PR preprocessor/5899
21687         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
21688
21689 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21690
21691         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
21692
21693         * attribs.c (decl_attributes): Fix signed/unsigned warning.
21694
21695 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
21696
21697         * config/mmix/mmix.c: Improve comments.
21698         (mmix_target_asm_function_prologue): Drop variable
21699         empty_stack_frame.  Don't allocate unused slot above fp.
21700         (mmix_target_asm_function_epilogue): Mirror prologue changes.
21701         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
21702         brace in first column.
21703         (enum reg_class): Ditto.
21704         (FIRST_PARM_OFFSET): Now 0.
21705         (USER_LABEL_PREFIX): Remove #if 0:d definition.
21706
21707 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21708
21709         * combine.c (make_extraction): Fix error in last change.
21710
21711 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21712
21713         * c4x.c (c4x_fp_reglist): Const-ify.
21714         * cris.c (cris_print_operand): Likewise.
21715         * i386.c (ix86_va_arg): Likewise.
21716         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
21717         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
21718         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
21719         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
21720         * mcore.h (regno_reg_class): Likewise.
21721         * mips.c (gen_int_relational): Likewise.
21722         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
21723         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
21724         * pdp11.c (move_costs): Likewise.
21725         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
21726         * s390.c (s390_branch_condition_mnemonic, regclass_map):
21727         Likewise.
21728         * s390.h (regclass_map): Likewise.
21729         * sh.c (shift_amounts): Likewise.
21730         * sh.md (rotlsi3): Likewise.
21731
21732 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
21733
21734         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
21735         (ne0+5): Use new clobber to generate proper shift pattern.
21736         Patch by Michael Matz <matz@kde.org>.
21737
21738 2002-03-09  Andreas Schwab  <schwab@suse.de>
21739
21740         * gcc.c (validate_all_switches): Also handle `%W{...}'.
21741
21742 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
21743
21744         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
21745
21746 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
21747
21748         PR middle-end/5877
21749         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
21750         even for non-representable constants.
21751
21752 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21753
21754         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
21755         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
21756         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
21757         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
21758         (pop_function_context): Compute MAY_SHARE parameter for
21759         fixup_var_refs.
21760         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
21761         (gen_mem_addressof): Call fixup_var_refs with new parm.
21762
21763         * combine.c (make_extraction): Don't make extension of CONST_INT.
21764
21765 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
21766
21767         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
21768         in o32 and o64 ABIs.
21769         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
21770         but getting fixed-size structs passed in registers regardless of
21771         padding in o32 and o64 ABIs.
21772
21773         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
21774         offset before loading address of argument passed by transparent
21775         reference.
21776
21777 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21778
21779         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
21780
21781 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
21782
21783         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
21784         marker such that registers after it are saved.
21785
21786 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21787
21788         * sparc.c (arith_4096_operand): Fix error in last change.
21789
21790 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
21791
21792         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
21793         defaults for MEABI.
21794
21795 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
21796
21797         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
21798         vectors.
21799
21800 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
21801
21802         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
21803
21804 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
21805
21806         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
21807         removed; fix return value.
21808         * combine.c (combine_instructions): Dirtify blocks where we failed to
21809         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
21810         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
21811
21812 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21813
21814         * gcse.c (insert_insn_end_bb): Fix typo in last change.
21815
21816 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
21817
21818         * recog.c (peephole2_optimize): Re-distribute EH edges.
21819
21820 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
21821
21822         * expr.c (expand_expr): Use unsave lang hook.
21823         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
21824         (LANG_HOOKS_INITIALIZER): Update.
21825         * langhooks.h (struct lang_hooks): New hook unsave.
21826         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
21827         (unsave_expr_1): Remove unused lang_unsave_expr_now.
21828         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
21829         (unsave_expr_now): Remove.
21830         * tree.h (unsave_expr_now, lang_unsave,
21831         lang_unsave_expr_now): Remove.
21832         (lhd_unsave): New.
21833
21834 2002-03-08  Andreas Jaeger  <aj@suse.de>
21835
21836         * flow.c (propagate_block_delete_insn): Remove unused variable.
21837
21838 2002-03-08  Kazu Hirata  <kazu@hxi.com>
21839
21840         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
21841         insn length for memory load/store.
21842
21843 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21844
21845         * doc/install.texi (--with-libiconv-prefix): Document.
21846
21847 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
21848
21849         * doc/sourcebuild.texi: Fix typo.
21850
21851 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
21852
21853         PR c/3711
21854         * builtins.c (std_expand_builtin_va_arg): Do all computations on
21855         trees.
21856
21857 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21858
21859         * rtl.c (copy_most_rtx): Move from here ...
21860         * emit-rtl.c (copy_most_rtx): ... to here.
21861
21862 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
21863
21864         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
21865         SUBTARGET_CPP_SIZE_SPEC.
21866         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
21867
21868         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
21869
21870 2002-03-07  Matt Hiller  <hiller@redhat.com>
21871
21872         * gensupport.c (first_dir_md_include): Renamed from include;
21873         change all references.
21874         (last_dir_md_include): Renamed from last_include; change all
21875         references.
21876         (init_md_reader): Unconditionally initialize base_dir whether or
21877         not filename is a relative path.
21878
21879 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
21880
21881         * config/fp-bit.c (_unord_f2): Compile it in even if
21882         US_SOFTWARE_GOFAST is enabled.
21883
21884         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
21885         NULL_RTX.  Set all HFmode operations as NULL_RTX.
21886         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
21887         NULL_RTX, try reversing the comparison and the operands.
21888
21889 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
21890
21891         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
21892         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
21893         and MATCH_OP_DUP.
21894
21895 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
21896
21897         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
21898
21899 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
21900
21901         * basic-block.h (fixup_abnormal_edges): Declare.
21902         * reload1.c (fixup_abnormal_edges): New function.
21903         * reg-stack.c (convert_regs): Use it.
21904
21905         * gcse.c (insert_insn_end_bb): Handle trapping insns.
21906
21907         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
21908
21909 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
21910
21911         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
21912         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
21913         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
21914         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
21915         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
21916         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
21917         unless x and y could be infinite.
21918         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
21919         Check that the common type of both arguments is a real, even for
21920         targets without unordered comparisons.  Allow an integer argument
21921         to be compared against a real.
21922         (expand_tree_builtin): Use expand_unordered_cmp.
21923         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
21924         * cse.c (fold_rtx): Likewise.  Fix indentation.
21925         * fold-const.c (fold_real_zero_addition_p): New.
21926         (fold): Use it, and the new HONOR_... macros.
21927         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
21928         * jump.c (reversed_comparison_code_parts): After searching for
21929         the true comparison mode, use HONOR_NANS to decide whether it
21930         can be safely reversed.
21931         (reverse_condition_maybe_unordered): Remove IEEE check.
21932         * simplify-rtx.c (simplify_binary_operation): Use the new macros
21933         to decide which simplifications are valid.  Allow the following
21934         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
21935         and (a - -b) to (a + b).
21936         (simplify_relational_operation): Use HONOR_NANS.
21937         * doc/tm.texi: Document the MODE_HAS_... macros.
21938
21939 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
21940
21941         * combine.c (simplify_comparison): If simplifying a logical shift
21942         right and compare with constant, force the comparison to unsigned.
21943
21944 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
21945
21946         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
21947
21948         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
21949         -mabi=no-altivec
21950         (alt_reg_names): Remove % for vrsave.
21951
21952 2002-03-06  Richard Henderson  <rth@redhat.com>
21953
21954         PR optimization/5844
21955         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
21956         if used indicates we've already emitted one copy of an operand.
21957         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
21958         (gen_split): Supply a non-null used.
21959
21960 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
21961
21962         * reload1.c (reload): Unshare all rtl after reload is done.
21963
21964         * simplify-rtx.c (simplify_plus_minus): Do not abort,
21965         but simply fail if the expression is too complex to simplify.
21966         (simplify_gen_binary): Handle simplify_plus_minus failures.
21967
21968 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
21969
21970         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
21971         consistently call delete_trivially_dead_insns after CSE and GCSE;
21972         fix DFI_life dumping; do jump threading after liveness; do crossjumping
21973         after liveness2; update comment in last crossjumping.
21974         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
21975
21976 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
21977
21978         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
21979         after completing fast dead code elimination.
21980
21981         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
21982         COMPARE operator.
21983
21984 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
21985
21986         * version.c:  Fix misplaced leading blanks on first line.
21987
21988 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
21989
21990         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
21991
21992 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
21993
21994         * cfgcleanup.c (mentions_nonequal_regs): New function.
21995         (thread_jump): Use it.
21996         * toplev.c (rest_of_compilation): Run jump threading after
21997         liveness.
21998
21999 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
22000
22001         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
22002         patch.
22003
22004 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
22005
22006         * predict.c (estimate_bb_frequencies): Do not reload the
22007         frequencies from notes.
22008
22009 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
22010
22011         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
22012         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
22013
22014         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
22015         delete_noop_moves): Return indeger.
22016         * flow.c (ndead): New variable.
22017         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
22018         BB argument; update callers.
22019         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
22020         (life_analysis): Do not call purge_all_dead_edges.
22021         (update_life_info): Return number of deleted insns; print statistics.
22022         (update_life_info_in_dirty_blocks): likewise.
22023         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
22024         return number of insns deleted.
22025
22026         * cse.c: Include timevar.h
22027         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
22028         iterate until stabilizes; print statistics; return number of killed
22029         insns.
22030         * Makefile.in: (cse.o): Add timevar.h dependency
22031         * rtl.h (delete_trivially_dead_insns): New.
22032         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
22033         * toplev.c (rest_of_compilation): Update callers.
22034
22035         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
22036         (try_optimize_cfg): Do not update liveness.
22037         (cleanup-cfg): Loop until try_optimize_cfg and dead code
22038         removal stabilizes; use delete_trivially_dead_insns.
22039
22040         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
22041
22042 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
22043
22044         * cppmain.c (setup_callbacks): Disable #pragma and #ident
22045         callbacks when processing assembly language.
22046
22047 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22048
22049         * pa.h (ASM_FILE_END): Define.
22050         * som.h (ASM_FILE_END): Delete.
22051
22052         * pa.c (function_arg): Don't pass floats in general registers in
22053         indirect calls if TARGET_ELF32.
22054
22055 2002-03-05  Richard Henderson  <rth@redhat.com>
22056
22057         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
22058
22059 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
22060
22061         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
22062
22063 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
22064
22065         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
22066         -r command line.  Don't hide any symbols if not building
22067         shared libgcc.
22068
22069 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
22070
22071         * cfg.c (dump_flow_info): Warn about profile mismatches.
22072         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
22073         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
22074
22075 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
22076
22077         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
22078         wide volatile memory by parts.
22079
22080 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
22081
22082         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
22083         is NULL.
22084
22085 2002-03-05  Richard Henderson  <rth@redhat.com>
22086
22087         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
22088
22089 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
22090
22091         * toplev.c (documented_lang_options): Document more
22092         language-specific options.
22093         * doc/invoke.texi (Warning Options): Correct documentation for
22094         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
22095         * c-decl.c (c_decode_option): Use a table to handle warning options.
22096
22097 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
22098
22099         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
22100         parameter to mmix_encode_section_info.
22101         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
22102         relocatably.  Always produce ELF, not mmo if linking relocatably.
22103         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
22104         first is non-zero, don't add symbol prefix.
22105         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
22106         prototype accordingly.
22107
22108 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
22109
22110         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
22111
22112 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
22113
22114         * configure.in: Increase required makeinfo version to 4.1.
22115         * configure: Regenerate.
22116
22117 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
22118
22119         * .cvsignore: Remove *.info* and genrtl*; these files are generated
22120         elsewhere now.
22121
22122 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
22123
22124         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
22125         * doc/invoke.texi: Fix @math uses.
22126
22127 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
22128
22129         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
22130         removal
22131
22132 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
22133
22134         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
22135         (powerpc-*-eabisimaltivec*): Same.
22136
22137         * config/rs6000/t-ppcendian: New.
22138
22139 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
22140
22141         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
22142         nonimmediate_src_operand and nonimmediate_lsrc_operand to
22143         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
22144
22145 2002-03-03  Richard Henderson  <rth@redhat.com>
22146
22147         * toplev.c (rest_of_decl_compilation): Revert last two changes.
22148
22149 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
22150
22151         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
22152         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
22153         tree.c, config/m68k/m68k.c:
22154         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
22155         REAL_ARITHMETIC blocks unconditional.  Delete some further
22156         #ifdef blocks predicated on REAL_ARITHMETIC.
22157         * flags.h, toplev.c: Delete remaining references to
22158         flag_pretend_float.
22159
22160         * doc/invoke.texi: Remove documentation of -fpretend-float.
22161         * doc/tm.texi: Describe the various REAL_* macros as provided by
22162         real.h, not by the target configuration files.
22163
22164         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
22165         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
22166         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
22167         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
22168         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
22169         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
22170         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
22171         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
22172         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
22173         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
22174         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
22175         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
22176         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
22177         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
22178         config/xtensa/xtensa.h:
22179         Do not define, undefine, or mention in comments any of
22180         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
22181         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
22182         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
22183         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
22184         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
22185         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
22186         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
22187         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
22188         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
22189
22190 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22191
22192         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
22193         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
22194         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
22195         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
22196         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
22197         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
22198         Delete.
22199         * defaults.h (BITS_PER_WORD): Define.
22200         * doc/tm.texi (BITS_PER_WORD): Document default value.
22201
22202         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
22203         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
22204         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
22205
22206 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22207
22208         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
22209         lieu of explicit sizeof/sizeof.
22210         * i386.c (override_options, ix86_init_mmx_sse_builtins,
22211         ix86_expand_builtin): Likewise.
22212         * mips.c (mips_add_gc_roots): Likewise.
22213         * mmix.c (mmix_output_condition): Likewise.
22214         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
22215         altivec_init_builtins): Likewise.
22216         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
22217         * cppexp.c (Nsuff, parse_number): Likewise.
22218         * cppinit.c (builtin_array_end): Likewise.
22219         * gcc.c (n_default_compilers, process_command): Likewise.
22220         * genpreds.c (output_predicate_decls): Likewise.
22221         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
22222         * lcm.c (N_ENTITIES): Likewise.
22223         * stor-layout.c (set_sizetype): Likewise.
22224
22225 2002-03-03  Richard Henderson  <rth@redhat.com>
22226
22227         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
22228         for types or labels.
22229
22230 2002-03-03  Richard Henderson  <rth@redhat.com>
22231
22232         * c-decl.c (start_decl): Initialized variables are not common.
22233
22234 2002-03-02  Per Bothner  <per@bothner.com>
22235
22236         * gcc.c (option_map):  Suport new --bootclasspath option.
22237         --CLASSPATH is now just an alias for --classpath.
22238
22239 2002-03-02  Richard Henderson  <rth@redhat.com>
22240
22241         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
22242         load if "internal" visibility.
22243         * doc/extend.texi: Document visibility meanings.
22244
22245 2002-03-02  Richard Henderson  <rth@redhat.com>
22246
22247         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
22248         to functions as well.
22249
22250 2002-03-02  Richard Henderson  <rth@redhat.com>
22251
22252         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
22253         (handle_visibility_attribute): Don't call assemble_visibility.
22254         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
22255         without asmspec.  Invoke assemble_alias when needed.
22256         * varasm.c (maybe_assemble_visibility): New.
22257         (assemble_start_function, assemble_variable, assemble_alias): Use it.
22258
22259 2002-03-02  Richard Henderson  <rth@redhat.com>
22260
22261         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
22262         invoke ENCODE_SECTION_INFO with first call flag.
22263
22264         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
22265         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
22266         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
22267         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
22268         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
22269         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
22270         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
22271         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
22272         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
22273         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
22274         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
22275         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
22276         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
22277         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
22278         config/mcore/mcore-protos.h, config/mcore/mcore.c,
22279         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
22280         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
22281         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
22282         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
22283         config/sh/sh.h, config/sparc/sparc.h,
22284         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
22285         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
22286         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
22287         FIRST argument.  As needed, examine it and do nothing.
22288
22289         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
22290         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
22291         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
22292
22293         * config/arm/t-pe (pe.o): Add dependencies.
22294
22295 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22296
22297         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
22298         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
22299         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
22300         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
22301         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
22302         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
22303         * defaults.h (BITS_PER_UNIT): Define.
22304         * doc/tm.texi (BITS_PER_UNIT): Document default value.
22305
22306 2002-03-02  Kazu Hirata  <kazu@hxi.com>
22307
22308         * config/h8300/h8300-protos.h: Add a prototype for
22309         compute_a_shift_length.
22310         * config/h8300/h8300.c (h8300_asm_insn_count): New.
22311         (compute_a_shift_length): Likewise.
22312         (h8300_adjust_insn_length): Do not adjust insn length of shift
22313         insns.
22314         * config/h8300/h8300.md (anonymous shift patterns): Use
22315         compute_a_shift_length.
22316
22317 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22318
22319         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
22320         trunc_int_for_mode.
22321
22322         * emit-rtl.c (offset_address): Call update_temp_slot_address.
22323
22324 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22325
22326         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
22327         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
22328         * flags.h (flag_zero_initialized_in_bss): Declare.
22329         * toplev.c (flag_zero_initialized_in_bss): New flag.
22330         (lang_independent_options): Add flag_zero_initialized_in_bss.
22331         * tree.c (initializer_zerop): New function.
22332         * tree.h (initializer_zerop): Declare.
22333         * varasm.c (assemble_variable): If we can emit bss, put zero
22334         initializers in the bss section.
22335
22336 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
22337
22338         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
22339         like more than one symbol per .weak directive.
22340
22341 2002-03-01  Richard Henderson  <rth@redhat.com>
22342
22343         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
22344         adjust argument_pointer by pretend_args_size.
22345         (ia64_va_start): Adjust va_start address by -pretend_args_size.
22346
22347 2002-03-01  Kazu Hirata  <kazu@hxi.com>
22348
22349         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
22350
22351 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
22352
22353         * toplev.c (rest_of_compilation): Delete dead jumptables before
22354         loop.
22355         * flow.c (delete_dead_jumptables): Make global.
22356         * rtl.h (delete_dead_jumptables): Declare.
22357
22358 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
22359
22360         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
22361         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
22362         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
22363
22364 2002-03-01  Kazu Hirata  <kazu@hxi.com>
22365
22366         * config/h8300/h8300-protos.h: Fix formatting.
22367         * config/h8300/h8300.c: Likewise.
22368         * config/h8300/h8300.h: Likewise.
22369
22370 2002-03-01  Kazu Hirata  <kazu@hxi.com>
22371
22372         * config/h8300/h8300.c (print_operand): Support 16-bit
22373         constant addresses.
22374         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
22375
22376 2002-02-28  Richard Henderson  <rth@redhat.com>
22377
22378         * expmed.c (store_bit_field): Prevent generation of CONCATs;
22379         pun complex values as integers; use gen_lowpart instead of
22380         gen_rtx_SUBREG.
22381         (extract_bit_field): Likewise.
22382
22383 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
22384             David Edelsohn  <edelsohn@gnu.org>
22385
22386         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
22387         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
22388         (SUPPORTS_WEAK): Likewise.
22389         * output.h (add_weak): Add tree param.
22390         * varasm.c (add_weak): Likewise.  Save decl.
22391         (struct weak_syms): Add decl field.
22392         (mark_weak_decls): New function.
22393         (init_varasm_once): ggc_add_root mark_weak_decls.
22394         (assemble_start_function): Use ASM_WEAKEN_DECL.
22395         (assemble_variable): Likewise.
22396         (assemble_alias): Likewise.
22397         (declare_weak): Pass decl to add_weak.
22398         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
22399         (remove_from_pending_weak_list): Declare and define for
22400         ASM_WEAKEN_DECL.
22401         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
22402         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
22403         * defaults.h (SUPPORTS_WEAK): Likewise.
22404         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
22405         .weak for code sym.  Do emit .size for descriptor sym.
22406         (ASM_DECLARE_FUNCTION_SIZE): Define.
22407         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
22408         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
22409         .lglobl unless TARGET_XCOFF.  Formatting fixes.
22410         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
22411         .weak for code sym.
22412         (HANDLE_PRAGMA_WEAK): Remove.
22413         (ASM_WEAKEN_LABEL): Remove.
22414         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
22415
22416 2002-03-01  Jason Merrill  <jason@redhat.com>
22417
22418         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
22419         (TARGET_EXPR_CLEANUP): New macro.
22420
22421 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
22422
22423         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
22424         to take ptr_extend into account as third type of extension.
22425         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
22426         fields used by SUBREG_PROMOTED_UNSIGNED_P.
22427         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
22428         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
22429         * calls.c (precompute_arguments): Use new macro.
22430         (expand_call): Ditto.
22431         * combine.c (nonzero_bits): Ditto.
22432         (record_promoted_value): Ditto.
22433         * expr.c (store_expr): Ditto.
22434         (expand_expr): Ditto.
22435         * function.c (assign_parms): Ditto.
22436
22437 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
22438
22439         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
22440         override -shared and -shared-libgcc.
22441
22442 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
22443
22444         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
22445         of "ultrasparc".
22446         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
22447         to be broken.
22448
22449 2002-02-28  Richard Henderson  <rth@redhat.com>
22450
22451         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
22452         4 cycle latency from MM producers.
22453         (ia64_internal_sched_reorder): Likewise with pipeline flush.
22454
22455 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
22456
22457         * mklibgcc.in: Don't use GNU make extension.
22458
22459 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
22460
22461         * c-parse.in (STATIC): New terminal.
22462         (scspec): New non-terminal.  Update productions accordingly.
22463         (program): Remove bogus ifc / end ifc.
22464         (array_declarator): Simplify production using STATIC.
22465
22466 2002-02-28  Jim Meyering  <meyering@lucent.com>
22467
22468         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
22469         \a still means TARGET_BELL.
22470
22471 2002-02-28  Richard Henderson  <rth@redhat.com>
22472
22473         * haifa-sched.c (sched_emit_insn): New.
22474         (schedule_block): Use last_scheduled_insn to track last insn.
22475         * sched-int.h (sched_emit_insn): Prototype.
22476         * config/ia64/ia64.c (last_issued): Remove.
22477         (ia64_variable_issue): Don't set it.
22478         (nop_cycles_until): Use sched_emit_insn.
22479
22480 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
22481
22482         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
22483         extended constants.
22484
22485 2002-02-28  Kazu Hirata  <kazu@hxi.com>
22486
22487         * config/h8300/h8300.c: Fix formatting.
22488         * config/h8300/h8300.h: Likewise.
22489
22490 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
22491
22492         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
22493         which may overwrite the high byte of the frame pointer.
22494
22495 2002-02-28  Bo Thorsen  <bo@suse.de>
22496
22497         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
22498         (STARTFILE_SPEC): Add 64 bit files.
22499         (ENDFILE_SPEC): Likewise.
22500
22501 2002-02-28  Jason Merrill  <jason@redhat.com>
22502
22503         * c-decl.c (finish_function): Only warn about missing return
22504         statement with -Wreturn-type.
22505
22506 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
22507
22508         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
22509
22510         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
22511         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
22512
22513 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
22514
22515         * basic-block.h (BB_REACHABLE): Renumber.
22516         (BB_DIRTY, BB_NEW): New flags.
22517         (clear_bb_flags): Declare.
22518         (update_life_info_in_dirty_blocks): Declare.
22519         * cfg.c (clear_bb_flags): New function.
22520         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
22521         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
22522         reorder_insns, emit_insn_after): Mark block as dirty.
22523         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
22524         (update_life_info_in_dirty_blocks): New function.
22525         * recog.c (apply_change_group): Dirtify block.
22526
22527         * cse.c (cse_insn): Reorder emitting of jump insn to keep
22528         cfg consistent.
22529         * gcse.c (delete_null_pointer_checks): Likewise.
22530
22531         * toplev.c (dump_file_index): Move cse2 after bp,
22532         add DFI_null
22533         (dump_file_info): Similary.
22534         (rest_of_compilation): Avoid most of CFG rebuilds;
22535         do first if converision after null pointer checks, do cse2
22536         after branch prediction; avoid full liveness rebuild after
22537         initializing subregs.
22538         * invoke.texi (-d options): Document -du, renumber.
22539
22540         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
22541         (notice_new_block): Do not set BB_UPDATE_LIFE.
22542         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
22543          merge_blocks_move_successor_nojumps, merge_blocks,
22544          try_crossjump_to_edge): Likewise.
22545         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
22546         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
22547         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
22548         (merge_of_block): Do not use life_data_ok.
22549         (find_if_case_1): Do not use SET_UPDATE_LIFE.
22550         (if_convert): Use BB_DIRTY mechanizm to update life.
22551         * lcm.c (optimize_mode_switching): Update
22552         update_life_info_in_dirty_blocks
22553
22554 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
22555
22556         * Makefile.in (integrate.o): Update.
22557         * c-decl.c (copy_lang_decl): Rename.
22558         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
22559         * integrate.c: Include langhooks.h.
22560         (copy_decl_for_inlining): Update to use langhook.
22561         * langhooks-def.h (lhd_do_nothing_t,
22562         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
22563         (LANG_HOOKS_INITIALIZER): Update.
22564         * langhooks.c (lhd_do_nothing_t): New.
22565         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
22566         * tree.h (copy_lang_decl): Remove.
22567 objc:
22568         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
22569
22570 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
22571
22572         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
22573         POST_DEC, and POST_MODIFY.
22574
22575 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
22576
22577         * c-typeck.c (digest_init): Remove unused parameter; all
22578         callers changed.
22579
22580 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
22581
22582         * expmed.c (expand_shift): Correctly test for low part of a
22583         subreg.
22584
22585 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
22586
22587         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
22588         insn UIDs with insn addresses.
22589
22590 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
22591
22592         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
22593         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
22594         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
22595         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
22596         gcc.c, toplev.c: Delete code implementing -traditional mode.
22597
22598         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
22599         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
22600         Document removal of -traditional mode for compilation, and
22601         remove documentation only relevant to that mode.
22602
22603         * config/nextstep.h, config/ptx4.h, config/svr4.h,
22604         config/convex/convex.h, config/d30v/d30v.h,
22605         config/i386/dgux.h, config/i386/osf1elf.h,
22606         config/i386/osfelf.h, config/i386/osfrose.h,
22607         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
22608         config/m68k/hp310.h, config/m88k/dgux.h,
22609         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
22610         config/m88k/m88k.h, config/m88k/openbsd.h,
22611         config/mips/abi64.h, config/mips/osfrose.h,
22612         config/mips/svr4-5.h, config/mips/svr4-t.h,
22613         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
22614         config/stormy16/stormy16.h: Remove all references to
22615         -traditional from target specs.  Delete all mention of the
22616         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
22617         delete a couple of commented-out definitions of
22618         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
22619         to -traditional.
22620
22621         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
22622         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
22623
22624 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
22625
22626         * mklibgcc.in: Don't use \n in a line subject to
22627         interpretation by echo.
22628
22629 2002-02-27  Graham Stott  <grahams@redhat.com>
22630
22631         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
22632         Constify NAME.
22633
22634         * loop.c (prescan_loop): Handle PARALLEL.
22635
22636         * unroll.c (loop_iterations): Return 0 if the add_val for
22637         a BIV is REG.
22638
22639         * final.c (output_operand_lossage): Constify PFX_STR.
22640
22641         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
22642
22643 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
22644
22645         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
22646         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
22647
22648 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
22649
22650         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
22651
22652 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
22653
22654         * cpplex.c (_cpp_lex_token): Handle directives in macro
22655         arguments.
22656         * cpplib.c (_cpp_handle_directive): Save and restore state
22657         if parsing macro args when entering a directive.
22658         * cppmacro.c (collect_args): No need to handle directives
22659         in macro arguments.
22660         (enter_macro_context, replace_args): Use the original macro
22661         definition in case it was redefined whilst collecting arguments.
22662 doc:
22663         * cpp.texi: Update.
22664
22665 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
22666
22667         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
22668         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
22669         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
22670         method on AIX.
22671         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
22672         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
22673         (load_toc_v4_PIC_2): Same.
22674
22675 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
22676
22677         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
22678
22679 2002-02-26  Richard Henderson  <rth@redhat.com>
22680
22681         * config/alpha/alpha.md (ashldi_se): Re-enable.
22682
22683 2002-02-26  Richard Henderson  <rth@redhat.com>
22684
22685         * config/alpha/alpha.c (alpha_encode_section_info): Examine
22686         MODULE_LOCAL_P; improve commentary.
22687
22688 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
22689
22690         * doc/cpp.texi: Clarify documentation of relationship between
22691         #line and #include.
22692
22693 2002-02-26  Kazu Hirata  <kazu@hxi.com>
22694
22695         * config/h8300/h8300-protos.h: Update the prototype for
22696         compute_logical_op_length.  Add the prototype for
22697         compute_logical_op_cc.
22698         * config/h8300/h8300.c (compute_logical_op_length): Figure out
22699         code from operands.
22700         (compute_logical_op_cc): New.
22701         * config/h8300/h8300.md: Combine all the logical op patterns
22702         in HImode and SImode.  Use compute_logical_op_cc.
22703
22704 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
22705
22706         * config/i386/i386.c (print_operand): Don't append ATT-style
22707         length suffixs to x87 opcodes when in Intel mode.
22708
22709 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
22710
22711         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
22712         (init_emit_once): Update calls.
22713         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
22714         (init_syntax_once): Prototype.
22715
22716 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22717
22718         * pa-linux.h (LIB_SPEC): Update definition.
22719         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
22720
22721 2002-02-26  Richard Henderson  <rth@redhat.com>
22722
22723         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
22724         if we emitted a stop bit.
22725
22726 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
22727
22728         * configure.in (libgcc_visibility): Substitute.
22729         * configure: Rebuilt.
22730         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
22731         defined symbols .hidden.
22732
22733 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
22734
22735         * attribs.c (c_common_attribute_table): Add visibility.
22736         (handle_visibility_attribute): New function.
22737         * varasm.c (assemble_visibility): New function.
22738         * output.h (assemble_visibility): Add prototype.
22739         * tree.h (MODULE_LOCAL_P): Define.
22740         * crtstuff.c (__dso_handle): Use visibility attribute.
22741         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
22742         for MODULE_LOCAL_P symbols too.
22743         * config/ia64/ia64.c (ia64_encode_section_info): Handle
22744         MODULE_LOCAL_P symbols the same way as local symbols.
22745         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
22746         into .sdata/.sbss by the user.
22747         * doc/extend.texi (Function Attributes): Document visibility
22748         attribute.
22749
22750 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
22751
22752         PR debug/5770
22753         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
22754         STRING_CST initializer spanning the whole variable without
22755         embedded zeros.
22756         If expand_expr returned MEM, don't use it.
22757
22758 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
22759
22760         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
22761         generate a die for the lexical block.
22762
22763 2002-02-26  Kazu Hirata  <kazu@hxi.com>
22764
22765         * config/h8300/h8300-protos.h: Add a prototype for
22766         compute_logical_op_length.
22767         * config/h8300/h8300.c (compute_logical_op_length): New.
22768         * config/h8300/h8300.md (anonymous logical patterns): Use
22769         compute_logical_op_length for length.
22770
22771 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
22772
22773         * dwarf2out.c (modified_type_die): Do not call type_main_variant
22774         for vectors.
22775         (gen_type_die): Same.
22776
22777         * attribs.c (handle_vector_size_attribute): Set debug information.
22778
22779 2002-02-26  Daniel Egger  <degger@fhm.edu>
22780
22781         * config/rs6000/rs6000.md: Swap define_insn attributes to
22782         fix incorrect generation of merge high instructions instead
22783         of merge low.
22784
22785 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
22786
22787         * c-typeck.c (really_start_incremental_init): Use
22788         bitsize_zero_node for vectors.
22789
22790 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
22791
22792         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
22793         ("*set_vrsave_internal"): Same.
22794
22795 2002-02-25  Richard Henderson  <rth@redhat.com>
22796
22797         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
22798         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
22799
22800 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
22801
22802         PR target/5755
22803         * config/i386/i386.c (ix86_return_pops_args): Only pop
22804         fake structure return argument if it was passed on the stack.
22805
22806 2002-02-25  Jason Merrill  <jason@redhat.com>
22807
22808         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
22809         RESULT_DECL.
22810
22811 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
22812
22813         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
22814         link with shared_name only.
22815         * doc/invoke.texi (Link Options): Document new behavior.
22816
22817 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
22818
22819         * c-typeck.c (push_init_level): Handle vectors.
22820
22821 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
22822
22823         * config/sparc/sparc.c (const64_high_operand): Zero-extend
22824         operands of SPARC_SETHI_P.
22825         (input_operand): Likewise.
22826         (sparc_emit_set_const32): Likewise.
22827         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
22828         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
22829         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
22830         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
22831         (movdi_insn_sp64_vis): Likewise.
22832         (movdi split, movdf split): Use SETHI32.
22833         * doc/md.texi: Document SPARC constraints L, M and N.
22834
22835 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
22836
22837         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
22838         ("*set_vrsave_internal"): use mfspr for Darwin.
22839
22840         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
22841         gen_get_vrsave_internal.
22842
22843 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22844
22845         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
22846
22847 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
22848
22849         * cpplex.c (cpp_interpret_charconst): Get signedness or
22850         otherwise of wide character constants correct.
22851         * cppexp.c (lex): Get signedness of wide charconsts correct.
22852
22853 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22854
22855         * optabs.c (widen_operand): Only call convert_modes for
22856         promoted SUBREG if signedness matches.
22857         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
22858
22859 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
22860
22861         * cpplib.c (glue_header_name): Use local buffer to build up
22862         header name.
22863
22864 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
22865
22866         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
22867
22868 2002-02-23  Kazu Hirata  <kazu@hxi.com>
22869
22870         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
22871         H8/300[HS] separately.
22872         * config/h8300/h8300.md: Remove the early clobber constraint
22873         from bit field patterns.
22874
22875 2002-02-23  Kazu Hirata  <kazu@hxi.com>
22876
22877         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
22878         register_operand.
22879         (mulhisi3): Likewise.
22880         (umulqisi3): Likewise.
22881         (umulhisi3): Likewise.
22882
22883 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
22884
22885         * cppinit.c (output_deps): Correct test for stdout output.
22886         (init_dependency_output): Cure warning.
22887
22888 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22889
22890         * expr.c (store_expr): When converting expression to promoted
22891         equivalent type, allow using SUBREG_REG of TARGET as the target
22892         of the expansion of EXP.
22893         * loop.c (basic_induction_var, case SUBREG): Always look inside.
22894         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
22895         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
22896         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
22897         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
22898
22899 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
22900
22901         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
22902         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
22903         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
22904
22905 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
22906
22907         PR optimization/5747
22908         * loop.c (scan_loop): Update reg info if move_movables created new
22909         pseudos.
22910
22911 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
22912
22913         * gcc.c (init_gcc_spec): Revert last change.
22914
22915 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
22916
22917         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
22918         gpc_reg_operand constraint.
22919
22920 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
22921
22922         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
22923         Simplify comparison of `low'.
22924         (add_operand): Fix formatting.
22925         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
22926         (mask_operand): Disallow mask to wrap in 64-bit mode.
22927         (rs6000_stack_info): Remove redundant test setting push_p.
22928         (output_toc): Fix formatting.
22929         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
22930         cc_reg_not_cr0_operand constraint.
22931         (booldi3, boolcdi3 splitters): Same.
22932
22933 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
22934
22935         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
22936
22937 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
22938
22939         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
22940         gcc invoked with -shared-libgcc.
22941
22942 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
22943
22944         PR c++/5748
22945         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
22946         decl if any of elements was TREE_USED.
22947
22948 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
22949
22950         * config/sparc/sol2.h: Don't include sys/mman.h.
22951         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
22952         (arith_4096_operand): Don't throw high bits away.
22953         (const64_operand): Take sign extension of CONST_INTs into account.
22954         (const64_high_operand, sparc_emit_set_const32): Likewise.
22955         (GEN_HIGHINT64): Likewise.
22956         (sparc_emit_set_const64_quick1): Likewise.
22957         (const64_is_2insns): Likewise.
22958         (print_operand): Use trunc_int_for_mode for sign extension.
22959         * config/sparc/sparc.h (SMALL_INT32): Likewise.
22960         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
22961         chars.  Assume CONST_INT is already properly sign-extended.
22962         (movdi split): Sign-extend each SImode part.
22963         (andsi3 split): Don't mask high bits off, so that result
22964         remains properly sign-extend.
22965         (iorsi3 split): Likewise.
22966         (xorsi3 split): Likewise.
22967
22968 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
22969
22970         * fold-const.c (fold): Fix typo in comments.
22971
22972 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
22973
22974         * Makefile.in (langhooks.o): Update dependencies.
22975
22976 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
22977
22978         * langhooks.c: Include flags.h.
22979
22980 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
22981
22982         * testsuite/gcc.dg/attr-alwaysinline.c: New.
22983
22984         * c-common.c (c_common_post_options): Set inline trees by
22985         default.
22986
22987         * doc/extend.texi (Function Attributes): Document always_inline
22988         attribute.
22989         Update documentation about inlining when not optimizing.
22990
22991         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
22992
22993         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
22994         unless DECL_ALWAYS_INLINE.
22995
22996         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
22997         unless DECL_ALWAYS_INLINE.
22998         (c_disregard_inline_limits): Disregard if always_inline set.
22999
23000         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
23001         Disregard if always_inline set.
23002         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
23003         unless DECL_ALWAYS_INLINE.
23004
23005         * attribs.c (handle_always_inline_attribute): New.
23006         (c_common_attribute_table): Add always_inline.
23007
23008         * config/rs6000/altivec.h: Add prototypes for builtins
23009         requiring the always_inline attribute.
23010
23011 2002-02-21  Eric Christopher  <echristo@redhat.com>
23012
23013         * expmed.c (store_bit_field): Try to simplify the subreg
23014         before generating a new one when when the mode size of
23015         value is less than maxmode.
23016
23017 2002-02-21  Richard Henderson  <rth@redhat.com>
23018
23019         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
23020         than gen_rtx_PLUS to form the sum.
23021         * explow.c (force_reg): Rearrange to not allocate new pseudo
23022         when force_operand returns a register.
23023         * expr.c (expand_assignment): Allow offset_rtx expansion to
23024         return a sum.  Do not force addresses into registers.
23025         (expand_expr): Likewise.
23026         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
23027         to canonicalize arithmetic that didn't simpify.
23028         (simplify_plus_minus): New argument force; update
23029         all callers.  Don't split CONST unless we can do something with it,
23030         and wouldn't lose the constness of the operands.
23031
23032         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
23033         that we generated earlier.
23034
23035 2002-02-21  Tom Tromey  <tromey@redhat.com>
23036
23037         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
23038         (output_line_info): Use constant `1', with a long explanatory
23039         comment.
23040         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
23041
23042 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
23043
23044         * jump.c (redirect_jump): If old label has no UID, don't try to
23045         delete it.
23046
23047 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
23048
23049         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
23050         If input is constant, do shifts at compile time.
23051
23052 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
23053
23054         * doc/extend.texi: Fix some more overfull hboxes.
23055
23056 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
23057
23058         PR optimization/4994
23059         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
23060         register moves.
23061
23062 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
23063
23064         PR c++/4574
23065         * expr.h (expand_and): Add mode argument.
23066         * expmed.c (expand_and): Add mode argument.
23067         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
23068         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
23069         * except.c (expand_builtin_extract_return_addr): Likewise.
23070         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
23071         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
23072         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
23073         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
23074         * config/c4x/c4x.md: Use GEN_INT (x) instead of
23075         gen_rtx (CONST_INT, VOIDmode, x).
23076
23077 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
23078
23079         PR c/4697:
23080         * stmt.c (warn_if_unused_value): Move side effects test once more.
23081
23082 2002-02-20  Torbjorn Granlund  <tege@swox.com>
23083
23084         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
23085         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
23086
23087 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
23088
23089         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
23090         SUBREG or ZERO_EXTEND.
23091
23092 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
23093
23094         * sh.h (current_function_anonymous_args): Remove.
23095         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
23096         of current_function_varargs and current_function_stdarg is set.
23097         * sh.c (sh_expand_prologue): Check current_function_varargs /
23098         current_function_stdarg / TARGET_SH5 instead of
23099         current_function_anonymous_args.
23100
23101         * sh64.h (TARGET_VERSION): Define.
23102
23103 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
23104
23105         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
23106         VRSAVE_REGNO on TARGET_ALTIVEC.
23107
23108 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
23109
23110         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
23111         bits of SImode const_int.
23112         (includes_rshift_p): Likewise.
23113         (print_operand): Call mask_operand and mask64_operand with correct
23114         mode.
23115         (rs6000_output_function_epilogue): Pad traceback table to word.
23116         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
23117         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
23118         mask64_operand with correct mode.
23119         (FUNCTION_ARG_REGNO_P): Correct parentheses.
23120
23121 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
23122
23123         PR debug/4461
23124         * varasm.c (get_pool_constant_mark): New.
23125         * rtl.h (get_pool_constant_mark): Add prototype.
23126         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
23127         be represented if it has not been output.
23128
23129 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
23130
23131         * combine.c (do_SUBST): Sanity check substitutions of
23132         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
23133         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
23134         CONST_INT into its operand.
23135         (known_cond): Likewise, for ZERO_EXTEND.
23136         * simplify-rtx.c (simplify_unary_operation): Fix condition to
23137         allow for simplification of wide modes.  Reject CONST_INTs in
23138         ZERO_EXTEND when their actual mode is not given.
23139
23140 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
23141
23142         * c-decl.c (pushdecl): If no global declaration is found for an
23143         extern declaration in block scope, try a limbo one.
23144
23145 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
23146
23147         PR c++/4401
23148         * c-common.c (pointer_int_sum): Moved from...
23149         * c-typeck.c (pointer_int_sum): ...here.
23150         * c-common.h (pointer_int_sum): Add prototype.
23151
23152 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
23153
23154         PR c++/5713
23155         * c-decl.c (duplicate_decls): Return 0 if issued error about
23156         redeclaration.
23157
23158 2002-02-20  Roger Sayle  <roger@eyesopen.com>
23159             Jakub Jelinek  <jakub@redhat.com>
23160
23161         PR c/4389
23162         * tree.c (host_integerp): Ensure that the constant integer is
23163         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
23164         when pos is zero or non-zero respectively.  Clarify comment.
23165         * c-format.c (check_format_info_recurse): Fix host_integerp
23166         usage; the pos argument should be zero when assigning to a
23167         signed HOST_WIDE_INT.
23168
23169 2002-02-20  Richard Henderson  <rth@redhat.com>
23170
23171         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
23172         of the operand, rather than assuming TImode.
23173         (ix86_expand_binop_builtin): Cope with commutative patterns
23174         using nonimmediate_operand for both operands.
23175         (ix86_expand_timode_binop_builtin): Likewise.
23176         (ix86_expand_store_builtin): Validate operand 1.
23177         (ix86_expand_unop1_builtin): Likewise.
23178
23179 2002-02-20  Philip Blundell  <philb@gnu.org>
23180
23181         PR 5705
23182         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
23183
23184 2002-02-20  Richard Henderson  <rth@redhat.com>
23185
23186         PR c/5615
23187         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
23188
23189 2002-02-20  Tom Tromey  <tromey@redhat.com>
23190
23191         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
23192         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
23193         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
23194         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
23195         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
23196         unconditionally.
23197
23198 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
23199
23200         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
23201           for (const_int 0) in X not just INTVAL.
23202
23203 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
23204
23205         * doc/extend.texi: Avoid or reduce overfull hboxes.
23206
23207 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
23208
23209         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
23210         operations if the field does not start at a mode boundary.
23211
23212 2001-02-20      Joel Sherrill <joel@OARcorp.com>
23213
23214         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
23215         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
23216         Also done for -Acpu and -Amachine.
23217
23218 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
23219
23220         * cppinit.c (init_dependency_output): Take deps output file
23221         from -o if none given with -MF.  Suppress normal output.
23222         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
23223         * doc/cpp.texi, doc/invoke.texi: Update.
23224
23225 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
23226
23227         * toplev.c (output_quoted_string): Write unprintable
23228         characters with octal escapes.
23229
23230 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
23231
23232         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
23233         really_call_used[VRSAVE_REGNO] if not Altivec.
23234
23235 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
23236
23237         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
23238         MODE_MASK.
23239         (constant_pool_expr_1): Fix formatting.
23240         (rs6000_legitimize_reload_address): Likewise.
23241
23242 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23243
23244         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
23245         now that we have one.
23246
23247 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
23248
23249         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
23250         end of first block of bitfields (which was only seven bits);
23251         rename dummy to unused_1; remove comment which is no longer true.
23252
23253 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
23254
23255         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
23256
23257 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
23258
23259         PR 5399
23260         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
23261         if generating PIC.
23262
23263         PR 5054
23264         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
23265         arm_is_longcall_p rather than inspecting call-type cookie
23266         directly.
23267         (call_value_insn) [TARGET_THUMB]: Likewise.
23268
23269 2002-02-19  Graham Stott  <grahams@redhat.com>
23270
23271         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
23272
23273 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
23274
23275         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
23276         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
23277         (FP_SAVE_INLINE): Delete.
23278
23279         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
23280         * config/rs6000/eabi.asm: Remove ABI save restore routines.
23281         * config/rs6000/t-ppccomm: Build crtsavres.o.
23282         * config/rs6000/crtsavres.asm: New file.
23283
23284 2002-02-19  Philip Blundell  <philb@gnu.org>
23285
23286         * config/arm/arm.c (use_return_insn): Don't reject interrupt
23287         functions.
23288         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
23289         (output_return_instruction): Allow interrupt functions to return with
23290         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
23291         (arm_expand_prologue): Subtract 4 before stacking LR in an
23292         interrupt function.
23293
23294 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
23295
23296         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
23297         decl, not just FUNCTION_DECL.
23298         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
23299         (arm_assemble_integer): Likewise.
23300         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
23301         marked local.
23302
23303 2002-02-19  matthew green  <mrg@eterna.com.au>
23304
23305         * config.gcc (sparc-*-netbsdelf*): Enable target.
23306         (sparc64-*-netbsd*): New target.
23307         * config/sparc/netbsd-elf.h: New file.
23308         * config/sparc/t-netbsd64: New file.
23309
23310 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
23311
23312         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
23313
23314 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
23315
23316         * doc/invoke.texi: explicitly list the style guidelines that
23317         -Weffc++ checks for.
23318
23319 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
23320
23321         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
23322
23323 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
23324
23325         PR other/5718
23326         * gcc.c (cpp_unique_options): Treat -o as indicating object file
23327         only if not -E.  If -E, pass -o through to the preprocessor.
23328
23329 2002-02-19  Kazu Hirata  <kazu@hxi.com>
23330
23331         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
23332         register number with an appropriate macro.
23333
23334 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
23335
23336         * doc/rtl.texi (Constants): Close @code tag.
23337
23338 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
23339
23340         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
23341         ("mmx_uavgv4hi3"): Same.
23342         ("pmulhrwv4hi3"): Same.
23343
23344         * tree-inline.c (walk_tree): Handle vectors.
23345
23346         * c-common.c (constant_expression_warning): Handle vectors.
23347         (overflow_warning): Same.
23348
23349         * sched-deps.c (sched_analyze_2): Handle vectors.
23350
23351         * rtlanal.c (rtx_unstable_p): Handle vectors.
23352         (rtx_varies_p): Same.
23353         (count_occurrences): Same.
23354         (regs_set_between_p): Same.
23355         (modified_between_p): Same.
23356         (modified_in_p): Same.
23357         (volatile_insn_p): Same.
23358         (volatile_refs_p): Same.
23359         (side_effects_p): Same.
23360         (may_trap_p): Same.
23361         (inequality_comparisons_p): Same.
23362         (replace_regs): Same.
23363         (computed_jump_p_1): Same.
23364
23365         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
23366         argument.
23367         (inner_mode_array): New.
23368         (copy_rtx): Handle vectors.
23369         (copy_most_rtx): Same.
23370         (rtx_equal_p): Same.
23371         (get_mode_alignment): Adjust for vectors.
23372
23373         * resource.c (mark_referenced_resources): Handle vectors.
23374         (mark_set_resources): Same.
23375
23376         * reload1.c (eliminate_regs): Handle vectors.
23377         (elimination_effects): Same.
23378         (scan_paradoxical_subregs): Same.
23379
23380         * reload.c (subst_reg_equivs): Handle vectors.
23381
23382         * regrename.c (scan_rtx): Handle vectors.
23383
23384         * regclass.c (reg_scan_mark_refs): Handle vectors.
23385
23386         * recog.c (find_single_use_1): Handle vectors.
23387
23388         * local-alloc.c (equiv_init_varies_p): Handle vectors.
23389         (contains_replace_regs): Same.
23390         (memref_referenced_p): Same.
23391
23392         * integrate.c (copy_rtx_and_substitute): Handle vectors.
23393         (subst_constants): Same.
23394
23395         * genattrtab.c (attr_copy_rtx): Handle vectors.
23396         (encode_units_mask): Same.
23397         (clear_struct_flag): Same.
23398         (count_sub_rtxs): Same.
23399
23400         * gcse.c (want_to_gcse_p): Handle vectors.
23401         (oprs_unchanged_p): Same.
23402         (hash_expr_1): Same.
23403         (oprs_not_set_p): Same.
23404         (expr_killed_p): Same.
23405         (compute_transp): Same.
23406         (store_ops_ok): Same.
23407
23408         * function.c (purge_addressof_1): Do not allow paradoxical subregs
23409         of vectors.
23410         (fixup_var_refs_1): Same.
23411         (instantiate_virtual_regs_1): Same.
23412
23413         * fold-const.c (operand_equal_p): Handle vectors.
23414         (fold): Same.
23415         (rtl_expr_nonnegative_p): Same.
23416
23417         * flow.c (mark_used_regs): Handle vectors.
23418
23419         * df.c (df_uses_record): Handle vectors.
23420
23421         * cselib.c (cselib_subst_to_values): Handle vectors.
23422         (cselib_mem_conflict_p): Same.
23423         (hash_rtx): Same.
23424
23425         * cse.c (canon_reg): Handle vectors.
23426         (fold_rt): Same.
23427         (cse_process_notes): Same.
23428         (count_reg_usage): Same.
23429         (canon_hash): Same.
23430
23431         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
23432
23433         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
23434
23435         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
23436         (gen_rtx): Handle CONST_VECTOR.
23437         (gen_const_vector_0): New.
23438         (copy_rtx_if_shared): CONST_VECTORs can be shared.
23439         (reset_used_flags): Same.
23440         (copy_insn_1): Same.
23441         (initializer_constant_valid_p): Handle VECTOR_CST.
23442
23443         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
23444
23445         * doc/rtl.texi (Constants): Document const_vector.
23446         (CONST0_RTX): Update for vectors.
23447         (RTL sharing): Same.
23448
23449         * print-tree.c (print_node): Add case for VECTOR_CST.
23450
23451         * tree.h (TREE_VECTOR_CST_ELTS): New.
23452         (struct tree_vector): New.
23453         (union tree_node): Add vector node.
23454         (build_vector): Add prototype.
23455
23456         * tree.def (VECTOR_CST): New.
23457
23458         * tree.c (build_vector): New.
23459
23460         * expmed.c (make_tree): Handle CONST_VECTOR.
23461
23462         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
23463         (CONST_VECTOR_ELT): New.
23464         (CONST_VECTOR_NUNITS): New.
23465
23466         * machmode.h (GET_MODE_INNER): New.
23467         (DEF_MACHMODE): Accept 8th arg.
23468
23469         * machmode.def: Add 8th argument for vector inner mode.
23470         Add inner vector modes for vectors.
23471
23472         * rtl.def (VEC_CONST): Remove.
23473         (CONST_VECTOR): New.
23474
23475         * expr.c (clear_storage): Allow vectors.
23476         (is_zeros_p): Handle VECTOR_CST.
23477
23478         * varasm.c (output_constant_pool): Handle vectors.
23479         (rtx_const): Add veclo and vechi fields.
23480         (kind): Add RTX_VECTOR.
23481         (decode_rtx_const): Add case for vector.
23482
23483         * config/rs6000/rs6000-protos.h: Add zero_constant.
23484
23485         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
23486         constants.  Force easy vector constants into memory.
23487         (easy_vector_constant): New.
23488         (emit_easy_vector_constant): New.
23489         (rs6000_legitimize_reload_address): Do not generate bad reloads on
23490         darwin.
23491
23492         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
23493         instruction does.
23494         ("altivec_lvxl"): Same.
23495         (altivec_lvebx): Same.
23496         (altivec_lvehx): Same.
23497         (altivec_lvewx): Same.
23498         ("*movv4si_const0"): New.
23499         ("*movv4sf_const0"): New.
23500         ("*movv8hi_const0"): New.
23501         ("*movv16qi_const0"): New.
23502
23503 2002-02-18  Kazu Hirata  <kazu@hxi.com>
23504
23505         * config/h8300/h8300.c (notice_update_cc): Use
23506         cc_status.value2.
23507
23508 2002-02-18  Kazu Hirata  <kazu@hxi.com>
23509
23510         * config/h8300/h8300.md (divmod patterns): Change the
23511         constraints for operands[1] to register_operand.
23512
23513 2002-02-18  Kazu Hirata  <kazu@hxi.com>
23514
23515         * config/h8300/h8300-protos.h: Remove the prototype for
23516         p_operand.
23517         * config/h8300/h8300.c (p_operand): Remove.
23518         * config/h8300/h8300.md: Replace p_operand with
23519         const_int_operand.
23520
23521 2002-02-18 Philip Blundell <pb@nexus.co.uk>
23522
23523         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
23524         comment.
23525         (output_return_instruction): Allow use of LDR to unstack
23526         return addresss even for interrupt handlers or when
23527         interworking.  If compiling for ARMv5, use interworking-safe
23528         return instructions by default.  Remove duplicated code and
23529         lengthy "strcat" sequences.
23530
23531 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23532
23533         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
23534         (LINK_EH_SPEC): Define.
23535         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
23536
23537 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
23538
23539         * config/s390/s390.c (s390_emit_prologue): Do not set the
23540         frame_related flag for call-clobbered registers.
23541
23542 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
23543
23544         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
23545         (construct_container): Fix handling of SSE operands.
23546         (ix86_expand_builtin): Fix handling of 64bit pointers.
23547         (mmx_maskmovq_rex): New pattern.
23548
23549 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
23550
23551         * regrename.c (kill_set_value): Handle subregs properly.
23552
23553 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
23554
23555         * objc/objc-act.c (handle_impent): Remove leading '*'
23556         from objc_class_name.
23557
23558 2002-02-17  Richard Henderson  <rth@redhat.com>
23559
23560         * config/alpha/alpha.c (some_small_symbolic_operand,
23561         some_small_symbolic_operand_1, split_small_symbolic_operand,
23562         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
23563         Handle small SYMBOL_REFs anywhere, not just inside memories.
23564         * config/alpha/alpha-protos.h: Update.
23565         * config/alpha/alpha.h (PREDICATE_CODES): Update.
23566         * config/alpha/alpha.md (small symbolic operand splitter): Update.
23567
23568 2002-02-17  Roland McGrath  <roland@frob.com>
23569
23570         * config.gcc (powerpc-*-gnu-gnualtivec*,
23571         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
23572         * config/rs6000/gnu.h: New file.
23573         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
23574         Grok "gnu" in rs6000_abi_name.
23575         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
23576         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
23577         Grok -mcall-gnu analogous to -mcall-linux et al.
23578         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
23579         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
23580         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
23581
23582 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
23583
23584         PR c/3444:
23585         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
23586         shortening.
23587
23588 2002-02-17  Philipp Thomas  <pthomas@suse.de>
23589
23590         * config/cris/cris.h: Undefine STARTFILE_SPEC and
23591         ENDFILE_SPEC before (re)defining them.
23592
23593 2002-02-17  Kazu Hirata  <kazu@hxi.com>
23594
23595         * config/h8300/h8300.c: Fix formatting.
23596         * config/h8300/h8300.h: Likewise.
23597
23598 2002-02-17  Philipp Thomas  <pthomas@suse.de>
23599
23600         * doc/tm.texi: Explain why empty strings should not be
23601         marked for translation.
23602
23603 2002-02-17  Philipp Thomas  <pthomas@suse.de>
23604
23605         * final.c (output_operand_lossage): Changed to accept
23606         printf style arguments. Change calls where necessary.
23607         * output.h (output_operand_lossage): Change declaration
23608         accordingly. Update copyright.
23609         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
23610         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
23611         Update copyright date where necessary.
23612
23613         * config/i386/i386.c (print_operand): Likewise. Remove use of
23614         sprintf.
23615
23616         * config/cris/cris.c (cris_operand_lossage): Likewise.
23617         Rename parameter so that exgettext recognizes it as
23618         translatable message.
23619         (LOSE_AND_RETURN): Rename parameter to msgid.
23620
23621 2002-02-17  Kazu Hirata  <kazu@hxi.com>
23622
23623         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
23624         hard coded register number with an appropriate macro.
23625         (HARD_REGNO_MODE_OK): Likewise.
23626         (ARG_POINTER_REGNUM): Likewise.
23627         (STATIC_CHAIN_REGNUM): Likewise.
23628         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
23629         * config/h8300/h8300.md (define_constants): Define more
23630         register numbers.
23631
23632 2002-02-17  Philipp Thomas  <pthomas@suse.de>
23633
23634         * config/i386/i386.h: Don't mark empty strings for translation.
23635
23636 2002-02-16  H.J. Lu <hjl@gnu.org>
23637
23638         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
23639
23640 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
23641
23642         * cppinit.c (merge_include_chains): Check for brack being
23643         NULL before attempting to merge it with qtail.
23644
23645 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
23646
23647         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
23648         DBX_DEBUG.
23649
23650 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23651
23652         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
23653
23654 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23655
23656         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
23657         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
23658         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
23659
23660 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23661
23662         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
23663         now only if !TARGET_FIX.
23664         (*movsi_nt_vms_fix): New pattern.
23665
23666 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
23667
23668         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
23669         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
23670         (alpha_sa_mask, alpha_sa_size): Reflect above change.
23671         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
23672         (alpha_start_function, alpha_expand_epilogue): Likewise.
23673         (unicosmk_gen_dsib): Likewise.
23674
23675 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23676
23677         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
23678
23679 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
23680
23681         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
23682         check_and_change_labels, s390_final_chunkify): Delete.
23683         (s390_split_branches, s390_chunkify_pool): New functions.
23684         (s390_function_prologue): Call them.
23685
23686         * config/s390/s390.h (S390_REL_MAX): Delete.
23687         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
23688
23689         * config/s390/s390.md (cjump, icjump, jump): Fix length
23690         attribute calculation.
23691
23692
23693 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
23694
23695         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
23696         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
23697
23698 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23699
23700         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
23701         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
23702         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
23703
23704 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
23705
23706         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
23707
23708 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
23709
23710         * reload.c (find_dummy_reload): Check that an output register
23711         is valid for its mode.
23712
23713 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
23714
23715         * combine.c (known_cond): After replacing the REG of a SUBREG, try
23716         to simplify it.
23717
23718         * function.c (assign_parms): Demote promoted argument passed by
23719         transparent reference.
23720
23721 2001-02-14      Joel Sherrill <joel@OARcorp.com>
23722
23723         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
23724         -Acpu() and -Amachine() to eliminate warnings.
23725
23726 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
23727
23728         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
23729
23730 2002-02-14  Kazu Hirata  <kazu@hxi.com>
23731
23732         * config/h8300/h8300-protos.h: Update the prototype for
23733         const_costs.
23734         * config/h8300/h8300.c (const_costs): Treat SET as a little
23735         more expensive operation.
23736         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
23737         reference to const_costs.
23738
23739 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
23740
23741         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
23742
23743 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
23744
23745         PR c/5503:
23746         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
23747         use arguments from newtype.
23748
23749 2002-02-13  Eric Christopher  <echristo@redhat.com>
23750
23751         * config/mips/mips.c (override_options): Add check for march/mipsX
23752         on the same command line. Fix error message in cpu processing.
23753         Remove architecture and ISA checks.
23754
23755 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
23756
23757         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
23758
23759         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
23760
23761 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
23762
23763         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
23764         alternatives.
23765         ("*movv8hi_internal1"): Same.
23766         ("*movv16qi_internal1"): Same.
23767         ("*movv4sf_internal1"): Same.
23768
23769         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
23770         not push_reload for altivec modes.
23771
23772 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
23773
23774         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
23775         all RTEMS targets including removal of #includes from config/*/rtems*.h
23776         file and adding them to tm_file setting. Added xm_defines=POSIX to
23777         many targets.
23778         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
23779         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
23780         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
23781         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
23782         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
23783         config/m68k/rtemself.h: Ditto.
23784         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
23785         config/mips/rtems64.h: Ditto.
23786         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
23787         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
23788         Ditto.
23789         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
23790         config/sparc/rtemself.h: Ditto.
23791         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
23792         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
23793         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
23794         more like arm-elf.
23795         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
23796         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
23797         target made more similar to i386-elf.
23798         * config/i386/t-rtems-i386: Added soft float support and multilibs.
23799         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
23800         be similar to config/m68k/t-m68kelf.
23801         * gthr-rtems.h: Encapsulate with extern "C" for C++.
23802
23803 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
23804
23805         * regmove.c (kill_value): Handle subregs.
23806
23807 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
23808
23809         * i386.md (mul patterns): Allow memory operand to be first;
23810         add expanders where needed; fix constraints.
23811         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
23812         Allow memory operand to be the first.
23813
23814         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
23815         operands.
23816
23817 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
23818
23819         PR c/5681:
23820         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
23821         GET_MODE (x).
23822
23823 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
23824
23825         PR optimization/5547:
23826         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
23827         all valid IA-32 address modes involving non-scaled %ebx and
23828         GOT/GOTOFF as displacement.
23829
23830 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
23831
23832         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
23833         after emitting ltorg insns.
23834
23835         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
23836         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
23837         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
23838         *abssf2): Fix "op_type" attribute.
23839
23840 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
23841
23842         * mkconfig.sh: Avoid using a subshell redirect.
23843         ($output.T): Change to $(output)T.
23844         (ENABLE_NLS): Remove unneeded undef.
23845
23846         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
23847         * config/alpha/x-vms (libsubdir): Define.
23848
23849         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
23850         register frame procedures. Optimize retrieving context.
23851
23852         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
23853         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
23854         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
23855
23856 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23857
23858         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
23859         Make same change as for find_base_value.
23860
23861 2002-02-13  Kazu Hirata  <kazu@hxi.com>
23862
23863         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
23864         of QImode and SImode.
23865
23866 2002-02-13  Kazu Hirata  <kazu@hxi.com>
23867
23868         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
23869         length computation of movsi.
23870         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
23871
23872 2002-02-13  Kazu Hirata  <kazu@hxi.com>
23873
23874         * config/h8300/h8300.md (subqi3): Tighten the predicate for
23875         operands[2] to register_operand.
23876
23877 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
23878
23879         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
23880
23881 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
23882
23883         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
23884         for altivec_lvx* and altivec_stvx*.
23885         ("*movv4si_internal"): Add constraint for loading from GPRs.
23886         ("*movv8hi_internal1"): Same.
23887         ("*movv16qi_internal1"): Same.
23888         ("*movv4sf_internal1"): Same.
23889
23890         * config/rs6000/rs6000.c (altivec_register_operand): New.
23891
23892         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
23893         altivec_register_operand.
23894
23895 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
23896
23897         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
23898         handle SYMBOL_REF.
23899
23900 2002-02-13  Stan Shebs  <shebs@apple.com>
23901
23902         * c-typeck.c (digest_init): Handle vectors.
23903         (really_start_incremental_init): Same.
23904         (pop_init_level): Same.
23905         (process_init_element): Same.
23906
23907         * varasm.c (output_constant): Same.
23908
23909         * expr.c (clear_storage): Same.
23910         (store_constructor): Same.
23911
23912 2002-02-12  Eric Christopher  <echristo@redhat.com>
23913
23914         * explow.c (hard_function_value): Add comment explaining
23915         signed/unsigned comparison.
23916
23917 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
23918
23919         * jump.c (never_reached_warning): Add finish argument.
23920         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
23921         real insn after end.
23922         * rtl.h (never_reached_warning): Adjust prototype.
23923         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
23924         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
23925         never_reached_warning.
23926
23927 2002-02-12  Graham Stott  <grahams@redhat.com>
23928
23929         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
23930
23931 2002-02-12  Kazu Hirata  <kazu@hxi.com>
23932
23933         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
23934         logical shifts on H8/300.
23935         (shift_alg_si): Improve several shifts on H8/300.
23936         (get_shift_alg): Likewise.
23937
23938 2002-02-12  Graham Stott  <grahams@redhat.com>
23939
23940         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
23941
23942 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23943
23944         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
23945         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
23946
23947 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
23948
23949         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
23950         non-CONST_INT through default_assemble_integer.
23951         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
23952         <case 8>: Abort for CONST_DOUBLE.
23953
23954 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23955
23956         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
23957         is specified.
23958         * config/pa/pa-linux.h (LIB_SPEC): Delete.
23959         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
23960
23961 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
23962
23963         * config/stormy16/stormy16.md (zero_extendqihi2): New.
23964
23965 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
23966
23967         * regrename.c (regrename_optimize): Don't accept a
23968         part-clobbered register if the replaced register is not part
23969         clobbered.
23970
23971         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
23972         take padding into account when computing the argument value.
23973
23974         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
23975
23976         * combine.c (try_combine): Apply substitutions in
23977         CALL_INSN_FUNCTION_USAGE too.
23978
23979 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
23980
23981         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
23982         __builtin_altivec_abs*.
23983         (bdesc_abs): New.
23984
23985         * config/rs6000/rs6000.h (rs6000_builtins): Add
23986         ALTIVEC_BUILTIN_ABS*.
23987
23988         * config/rs6000/altivec.h: Use const char for builtins expecting
23989         literals.
23990         (vec_abs): New versions for C and C++.
23991         (vec_abss): Same.
23992
23993 2002-02-10  Kazu Hirata  <kazu@hxi.com>
23994
23995         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
23996         using Pmode.
23997
23998 2002-02-10  Kazu Hirata  <kazu@hxi.com>
23999
24000         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
24001         constant definition from h8300.md.
24002         (FRAME_POINTER_REGNUM): Likewise.
24003         * config/h8300/h8300.md (define_constants): Add FP_REG.
24004
24005 2002-02-10  Kazu Hirata  <kazu@hxi.com>
24006
24007         * config/h8300/h8300.c (print_operand): Remove redundant code.
24008
24009 2002-02-10  Kazu Hirata  <kazu@hxi.com>
24010
24011         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
24012         * config/h8300/h8300.c (byte_reg): Make it static.
24013
24014 2002-02-10  Richard Henderson  <rth@redhat.com>
24015
24016         PR c/5623
24017         * c-typeck.c (incomplete_type_error): Handle flexible array members.
24018
24019 2002-02-10  Richard Henderson  <rth@redhat.com>
24020
24021         PR c++/5624
24022         * tree.c (append_random_chars): Don't abort if main_input_filename
24023         does not exist.
24024
24025 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
24026
24027         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
24028
24029 2002-02-10  Kazu Hirata  <kazu@hxi.com>
24030
24031         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
24032         (pushhi1): Likewise.
24033
24034 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24035
24036         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
24037         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
24038
24039 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
24040
24041         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
24042         remove MASK_VIS.
24043         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
24044
24045 2002-02-09  Kazu Hirata  <kazu@hxi.com>
24046
24047         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
24048         a half of an SImode register on H8/300.
24049
24050 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
24051
24052         * i386.md (movdi_2): Add missing '!'.
24053
24054 2002-02-09  Kazu Hirata  <kazu@hxi.com>
24055
24056         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
24057         definitions.
24058
24059 2002-02-09  Kazu Hirata  <kazu@hxi.com>
24060
24061         * config/h8300/h8300.md (length): Correct the distance valid
24062         for the short branch.
24063
24064 2002-02-09  Kazu Hirata  <kazu@hxi.com>
24065
24066         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
24067
24068 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
24069
24070         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
24071         registers in SImode.
24072         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
24073         part-clobbered.
24074
24075         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
24076         patch.
24077
24078         Contribute sh64-elf.
24079         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
24080         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
24081         (sh_cannot_modify_jumps_p): New function.
24082         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
24083         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
24084         (sh_ms_bitfield_layout_p): New function.
24085         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
24086                     Zack Weinberg  <zack@codesourcery.com>
24087         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
24088         expand_simple_binop instead of expand_binop.
24089         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
24090         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
24091         use of .quad and .uaquad.
24092         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
24093         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
24094         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
24095         * config/sh/sh.md (movdi_const, movdi_const_32bit,
24096         movdi_const_16bit): Make sure all CONSTs have modes.
24097         (sym2PIC): Ditto, but by adjusting all callers.
24098         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
24099         if the prologue calls the SHmedia argument decoder or register
24100         saver.
24101         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
24102         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
24103         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
24104         (sh_expand_epilogue): Don't emit USE of return target register.
24105         (prepare_move_operands): Legitimize DImode PIC addresses.
24106         (sh_media_register_for_return): Skip tr0, used to initialize the
24107         PIC register.
24108         (sh_expand_prologue): Remove explicit USE of return register.
24109         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
24110         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
24111         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
24112         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
24113         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
24114         EXTRA_CONSTRAINT_T.
24115         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
24116         (MOVI_SHORI_BASE_OPERAND_P): New.
24117         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
24118         (EXTRA_CONSTRAINT_T): Define in terms of them.
24119         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
24120         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
24121         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
24122         alternatives supporting TARGET_REGS.
24123         (UNSPEC_GOTPLT): New constant.
24124         (movdi split): Move incrementing of LABEL_NUSES...
24125         (movdi_const, movdi_const_32bit): Here.  Use
24126         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
24127         (movdi_const_16bit): New.
24128         (call, call_value) [flag_pic]: Use GOTPLT.
24129         (call_pop, call_value_pop): New expands.
24130         (call_pop_compact, call_pop_rettramp): New insns.
24131         (call_value_pop_compact, call_value_pop_rettramp): New insns.
24132         (sibcall) [flag_pic]: Use GOT.
24133         (builtint_setjmp_receiver): Remove bogus, unused expand.
24134         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
24135         (*pt, *ptb, ptrel): New insns.
24136         (sym2GOT): Handle DImode GOT.
24137         (sym2GOTPLT, symGOTPLT2reg): New expands.
24138         (sym2PIC): New expand.
24139         (shcompact_return_tramp): Use GOTPLT to return trampoline.
24140         (shcompact_return_tramp_i): Use return register explicitly.
24141         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
24142         disable flag_reorder_blocks.
24143         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
24144         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
24145         clobbers, for clarity.
24146         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
24147         restoring of r0 in macl as MAYBE_DEAD.
24148         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
24149         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
24150         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
24151         alter_subreg all over.
24152         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
24153         reload, instead of emitting instructions that would require
24154         reloading.
24155         (casesi_load_media): Add missing modes.
24156         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
24157         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
24158         as used if the argument decoder is called.
24159         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
24160         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
24161         Pmode, then extend it to DImode if necessary.
24162         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
24163         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
24164         constants in FPU-enabled SHmedia, let them be loaded from memory.
24165         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
24166         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
24167         Adjust whitespace in assembly output templates.
24168         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
24169         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
24170         mode of if_then_else.
24171         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
24172         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
24173         sh.h.
24174         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
24175                     Joern Rennecke <amylaar@redhat.com>
24176         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
24177         (SUBTARGET_CPP_PTR_SPEC): New.
24178         (SUBTARGET_CPP_SPEC): Remove.
24179         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
24180         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
24181         Fix typo in previous checkin.
24182         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
24183         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
24184         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
24185                     Alexandre Oliva  <aoliva@redhat.com>
24186         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
24187         what single FP register can hold for SHmedia target.
24188         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
24189                     Alexandre Oliva  <aoliva@redhat.com>
24190         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
24191         Do not split into SUBREG.
24192         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
24193         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
24194         and added new functions as specified in SH5 ABI r9.
24195         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
24196         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
24197         8-byte boundary.
24198         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
24199         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
24200         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
24201         and consttable_window_ends.
24202         2001-06-03  Graham Stott  <grahams@redhat,com>
24203         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
24204         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
24205         * config/sh/sh.c (print_operand): Handle floating-point pair,
24206         vector and matrix registers.
24207         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
24208         vector modes into account.
24209         * config/sh/sh.md (movv2sf): Split move between registers into
24210         movdf.
24211         (movv4sf, movv16sf): Introduce insns that get split only after
24212         reload.
24213         * config/sh/shmedia.h: Fix Copyright dates.
24214         * config/sh/ushmedia.h: Likewise.  Move loop counter
24215         declarations into conditionals that uses them.
24216         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
24217         loop boundary.
24218         * config/sh/sshmedia.h: Fix Copyright dates.
24219         (sh_media_PUTCFG): Fix constraints.
24220         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
24221         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
24222         ptrmemfunc_vbit_in_delta for SH5.
24223         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
24224         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
24225         * invoke.texi: Likewise.
24226         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
24227         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
24228         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
24229         GCC_pop_shmedia_regs_nofpu): New global symbols.
24230         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
24231         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
24232         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
24233         compact function with nonlocal labels.
24234         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
24235         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
24236         (initial_elimination_offset): Account for their stack space.
24237         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
24238         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
24239         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
24240         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
24241         least one of the operands to be a register.
24242         (movv2sf): Likewise.  Renamed to movv2sf_i.
24243         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
24244         prepare_move_operands() before emitting SHmedia insns.
24245         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
24246         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
24247         Don't save nor initialize r12.  Don't mis-align the stack.
24248         Pad the code with a nop.
24249         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
24250         stack.
24251         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
24252         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
24253         [__SHMEDIA__]: Implement.
24254         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
24255         * config/sh/sh.md: Set latency of `pt' closer to reality.
24256         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
24257         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
24258         Set move, load and store type attributes.
24259         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
24260         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
24261         profiling.
24262         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
24263         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
24264         * config/sh/sh.c (sh_media_register_for_return): New function.
24265         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
24266         branch-target register.
24267         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
24268         * config/sh/sh.md (return_media_i): Use any call-clobbered
24269         branch-target register.
24270         (return_media): If r18 wasn't copied in the prologue, copy it
24271         here.
24272         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
24273         Clear class FP0_REGS.
24274         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
24275         from elf.h.
24276         2001-03-08  DJ Delorie  <dj@redhat.com>
24277         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
24278         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
24279         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
24280         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
24281         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
24282         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
24283         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
24284         return value correctly for call_cookie.
24285         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
24286         * config/sh/crt1.asm (start): Modified so as to call
24287         ___setup_argv_and_call_main.
24288         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
24289         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
24290         SHmedia mode.
24291         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
24292         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
24293         (STRIP_NAME_ENCODING): Use it.
24294         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
24295         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
24296         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
24297         prepare_scc_operands().
24298         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
24299         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
24300         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
24301         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
24302         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
24303         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
24304         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
24305         used in shcompact_incoming_args.
24306         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
24307         change.
24308         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
24309         mode.
24310         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
24311         Adjust accordingly.
24312         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
24313         Simplify.  Adjust.  Add sanity check.
24314         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
24315         FPU_SINGLE_BIT.
24316         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
24317         TARGET_SHCOMPACT.
24318         (udivsi3, divsi3): Use them.
24319         (force_mode_for_call): New insn.
24320         (call, call_value, sibcall_value): Emit it before SHcompact
24321         calls.
24322         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
24323         * config/sh/sh.md (call, call_value, sibcall): Make sure the
24324         call cookie is non-NULL before taking its value.
24325         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
24326         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
24327         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
24328         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
24329         block.
24330         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
24331         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
24332         temporary for stack adjusts.  Use MACL and MACH to pass
24333         arguments to shcompact_incoming_args.
24334         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
24335         clobber r1.
24336         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
24337         (nested_trampoline): Load static chain address into r1.
24338         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
24339         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
24340         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
24341         fp_arith_reg_operand().
24342         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
24343         * config/sh/sh.md (casesi): Sign-extend the first two operands,
24344         and use signed compares for them.
24345         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
24346         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
24347         ones properly aligned.
24348         (find_barrier): Account for extra alignment needed for 8-byte wide
24349         constants.
24350         (machine_dependent_reorg): Require a label for the second 4-byte
24351         constant after an 8-byte one.
24352         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
24353         change.
24354         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
24355         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
24356         last_float when switching float modes.
24357         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
24358         auto-increment for general-purpose registers.
24359         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
24360         result.
24361         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
24362         for stack adjust.
24363         * config/sh/sh.c (sh_builtin_saveregs): Support using all
24364         registers for varargs.
24365         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
24366         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
24367         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
24368         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
24369         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
24370         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
24371         call_cookie accordingly.
24372         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
24373         (SHCOMPACT_BYREF): Likewise.
24374         (SHCOMPACT_FORCE_ON_STACK): New macro.
24375         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
24376         (sh_builtin_saveregs): Likewise.
24377         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
24378         shcompact_incoming_args): Use new shift values.  Support
24379         sequences of consecutive and non-consecutive pushes/pops.
24380         * config/sh/sh.md (return): Don't explicitly use PR_REG.
24381         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
24382         * config/sh/sh.h (TEXT_SECTION): Define.
24383         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
24384         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
24385         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
24386         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
24387         return values on FPU-enabled SHmedia.
24388         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
24389         FPU-enabled SHmedia.
24390         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
24391         value is returned in a non-FP reg and is not returned by
24392         reference.
24393         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
24394         jump_ind.
24395         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
24396         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
24397         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
24398         quad-aligned to be passed by callee-copy reference.
24399         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
24400         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
24401         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
24402         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
24403         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
24404         copying low-numbered FP regs to r7 and r8.
24405         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
24406         FP regs to general-purpose regs only if the copy was passed on the
24407         stack.
24408         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
24409         copying FP reg to r9.
24410         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
24411         copy FP regs to general-purpose regs only in outgoing calls.
24412         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
24413         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
24414         HOST_WIDE_INT.
24415         * config/sh/sh.h (struct sh_args): Document all fields.
24416         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
24417         passed partially on the stack should not consider making
24418         sibcalls.
24419         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
24420         stack_regs only for incoming calls.  When passing FP args,
24421         make sure there are FP regs available before modifying
24422         call_cookie.
24423         (SHCOMPACT_BYREF): Pass double args in general-purpose
24424         registers by reference.
24425         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
24426         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
24427         attempt to generate sibcalls if the caller got any arguments
24428         by reference.
24429         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
24430         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
24431         to 8-byte boundaries.
24432         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
24433         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
24434         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
24435         stored in the stack.
24436         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
24437         for the offsets to have the ISA bit set.
24438         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
24439         invocation.  Use beq instead of bgt to mark end of sequence of
24440         loads.
24441         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
24442         bgt to mark end of sequence of stores.
24443         * config/sh/sh.c (arith_operand): Don't check whether
24444         CONST_OK_FOR_J for now.
24445         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
24446         instead of long for conversion.
24447         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
24448         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
24449         before passing it to fprintf.
24450         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
24451         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
24452         Call set_fpscr before reading/writing SR.
24453         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
24454         Call set_fpscr.
24455         * config/sh/lib1funcs.asm: Add `.align 2' directives before
24456         SHmedia code.
24457         (FMOVD_WORKS): Define on SH5 with FPU.
24458         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
24459         setting.
24460         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
24461         _fpscr_values.
24462         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
24463         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
24464         address.
24465         (ia_main_table): Ditto.
24466         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
24467         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
24468         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
24469         the definitions from sh.h.
24470         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
24471         TARGET_SH5.
24472         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
24473         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
24474         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
24475         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
24476         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
24477         Increment LABEL_NUSES.
24478
24479         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
24480         TARGET_SH5.
24481         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
24482         defined.
24483         * config/sh/elf.h (SIZE_TYPE): Likewise.
24484         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
24485         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
24486         shcompact_incoming_args): Load switch table addresses using
24487         datalabel.
24488         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
24489         (NO_BUILTIN_SIZE_TYPE): Define.
24490         (SIZE_TYPE): Don't define.
24491         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
24492         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
24493         definition of __SH5__=32 for -m5-compact-nofpu.
24494         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
24495         ADDR_DIFF_VEC.
24496         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
24497         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
24498         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
24499         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
24500         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
24501         (INSN_LENGTH_ALIGNMENT): Likewise.
24502         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
24503         * config/sh/sh.md (call, call_value, sibcall): Simplify
24504         copying of non-branch-target register.
24505         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
24506         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
24507         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
24508         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
24509         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
24510         floating-point values as structs.
24511         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
24512         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
24513         general-purpose register.
24514         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
24515         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
24516         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
24517         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
24518         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
24519         (ENCODE_SECTION_INFO): Enclose variables and constants in
24520         DATALABEL unspecs.
24521         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
24522         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
24523         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
24524         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
24525         only for LABEL_REFs.  For SYMBOL_REFs, prepend
24526         SH_DATALABEL_ENCODING to the symbol name.
24527         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
24528         convert_mode().
24529         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
24530         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
24531         UNSPEC_DATALABEL.
24532         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
24533         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
24534         (DATALABEL_REF_P): Don't require CONST.
24535         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
24536         REL label.
24537         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
24538         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
24539         right.
24540         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
24541         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
24542         Use shallow_copy_rtx and PUT_MODE to change the mode of
24543         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
24544         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
24545         on SHmedia using GENERAL_REGs.
24546         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
24547         bltu_media_i): Fix reversion of conditions.
24548         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
24549         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
24550         * config/sh/sh.c (output_far_jump): Save r13 in macl.
24551         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
24552         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
24553         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
24554         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
24555         (GCC_nested_trampoline): Likewise.
24556         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
24557         * config/sh/sh.c (gen_datalabel_ref): Define.
24558         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
24559         (INITIALIZE_TRAMPOLINE): Likewise.
24560         (TRAMPOLINE_ADJUST_ADDRESS): Define.
24561         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
24562         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
24563         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
24564         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
24565         (ic_invalidate): Adjust for SH5.
24566         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
24567         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
24568         _nested_trampoline.
24569         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
24570         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
24571         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
24572         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
24573         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
24574         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
24575         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
24576         * config/sh/sh.c (target_reg_operand): Match only target-branch
24577         registers and pseudos that aren't virtual registers.
24578         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
24579         Copy operands that don't match target_reg_operand to pseudos.
24580         (call_media, call_value_media, sibcall_media): Use
24581         target_reg_operand instead of target_operand.
24582         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
24583         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
24584         * config/sh/sh.c (target_reg_operand): Match hardware registers
24585         other than branch-target registers.
24586         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
24587         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
24588         (fpscr_values) [SH5 == 32]: Define.
24589         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
24590         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
24591         Handle function addresses coming in SUBREGs.
24592         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
24593         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
24594         shcompact_return_trampoline): Use datalabel where appropriate.
24595         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
24596         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
24597         general-purpose register to copy one branch-target register to
24598         another.
24599         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
24600         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
24601         SYMBOL_REFs with VOIDmode.
24602         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
24603         bltu_media_i): New insns.
24604         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
24605         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
24606         (INIT_CUMULATIVE_ARGS): Likewise.
24607         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
24608         * machmode.def (V16SFmode): New mode.
24609         * c-common.c (type_for_mode): Support V2SF and V16SF.
24610         * tree.c (build_common_tree_nodes_2): Likewise.
24611         * tree.h (tree_index): Likewise.
24612         * calls.c (emit_call_1): Take args_so_far.  Adjust all
24613         callers.  Introduce CALL_POPS_ARGS.
24614         * tm.texi (CALL_POPS_ARGS): Document.
24615         * config/sh/crt1.asm: Implement in SHmedia mode.
24616         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
24617         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
24618         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
24619         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
24620         Implement divsi and udivsi in SHmedia mode.  Introduce
24621         SHcompact trampolines.
24622         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
24623         only in SHmedia64.
24624         (regno_reg_class): Rewrite.
24625         (fp_reg_names): Remove.
24626         (sh_register_names, sh_additional_register_names): New.
24627         (print_operand): Added `u'.  Support SUBREGs in addresses.
24628         Add parentheses around shifted CONSTs.
24629         (output_file_start): Output .mode and .abi directives.
24630         (shiftcosts, addsubcosts, multcosts): Adjust.
24631         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
24632         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
24633         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
24634         bytes, not registers.  Take into account the need for the
24635         SHcompact incoming args trampoline.  Adjust all callers.
24636         (sh_expand_prologue): Take stack_regs into account.  Call
24637         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
24638         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
24639         stack aligned as per SH5 ABI.
24640         (sh_builtin_saveregs): Support SH5 ABI.
24641         (sh_build_va_list, sh_va_start): Likewise.
24642         (initial_elimination_offset): Take alignment into account.
24643         Compute location of PR according to the SH5 stack frame.
24644         (arith_reg_operand): Reject branch-target registers.
24645         (shmedia_6bit_operand): New.
24646         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
24647         (target_reg_operand): Match DImode only.  Accept SUBREGs.
24648         (target_operand): New.
24649         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
24650         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
24651         SIBCALL_REGS for SHmedia.
24652         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
24653         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
24654         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
24655         (TARGET_SWITCHES): New SH5 flags.
24656         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
24657         VALID_REGISTER_P to disable unsupported registers.
24658         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
24659         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
24660         (FUNCTION_ARG_PADDING): Define.
24661         (FASTEST_ALIGNMENT): Adjust.
24662         (SH_REGISTER_NAMES_INITIALIZER): New.
24663         (sh_register_names): Declare.
24664         (DEBUG_REGISTER_NAMES): Define.
24665         (REGISTER_NAMES): Define based on sh_register_names.
24666         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
24667         (sh_additional_register_names): Declare.
24668         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
24669         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
24670         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
24671         (REGISTER_NATURAL_MODE): Define.
24672         (FIRST_PSEUDO_REGISTER): Adjust.
24673         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
24674         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
24675         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
24676         (VECTOR_MODE_SUPPORTED_P): Define.
24677         (REG_CLASS_CONTENTS): Adjust.
24678         (SMALL_REGISTER_CLASSES): Adjust.
24679         (REG_ALLOC_ORDER): Adjust.
24680         (INDEX_REG_CLASS): Adjust.
24681         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
24682         (CONST_OK_FOR_LETTER_P): Adjust.
24683         (PREFERRED_RELOAD_CLASS): Adjust.
24684         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
24685         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
24686         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
24687         (FIRST_FP_PARM_REG): Adjust.
24688         (CALL_POPS_ARGS): Define.
24689         (FUNCTION_ARG_REGNO_P): Adjust.
24690         (struct sh_args): New fields.
24691         (GET_SH_ARG_CLASS): Adjust.
24692         (INIT_CUMULATIVE_ARGS): Adjust.
24693         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
24694         (FUNCTION_ARG_ADVANCE): Adjust.
24695         (FUNCTION_ARG): Adjust.
24696         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
24697         (FUNCTION_ARG_CALLEE_COPIES): Define.
24698         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
24699         (STRICT_ARGUMENT_NAMING): Define.
24700         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
24701         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
24702         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
24703         (SETUP_INCOMING_VARARGS): Adjust.
24704         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
24705         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
24706         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
24707         (SUBREG_OK_FOR_INDEX_P): Adjust.
24708         (EXTRA_CONSTRAINT_S): Update.
24709         (EXTRA_CONSTRAINT_T): New.
24710         (EXTRA_CONSTRAINT): Adjust.
24711         (GO_IF_LEGITIMATE_INDEX): Adjust.
24712         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
24713         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
24714         (MOVE_MAX): Adjust.
24715         (MAX_MOVE_MAX): Define.
24716         (Pmode): Adjust.
24717         (CONST_COSTS): Adjust.
24718         (REGISTER_MOVE_COST): Adjust.
24719         (BRANCH_COST): Adjust.
24720         (TEXT_SECTION_ASM_OP): Adjust.
24721         (DBX_REGISTER_NUMBER): Adjust.
24722         (ASM_OUTPUT_DOUBLE_INT): New.
24723         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
24724         (PREDICATE_CODES): Adjust.
24725         (PROMOTE_MODE): Adjust.
24726         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
24727         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
24728         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
24729         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
24730         (DR0_REG, DR2_REG, DR4_REG): Renumber.
24731         (TR0_REG, TR1_REG, TR2_REG): New.
24732         (XD0_REG): Renumber.
24733         (UNSPEC_COMPACT_ARGS): New.
24734         (type): Added pt and ptabs.
24735         (length): Default to 4 on SHmedia.  Default pt length to 12
24736         and     20 on SHmedia32 and SHmedia64, respectively.
24737         (pt): New function unit.
24738         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
24739         Add whitespace between operands of SHmedia instructions.
24740         (movdicc): Fix.
24741         (adddi3_media, addsi3_media): Adjust constraints.
24742         (subsi3) [SHmedia]: Force operand 1 into a register.
24743         (udivsi3_i1_media, udivsi3_i4_media): New.
24744         (udivsi3): Support SHmedia.
24745         (divsi3_i1_media, divsi3_i4_media): New.
24746         (divsi3): Support SHmedia.
24747         (anddi3, iordi3, xordi3): Adjust constraints.
24748         (zero_extendhidi2, zero_extendqidi2): New.
24749         (extendsidi2, extendhidi2, extendqidi2): New.
24750         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
24751         (pop_e, pop_fpul, pop_4): Likewise.
24752         (movsi_media): Support FP and BT registers.
24753         (movsi_media_nofpu): New.  Adjust splits to DImode.
24754         (lduw, ldub): Renamed to zero_extend* above.
24755         (movqi_media): Fix typo.
24756         (movdi_media): Support FP and BT registers.
24757         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
24758         (movdi_const_32bit): New.
24759         (shori_media): Require immediate operand.  Use `u' for output.
24760         (movdf_media, movsf_media): Simplified.
24761         (movdf_media_nofpu, movsf_media_nofpu): New.
24762         (movdf, movsf): Adjust
24763         (movv2sf, movv2sf, movv16sf): New.
24764         (beq_media, beq_media_i): Adjust constraints.  Don't use
24765         scratch BT register.
24766         (bne_media, bne_media_i): Likewise.
24767         (bgt_media, bgt_media_i): Likewise.
24768         (bge_media, bge_media_i): Likewise.
24769         (bgtu_media, bgtu_media_i): Likewise.
24770         (bgeu_media, bgeu_media_i): Likewise.
24771         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
24772         bunordered): Emit jump insn.  Force operands to registers when
24773         needed.
24774         (jump_media, jump): Simplify.
24775         (call_compact, call_compact_rettramp): New.
24776         (call_value_compact, call_value_compact_rettramp): New.
24777         (call_media, call_value_media): Simplify.
24778         (sibcall_compact, sibcall_media): New.
24779         (call, call_value): Adjust for SHmedia and SHcompact.
24780         (sibcall, sibcall_value, untyped_call): Likewise.
24781         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
24782         (indirect_jump): Adjust for SHmedia.
24783         (casesi_jump_media): New.
24784         (nop): Re-enable for SHmedia.
24785         (call_site): Restrict to SH1.
24786         (casesi): Adjust for SHmedia.
24787         (casesi_shift_media, casesi_load_media): New.
24788         (return): Explicitly use PR register.  Call return trampoline
24789         on SHcompact.
24790         (return_i): Explicitly use PR register.
24791         (shcompact_return_tramp, shcompact_return_tramp_i): New.
24792         (return_media): Adjust.
24793         (shcompact_incoming_args): New.
24794         (epilogue): Adjust.
24795         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
24796         (movstrsi): Disable on SH5.
24797         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
24798         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
24799         (subsf3, subsf3_media): Likewise.
24800         (mulsf3, mulsf3_media, mac_media): Likewise.
24801         (divsf3, divsf3_media): Likewise.
24802         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
24803         (floatsisf2, fux_truncsfsi2): Likewise.
24804         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
24805         constraints.
24806         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
24807         (cmpunsf_media, cmpsf): Likewise.
24808         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
24809         (abssf2, abssf2_media): Likewise.
24810         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
24811         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
24812         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
24813         (floatsidf2, fix_truncdfsi2): Likewise.
24814         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
24815         constraints.
24816         (cmpeqdf_media, cmpgtdf_media): Likewise.
24817         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
24818         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
24819         (absdf2, absdf2_media): Likewise.
24820         (extendsfdf2, extendsfdf2_media): Likewise.
24821         (truncsfdf2, truncsfdf2_media): Likewise.
24822         * config/sh/sh64.h: New file.
24823         * config/sh/t-sh64: New file.
24824         * config/sh/shmedia.h: New file.
24825         * config/sh/ushmedia.h: New file.
24826         * config/sh/sshmedia.h: New file.
24827         * configure.in: Added sh64-*-elf.
24828         * configure: Rebuilt.
24829         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
24830         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
24831         (reg_class_from_letter): Use `b' for TARGET_REGS.
24832         (print_operand): Support `%M', `%m', `AND' and
24833         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
24834         (andcosts): Adjust for SHmedia.
24835         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
24836         Likewise.
24837         (target_reg_operand): New function.
24838         * config/sh/sh-protos.h (target_reg_operand): Declare.
24839         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
24840         FP registers on SH5.
24841         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
24842         on SH4.
24843         (TARGET_REGISTER_P): New macro.
24844         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
24845         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
24846         (EXTRA_CONSTRAINT_S): New macro.
24847         (EXTRA_CONSTRAINT): Adjust.
24848         (FLOAT_TYPE_SIZE): Define to 32.
24849         (Pmode): DImode on SHmedia.
24850         (CONST_COSTS): Adjust for SHmedia literals.
24851         (PREDICATE_CODES): Added target_reg_operand.
24852         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
24853         * config/sh/sh.md: Remove all attrs from SHmedia insns.
24854         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
24855         (cmpdi): Accept SHmedia.
24856         (movdicc_false, movdicc_true): New insns.
24857         (movdicc): New expand.
24858         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
24859         no_new_pseudos.
24860         (addsi3_media): Match `S' constraint.
24861         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
24862         (negdi2): Expand for SHmedia.
24863         (one_cmpldi2): New expand.
24864         (zero_extendsidi2): Change from expand to insn.
24865         (extendsidi2): Add constraints.
24866         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
24867         LD/ST address.  Fix SI immediate loading split.
24868         (movhi_media, movqi_media, lduw, ldub): New insns.
24869         (movhi, movqi): Accept SHmedia.
24870         (shori_media, movdi_media): Relax input constraints.  Split
24871         symbolic constants.
24872         (movdf_media, movsf_media): New insn.  New split to movdi.
24873         (movdf, movsf): Match on SHmedia.
24874         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
24875         bgeu_media): New insns and splits.  New insns with `_i' suffix.
24876         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
24877         (bunordered): New expand.
24878         (jump_compact): Renamed from `jump'.
24879         (jump_media): New insn.
24880         (jump): New expand.
24881         (call_media, call_value_media): New insns.
24882         (call, call_value): Adjust.
24883         (indirect_jump_compact): Renamed from `indirect_jump'.
24884         (indirect_jump_media): New insn.
24885         (indirect_jump): New expand.
24886         (untyped_call, return): Accept SHmedia.
24887         (return_media): New insn.
24888         (prologue, epilogue, blockage): Accept SHmedia.
24889         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
24890         (sunordered): New expand.
24891         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
24892         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
24893         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
24894         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
24895         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
24896         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
24897         abssf2_media): New insns.
24898         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
24899         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
24900         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
24901         floatdidf2, floatsidf2_media, fix_truncdfdi2,
24902         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
24903         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
24904         absdf2_media): New insns.
24905         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
24906         (extendsfdf2_media, truncdfsf2_media): New insns.
24907         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
24908         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
24909         * config/sh/sh.h (CONST_OK_FOR_J): Document.
24910         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
24911         * config/sh/sh.md (adddi3): New expand.
24912         (adddi3_media, adddi3z_media): New insns.
24913         (adddi3_compact): Renamed from adddi3.
24914         (addsi3_media): Use add.l r63 to add constant zero.
24915         (subdi3): New expand.
24916         (subdi3_media): New insn.
24917         (subdi3_compact): Renamed from subdi3.
24918         (mulsidi3): New expand.
24919         (mulsidi3_media): New insn.
24920         (mulsidi3_compact): Renamed from mulsidi3.
24921         (umulsidi3): New expand.
24922         (umulsidi3_media): New insn.
24923         (umulsidi3_compact): Renamed from umulsidi3.
24924         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
24925         (ashlsi3, ashrsi3, lshrsi3): Use them.
24926         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
24927         (ashldi3, ashrdi3, lshrdi3): Use them.
24928         (zero_extendsidi2): New expand.
24929         (extendsidi2): New insn.
24930         (movsi_media): New insn.  Split to movdi to load constants.
24931         (movsi): Enable for shmedia.
24932         (movdi_media): New insn.  Use shori_media to load wide constants.
24933         (short_media): New insn.
24934         (movdi): Enable for shmedia.
24935         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
24936         * config/sh/sh.h (CPP_SPEC): Added `m5'.
24937         (SUBTARGET_CPP_SPEC): Added `!m5'.
24938         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
24939         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
24940         to all other SH variants.
24941         (TARGET_DEFAULT): Set to SH1_BIT.
24942         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
24943         (BITS_PER_WORD): Raise to 64 on shmedia.
24944         (MAX_BITS_PER_WORD): Change to 64.
24945         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
24946         (INT_TYPE_SIZE): Keep as 32.
24947         (UNITS_PER_WORD): Raise to 8 on shmedia.
24948         (MIN_UNITS_PER_WORD): Keep as 4.
24949         (POINTER_SIZE): Raise to 64 on shmedia.
24950         (CONST_OK_FOR_J): New macro.
24951         (CONST_OK_FOR_LETTER_P): Use it.
24952         (processor_type): Add PROCESSOR_SH5.
24953         * config/sh/sh.md: Conditionalize all expands, insns and
24954         splits to TARGET_SH1.
24955         (cpu): Added sh5.
24956         (addsi3_compact): Renamed from...
24957         (addsi3): Now an expand.
24958         (addsi3_media, subsi3_media): New insns.
24959         (subsi3): Don't negate constants with SHmedia.
24960
24961         * hooks.c: New file.
24962         * hooks.h: New file.
24963         * Makefile.in (HOOKS_H): New.
24964         (TARGET_DEF_H): Added $(HOOKS_H).
24965         (OBJS): Added hooks.o.
24966         (cfgcleanup.o, bb-reorder.o): Added target.h.
24967         (hooks.o): Added dependencies.
24968         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
24969         (TARGET_INITIALIZER): this.
24970         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
24971         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
24972         * bb-reorder.c: Include target.h.
24973         (reorder_basic_blocks): Skip if cannot modify jumps.
24974         * cfgcleanup.c: Include target.h.
24975         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
24976
24977 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
24978
24979         * config/mips/mips.md (casesi_internal, casesi_internal_di):
24980         Protect jump delay slot instructions with .set noreorder and
24981         .set nomacro.
24982
24983 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
24984
24985         * config/mips/mips.md (casesi_internal_di): Calculate
24986         the index into the target offset table correctly.
24987
24988 2002-02-08  Richard Henderson  <rth@redhat.com>
24989
24990         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
24991         * final.c (output_addr_const): Accept and discard SUBREG.
24992         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
24993         mark them unknown instead.
24994         (simplify_subtraction): Handle RTX_UNKNOWN.
24995         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
24996
24997 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
24998
24999         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
25000
25001 2002-02-08  Richard Henderson  <rth@redhat.com>
25002
25003         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
25004
25005 2002-02-08  Andreas Jaeger  <aj@suse.de>
25006
25007         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
25008         * config/i386/t-linux64: New file.
25009
25010 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
25011
25012         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
25013         * c-parse.in (compstmt): Clear last_expr_type.
25014
25015 2002-02-07  Richard Henderson  <rth@redhat.com>
25016
25017         * loop.c (strength_reduce): Sink final_value when not
25018         eliminating a biv.
25019
25020 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
25021
25022         * config/sparc/freebsd.h: Fix mismatched spec {.
25023
25024 2002-02-07  Richard Henderson  <rth@redhat.com>
25025
25026         * cfgrtl.c: Include recog.h and insn-config.h.
25027         (keep_with_call_p): Fix general_operand invocation.
25028         * Makefile.in (cfgrtl.o): Update dependencies.
25029
25030 2002-02-07  Kazu Hirata  <kazu@hxi.com>
25031
25032         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
25033         comment.  Accept HImode only if TARGET_H8300.
25034
25035 2002-02-07  Eric Christopher  <echristo@redhat.com>
25036
25037         * config/mips/crtn.asm: Cleanup #ifdefs.
25038
25039 2002-02-07  Eric Christopher  <echristo@redhat.com>
25040
25041         * config/mips/crti.asm: Add changes for mips16. mips16 uses
25042         register 7 as RA instead of $31.
25043         * config/mips/crtn.asm: Ditto.
25044         * config/mips/mips.c (mips_move_2words): Add case for
25045         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
25046         (compute_frame_size): Fix typo.
25047         (save_restore_insns): Ditto.  Make documentation about using
25048         register $7 as return register more precise.
25049         (mips_expand_epilogue): Fix comment. Add code to work around not
25050         being able to add to the stack pointer directly.
25051         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
25052         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
25053         epilogue.
25054
25055 2002-02-07  Tom Rix  <trix@redhat.com>
25056
25057         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
25058         immediates in ldu and stdu DS opcode field.
25059         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
25060         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
25061         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
25062
25063 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
25064
25065         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
25066         offset for stack bias.
25067
25068 2002-02-07  H.J. Lu <hjl@gnu.org>
25069
25070         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
25071
25072 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
25073
25074         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
25075
25076 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
25077
25078         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
25079         * i386.c (x86_order_regs_for_local_alloc): New global function.
25080         * i386.h (REG_ALLOC_ORDER): CLeanup.
25081         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
25082
25083 2002-02-07  Richard Henderson  <rth@redhat.com>
25084
25085         PR optimization/2463
25086         * alias.c (find_base_value): Recall base values for fixed hard regs.
25087         * loop.c (loop_regs_update): Don't use single_set on non-insns.
25088
25089 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
25090
25091         * config/mips/mips.md (define_delay) [mips16]: Adjust required
25092         length.
25093
25094 2002-02-06  Richard Henderson  <rth@redhat.com>
25095
25096         PR c/5609
25097         * stmt.c (resolve_operand_name_1): Take more care with mixed
25098         named and unnamed operands.
25099
25100 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
25101             Jan Hubicka  <jh@suse.cz>
25102
25103         * loop.c (remove_constant_addition): Avoid clobbering a shared
25104         CONST expression.
25105
25106 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
25107
25108         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
25109         * config/s390/t-linux64: New file.
25110         * config/s390/libgcc-glibc.ver: New file.
25111
25112 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
25113
25114         * config/s390/linux64.h: Delete file.
25115         * config/s390/s390x.h: New file.
25116         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
25117         as target header file.
25118         * config/s390/linux.h (TARGET_VERSION): Define depending on
25119         DEFAULT_TARGET_64BIT.
25120         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
25121         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
25122         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
25123         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
25124         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
25125         (EXTRA_SPEC): New define.
25126         * config/s390/s390.h (TARGET_VERSION): Define depending on
25127         DEFAULT_TARGET_64BIT.
25128         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
25129
25130 2002-02-06  Jason Merrill  <jason@redhat.com>
25131
25132         * c-decl.c (finish_function): Warn about a non-void function with
25133         no return statement and no abnormal exit.
25134         (current_function_returns_abnormally): New variable.
25135         (start_function): Clear it.
25136         (struct c_language_function): Add returns_abnormally.
25137         (push_c_function_context): Save it.
25138         (pop_c_function_context): Restore it.
25139         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
25140         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
25141         an explicit return type.
25142         * c-tree.h: Declare current_function_returns_abnormally.
25143         (C_FUNCTION_IMPLICIT_INT): New macro.
25144         * c-typeck.c (build_function_call): Set it.
25145         (c_expand_return): Set current_function_returns_value even if the
25146         value is erroneous.
25147
25148 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
25149
25150         PR c/5420:
25151         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
25152         unsafe for reevaluation.
25153
25154 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
25155
25156         PR c/5482:
25157         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
25158         EXPR_STMT, but COMPOUND_STMT, recurse into it.
25159
25160 2002-02-06  Richard Henderson  <rth@redhat.com>
25161
25162         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
25163         be a general_operand.  Dest for function value must be a pseudo.
25164
25165 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
25166
25167         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
25168         as SYMBOL_REFs from the constant pool.
25169
25170 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
25171
25172         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
25173         passed by invisible reference.
25174
25175 2002-02-05  Richard Henderson  <rth@redhat.com>
25176
25177         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
25178
25179 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
25180
25181         Implement using "base addresses" in insn operands as default.
25182         * config/mmix/mmix.c (mmix_conditional_register_usage): if
25183         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
25184         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
25185         used to read the rtx value.
25186         (mmix_target_asm_function_epilogue): Fix spacing.
25187         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
25188         (mmix_legitimate_address): Ditto.
25189         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
25190         should be loaded with a GETA insn.  Don't allocate needless extra
25191         char for nul termination and fix misleading comment.
25192         (mmix_print_operand_address): Handle constants if
25193         TARGET_BASE_ADDRESSES.
25194         (mmix_output_register_setting): Use base addressing if
25195         TARGET_BASE_ADDRESSES and the number of insns is 3.
25196         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
25197         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
25198         to use R as constraint, add LDA to match s.
25199         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
25200         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
25201         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
25202         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
25203         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
25204         order with other fixed registers.
25205         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
25206         other parameter/call-clobbered registers.
25207         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
25208         -mbase-addresses, -mno-base-addresses.
25209         (MMIX Options): Ditto.
25210
25211 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25212
25213         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
25214
25215 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
25216
25217         * config/rs6000/altivec.h: Change elem to _S_elem.
25218
25219 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
25220
25221         * config/netbsd.h (WCHAR_TYPE): Define.
25222         (WCHAR_TYPE_SIZE): Ditto.
25223         (WINT_TYPE): Ditto.
25224         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
25225         (WCHAR_UNSIGNED): Ditto.
25226         (WCHAR_TYPE_SIZE): Ditto.
25227         (WINT_TYPE): Ditto.
25228         * config/arm/netbsd.h: Likewise.
25229         * config/i386/netbsd-elf.h: Likewise.
25230         * config/i386/netbsd.h: Likewise.
25231         * config/m68k/netbsd-elf.h: Likewise.
25232         * config/m68k/netbsd.h: Likewise.
25233         * config/ns32k/netbsd.h: Likewise.
25234         * config/sparc/netbsd.h: Likewise.
25235         * config/vax/netbsd.: Likewise.
25236
25237 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
25238
25239         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
25240         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
25241         (TARGET_INITIALIZER): this.
25242         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
25243         (BITFIELD_NBYTES_LIMITED): Markup fix.
25244         * tree.h (default_ms_bitfield_layout_p): Declare.
25245         (record_layout_info): Added prev_field.
25246         * tree.c (default_ms_bitfield_layout_p): New fn.
25247         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
25248         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
25249         * stor-layout.c: Include target.h.
25250         (start_record_layout): Initialize prev_field.
25251         (place_field): Handle MS bit-field layout, and disregard
25252         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
25253         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
25254         * Makefile.in (stor-layout.o): Adjust dependencies.
25255
25256 2002-02-05  Jason Merrill  <jason@redhat.com>
25257
25258         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
25259
25260 2002-02-05  Andreas Jaeger  <aj@suse.de>
25261
25262         * crtstuff.c: Fix comments.
25263
25264 2002-02-05  Richard Henderson  <rth@redhat.com>
25265
25266         PR fortran/3393
25267         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
25268         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
25269
25270         PR fortran/3392
25271         * config/mips/mips.c (function_arg): Handle TImode.
25272         (function_arg_advance): Likewise.
25273
25274 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
25275
25276         * config/rs6000/altivec.h (vec_step_help): Rename to
25277         __vec_step_help.
25278
25279 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
25280
25281         * config/rs6000/altivec.h: Fix typos.
25282
25283 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
25284
25285         * config/arm/netbsd.h: Correct a comment.
25286
25287 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
25288
25289         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
25290         building void typed builtins.
25291
25292         * config/rs6000/altivec.h (vec_ld*): Fix typos.
25293         (vec_step): Implement for C++.
25294
25295 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25296
25297         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
25298
25299 2002-02-04  Richard Henderson  <rth@redhat.com>
25300
25301         * combine.c (nonzero_bits): Re-introduce special case for
25302         sp/fp/ap wrt REGNO_POINTER_ALIGN.
25303
25304 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
25305
25306         * doc/extend.texi: Warn about unsupported usage of altivec
25307         builtins.
25308
25309         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
25310         (altivec_predicate_*): New.
25311
25312         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
25313         Add C++ version of vec_*() functions.
25314
25315         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
25316         (bdesc_2arg): Remove altivec predicates.
25317         (altivec_expand_builtin): Handle predicates.
25318         (altivec_init_builtins): Handle predicates.
25319         (altivec_expand_predicate_builtin): New.
25320
25321 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25322
25323         * pa.c (DO_FRAME_NOTES): Move forward.
25324         (store_reg): Revise handling of frame notes.
25325         (load_reg): Likewise.
25326         (set_reg_plus_d): Likewise.
25327         (hppa_expand_prologue): Likewise.
25328         (hppa_expand_epilogue): Likewise.
25329
25330 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25331
25332         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
25333
25334 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
25335
25336         PR c/4475, c++/3780:
25337         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
25338         * c-common.h (SWITCH_TYPE): Define.
25339         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
25340         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
25341         Rename spareness variable to sparseness.
25342         (expand_end_case_type): Renamed from expand_end_case, use orig_type
25343         if non-NULL instead of TREE_TYPE (orig_index).
25344         * tree.h (expand_end_case_type): Renamed from expand_end_case.
25345         (expand_end_case): Define using expand_end_case_type.
25346         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
25347         to expand_end_case_type.
25348         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
25349
25350 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25351
25352         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
25353         (BIGGEST_ALIGNMENT): Change to 128.
25354
25355 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25356
25357         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
25358
25359 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25360
25361         * pa.md (call_internal_reg_64bit): Remove unused variable.
25362
25363 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
25364
25365         * config/arm/arm.h (machine_function): Add uses_anonymous_args
25366         field.
25367         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
25368         * config/arm/arm.c (current_function_anonymous_args): Delete,
25369         replace uses with cfun->machine->uses_anonymous_args.
25370         (arm_reorg): Do not reset uses_anonymous_args.
25371
25372         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
25373         any geenral register.
25374
25375 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
25376
25377         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
25378         the entry block.
25379
25380 2002-02-04  Richard Henderson  <rth@redhat.com>
25381
25382         * combine.c (force_to_mode): Remove STACK_BIAS code.
25383         (nonzero_bits): Likewise.  Replace sp/fp special case with
25384         REGNO_POINTER_ALIGN.
25385
25386         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
25387         (HARD_FRAME_POINTER_REGNUM): New.
25388         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
25389         (FIXED_REGS, CALL_USED_REGS): Update.
25390         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
25391         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
25392         (HARD_REGNO_NREGS): Update for SFP.
25393         (STACK_POINTER_OFFSET): Include bias here ...
25394         (FIRST_PARM_OFFSET): ... not here.
25395         (STACK_BIAS): Remove.
25396         (INIT_EXPANDERS): New.
25397         (STARTING_FRAME_OFFSET): Do not include bias.
25398         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
25399         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
25400         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
25401         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
25402         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
25403         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
25404         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
25405         (MUST_SAVE_REGISTER): Likewise.
25406         (sparc_flat_function_prologue): Likewise.
25407         (sparc_flat_function_epilogue): Likewise.
25408         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
25409         (sparc_init_modes): SFP is GENERAL_REGS.
25410         (sparc_builtin_saveregs): SFP does not have bias applied.
25411
25412 2002-02-04  Richard Henderson  <rth@redhat.com>
25413
25414         * config/alpha/alpha.c (current_function_is_thunk): Don't check
25415         current_function_is_thunk.
25416         (alpha_sa_mask): Distinguish between current_function_is_thunk
25417         called from ASM_OUTPUT_MI_THUNK and not.
25418         (alpha_does_function_need_gp): Thunks always need gp.
25419         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
25420         (alpha_output_mi_thunk_osf): New.
25421         * config/alpha/alpha-protos.h: Update.
25422         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
25423
25424 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
25425
25426         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
25427         function types, not when they're taken away.
25428
25429 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
25430
25431         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
25432         CODE_LABEL and jump table when replacing a table jump with a
25433         simple jump.
25434
25435 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
25436
25437         * config/s390/s390-protos.h (legitimize_la_operand,
25438         s390_secondary_input_reload_class, s390_plus_operand,
25439         s390_expand_plus_operand): Add prototypes.
25440
25441         config/s390/s390.c (s390_secondary_input_reload_class,
25442         s390_plus_operand, s390_expand_plus_operand): New functions.
25443
25444         (struct s390_address): New member 'pointer'.
25445         (s390_decompose_address): Compute it.
25446         (legitimate_la_operand_p): Use it.
25447         (legitimize_la_operand): New function.
25448         (movti, movdi, movdf splitters): Call it.
25449
25450         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
25451         (PREDICATE_CODES): Add s390_plus_operand.
25452
25453         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
25454         (la_ccclobber): Allow GENERAL_REGS as output operand.
25455
25456         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
25457         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
25458         (*la_64, *la_31, reload_indi, reload_insi): ... these.
25459
25460 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
25461
25462         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
25463         register names for regular asm () construct.
25464
25465 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
25466
25467         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
25468         registers.
25469
25470 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
25471
25472         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
25473         pat for recog.
25474
25475 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
25476
25477         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
25478         constant pool to be identical by string address and index.
25479
25480 2002-02-04  Anthony Green  <green@redhat.com>
25481
25482         * output.h (SECTION_OVERRIDE): Define.
25483         * varasm.c (named_section): Obey SECTION_OVERRIDE.
25484
25485 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
25486
25487         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
25488         by existing arm*-*-netbsd* (a.out) target.
25489         (ns32k-*-netbsdelf*): Likewise.
25490         (sparc-*-netbsdelf*): Likewise.
25491         (vax-*-netbsdelf*): Likewise.
25492
25493 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
25494
25495         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
25496         headers and libobjc headers.
25497
25498 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
25499
25500         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
25501         (_mingw.h): Remove duplicate include.
25502
25503 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
25504
25505         * config.gcc: Set cpu_type to m68k for 68010, as well.
25506         (m68010-*-netbsdelf*): New...
25507         (m68k*-*-netbsdelf*): ...targets.
25508         * config/m68k/netbsd-elf.h: New file.
25509
25510 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25511
25512         * config/h8300/h8300.c (hand_list): Move inside function_arg.
25513
25514 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25515
25516         * config/h8300/h8300.c (h8_push_ops): Move inside
25517         h8300_init_once.
25518         (h8_pop_ops): Likewise.
25519         (h8_move_ops): Likewise.
25520
25521 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25522
25523         * config/h8300/h8300.c (os_task): Make it static.
25524         (monitor): Likewise.
25525         (pragma_saveall): Likewise.
25526
25527 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
25528
25529         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
25530         constant is a valid sign-extension for Pmode.
25531
25532 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25533
25534         * config/h8300/h8300.c: Fix formatting.
25535
25536 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25537
25538         * config/h8300/h8300.md: Fix formatting.
25539
25540 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25541
25542         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
25543         predicates of operands[1].  Split the patterns for each
25544         processor variant.
25545
25546 2002-02-02  Kazu Hirata  <kazu@hxi.com>
25547
25548         * config/h8300/h8300.md (xor patterns): Tighten the predicates
25549         of operands[1] to register_operand.
25550
25551 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
25552
25553         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
25554         * cpphash.c (_cpp_init_hashtable): Similarly.
25555         * cppinit.c (cpp_create_reader): Default the signed_char flag.
25556         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
25557         (COMMAND_LINE_OPTIONS): Recognize -f{un,}signed-char.
25558         (cpp_handle_option): Handle the new options.
25559         * cpplex.c (cpp_interpret_charconst): Use new flag.
25560         * cpplib.h (struct cpp_options): New member signed_char.
25561         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
25562         (cpp_options): Handle -fsigned-char and -funsigned-char.
25563         (static_specs): Remove signed_char_spec.
25564         (do_spec1): Don't handle %c.
25565         * system.h: Poison SIGNED_CHAR_SPEC.
25566         * tradcif.y (yylex): Use flag_signed_char.
25567         * tradcpp.h (flag_signed_char): New.
25568         * tradcpp.c (flag_signed_char): New.
25569         (main): Handle new command-line options.
25570         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
25571 config:
25572         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
25573         * avr/avr.h: Remove old comments.
25574         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
25575         (CC1_SPEC): Pass -fsigned-char if -mic*.
25576         (SIGNED_CHAR_SPEC): Remove.
25577 doc:
25578         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
25579
25580 2002-02-01  Eric Christopher  <echristo@redhat.com>
25581
25582         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
25583         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
25584         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
25585         (ASM_OUTPUT_REG_POP): Ditto.
25586
25587 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
25588
25589         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
25590         patch.
25591
25592 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
25593
25594         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
25595
25596 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
25597
25598         PR c/5304:
25599         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
25600         unconditionally.
25601
25602 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
25603
25604         * cfganal.c: Include tm_p.h.
25605         (keep_with_call_p): Fix the test that determines if a register holds
25606         the return value of a call.
25607
25608 2002-02-01  DJ Delorie  <dj@redhat.com>
25609
25610         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
25611         we are given conflicting registers, switch to the other one we
25612         had allocated for us.
25613         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
25614         as TImode so we know when the "other" register is available.
25615
25616 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
25617
25618         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
25619         sparc/sparc_bi.h.
25620
25621 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
25622
25623         * cfganal.c (keep_with_call_p): New function.
25624         (flow_call_edges_add): Prevent splitting a block between a call and
25625         a single-set instruction that should be kept in the same block.
25626
25627 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
25628
25629         * doc/install.texi (avr): Update outdated URL.
25630
25631 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
25632
25633         * config/stormy16/stormy16.md (pushqi): New.
25634         (popqi): New.
25635         (pushhi): New.
25636         (pophi): New.
25637         (movhi): Remove stack operands.
25638         (movqi): Likewise.
25639         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
25640         nonimmediate_nonstack_operand.
25641         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
25642         New.
25643         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
25644         New.
25645
25646 2002-01-31  Jason Merrill  <jason@redhat.com>
25647
25648         * Makefile.in (c-parse.c): Handle .output file.
25649         * objc/Make-lang.in (objc-parse.c): Likewise.
25650
25651 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
25652
25653         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
25654         the -me[lb] option is given.  Don't output the default flag
25655         twice.
25656
25657 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
25658
25659         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
25660         the primary source file; this has not been done yet.
25661         * c-decl.c (c_expand_body): Reset input_filename from
25662         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
25663
25664 2002-01-31  Kazu Hirata  <kazu@hxi.com>
25665
25666         * rtlanal.c (subreg_regno_offset): Do not use
25667         SUBREG_REGNO_OFFSET.
25668         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
25669         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
25670
25671 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
25672
25673         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
25674         version rather than GNATS version in --version output.
25675
25676 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
25677
25678         * ifcvt.c (noce_process_if_block): Make a copy of the destination
25679         when copying back from a temporary.
25680
25681 2002-01-30  Richard Henderson  <rth@redhat.com>
25682
25683         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
25684         and new_dest are the same.
25685
25686 2002-01-30  Richard Henderson  <rth@redhat.com>
25687
25688         PR opt/5076
25689         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
25690         * rtl.c (note_insn_name): Update.
25691         * emit-rtl.c (remove_unnecessary_notes): Kill it.
25692         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
25693         to perform loop rotation.
25694         (expand_exit_loop_top_cond): New.
25695         * tree.h (expand_exit_loop_top_cond): Declare it.
25696         * c-semantics.c (genrtl_while_stmt): Use it.
25697         (genrtl_for_stmt): Likewise.
25698
25699 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
25700
25701         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
25702         arguments to 64-bit boundaries on 64-bit ABIs.
25703
25704 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
25705
25706         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
25707
25708 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
25709
25710         * c-decl.c (grokdeclarator): Handle type being a typedef for an
25711         invalid type.
25712
25713 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
25714
25715         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
25716         * config/sparc/sparc_bi.h: Remove file.
25717         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
25718
25719 2002-01-30  Richard Henderson  <rth@redhat.com>
25720
25721         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
25722
25723 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
25724
25725         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
25726
25727 2002-01-30  Jason Merrill  <jason@redhat.com>
25728
25729         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
25730         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
25731         (reg_save): Use DW_CFA_offset_extended_sf instead.
25732
25733         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
25734
25735 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
25736
25737         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
25738         in cselib_lookup.
25739
25740 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
25741
25742         * rs6000.md ("*call_value_local32"): Remove constraints.
25743         ("*call_value_local64"): Same.
25744         ("*call_value_indirect_nonlocal_aix32"): Same.
25745         ("*call_value_nonlocal_aix32"): Same.
25746         ("*call_value_indirect_nonlocal_aix64"): Same.
25747         ("*call_value_nonlocal_aix64"): Same.
25748         ("*call_value_nonlocal_sysv"): Same.
25749
25750 2002-01-29  Richard Henderson  <rth@redhat.com>
25751
25752         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
25753
25754 2002-01-29  Richard Henderson  <rth@redhat.com>
25755
25756         * expr.c (force_operand): Ignore flag_pic for detecting pic
25757         address loads.
25758         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
25759         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
25760         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
25761         instead of open-coded loop.
25762         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
25763         be fixed when in use.
25764
25765 2002-01-29  Richard Henderson  <rth@redhat.com>
25766
25767         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
25768         * sched-rgn.c (propagate_deps): Update them.
25769         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
25770         clobbers list when either gets too long.
25771
25772 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
25773
25774         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
25775         and INDEX_REGS the same as GENERAL_REGS.
25776         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
25777
25778 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
25779
25780         * tree.c (build_nonstandard_integer_type): Correct prototype.
25781
25782 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
25783
25784         * config/s390/s390.md (movstrsico, movstrdix_64,
25785         movstrsix_31): Remove, replace by ...
25786         (movstrdi_short, movstrsi_short, movstrdi_long,
25787         movstrsi_long): ... these.  New.
25788         (movstrdi, movstrsi): Adapt.
25789
25790         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
25791         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
25792         Remove unnecessary CC clobber.
25793         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
25794         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
25795
25796         (divmoddi4): Don't partially initialize TImode register.
25797
25798 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
25799
25800         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
25801
25802 2002-01-29  Richard Henderson  <rth@redhat.com>
25803
25804         * flow.c (print_rtl_and_abort): Remove.
25805         (print_rtl_and_abort_fcn): Remove.
25806         (verify_local_live_at_start): Use dump_bb instead.
25807         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
25808         (verify_wide_reg_1): Return 2 on mode test failure.
25809
25810 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
25811
25812         PR c/3325, c/3326, c/2511, c/3347
25813         * c-decl.c (enum_decl_context): Remove BITFIELD.
25814         (grokdeclarator): Take bitfield width as an input.
25815         Ensure bitfields are given the correct type.  Perform
25816         bitfield width validation with build_bitfield_integer_type
25817         rather than waiting for finish_struct.
25818         (grok_typename, grok_typename_in_parm_context, start_decl,
25819         push_parmdecl, grokfield, start_function): Update calls to
25820         grokdeclarator.
25821         (build_bitfield_integer_type): New function.
25822         (finish_struct): Move bitfield validation to grokdeclarator
25823         and build_bitfield_integer_type.
25824         * tree.c (build_nonstandard_integer_type): New function.
25825         * tree.h (build_nonstandard_integer_type): New prototype.
25826 objc:
25827         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
25828
25829 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
25830
25831         PR other/1502:
25832         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
25833         don't ignore unrecognized -W* options.
25834         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
25835         * cpplib.h (cpp_handle_option): Adjust prototype.
25836         * c-decl.c (c_decode_options): Pass 0 as last argument to
25837         cpp_handle_option.
25838
25839         PR c/2896:
25840         * gcc.c (cpp_unique_options): Split from cpp_options.
25841         (cpp_options): Source cpp_unique_options.
25842         (default_compilers): Use cpp_unique_options instead of cpp_options
25843         when used together with cc1_options.
25844         (static_specs): Add cpp_unique_options.
25845         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
25846         when used together with cc1_options.
25847
25848 2002-01-29  Kazu Hirata  <kazu@hxi.com>
25849
25850         * config/h8300/h8300-protos.h: Update the prototype of
25851         output_a_shift.
25852         * config/h8300/h8300.c (output_a_shift): Remove an unused
25853         argument 'insn'.  Remove redundant code.
25854         * config/h8300/h8300.md: Adust to the new prototype of
25855         output_a_shift.
25856
25857 2002-01-29  Kazu Hirata  <kazu@hxi.com>
25858
25859         * config/h8300/h8300-protos.h: Update the prototypes of
25860         emit_a_rotate and expand_a_rotate.
25861         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
25862         first argument to 'enum rtx_code'.
25863         (expand_a_rotate): Likewise.
25864
25865 2002-01-28  Kazu Hirata  <kazu@hxi.com>
25866
25867         * config/h8300/h8300-protos.h: Update the prototype of
25868         output_simode_bld.
25869         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
25870         'log2'.
25871         * config/h8300/h8300.md: Adjust to the new prototype.
25872
25873 2002-01-28  Kazu Hirata  <kazu@hxi.com>
25874
25875         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
25876         redundant code.
25877
25878 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25879
25880         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
25881         is a fixed register before returning pic_offset_table_rtx.
25882         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
25883         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
25884
25885 2002-01-28  Jason Merrill  <jason@redhat.com>
25886
25887         * dwarf2.h: Sync with src version.
25888
25889 2002-01-28  Paul Koning  <pkoning@equallogic.com>
25890
25891         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
25892         BT_FN_VOID_PTR_VAR.
25893         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
25894         * doc/extend.texi (__builtin_prefetch): Update documentation:
25895         first argument is now const void ptr.
25896
25897 2002-01-28  Kazu Hirata  <kazu@hxi.com>
25898
25899         * config/h8300/h8300-protos.h: Remove an unused prototype.
25900
25901 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
25902
25903         * toplev.c (lang_independent_init): Round up identifier size.
25904
25905 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
25906
25907         * config.gcc: Revert previous change.
25908
25909 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
25910
25911         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
25912
25913 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
25914
25915         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
25916         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
25917         other non-elf netbsd config frags.
25918         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
25919         collect2 will does that.
25920         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
25921         shared-lib frobbing will work.
25922
25923 2002-01-28  Kazu Hirata  <kazu@hxi.com>
25924
25925         * config/h8300/h8300.h: Fix formatting.
25926         * config/h8300/h8300.md: Likewise.
25927
25928 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
25929
25930         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
25931         the old, removed AAA_standards fix.
25932         * fixinc/fixincl.x: Rebuilt.
25933
25934 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
25935
25936         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
25937         atexit call in crtbegin, hooked in after call to frame_dummy;
25938         register EH before registering __fini__start.
25939
25940 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
25941
25942         * config/rs6000/altivec.h: Remove spurious semicolons.
25943
25944 2002-01-27  Kazu Hirata  <kazu@hxi.com>
25945
25946         * config/h8300/h8300.md: Replace dead bit extraction patterns
25947         with ones that work.
25948
25949 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25950
25951         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
25952         if not STRICT_ALIGNMENT.
25953         * rtl.h (MEM_ALIGN): Likewise.
25954
25955 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
25956
25957         * doc/invoke.texi (-fdump-translation-unit): Revert this
25958         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
25959
25960 2002-01-27  Kazu Hirata  <kazu@hxi.com>
25961
25962         * config/h8300/h8300.md (define_constants): New.
25963         (anonymous patterns) Use defined constants appropriately.
25964
25965 2002-01-27  Kazu Hirata  <kazu@hxi.com>
25966
25967         * config/h8300/h8300.c (function_arg): Remove redundant code.
25968
25969 2002-01-26  Richard Henderson  <rth@redhat.com>
25970
25971         * sched-deps.c (reg_pending_uses_head): New.
25972         (reg_pending_barrier): Rename from reg_pending_sets_all.
25973         (find_insn_list): Don't mark inline.
25974         (find_insn_mem_list): Remove.
25975         (add_dependence_list, add_dependence_list_and_free): New.
25976         (flush_pending_lists): Replace only_write param with separate
25977         for_read and for_write parameters.  Update all callers.  Use
25978         add_dependence_list_and_free.
25979         (sched_analyze_1): Do not add reg dependencies here; just set
25980         the pending bits.  Use add_dependence_list.
25981         (sched_analyze_2): Likewise.
25982         (sched_analyze_insn): Replace schedule_barrier_found with
25983         reg_pending_barrier.  Add all dependencies for pending reg
25984         uses, sets, and clobbers.
25985         (sched_analyze): Don't add reg dependencies for calls, just
25986         set pending bits.  Use regs_invalidated_by_call.  Treat
25987         sched_before_next_call as a normal list, not a fake insn.
25988         (init_deps): No funny init for sched_before_next_call.
25989         (free_deps): Free pending mems lists.  Don't zero reg_last.
25990         (init_deps_global): Init reg_pending_uses.
25991         (finish_deps_global): Free it.
25992         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
25993         (find_insn_mem_list): Remove.
25994         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
25995         (propagate_deps): Use them.  Zero temp mem lists.
25996
25997 2002-01-26  Richard Henderson  <rth@redhat.com>
25998
25999         * Makefile.in (CRTSTUFF_CFLAGS): New.
26000         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
26001         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
26002         crtstuff.c instead of alpha assembly version.
26003         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
26004         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
26005         not FORCE_{INIT,FINI}_SECTION_ALIGN.
26006         (__do_global_dtors_aux): Mark used.
26007         (frame_dummy, __do_global_ctors_aux): Mark used.
26008         (fini_dummy, init_dummy): Remove.
26009
26010         * config/alpha/crtbegin.asm: Remove file.
26011         * config/alpha/crtend.asm: Remove file.
26012         * config/alpha/t-crtbe: Remove file.
26013         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
26014         (LINK_EH_SPEC): New.
26015
26016         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
26017         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
26018         calling constructors.
26019         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
26020
26021         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
26022         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
26023         CRT_END_INIT_DUMMY hack.
26024         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
26025         FORCE_{INIT,FINI}_SECTION_ALIGN.
26026
26027         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
26028         FORCE_{INIT,FINI}_SECTION_ALIGN.
26029
26030         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
26031         invocation sequence.
26032         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
26033
26034         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
26035         (FORCE_CODE_SECTION_ALIGN): New.
26036
26037 2002-01-26  Richard Henderson  <rth@redhat.com>
26038
26039         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
26040
26041 2002-01-26  Richard Henderson  <rth@redhat.com>
26042
26043         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
26044         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
26045
26046 2002-01-26  Kazu Hirata  <kazu@hxi.com>
26047
26048         * config/h8300/h8300.md: Remove bit extraction patterns that
26049         cannot be triggered.
26050         Restrict each bit extraction pattern to a variant on which the
26051         pattern is tested.
26052
26053 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
26054
26055         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
26056
26057 2002-01-26  Kazu Hirata  <kazu@hxi.com>
26058
26059         * config/h8300/h8300.md: Remove bit test patterns that cannot
26060         be triggered.
26061         Restrict each bit test pattern to a variant on which the
26062         pattern is tested.
26063
26064 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26065
26066         * builtins.c (expand_builtin_strncat): Remove redundant check for
26067         INTEGER_CST.
26068
26069 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
26070
26071         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
26072         default setting.
26073         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
26074         existing setting.
26075
26076 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
26077
26078         * dbxout.c (dbxout_init): Use assemble_name rather than just
26079         stripping off the first character.
26080         (dbxout_source_file): Likewise.
26081
26082 2002-01-25  DJ Delorie  <dj@redhat.com>
26083
26084         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
26085         using rtx_equal_p, not by comparing pointers.
26086
26087 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
26088
26089         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
26090         for PIC_OFFSET_TABLE_REGNUM.
26091         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
26092
26093 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
26094
26095         * config.gcc (x86_64-*-freebsd*): New target.
26096         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
26097         value.
26098         (i[34567]86-*-freebsd*): Don't include svr4.h.
26099         * config/i386/freebsd64.h: New file.
26100
26101 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
26102
26103         * config/alpha/x-vms (version): Make static.
26104
26105         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
26106         in previous checkin.
26107
26108         * Makefile.in (install-headers-cp): New target.
26109         * config.gcc (alpha-dec-*vms*): Install headers with
26110         install-headers-cp
26111
26112 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
26113
26114         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
26115         avoid it's copies.
26116
26117 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26118
26119         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
26120         of compare_tree_int.
26121         (expand_builtin_strncat): Likewise.
26122         * c-decl.c (finish_struct): Use tree_low_cst.
26123         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
26124         * tree.c (compare_tree_int): Likewise.
26125
26126 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
26127
26128         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
26129         adjustments even if they are implemented by more than two insns.
26130
26131 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
26132
26133         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
26134         * df.h (struct ref): Kill B.
26135         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
26136
26137         * basic-block.h (PROP_EQUAL_NOTES): New flag.
26138         * flow.c (propagate_one_insn): Use it.
26139         (mark_used_regs): Handle NIL.
26140
26141 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
26142
26143         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
26144         to help folding.
26145
26146 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
26147
26148         * rs6000.md (prefetch): Make address V4SI mode so that the address
26149         is restricted to legitimate form for instruction.
26150
26151 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
26152
26153         * doc/install.texi (xtensa-*-elf): New target.
26154         (xtensa-*-linux*): New target.
26155         * doc/contrib.texi: Add myself.
26156
26157 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
26158
26159         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
26160         purpose register to hold an SImode (or smaller) value.
26161
26162 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
26163
26164         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
26165         registry only.
26166         * crtstuff.c: Likewise.
26167
26168 2002-01-25  Kazu Hirata  <kazu@hxi.com>
26169
26170         * config/h8300/h8300.md (negation patterns): Tighten
26171         predicates to register_operand.
26172
26173 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
26174
26175         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
26176         mode, not Pmode.
26177
26178         * builtins.c (expand_builtin_prefetch): Same.
26179
26180 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
26181
26182         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
26183         modes.
26184
26185 2002-01-24  Kazu Hirata  <kazu@hxi.com>
26186
26187         * config/h8300/h8300.c (print_operand): Remove support for
26188         operand character 'A'.
26189         * config/h8300/h8300.md (three anonymous patterns): Replace
26190         operand character 'A' with either 'T' or 'S'.
26191
26192 2002-01-24  Kazu Hirata  <kazu@hxi.com>
26193
26194         * config/h8300/h8300.c (print_operand): Remove support for
26195         operand character 'U'.
26196
26197 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
26198
26199         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
26200
26201 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
26202
26203         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
26204         values to be assigned to the stack pointer.
26205
26206 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
26207
26208         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
26209         to const_double needs to be done right for big-endian systems.
26210
26211 2002-01-24  Jason Merrill  <jason@redhat.com>
26212
26213         PR c++/2432
26214         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
26215         to can_throw_internal.
26216
26217 2002-01-23  Richard Henderson  <rth@redhat.com>
26218
26219         * fold-const.c (fold): Change UINT_MAX test to check vs precision
26220         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
26221
26222 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
26223
26224         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
26225         (symGOT2reg): Use them, then set as GOT value as unchanging.
26226         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
26227         as a temporary, if possible.
26228         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
26229         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
26230
26231 2002-01-23  Kazu Hirata  <kazu@hxi.com>
26232
26233         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
26234         accept to accept 0x80 as operands[2].
26235
26236 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
26237
26238         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
26239
26240 2002-01-23  Richard Henderson  <rth@redhat.com>
26241
26242         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
26243
26244 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
26245
26246         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
26247         (parmlist_or_identifiers_1): Verify that only a parmlist follows
26248         an attribute.
26249
26250 2002-01-23  Richard Henderson  <rth@redhat.com>
26251
26252         * expr.c (move_by_pieces_1): Extend size before negation.
26253
26254         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
26255         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
26256         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
26257         * config/m68k/t-m68kelf: Likewise.
26258
26259 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
26260
26261         * config/xtensa/elf.h: New file.
26262         * config/xtensa/lib1funcs.asm: New file.
26263         * config/xtensa/lib2funcs.S: New file.
26264         * config/xtensa/linux.h: New file.
26265         * config/xtensa/t-xtensa: New file.
26266         * config/xtensa/xtensa-config.h: New file.
26267         * config/xtensa/xtensa-protos.h: New file.
26268         * config/xtensa/xtensa.c: New file.
26269         * config/xtensa/xtensa.h: New file.
26270         * config/xtensa/xtensa.md: New file.
26271         * config.gcc (xtensa-*-elf*): New target.
26272         (xtensa-*-linux*): New target.
26273         * cse.c (canon_hash): Compare rtx pointers instead of register
26274         numbers.  This is required for the Xtensa port.
26275         * integrate.c (copy_insn_list): Handle case where the static
26276         chain is in memory and the memory address has to be copied to
26277         a register.
26278         * doc/invoke.texi (Option Summary): Add Xtensa options.
26279         (Xtensa Options): New node.
26280         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
26281
26282 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
26283
26284         * diagnostic.c (internal_error): Do ICE suppression only
26285         when ENABLE_CHECKING is not defined.
26286
26287         * c-typeck.c (require_complete_type): Return error_mark_node
26288         if type is error_mark_node.
26289
26290 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
26291
26292         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
26293         -Os and issue a warning.
26294
26295 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
26296
26297         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
26298         current (lack of) need for host configuration by hand.
26299
26300         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
26301         references.  Documentation of some target macros moved from
26302         hostconfig.texi to tm.texi.
26303
26304 2002-01-23  Will Cohen  <wcohen@redhat.com>
26305
26306         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
26307         defined.
26308
26309 2002-01-23  Kazu Hirata  <kazu@hxi.com>
26310
26311         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
26312         operand[3].
26313
26314 2002-01-23  Jason Merrill  <jason@redhat.com>
26315
26316         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
26317
26318         * function.c (assign_parms): Don't put args of inline functions
26319         into registers when not optimizing.
26320
26321 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
26322
26323         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
26324         (prologue_use): New pattern.
26325         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
26326         preference to gen_rtx_USE.
26327         (thumb_expand_prologue): Use gen_prologue_use in preference to
26328         gen_rtx_USE.
26329         (thumb_expand_epilogue): Use gen_prologue_use in preference to
26330         gen_rtx_USE.
26331
26332 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
26333
26334         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
26335
26336 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
26337
26338         PR c/3504
26339         * doc/extend.texi: Correct documentation of __alignof__.
26340
26341 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
26342
26343         * params.h: Rename arguments of DEFPARAM so that it will be
26344         recognized as a translation keyword.
26345
26346 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
26347
26348         * extend.texi: Document altivec functions.
26349         Fix N-bit adjectives in X86 builtin documentation.
26350
26351 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
26352
26353         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
26354         auto_inc_dec values.
26355
26356 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
26357
26358         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
26359         after backslash.
26360         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
26361
26362 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
26363
26364         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
26365
26366 2002-01-22  Richard Henderson  <rth@redhat.com>
26367
26368         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
26369         copy_insn not copy_rtx.
26370
26371 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
26372
26373         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
26374         "nonzero" as that might add "1" bits.  Ensure "constop" is
26375         properly sign extened.
26376         (force_to_mode): Tweak for sign extended constop.
26377
26378 2002-01-22  Richard Henderson  <rth@redhat.com>
26379
26380         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
26381         for_each_rtx instead of assuming we're already looking at the MEM.
26382         (split_small_symbolic_mem_operand): Likewise.
26383         * config/alpha/alpha.h (PREDICATE_CODES): Update.
26384         * config/alpha/alpha.md (small symbolic memory splitters): Update.
26385
26386 2002-01-22  Richard Henderson  <rth@redhat.com>
26387
26388         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
26389         sequence number for the literal.
26390         (divmoddi_internal_er): Likewise.
26391
26392 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26393
26394         PR java/4972
26395         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
26396         in LIBICONV variable.
26397         * configure: Regenerated.
26398
26399 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
26400
26401         * dependence.c (build_def_use): Remove array_idx.
26402
26403         * dwarfout.c (last_filename): Remove.
26404         (output_compile_unit_die): Remove last_filename.
26405
26406 2002-01-22  Roger Sayle  <roger@eyesopen.com>
26407             Richard Henderson  <rth@redhat.com>
26408
26409         PR opt/3640
26410         * fold-const.c (fold): Optimize unsigned comparisons against
26411         UINT_MAX (and similar unsigned constants).
26412
26413 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
26414
26415         * Makefile.in (loop.o): Depend on OPTABS_H.
26416         * loop.c (emit_prefetch_instructions): Check the prefetch operand
26417         against the predicate.
26418
26419         PR target/5379
26420         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
26421         for the address operand.
26422
26423 2002-01-22  Richard Henderson  <rth@redhat.com>
26424
26425         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
26426
26427 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26428
26429         PR other/5450
26430         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
26431         preprocessor flags.
26432
26433 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
26434
26435         * config.gcc (x86_64-*-netbsd*): New target.
26436         * config/i386/netbsd64.h: New file.
26437
26438 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
26439
26440         * regrename.c (kill_value): Fix typo.
26441
26442 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
26443
26444         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
26445
26446         * config/rs6000/rs6000.h: Same.
26447
26448         * function.c (instantiate_virtual_regs): Remove
26449         STARTING_FRAME_PHASE.
26450         (assign_stack_local_1): Same.
26451         Calculate frame phase.
26452
26453 2002-01-22  Nick Clifton  <nickc@redhat.com>
26454
26455         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
26456         variable declaration to outer scope in order to simplify
26457         future extensions.
26458         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
26459         arm_hard_regno_mode_ok.
26460         * config/arm/arm-protos.h: Add a prototype for
26461         arm_hard_regno_mode_ok.
26462         * config/arm/arm.c (soft_df_operand): Remove now redundant
26463         check for DImode values using IP_REGNUM.
26464         (nonimmediate_soft_df_operand): Remove now redundant check for
26465         DImode values using IP_REGNUM.
26466         (arm_hard_regno_mode_ok): New function. New check: make sure
26467         that DImode values are not stored in IP_REGNUM.
26468
26469         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
26470         note with a USE.
26471         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
26472
26473 2002-01-22  Jason Merrill  <jason@redhat.com>
26474
26475         * c-semantics.c (genrtl_compound_stmt): Only check nesting
26476         consistency if this COMPOUND_STMT is scoped.
26477
26478 2002-01-22  Kazu Hirata  <kazu@hxi.com>
26479
26480         * predict.c: Fix formatting.
26481         * print-tree.c: Likewise.
26482         * protoize.c: Likewise.
26483         * real.h: Likewise.
26484         * rtl.h: Likewise.
26485         * sbitmap.h: Likewise.
26486         * scan.c: Likewise.
26487         * sched-deps.c: Likewise.
26488         * sched-vis.c: Likewise.
26489         * sdbout.c: Likewise.
26490         * sibcall.c: Likewise.
26491         * ssa.c: Likewise.
26492         * ssa-ccp.c: Likewise.
26493         * ssa-dce.c: Likewise.
26494         * stmt.c: Likewise.
26495         * stor-layout.c: Likewise.
26496         * system.h: Likewise.
26497
26498 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26499
26500         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
26501         if fits in bounds of base type.
26502
26503         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
26504         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
26505         (add_bound_info, default): If can't find a context, make a
26506         SAVE_EXPR.
26507         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
26508
26509 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
26510
26511         * c-typeck.c (parser_build_binary_op): If result from
26512         build_binary_op is ERROR_MARK just return error_mark_node without
26513         further processing.
26514
26515 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
26516
26517         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
26518         Split a.out-specific bits into...
26519         * config/netbsd-aout.h: ...this.
26520         * config/netbsd-elf.h: New file.
26521         * config/alpha/netbsd-elf.h: Remove.
26522         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
26523         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
26524         (STARTFILE_SPEC): Remove redundant definition.
26525         (ENDFILE_SPEC): Likewise.
26526         (LINK_SPEC): Likewise.
26527         (CPP_SPEC): Likewise.
26528         (ASM_SPEC): Likewise.
26529         (LIB_SPEC): Likewise.
26530         (SWITCH_TAKES_ARG): Likewise.
26531         (TARGET_MEM_FUNCTIONS): Likewise.
26532         (CPP_PREDEFINES): Redefine.
26533         (ASM_FINAL_SPEC): Remove redefinition.
26534         (ASM_COMMENT_START): Redefine.
26535         (FUNCTION_PROFILER): Define.
26536         (TARGET_VERSION): Redefine.
26537         Comment and formatting cleanup.
26538         * config/i386/netbsd.h: Include <netbsd-aout.h>.
26539         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
26540         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
26541         big- or little-endian.
26542         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
26543         * config.gcc (*-*-netbsd*): Add definitions common to all
26544         NetBSD configs.
26545         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
26546         gnu_ld definitions.  Add netbsd-elf.h to and remove
26547         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
26548         tmake_file, and don't lose previous tmake_file contents.
26549         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
26550         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
26551         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
26552         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
26553         (mipsel-*-netbsd*): Rename this to...
26554         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
26555         mips/little.h to tm_file for mips*el-*.
26556         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
26557         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
26558         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
26559
26560 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26561
26562         * pa-protos.h (reg_before_reload_operand): New function prototype.
26563         * pa.c (reg_before_reload_operand): New function implementation.
26564         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
26565         contraints to "*m".
26566
26567 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26568
26569         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
26570
26571 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26572
26573         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
26574         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
26575         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
26576         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
26577         (ENDFILE_SPEC): Undefine.
26578         (STARTFILE_SPEC): Redefine for PA.
26579
26580 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26581
26582         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
26583
26584 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
26585
26586         * config.gcc: Add entries to supported PowerPC --with-cpu
26587         types.
26588
26589 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
26590
26591         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
26592         true for 64-bit mode only SSE registers in 32-bit mode.
26593
26594 2002-01-21  Kazu Hirata  <kazu@hxi.com>
26595
26596         * unwind-dw2.c: Fix formatting.
26597         * unwind-dw2-fde.c: Likewise.
26598         * unwind-dw2-fde.h: Likewise.
26599         * unwind-pe.h: Likewise.
26600         * varasm.c: Likewise.
26601         * varray.h: Likewise.
26602
26603 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
26604
26605         Remove workaround for register stack overwrite bug in mmix.
26606         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
26607         support for TARGET_REG_STACK_FILL_BUG.
26608         * config/mmix/mmix.h: Remove member has_call_without_parameters.
26609         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
26610         Delete.
26611         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
26612         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
26613         -mno-reg-stack-fill-bug-workaround.
26614         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
26615         machine member has_call_without_parameters.
26616         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
26617         -mreg-stack-fill-bug-workaround and
26618         -mno-reg-stack-fill-bug-workaround.
26619         (MMIX Options): Ditto.
26620
26621 2002-01-21  Kazu Hirata  <kazu@hxi.com>
26622
26623         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
26624         as appropriate.
26625         Remove redundant code.
26626
26627 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
26628
26629         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
26630         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
26631         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
26632         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
26633         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
26634         out target macro definitions and non-target-specific comments
26635         mostly taken from old versions of the manual.
26636
26637 2002-01-20  Kazu Hirata  <kazu@hxi.com>
26638
26639         * config/h8300/h8300.h: Fix comment formatting.
26640         * config/ia64/aix.h: Likewise.
26641         * config/ia64/ia64-protos.h: Likewise.
26642         * config/ia64/ia64.c: Likewise.
26643         * config/ia64/ia64.h: Likewise.
26644         * config/ia64/ia64intrin.h: Likewise.
26645         * config/ia64/linux.h: Likewise.
26646         * config/ia64/unwind-aix.c: Likewise.
26647         * config/ia64/unwind-ia64.c: Likewise.
26648
26649 2002-01-20  Kazu Hirata  <kazu@hxi.com>
26650
26651         * config/h8300/h8300.c: Revise comments about shift code.
26652
26653 2002-01-20  Kazu Hirata  <kazu@hxi.com>
26654
26655         * config/h8300/h8300.c (function_arg): Update a comment.
26656
26657 2002-01-20  Kazu Hirata  <kazu@hxi.com>
26658
26659         * config/h8300/h8300.md: Update the comments at the beginning
26660         of the file.
26661
26662 2002-01-20  Kazu Hirata  <kazu@hxi.com>
26663
26664         * config/i370/i370.c: Fix comment formatting.
26665         * config/i370/i370.h: Likewise.
26666         * config/i370/i370.md: Likewise.
26667         * config/i370/linux.h: Likewise.
26668
26669 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26670
26671         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
26672
26673         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
26674         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
26675         in incomplete case.
26676
26677 2002-01-20  Graham Stott  <grahams@redhat.com>
26678
26679         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
26680
26681 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26682
26683         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
26684
26685 2002-01-19  Tom Rix  <trix@redhat.com>
26686
26687         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
26688
26689 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
26690
26691         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
26692
26693         * function.c (assign_stack_local_1): Adjust x_frame_offset with
26694         STARTING_FRAME_PHASE.
26695         (STARTING_FRAME_PHASE): New.
26696         (instantiate_virtual_regs): Check saneness of
26697         STARTING_FRAME_PHASE.
26698
26699         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
26700
26701 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
26702
26703         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
26704
26705 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26706
26707         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
26708         be used for bootstrapping GCC 3.0.
26709
26710 2002-01-18  Kazu Hirata  <kazu@hxi.com>
26711
26712         * config/h8300/h8300.md: Fix an insn length.
26713
26714 2002-01-18  Kazu Hirata  <kazu@hxi.com>
26715
26716         * bitmap.h: Fix comment formatting.
26717         * combine.c: Likewise.
26718         * cppfiles.c: Likewise.
26719         * c-pragma.h: Likewise.
26720         * c-typeck.c: Likewise.
26721         * df.c: Likewise.
26722         * dwarf2out.c: Likewise.
26723         * function.c: Likewise.
26724         * gcc.c: Likewise.
26725         * genattrtab.c: Likewise.
26726         * gthr-win32.h: Likewise.
26727         * haifa-sched.c: Likewise.
26728         * predict.c: Likewise.
26729         * rtlanal.c: Likewise.
26730         * rtl.h: Likewise.
26731         * unwind-dw2-fde.h: Likewise.
26732         * unwind-pe.h: Likewise.
26733         * vmsdbgout.c: Likewise.
26734
26735 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26736
26737         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
26738         if type_required and passed decl.
26739
26740 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
26741
26742         * config.gcc (cpu_type): Include altivec.h in powerpc
26743         extra_headers.
26744         Same for darwin.
26745
26746         * config/rs6000/altivec.h: New.
26747
26748 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
26749
26750         * doc/install.texi (*-ibm-aix*): Update assembler and exception
26751         handling information.
26752         * doc/trouble.texi (Interoperation): Add libstdc++ information
26753         for AIX.
26754         (Misunderstandings): Add template instantiation and static template
26755         member information for AIX.
26756
26757 2002-01-17  Jason Merrill  <jason@redhat.com>
26758
26759         * dbxout.c (dbxout_type): Support const and volatile.
26760
26761         * except.c (add_partial_entry): Remove backwards compatibility code.
26762         (end_protect_partials): Likewise.
26763
26764 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
26765
26766         * config/ia64/ia64.md (prologue_use): New.
26767         * config/ia64/ia64.c (ia64_expand_prologue): Use
26768         gen_prologue_use instead of gen_rtx_USE.
26769         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
26770         as CODE_FOR_pred_rel_mutex.
26771         (ia64_sched_reorder2): Likewise.
26772
26773 2002-01-16  Eric Christopher  <echristo@redhat.com>
26774
26775         * config/mips/r3900.h: Reformat.
26776         (SUBTARGET_CPP_SIZE_SPEC): Remove.
26777         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
26778         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
26779         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
26780         * config/mips/t-elf: Remove mips3 multilib.
26781
26782 2002-01-16  H.J. Lu <hjl@gnu.org>
26783
26784         * config/mips/linux.h: Include "mips/abi64.h".
26785
26786 2002-01-16  H.J. Lu <hjl@gnu.org>
26787
26788         * config/mips/t-linux: New.
26789
26790         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
26791
26792         * config/mips/linux.h: Don't include "gofast.h".
26793         (INIT_SUBTARGET_OPTABS): Removed.
26794
26795 2002-01-16  Kazu Hirata  <kazu@hxi.com>
26796
26797         * config/h8300/h8300-protos.h: Replace emit_a_shift with
26798         output_a_shift.
26799         * config/h8300/h8300.c: Likewise.
26800         * config/h8300/h8300.md: Likewise.
26801
26802 2002-01-16  Kazu Hirata  <kazu@hxi.com>
26803
26804         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
26805         spaces after an opcode name.
26806         (pushqi1_h8300hs): Likewise.
26807         (pushhi1_h8300hs): Likewise.
26808
26809 2002-01-16  Kazu Hirata  <kazu@hxi.com>
26810
26811         * doc/extend.texi: Replace "option" with "attribute"
26812         appropriately.
26813
26814 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
26815
26816         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
26817         (and:DI () (const_int -8)).
26818         (split_small_symbolic_mem_operand): Split
26819         (mem (and:DI () (const_int -8)).
26820
26821 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
26822
26823         PR target/5309:
26824         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
26825         same way as TYPE_IMUL.
26826         (ultrasparc_sched_reorder): Likewise.
26827         * config/sparc/sparc.md (type): Add comment to update
26828         ultrasparc_sched_reorder when making changes.
26829
26830 2002-01-16  Kazu Hirata  <kazu@hxi.com>
26831
26832         * doc/invoke.texi: Change the dump file name of block
26833         reordering pass from 28.bbro to 29.bbro.
26834         Mention -dk option.
26835
26836 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
26837
26838         * i386.md (minsf splitter): Fix pasto.
26839
26840 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
26841
26842         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
26843         to frame pointer initialisation instruction.
26844         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
26845         initialisation instruction.
26846         (soft_df_operand): Do not accept the IP register.
26847         (nonimmediate_soft_df_operand): Do not accept the IP register.
26848
26849 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
26850
26851         PR target/5357:
26852         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
26853         MASK_V8 being both set.
26854
26855 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
26856
26857         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
26858         insn for GOT register; add REG_MAYBE_DEAD notes instead.
26859         config/s390/s390.md (call, call_value): Add GOT register to
26860         CALL_INSN_FUNCTION_USAGE where needed.
26861         (call_exp, call_value_exp): New.
26862
26863 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
26864
26865         * config/arm/arm.c: General formatting tidy up.
26866
26867 2002-01-16  Graham Stott  <grahams@redhat.com>
26868
26869         * calls.c (try_to_integrate): Use "(size_t)" intermediate
26870         cast and when casting an integer literal to "rtx" pointer.
26871         (expand_call): Likewise.
26872         * flow.c (try_pre_increment): Likewise.
26873         (find_use_as_address): Likewise.
26874         * integrate.c (expand_iline_function): Likewise.
26875         * regmove.c (try_auto_increment): Likewise.
26876
26877 2002-01-16  Graham Stott  <grahams@redhat.com>
26878
26879         * sched-rgn.c (passed): Use sbitmap_free.
26880         (header): Likewise.
26881         (inner): Likewise.
26882         (in_queue): Likewise.
26883         (in_stack): Likewise.
26884
26885 2002-01-15  Eric Christopher  <echristo@redhat.com>
26886
26887         * flow.c (propagate_one_insn): Change to use fatal_insn.
26888
26889 2002-01-15  Kazu Hirata  <kazu@hxi.com>
26890
26891         * expmed.c (extract_fixed_bit_field): Remove unused code.
26892         * system.h: Poison SLOW_ZERO_EXTEND.
26893         * doc/tm.texi: Remove.
26894         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
26895         * config/arm/arm.h: Likewise.
26896         * config/avr/avr.h: Likewise.
26897         * config/clipper/clipper.h: Likewise.
26898         * config/convex/convex.h: Likewise.
26899         * config/d30v/d30v.h: Likewise.
26900         * config/dsp16xx/dsp16xx.h: Likewise.
26901         * config/elxsi/elxsi.h: Likewise.
26902         * config/fr30/fr30.h: Likewise.
26903         * config/h8300/h8300.h: Likewise.
26904         * config/i370/i370.h: Likewise.
26905         * config/i386/i386.h: Likewise.
26906         * config/m68k/m68k.h: Likewise.
26907         * config/mips/mips.h: Likewise.
26908         * config/ns32k/ns32k.h: Likewise.
26909         * config/pdp11/pdp11.h: Likewise.
26910         * config/pj/pj.h: Likewise.
26911         * config/s390/s390.h: Likewise.
26912         * config/sh/sh.h: Likewise.
26913         * config/stormy16/stormy16.h: Likewise.
26914         * config/v850/v850.h: Likewise.
26915         * config/vax/vax.h: Likewise.
26916         * config/we32k/we32k.h: Likewise.
26917
26918 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
26919
26920         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
26921         (altivec_lvsl): Change constraint to b.
26922         (altivec_lvsr): Same.
26923         (altivec_lvebx): Same.
26924         (altivec_lvehx): Same.
26925         (altivec_lvewx): Same.
26926         (altivec_lvxl): Same.
26927         (altivec_lvx): Same.
26928         (altivec_stvx): Add parallel.
26929         (altivec_stvxl): Same.
26930         (altivec_stvehx): Same.
26931         (altivec_stvebx): Same.
26932         (altivec_stvebx): Same.
26933
26934 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
26935
26936         * config.gcc: Change altivec.h to altivec-defs.h.
26937
26938         * config/rs6000/altivec.h: Delete.
26939
26940         * config/rs6000/altivec-defs.h: Add.
26941
26942 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26943
26944         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
26945         and UMOD modes.
26946
26947         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
26948         less than or equal to eight bytes.
26949
26950         * vax.md (andsi3): Remove constraints and change SET destination
26951         operand type to nonimmediate_operand.
26952         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
26953         when it is a CONST_INT.
26954
26955 2002-01-15  Jason Merrill  <jason@redhat.com>
26956
26957         * c-common.def (FILE_STMT): New code.
26958         * c-common.c (statement_code_p): It's a statement.
26959         * c-common.h (stmt_tree_s): Add x_last_filename.
26960         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
26961         (last_expr_filename): New macro.
26962         * c-semantics.c (begin_stmt_tree): Initialize it.
26963         (add_stmt): If the filename changed, also insert a
26964         FILE_STMT.
26965         (expand_stmt): Handle seeing one.
26966
26967 2002-01-15  Eric Christopher  <echristo@redhat.com>
26968
26969         * flow.c (propagate_one_insn): Add error message and print out
26970         insn for debugging.
26971
26972 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
26973
26974         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
26975         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
26976         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
26977         TRAMPOLINE_ALIGNMENT.
26978         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
26979         to be in bits.
26980         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
26981         PCC_BITFIELD_TYPE_MATTERS.
26982         * config/interix.h (STDC_VALUE): Remove.  Use
26983         STDC_0_IN_SYSTEM_HEADERS.
26984         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
26985         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
26986         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
26987
26988 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26989
26990         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
26991         not work on this platform currently.
26992
26993 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
26994
26995         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
26996         readonly_warning in _().
26997
26998 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
26999
27000         * gcc.c (delete_if_ordinary): Backout previous change.
27001
27002 2002-01-15  Kazu Hirata  <kazu@hxi.com>
27003
27004         * config/h8300/h8300.c (print_operand): Remove support for
27005         unused operand characters.
27006
27007         * read-rtl.c: Fix formatting.
27008         * real.c: Likewise.
27009         * recog.c: Likewise.
27010         * regclass.c: Likewise.
27011         * regmove.c: Likewise.
27012         * reg-stack.c: Likewise.
27013         * reload1.c: Likewise.
27014         * rtlanal.c: Likewise.
27015
27016 2002-01-15  Kazu Hirata  <kazu@hxi.com>
27017
27018         * config/i386/i386.c: Fix formatting.
27019
27020 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
27021
27022         * c-typeck.c (process_init_element): Don't save_expr
27023         COMPOUND_LITERAL_EXPR if just its initializer will be used.
27024
27025 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
27026
27027         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
27028         emit optional traceback table if optimize_size or TARGET_ELF.
27029         * config/rs6000/rs6000.md (prefetch): New.
27030
27031 2002-01-15  Andreas Jaeger  <aj@suse.de>
27032
27033         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
27034
27035 2002-01-15  Kazu Hirata  <kazu@hxi.com>
27036
27037         * mips-tfile.c: Fix formatting.
27038
27039 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
27040
27041         * unroll.c (final_reg_note_copy): Fix previous commit.
27042
27043 2002-01-14  Kazu Hirata  <kazu@hxi.com>
27044
27045         * config/h8300/h8300-protos.h: Remove the prototype for
27046         eq_operator.
27047         * config/h8300/h8300.c (eq_operator): Remove.
27048
27049 2002-01-14  Richard Henderson  <rth@redhat.com>
27050
27051         * config/i386/i386.md (prefetch): Tidy.
27052         (prefetch_3dnow): Fix locality operand.
27053
27054 2002-01-14  Richard Henderson  <rth@redhat.com>
27055
27056         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
27057         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
27058
27059 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
27060
27061         * reload1.c (reload_combine): Pass reg_sum replacement through
27062         copy_rtx in loop performing multiple changes.
27063
27064 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
27065
27066         * except.c (remove_unreachable_regions): New.
27067         (free_eh_status): Clear exception_handler_labels.
27068         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
27069         (find_exception_handler_labels): Don't add the same label more than
27070         once.
27071         (remove_exception_handler_label): Don't die if
27072         find_exception_handler_labels hasn't been called for the current
27073         function yet.
27074
27075 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
27076
27077         * toplev.c (rest_of_compilation): Rebuild jump labels after
27078         gcse.
27079
27080 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
27081
27082         * doc/extend.texi: Move documentation of X86 built-in functions
27083         here.
27084         * doc/invoke.texi: From here.
27085         * doc/sourcebuild.texi: Document location of documentation for
27086         machine built-in functions.
27087
27088 2002-01-13  Christopher Faylor  <cgf@redhat.com>
27089
27090         * cppfiles.c (TEST_THRESHOLD): New macro.
27091         (SHOULD_MMAP): Ditto.
27092         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
27093         be used.
27094
27095 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
27096
27097         * unroll.c (final_reg_note_copy): Properly handle
27098         REG_LABEL
27099         (unroll_loops): Fix LOOP_CONDITION heuristics.
27100
27101 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
27102
27103         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
27104         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
27105
27106 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
27107
27108         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
27109         threaded loop.
27110
27111 2002-01-14  Tom Rix  <trix@redhat.com>
27112
27113         * config/rs6000/rs6000.md: Fix typo with sradi.
27114
27115 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
27116
27117         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
27118         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
27119         (clrstrdi, clrstrsi): Adapt callers.
27120
27121         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
27122
27123         (movti splitter): Never use register 0 as base register.
27124
27125 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
27126
27127         * combine.c (simplify_shift_const): Always generate new rtx
27128         for shift expression instead of reusing given expression.
27129
27130 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27131
27132         * config/alpha/alpha.c (alpha_expand_mov): Don't call
27133         alpha_legitimize_address unless mode is Pmode.
27134
27135 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
27136
27137         * doc/md.texi (Modifiers): Document the '*' constraint for the
27138         user.
27139
27140         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
27141         * doc/extend.texi (Function Attributes): 'interrupt' is valid
27142         for xstormy16 too.
27143
27144 2002-01-13  Richard Henderson  <rth@redhat.com>
27145
27146         * reload.c (find_reloads): Use a hard reg destination as reload reg
27147         for an input reload of the source.
27148
27149 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
27150
27151         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
27152         more generic.
27153
27154 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
27155
27156         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
27157         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
27158
27159         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
27160
27161 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27162
27163         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
27164
27165 2002-01-12  Tom Rix  <trix@redhat.com>
27166
27167         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
27168         TARGET_POWERPC64.
27169
27170 2002-01-12  Richard Henderson  <rth@redhat.com>
27171
27172         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
27173
27174         * doc/invoke.texi: Update Alpha options.
27175
27176         * doc/invoke.texi: Update i386 built-in function lists.
27177
27178 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
27179
27180         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
27181         referencing outside.
27182
27183 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27184
27185         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
27186         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
27187         offsets, and change line folding.
27188         * optabs.c (expand_binop): Remove warnings.
27189         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
27190
27191 2002-01-12  Graham Stott <grahams@redhat.com>
27192
27193         * attribs.c (handle_deprecated_attribute): constify WHAT.
27194         * diagnostic.c (warn_deprecated_use): Add braces, fixes
27195         dangling else warning and constify WHAT.
27196         * except.h (struct function, struct inline_remap): Move
27197         struct tag forward defs before all prototypes.
27198         (duplicate_eh_regions): Whitespace.
27199
27200 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
27201
27202         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
27203         MODE_BASE_REG_CLASS.
27204         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
27205
27206 2002-01-12  Richard Henderson  <rth@redhat.com>
27207
27208         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
27209         (ix86_expand_vector_move): New.
27210         (bdesc_2arg): Remove andps, andnps, orps, xorps.
27211         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
27212         Remove old prefetch builtins.  Special case the logicals removed above.
27213         (ix86_expand_builtin): Likewise.
27214         (safe_vector_operand): Use V4SFmode, not TImode.
27215         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
27216         (ix86_expand_timode_binop_builtin): New.
27217         * config/i386/i386-protos.h: Update.
27218         * config/i386/i386.h (enum ix86_builtins): Update.
27219         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
27220         Use ix86_expand_vector_move in vector move expanders.
27221         (movti_internal, movti_rex64): Add xorps alternative.
27222         (sse_clrv4sf): Rename and adjust from sse_clrti.
27223         (prefetch): Don't work so hard.
27224         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
27225         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
27226         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
27227
27228 2002-01-11  Richard Henderson  <rth@redhat.com>
27229
27230         * config/i386/mmintrin.h: New file.
27231         * config/i386/xmmintrin.h: New file.
27232         * config.gcc (i?86-*-*): Add extra_headers.
27233         * simplify-rtx.c (simplify_unary_operation): Handle saturating
27234         truncation codes.
27235         (simplify_binary_operation): Handle saturating arithmetic codes.
27236         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
27237         not the lowpart subreg.
27238         (ix86_expand_builtin): Return a TImode dummy register instead of 0
27239         on error.
27240         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
27241
27242 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27243
27244         * conflict.c (conflict_graph_compute): Free regsets when finished.
27245         * ssa.c (compute_coalesced_reg_partition): Likewise.
27246
27247 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
27248
27249         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
27250         every where we allocate a register.
27251
27252 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27253
27254         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
27255         * lcm.c (compute_earliest, compute_farthest): Likewise.
27256
27257 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
27258
27259         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
27260
27261 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
27262
27263         * doc/rtl.texi (Insns): Fix 2 typos.
27264
27265 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
27266
27267         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
27268         options.  Use @table @gcctabopt for MMIX options.  Add index
27269         entries for MMIX options.  Start new paragraph with first
27270         heading of the machine-dependent options.
27271
27272 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
27273
27274         PR other/5299
27275         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
27276         * combine.c (force_to_mode): Same.
27277         * reload1.c (clear_reload_reg_in_use): Same.
27278
27279 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
27280
27281         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
27282         and 'subtargets'.
27283
27284 2002-01-11  Andreas Jaeger  <aj@suse.de>,
27285             Brad Lucier <lucier@math.purdue.edu>
27286
27287         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
27288         mcpu.
27289
27290 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
27291
27292         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
27293         Protect with IN_LIBGCC.
27294         (LINK_EH_SPEC): Add required trailing space.
27295
27296 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
27297
27298         * c-tree.h: Move function declarations so that they are listed
27299         under the filename which contains them.
27300         (check_identifier, finish_decl_top_level,
27301         lookup_name_current_level_global, shadow_record_fields): Remove.
27302
27303 2002-01-11  Andreas Jaeger  <aj@suse.de>
27304
27305         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
27306         march.
27307
27308 2002-01-10  Richard Henderson  <rth@redhat.com>
27309
27310         * config/alpha/alpha.c (print_operand): Add 'J'.
27311         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
27312         new operand with the sequence number for the lituse.  When splitting
27313         the insns, use gen_movdi_er_high_g and generate a sequence number.
27314         (gen_movdi_er_high_g): Print the sequence number if non-zero.
27315
27316 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
27317
27318         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
27319         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
27320         stvxl.
27321         (altivec_expand_builtin): Same.
27322         (altivec_expand_stv_builtin): New.
27323
27324         * config/rs6000/rs6000.h (rs6000_builtins): Same.
27325
27326         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
27327         ("altivec_lvehx"): New.
27328         ("altivec_lvewx"): New.
27329         ("altivec_lvxl"): New.
27330         ("altivec_lvx"): New.
27331         ("altivec_stvx"): New.
27332         ("altivec_stvebx"): New.
27333         ("altivec_stvehx"): New.
27334         ("altivec_stvewx"): New.
27335         ("altivec_stvxl"): New.
27336
27337 2002-01-10  Richard Henderson  <rth@redhat.com>
27338
27339         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
27340         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
27341         care not to delete instructions twice.
27342
27343 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
27344
27345         * toplev.c: Don't declare environ (it's not used anywhere).
27346         * configure.in: Don't check for declaration of environ.
27347         * config/i386/xm-mingw32.h: Don't #define environ.
27348         * config.in, configure: Regenerate.
27349
27350 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
27351
27352         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
27353         * configure: Regenerate.
27354
27355         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
27356         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
27357         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
27358         alpha/xm-vms.h.
27359         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
27360         LIMITS_H_TEST here, not in m68k/x-next.
27361         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
27362         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
27363
27364         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
27365         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
27366         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
27367
27368         * config/i386/x-djgpp: Renamed i386/t-djgpp.
27369         * config/m88k/x-dolph: Renamed m88k/t-dolph.
27370         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
27371         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
27372         replacement of quadlib.asm with quadlib.c.
27373
27374         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
27375         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
27376         config/rs6000/xm-beos.h: Delete file.
27377
27378         * config.gcc: Update to match above changes.
27379
27380 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27381
27382         * config/h8300/h8300.h: Fix comment typos.
27383         * config/h8300/h8300.md: Likewise.
27384         * config/h8300/lib1funcs.asm: Likewise.
27385
27386 2002-01-10  Dale Johannesen  <dalej@apple.com>
27387
27388         PR optimization/5269
27389         * unroll.c (precondition_loop_p): Make *increment be the correct
27390         sign when n_iterations known, to avoid confusing caller.
27391
27392 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27393
27394         * doc/extend.texi (deprecated): Fix a typo.
27395
27396 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
27397
27398         * basic-block.h (update_br_prob_note): Declare.
27399         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
27400         (try_forward_edges): Care negative frequencies and update note.
27401         (outgoing_edges_match): Tweek conditional merging heuristics.
27402         (try_crossjump_to_edge): use update_br_prob_note.
27403         * cfglayout.c (fixup_reorder_chain): Likewise.
27404         * cfrtl.c (update_br_prob_note): New.
27405         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
27406
27407         * i386.c (ix86_decompose_address): Return -1 if address contains
27408         shift.
27409         (legitimate_address_p): Require ix86_decompose_address to return 1.
27410
27411         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
27412         (cprop_insn): Likewise.
27413
27414 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27415
27416         * toplev.c: Fix formatting.
27417         * tree.c: Likewise.
27418         * tree-dump.c: Likewise.
27419         * unroll.c: Likewise.
27420         * unwind-dw2.c: Likewise.
27421         * unwind-dw2-fde.c: Likewise.
27422         * unwind-dw2-fde-glibc.c: Likewise.
27423         * unwind-sjlj.c: Likewise.
27424
27425 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
27426
27427         * doc/invoke.texi: Document PDP-11 options.
27428
27429 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27430
27431         * config/h8300/h8300.h: Fix formatting.
27432
27433 2002-01-10  Ira Ruben   <ira@apple.com>
27434
27435         Add __attribute__ ((deprecated)).
27436         * extend.texi: Document __attribute__ ((deprecated)).
27437         * invoke.texi: Document -Wno-deprecated-declarations.
27438         * testsuite/g++.dg/other/deprecated.C: New C++ test.
27439         * testsuite/gcc.dg/deprecated.c: New C test.
27440         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
27441         (c_common_attribute_table): Add "deprecated" entry.
27442         (handle_deprecated_attribute): New function.
27443         * c-decl.c (deprecated_states): New enum.
27444         deprecated_state: State of "deprecated" handling.
27445         (start_decl): Set deprecated_state based on attributes.
27446         (grokdeclarator): Test for deprecated uses, propagate attribute.
27447         * c-typeck.c (build_component_ref): Test for deprecated fields.
27448         (build_external_ref): Test for deprecated primaries.
27449         * diagnostic.c (warn_deprecated_use) New function to issue
27450         warnings about __attribute__ ((depricated)) references.
27451         * flags.h (warn_deprecated_decl): Extern declared for
27452         -W[no-]deprecated-declarations option.
27453         * print-tree.c (print_node): Show deprecated flag status.
27454         * toplev.c (warn_deprecated_decl): Defined.
27455         (W_options): Added "deprecated-declaration".
27456         * toplev.h (warn_deprecated_use): Extern declared.
27457         * tree.h (struct tree_common): Define deprecated_flag.
27458         (TREE_DEPRECATED): New macro to access flag.
27459         * cp/call.c (build_call): Test for deprecated calls.
27460         * cp/class.c (add_implicitly_declared_members): Set global
27461         flag to tell grokdeclarator to not issue deprecated warnings.
27462         * cp/cp-tree.h: Add extern for adding_implicit_members.
27463         * cp/decl.c (deprecated_states): New enum.
27464         (start_decl): Set deprecated_state based on attributes.
27465         (grokdeclarator): Test for deprecated uses, propagate attribute.
27466         * cp/lex.c (do_identifier): Test for deprecated primaries.
27467         * cp/typeck.c (build_component_ref): Test for deprecated fields.
27468
27469 2002-01-10  Ira Ruben   <ira@apple.com>
27470
27471         Fix to assign attributes to inline member functions.
27472         * cp/decl.c (start_method): Handle attrlist.
27473
27474 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27475
27476         * combine.c (expand_field_assignment): Use subreg_lsb().
27477
27478 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
27479
27480         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
27481         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
27482         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
27483         Recurse for any operand of AND as long as constant is non-zero.
27484
27485 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27486
27487         * config/h8300/h8300.md: Remove constraints from expanders.
27488
27489 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27490
27491         * varasm.c: Fix formatting.
27492         * varray.c: Likewise.
27493         * vmsdbgout.c: Likewise.
27494         * xcoffout.c: Likewise.
27495
27496 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
27497
27498         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
27499         update edge probabilities to match.
27500
27501 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
27502
27503         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
27504         dependencies.
27505         * doc/languages.texi, doc/sourcebuild.texi: New files.
27506         * doc/configfiles.texi: Make a subsubsection.  Update.
27507         * doc/configterms.texi: Add @node.  Remove warning that this isn't
27508         instructions for building GCC.
27509         * doc/makefile.texi: Make a subsection.
27510         * doc/gccint.texi: Update.
27511
27512 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
27513
27514         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
27515
27516 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
27517
27518         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
27519
27520 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
27521
27522         * optabs.c (expand_fix): Look for wider integer modes first.
27523
27524         * i386.md (mov?f): Avoid the fake const double trick for medium
27525         memory model.
27526         (min?f*/max?f*): Prohibit memory operands for i387 variant.
27527         (fop_df_4): Disable for SSE compilation.
27528
27529 2002-01-10  Graham Stott  <grahams@redhat.com>
27530
27531         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
27532         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
27533
27534 2002-01-10  Richard Henderson  <rth@redhat.com>
27535
27536         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
27537
27538 2002-01-10  Richard Henderson  <rth@redhat.com>
27539
27540         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
27541         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
27542
27543 2002-01-10  Kazu Hirata  <kazu@hxi.com>
27544
27545         * combine.c (can_combine_p): Fix a comment typo.
27546
27547 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
27548
27549         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
27550         empty list correctly.  Change loop index $t to $f for
27551         consistency with rest of Makefile.
27552
27553 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
27554
27555         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
27556         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
27557
27558         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
27559         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
27560         (altivec_init_builtins): Same.
27561         (altivec_expand_unop_builtin): Return NULL_RTX on error.
27562         (altivec_expand_binop_builtin): Same.
27563         (altivec_expand_ternop_builtin): Same.
27564         (bdesc_dst): New.
27565
27566         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
27567         ("altivec_vctuxs"): Fix typo.
27568         ("altivec_vnmsubfp"): Same.
27569         ("altivec_dssall"): New.
27570         ("altivec_mfvscr"): New.
27571         ("altivec_dss"): New.
27572         ("altivec_lvsl"): New.
27573         ("altivec_lvsr"): New.
27574         ("altivec_dstt"): New.
27575         ("altivec_dstst"): New.
27576         ("altivec_dststt"): New.
27577         ("altivec_dst"): New.
27578
27579         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
27580         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
27581
27582 2002-01-09  Richard Henderson  <rth@redhat.com>
27583
27584         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
27585
27586 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
27587
27588         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
27589         function.
27590         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
27591         prototype.
27592         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
27593
27594 2002-01-09  Kazu Hirata  <kazu@hxi.com>
27595
27596         * read-rtl.c: Fix formatting.
27597         * real.c: Likewise.
27598         * regclass.c: Likewise.
27599         * regrename.c: Likewise.
27600         * reg-stack.c: Likewise.
27601         * reload1.c: Likewise.
27602         * reload.c: Likewise.
27603         * rtl.c: Likewise.
27604
27605 2002-01-09  Kazu Hirata  <kazu@hxi.com>
27606
27607         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
27608         to extract items in the expr_list chain.
27609
27610 2002-01-09  Richard Henderson  <rth@redhat.com>
27611
27612         * config/vax/vax.c (vax_rtx_cost): Never abort.
27613
27614         * config/vax/vax.h (REAL_ARITHMETIC): Define.
27615
27616 2002-01-09  Jan Hubicka  <jh@suse.cz>
27617
27618         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
27619
27620 2002-01-09  Richard Henderson  <rth@redhat.com>
27621
27622         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
27623         Unify code from various alternatives.
27624
27625 2002-01-09  Richard Henderson  <rth@redhat.com>
27626
27627         * regrename.c (copy_value): Ignore the copy if the source register
27628         is present in the value chain with a narrower mode.
27629
27630 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
27631
27632         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
27633         for the c4x target. Also improve layout.
27634
27635 2002-01-09  Richard Henderson  <rth@redhat.com>
27636
27637         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
27638         * config/m32r/m32r.md (and ior xor splitters): Swap operands
27639         to match insn patterns.
27640
27641 2002-01-09  Richard Henderson  <rth@redhat.com>
27642
27643         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
27644         (copyprop_hardreg_forward_1): Likewise.
27645
27646 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
27647
27648         * pa.md (decrement_and_branch_until_zero): Change predicate for
27649         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
27650
27651 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
27652
27653         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
27654         gets undefined. For Darwin.
27655
27656 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
27657
27658         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
27659
27660 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27661
27662         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
27663
27664 2002-01-08  Richard Henderson  <rth@redhat.com>
27665
27666         * regrename.c (copy_value): Ignore overlapping copies.
27667
27668 2002-01-08  Richard Henderson  <rth@redhat.com>
27669
27670         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
27671         as needed to avoid shared structure.
27672
27673 2002-01-08  Kazu Hirata  <kazu@hxi.com>
27674
27675         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
27676         H8/300H and H8S.
27677
27678 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
27679
27680         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
27681         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
27682         documentation of obsolete macros.
27683         * system.h: Poison these macros.
27684         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
27685         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
27686         config/c4x/c4x.h, config/clipper/clipper.h,
27687         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
27688         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
27689         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
27690         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
27691         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
27692         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
27693         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
27694         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
27695         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
27696         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
27697         config/sparc/sparc.h, config/stormy16/stormy16.h,
27698         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
27699         definitions and commented out definitions of obsolete macros.
27700         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
27701         of MAX_INT_TYPE_SIZE.
27702
27703 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
27704
27705         * config/s390/s390.c (s390_preferred_reload_class): Never
27706         return ADDR_REGS if it isn't a subset of the given class.
27707         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
27708         FP_REGS, but all superclasses as well.
27709
27710         * config/s390/s390.c (s390_function_profiler): Fix thinko.
27711
27712         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
27713         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
27714         must not be a const_int.
27715
27716 2002-01-08  Richard Henderson  <rth@redhat.com>
27717
27718         * Makefile.in (toplev.o): Depend on options.h.
27719         (gcc.o): Depend on specs.h.
27720
27721 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
27722
27723         * expr.c (store_expr): Convert VOIDmode constants back to target's
27724         mode.
27725
27726 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
27727
27728         * doc/invoke.texi: Markup gcc as @command.  Refer to
27729         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
27730         of http://gcc.gnu.org/thanks.html.
27731
27732 2002-01-08  Dale Johannesen  <dalej@apple.com>
27733
27734         * config/rs6000/rs6000.md: Add missing int register
27735         target case to movdf_low.
27736
27737 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
27738
27739         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
27740         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
27741         (cppinit.o): Depend on except.h.
27742         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
27743         s-specs): New rules.
27744
27745         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
27746         Don't create specs.h/options.h/gencheck.h here.  Remove
27747         unnecessary variable settings from last argument of AC_OUTPUT.
27748         * config.in, configure: Regenerate.
27749         * intl.c: Hardcode package name as "gcc".
27750
27751         * cppinit.c: Include except.h.
27752         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
27753         appropriate.
27754         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
27755         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
27756         (!)USING_SJLJ_EXCEPTIONS.
27757         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
27758
27759 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
27760
27761         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
27762         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
27763         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
27764         documentation of obsolete macros.
27765         * system.h: Poison these macros.
27766         * config/d30v/d30v.h, config/ns32k/encore.h,
27767         config/stormy16/stormy16.h: Remove definitions and commented out
27768         definitions of obsolete macros.
27769
27770 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
27771
27772         * objc/objc-act.c (handle_class_ref): Mark the declaration of
27773         %sobjc_class_ref_%s as used - to prevent unwanted compiler
27774         warnings.
27775
27776 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
27777
27778         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
27779         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
27780         to insn adjusting stack/frame pointer.
27781         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
27782         accept operands that cause the insn to be non-splittable.
27783
27784 2002-01-08  Graham Stott  <grahams@redhat.com>
27785
27786         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
27787         (C_TYPE_FIELDS_VOLATILE): Likewise.
27788         (C_TYPE_BEING_DEFINED): Likewise.
27789         (C_IS_RESERVED_WORD): Likewise.
27790         (C_TYPE_VARIABLE_SIZE): Likewise.
27791         (C_DECL_VARIABLE_SIZE): Likewise.
27792         (C_MISSING_PROTOTYPE_WARNED): Likewise.
27793         (C_SET_EXP_ORIGINAL_CODE): Likewise.
27794         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
27795         parenthesis.
27796         (C_DECL_ANTICIPATED): Likewise.
27797         (c_build_type_variant): Add parenthesis.
27798
27799 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
27800
27801         * gcc.c (option_map): Remove --version.
27802         (process_command): Handle -fversion following the GNU Coding
27803         Standards.  Partially addresses PR other/704.
27804
27805 2002-01-08  Graham Stott  <grahams@redhat.com>
27806
27807         * combine.c (combine_instructions): Fix typo.
27808
27809 2002-01-08  Graham Stott  <grahams@redhat.com>
27810
27811         * debug.h: Use "tree" and "rtx" throughout.
27812
27813         * debug.c: Likewise.
27814
27815 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
27816
27817         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
27818         constant pool, use the pool's version of the symbol instead.
27819
27820 2002-01-07  Richard Henderson  <rth@redhat.com>
27821
27822         * regrename.c (find_oldest_value_reg): Ignore the value chain if
27823         the original register was copied in a mode with a fewer number of
27824         hard registers than the desired mode.
27825         (copyprop_hardreg_forward_1): Likewise.
27826         (debug_value_data): Fix loop test.
27827         * toplev.c (parse_options_and_default_flags): Reenable
27828         -fcprop-registers at -O1.
27829
27830 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
27831
27832         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
27833         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
27834
27835         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
27836         predicates.
27837
27838         * config/rs6000/rs6000.md: Add altivec predicate patterns.
27839
27840 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
27841
27842         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
27843         (pa_output_function_prologue): Output local label at the beginning of
27844         the prologue when profiling.
27845         (hppa_profile_hook): Use the local label rather than the function label.
27846         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
27847
27848 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
27849
27850         * config/rs6000/rs6000.c (print_operand): Remove extra space.
27851         (altivec_expand_unop_builtin): Fix thinko.
27852         (altivec_expand_binop_builtin): Same.
27853         (altivec_expand_ternop_builtin): Same.
27854         (altivec_expand_builtin): Same.
27855
27856 2002-01-07  Richard Henderson  <rth@redhat.com>
27857
27858         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
27859
27860 2002-01-07  Jason Merrill  <jason@redhat.com>
27861
27862         * unwind-dw2.c (execute_cfa_program): Use < again.
27863
27864 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
27865
27866         * predict.c (combine_predictions_for_insn): Avoid division by zero.
27867
27868 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
27869
27870         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
27871         Don't allow -1 - x -> ~x simplifications in the first pass.
27872
27873 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
27874
27875         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
27876         arguments.
27877         (altivec_expand_binop_builtin): Same.
27878         (altivec_expand_unop_builtin): Same.
27879         (print_operand): Fix typo.
27880         (bdesc_1arg): Add vupk* variants.
27881
27882         * rs6000.h (rs6000_builtins): Add vupk* enums.
27883
27884         * rs6000.md: Add altivec_vupk* variants.
27885
27886 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
27887
27888         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
27889         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
27890         and last update dates.
27891
27892 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
27893
27894         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
27895
27896 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
27897
27898         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
27899         * config/avr/avr.h (CPP_SPEC): Likewise.
27900         (LINK_SPEC): Likewise.
27901         (CRT_BINUTILS_SPECS): Likewise.
27902         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
27903         * doc/invoke.texi (AVR Options): Document them.
27904
27905 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
27906
27907         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
27908         LABEL_NUSES.
27909
27910 2002-01-07  Graham Stott  <grahams@redhat.com>
27911
27912         * config/i386/i386.h: Update copyright date.
27913         (HALF_PIC_PTR): Add parenthesis.
27914         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
27915         (CONSTANT_ALIGNMENT): Add parenthesis.
27916         (DATA_ALIGNMENT): Likewise.
27917         (LOCAL_ALIGNMENT): Likewise.
27918         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
27919         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
27920         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
27921         (HARD_REGNO_NREGS): Add paranethesis.
27922         (VALID_SSE_REG_MODE): Whitespace.
27923         (VALID_MMX_REG_MODE): Whitespace.
27924         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
27925         (ix86_hard_regno_mode_ok): Add parenthesis.
27926         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
27927         (RETURN_IN_MEMORY): Whitespace.
27928         (N_REG_CLASSES): Add parenthesis.
27929         (INTEGER_CLASS_P): Add parenthesis and wrap.
27930         (FLOAT_CLASS_P): Likewise.
27931         (SSE_CLASS_P): Likewise.
27932         (MMX_CLASS_P): Likewise.
27933         (MAYBE_INTEGER_CLASS_P): Likewise.
27934         (MAYBE_FLOAT_CLASS_P): Likewise.
27935         (MAYBE_SSE_CLASS_P): Likewise.
27936         (MAYBE_MMX_CLASS_P): Likewise.
27937         (Q_CLASS_P): Likewise.
27938         (GENERAL_REGNO_P): Uppercase macro parameter.
27939         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
27940         (FP_REGNO_P): Likewise.
27941         (ANY_FP_REGNO_P): Uppercase macro parameter.
27942         (SSE_REGNO_P): Likewise.
27943         (SSE_REGNO): Likewise.
27944         (SSE_REG_P): Likewise.
27945         (SSE_FLOAT_MODE_P): Likewise.
27946         (MMX_REGNO_P): Likewise.
27947         (MMX_REG_P):Likewise.
27948         (STACK_REG_P): Likewise.
27949         (NON_STACK_REG_P): Likewise.
27950         (STACK_TOP_P): Likewise.
27951         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
27952         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
27953         (SECONDARY_MEMORY_NEEDED): Likewise.
27954         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
27955         (MD_ASM_CLOBBERS): Whitespace and wrap.
27956         (MUST_PASS_IN_STACK): Whitespace and wrap.
27957         (RETURN_POPS_ARGS): Add parenthesis.
27958         (INIT_CUMULATIVE_ARGS): Likewise.
27959         (FUNCTION_ARG): Likewise.
27960         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
27961         (SETUP_INCOMING_VARARGS): Likewise.
27962         (BUILD_VA_LIST_TYPE):  Add parenthesis.
27963         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
27964         parenthsis.
27965         (EXPAND_BUILTIN_VA_ARG): Likewise.
27966         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
27967         (INITIALIZE_TRAMPOLINE): Add parenthesis.
27968         (INITIAL_ELIMINATION_OFFSET): Likewise.
27969         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
27970         (REGNO_OK_FOR_BASE_P): Likewise.
27971         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
27972         (REGNO_OK_FOR_DIREG_P): Likewise.
27973         (REG_OK_FOR_INDEX_P): Whitespace.
27974         (REG_OK_FOR_BASE_P): Whitespace.
27975         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
27976         parenthesis.
27977         (FIND_BASE_TERM): Fix typo.
27978         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
27979         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
27980         (SYMBOLIC_CONST; Whitespace.
27981         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
27982         (ENCODE_SECTION_INFO): Whitespace.
27983         (FINALIZE_PIC): Remove do { ... } while (0).
27984         (PROMOTE_MODE): Wrap in do { ... } while (0).
27985         (CONST_COSTS): Whitespace.
27986         (RTX_COSTS): Add paramethesis, whitespace and wrap.
27987         (REGISTER_MOVE_COST): Add parenthesis.
27988         (MEMORY_MOVE_COST): Likewise.
27989         (EXTRA_CC_MODES): Whitespace.
27990         (SELECT_CC_MODE): Add parenthesis and whitespace.
27991         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
27992         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
27993         (ASM_OUTPUT_LABEL): Add paramethesis.
27994         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
27995         (ASM_OUTPUT_REG_POP): Likewise.
27996         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
27997         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
27998
27999         * config/i386/i386.c: Update copyright.
28000         (CHECK_STACK_LIMIT): Add parenthesis.
28001         (AT_BP): Uppercase macro parameter.
28002         (x86_64_int_parameter_registers): Constify.
28003         (x86_64_int_return_registers): Likewise.
28004         (ix86_compare_op0): Use rtx.
28005         (construct_container): Constify INTREG parameter.
28006         (function_arg): Use rtx.
28007
28008         * diagnostic.h: Update copyright date.
28009         (output_buffer_state): Add parenthesis.
28010         (output_buffer_format_args): Likewise.
28011
28012         * combine.c (combine_instructions): Replace XEXP (links, 0)
28013         with link.
28014
28015 2002-01-06  H.J. Lu <hjl@gnu.org>
28016
28017         * cfgcleanup.c (thread_jump): Fix 2 typos.
28018
28019 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
28020
28021         * config.gcc: Add support for --enable-altivec.
28022
28023 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
28024
28025         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
28026
28027 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
28028
28029         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
28030         __objc_class_name_*.
28031
28032 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
28033
28034         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
28035
28036 2002-01-06  Richard Henderson  <rth@redhat.com>
28037
28038         * reorg.c (emit_delay_sequence): Remove death notes, not merely
28039         nop them out.  Increment label reference count for REG_LABEL.
28040         (fill_slots_from_thread): Frob label reference count around
28041         delete_related_insns.
28042
28043 2002-01-05  Richard Henderson  <rth@redhat.com>
28044
28045         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
28046         jump threading.
28047
28048 2002-01-05  Richard Henderson  <rth@redhat.com>
28049
28050         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
28051         * integrate.c (output_inline_function): Likewise.
28052         * toplev.c (rest_of_compilation): Do it here instead.  Move call
28053         to remove_unnecessary_notes after emitting abstract instance.
28054         Force an emitted nested function to have its parent emited as well.
28055         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
28056         for null.
28057         (rtl_for_decl_location): Do not look at reload data structures
28058         before reload has run.
28059
28060 2002-01-05  Kazu Hirata  <kazu@hxi.com>
28061
28062         * cse.c: Fix formatting.
28063         * dwarf2asm.c: Likewise.
28064         * dwarf2out.c: Likewise.
28065         * explow.c: Likewise.
28066         * expmed.c: Likewise.
28067         * function.c: Likewise.
28068         * gcov.c: Likewise.
28069         * gencheck.c: Likewise.
28070         * genrecog.c: Likewise.
28071         * ggc-common.c: Likewise.
28072         * ggc-page.c: Likewise.
28073         * global.c: Likewise.
28074
28075 2002-01-05  Kazu Hirata  <kazu@hxi.com>
28076
28077         * combine.c: Fix formatting.
28078
28079 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
28080
28081         PR middle-end/1557
28082         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
28083
28084 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
28085
28086         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
28087         as 1 for __powerpc64__ as well.
28088
28089         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
28090
28091         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
28092         return it.
28093
28094 2002-01-05  Daniel Berlin  <dan@dberlin.org>
28095
28096         * lcm.c: Revert change, due to performance regression it causes on
28097         SPEC because it's slightly more conservative (sigh, I hate
28098         edge-based LCM).
28099
28100 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
28101
28102         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
28103
28104 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
28105
28106         * doc/cppinternals.texi: Update.
28107
28108 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
28109
28110         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
28111         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
28112         negatives.
28113         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
28114         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
28115         kludge for pre-october-14th mmix versions to handle new-found bug
28116         with PUSHJ/PUSHGO and the register stack.
28117         * config/mmix/mmix.h (struct machine_function): Rename member
28118         has_call_value_without_parameters to has_call_without_parameters.
28119         All referers changed.
28120         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
28121         TARGET_MASK_BRANCH_PREDICT): New macros.
28122         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
28123         -mno-reg-stack-fill-bug-workaround.
28124         * config/mmix/mmix.md ("call"): Set struct machine member
28125         has_call_without_parameters.
28126
28127 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
28128
28129         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
28130
28131 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
28132
28133         * cfgcleanup.c: Include tm_p.h
28134         (mark_effect): Fix handling of hard register; fix handling of SET
28135
28136 2002-01-04  Kazu Hirata  <kazu@hxi.com>
28137
28138         * config/h8300/h8300.md (anonymous patterns): Check that
28139         operands are registers before using REGNO on them.
28140
28141 2002-01-03  Roland McGrath  <roland@frob.com>
28142
28143         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
28144
28145 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
28146
28147         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
28148         * c-common.h (genrtl_expr_stmt_value): Likewise.
28149         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
28150         (expand_expr_stmt_value): Add maybe_last argument.
28151         Don't warn about statement with no effect if it is the last statement
28152         in expression statement.
28153         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
28154         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
28155         expand_expr_stmt_value.
28156         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
28157         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
28158         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
28159         as maybe_last to expand_expr_stmt_value.
28160
28161 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
28162
28163         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
28164         be passed in, do not build it.
28165         (c_begin_if_stmt): New function.
28166         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
28167         * c-common.h (c_expand_start_cond): Update prototype.
28168         (c_begin_if_stmt): Prototype new function.
28169         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
28170         * c-parse.in (if_prefix): Use c_begin_if_stmt,
28171         c_begin_while_stmt and c_finish_while_stmt_cond.
28172
28173 2002-01-04  William Cohen  <wcohen@redhat.com>
28174
28175         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
28176         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
28177         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
28178         * config/pa/som.h (ASM_FILE_START): Likewise.
28179
28180 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
28181
28182         * lcm.c: Include df.h.
28183         Add available_transfer_function prototype.
28184         (compute_available): Rework to use iterative dataflow framework.
28185         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
28186         with bb_info in df.h
28187         (available_transfer_function): New function.
28188
28189         * Makefile.in (lcm.o): add df.h to dependencies.
28190
28191 2002-01-04  Richard Henderson  <rth@redhat.com>
28192
28193         * config/alpha/alpha.c (some_operand): Accept HIGH.
28194         (input_operand): Likewise; accept simple references to globals.
28195         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
28196         (alpha_const_double_ok_for_letter_p): Likewise.
28197         (alpha_extra_constraint): Likewise.
28198         (alpha_preferred_reload_class): Likewise.  Do not force
28199         symbolic constants to memory.
28200         (alpha_legitimate_address_p): Accept simple references
28201         to small_symbolic_operand.
28202         (alpha_legitimize_address): New arg scratch.  Be prepared to be
28203         called when no_new_pseudos.  Emit simple symbolic references.
28204         Split integers into low, high, and rest.
28205         (alpha_expand_mov): Use alpha_legitimize_address.
28206         (some_small_symbolic_mem_operand): New.
28207         (split_small_symbolic_mem_operand): New.
28208         * config/alpha/alpha-protos.h: Update.
28209         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
28210         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
28211         (EXTRA_CONSTRAINT): Likewise.
28212         (PREFERRED_RELOAD_CLASS): Likewise.
28213         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
28214         (PREDICATE_CODES): Update.
28215         * config/alpha/alpha.md: New post-reload splitters to convert
28216         simplfied symbolic operands to the form that references $29.
28217         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
28218         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
28219
28220 2002-01-03  Richard Henderson  <rth@redhat.com>
28221
28222         * local-alloc.c (function_invariant_p): Update commentary.
28223
28224 2002-01-04  H.J. Lu <hjl@gnu.org>
28225
28226         * toplev.c (rest_of_compilation): Fix a typo when calling
28227         cleanup_cfg.
28228
28229 2002-01-03  Kazu Hirata  <kazu@hxi.com>
28230
28231         * c-common.c: Fix formatting.
28232         * diagnostic.c: Likewise.
28233         * doloop.c: Likewise.
28234         * dwarf2out.c: Likewise.
28235
28236 2002-01-03  Kazu Hirata  <kazu@hxi.com>
28237
28238         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
28239         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
28240
28241 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
28242
28243         * cpperror.c: Update comments and copyright.
28244         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
28245         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
28246
28247 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
28248
28249         * collect2.c (main): Use strcmp when testing for "-shared".
28250
28251 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
28252
28253         * cppmacro.c: Don't include intl.h.  Update comments.
28254         (new_number_token): Allocate enough buffer for 64-bit unsigned
28255         integers; update prototype.
28256         * cppmain.c: Update comments.
28257
28258 2002-01-03  William Cohen  <wcohen@redhat.com>
28259
28260         * function.h (struct function): Add profile.
28261         (current_function_profile): New.
28262         doc/extend.texi: Update documentation.
28263         * final.c (final_start_function): Use current_function_profile
28264         instead of profile_flag.
28265         (profile_after_prologue): Likewise.
28266         * function.c (expand_function_start): Likewise.
28267         (expand_function_start): Likewise.
28268         * config/alpha/alpha.c (direct_call_operand):
28269         (alpha_does_function_need_gp): Likewise.
28270         (alpha_expand_prologue): Likewise.
28271         * config/arm/arm.c (arm_expand_prologue): Likewise.
28272         thumb_expand_prologue: Likewise.
28273         * config/d30v/d30v.c (d30v_stack_info): Likewise.
28274         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
28275         (fr30_expand_prologue): Likewise.
28276         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
28277         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
28278         * config/i386/i386.h (FINALIZE_PIC): Likewise.
28279         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
28280         * config/i960/i960.c (i960_output_function_prologue): Likewise.
28281         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
28282         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
28283         (m32r_expand_prologue): Likewise.
28284         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
28285         (m88k_expand_prologue): Likewise.
28286         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
28287         * config/mips/mips.c (compute_frame_size): Likewise.
28288         (mips_expand_prologue): Likewise.
28289         (mips_can_use_return_insn): Likewise.
28290         * config/pa/elf.h (ASM_FILE_START): Likewise.
28291         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
28292         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
28293         * config/pa/som.h (ASM_FILE_START): Likewise.
28294         * config/romp/romp.c (romp_using_r14): Likewise.
28295         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
28296         (rs6000_stack_info): Likewise.
28297         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
28298         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
28299         * config/v850/v850.c (compute_register_save_size): Likewise.
28300
28301 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
28302
28303         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
28304         gen_lowpart_common fails, use gen_lowpart_SUBREG.
28305
28306 2002-01-03  Turly O'Connor  <turly@apple.com>
28307
28308         * darwin.c (machopic_output_possible_stub_label): Don't generate
28309         stub routines for pseudo-stubs which we've just defined.
28310
28311 2002-01-03  Kazu Hirata  <kazu@hxi.com>
28312
28313         * builtins.c: Fix formatting.
28314         * c-typeck.c: Likewise.
28315         * combine.c: Likewise.
28316         * expr.c: Likewise.
28317         * loop.c: Likewise.
28318
28319 2002-01-03  Andreas Schwab  <schwab@suse.de>
28320
28321         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
28322         and return true if _cpp_push_next_buffer pushed a new include
28323         file.
28324         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
28325         _cpp_pop_file_buffer did not push a new file.
28326         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
28327
28328 2002-01-02  Eric Christopher  <echristo@redhat.com>
28329
28330         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
28331         FIND_REG_INC_NOTE call. Update copyright.
28332         * loop.c (canonicalize_condition): Ditto.
28333         * reorg.c (delete_scheduled_jump): Ditto.
28334
28335 2002-01-03  Kazu Hirata  <kazu@hxi.com>
28336
28337         * gcse.c: Fix formatting.
28338
28339 2002-01-03  Graham Stott  <grahams@redhat.com>
28340
28341         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
28342         forward defs for struct tags rtx_def, union_tree, rtvec_def
28343         also output corresponding typedefs for rtx, tree, and rtvec.
28344
28345         * system.h: Move forward defs for struct tags rtx_def, union_tree,
28346         rtvec_def along with corresponding typedefs for rtx, tree, and
28347         rtvec to config.h, hconfig.h, tconfig.h.
28348
28349 2002-01-03  Graham Stott  <grahams@redhat.com>
28350
28351         * tree.h: Update copyright date.
28352         (IS_EXPR_CODE_CLASS): Add parenthesis.
28353         (TREE_SET_CODE): Add whitespace.
28354         (TREE_CHECK): Add parenthesis.
28355         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
28356         (CST_OR_CONSTRUCTOR_CHECK):
28357         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
28358         (TREE_SYMBOL_REFERENCED): Whitespace.
28359         (INT_CST_LT): Likewise.
28360         (INT_CST_LT_UNSIGNED): Likewise.
28361         (tree_real_cst): Unwrap comment.
28362         (tree_string): Likewise.
28363         (tree_complex): Likewise.
28364         (IDENTIFIER_POINTER): correct cast.
28365         (SAVE_EXPR_CONTEXT): Whitespace.
28366         (EXPR_WFL_FILENAME_NODE): Likewise.
28367         (EXPR_WFL_FILENAME): Remove parenthesis.
28368         (DECL_ORIGIN): Add parenthesis.
28369         (DECL_FROM_INLINE): Use NULL_TREE.
28370         (build_int_2): Whitespace.
28371         (build_type_variant): Add parenthesis.
28372
28373         * gcc/jcf-parse.c: Update copyright date.
28374         (yyparse): Constify resource_filename.
28375
28376 2002-01-03  Graham Stott  <grahams@redhat.com>
28377
28378         * rtl.h: Update copyright date.
28379         (RTL_CHECK1): Wrap long line.
28380         (RTL_CHECK2): Likewise.
28381         (RTL_CHECKC1): Wrap long line and whitespace.
28382         (RTL_CHECKC2): Likewise.
28383         (XWINT): Whitespace.
28384         (XINT): Likewise.
28385         (XSTR): Likewise.
28386         (XEXP): Likewise.
28387         (XVEC): Likewise.
28388         (XMODE): Likewise.
28389         (XBITMAP): Likewise.
28390         (XTREE): Likewise.
28391         (XBBDEF): Likewise.
28392         (XTMPL): Likewise.
28393         (X0WINT): Likewise.
28394         (X0INT):Likewise.
28395         (X0UINT): Likewise.
28396         (X0STR): Likewise.
28397         (X0EXP): Likewise.
28398         (X0VEC): Likewise.
28399         (X0MODE): Likewise.
28400         (X0BITMAP): Likewise.
28401         (X0TREE): Likewise.
28402         (X0BBDEF): Likewise.
28403         (X0ADVFLAGS): Likewise.
28404         (X0CSELIB): Likewise.
28405         (X0MEMATTR): Likewise.
28406         (XCWINT): Likewise.
28407         (XCINT): Likewise.
28408         (XCUINT): Likewise.
28409         (XCSTR): Likewise.
28410         (XCEXP): Likewise.
28411         (XCVEC): Likewise.
28412         (XCMODE): Likewise.
28413         (XCBITMAP): Likewise.
28414         (XCTREE): Likewise.
28415         (XCBBDEF): Likewise.
28416         (XCADVFLAGS): Likewise.
28417         (XCCSELIB): Likewise.
28418         (XC2EXP): Likewise.
28419         (INSN_UID): Likewise.
28420         (PREV_INSN): Likewise.
28421         (PATTERN): Likewise.
28422         (INSN_CODE): Likewise.
28423         (PUT_REG_NOTE_KIND): Likewise.
28424         (CODE_LABEL_NUMBER): Likewise.
28425         (NOTE_SOURCE_FILE): Likewise.
28426         (NOTE_BLOCK): Likewise.
28427         (NOTE_EH_HANDLER): Likewise.
28428         (NOTE_RANGE_INFO): Likewise.
28429         (NOTE_LIVE_INFO): Likewise.
28430         (NOTE_BASIC_BLOCK): Likewise.
28431         (NOTE_EXPECTED_VALUE): Likewise.
28432         (NOTE_LINE_NUMBER): Likewise.
28433         (LABEL_NAME): Likewise.
28434         (LABEL_NUSES): Likewise.
28435         (LABEL_ALTERNATE_NAME): Likewise.
28436         (ADDRESSOF_DECL): Likewise.
28437         (JUMP_LABEL): Likewise.
28438         (LABEL_NEXTREF): Likewise.
28439         (REGNO): Likewise.
28440         (ORIGINAL_REGNO: Likewise.
28441         (HARD_REGISTER_NUM_P): Add parenthesis.
28442         (SUBREG_REG): Whitespace.
28443         (SUBREG_BYTE): Likewise.
28444         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
28445         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
28446         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
28447         (ASM_OPERANDS_INPUT_VEC): Likewise.
28448         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
28449         (ASM_OPERANDS_INPUT): Likewise.
28450         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
28451         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
28452         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
28453         (ASM_OPERANDS_INPUT_MODE): Likewise.
28454         (ASM_OPERANDS_SOURCE_FILE): Likewise.
28455         (ASM_OPERANDS_SOURCE_LINE): Likewise.
28456         (MEM_SET_IN_STRUCT_P): Minor reformat.
28457         (TRAP_CONDITION): Whitespace.
28458         (TRAP_CODE): Likewise.
28459         (COND_EXEC_TEST): Likewise.
28460         (COND_EXEC_CODE): Likewise.
28461         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
28462         (PHI_NODE_P): Add parenthesis.
28463         (plus_constant): Whitespace and add parenthesis.
28464
28465 2002-01-03  Kazu Hirata  <kazu@hxi.com>
28466
28467         * config/avr/avr.c: Fix comment typos.
28468         * config/c4x/c4x.md: Likewise.
28469         * config/dsp16xx/dsp16xx.h: Likewise.
28470         * config/dsp16xx/dsp16xx.md: Likewise.
28471         * config/i386/i386.md: Likewise.
28472         * config/ia64/ia64.c: Likewise.
28473         * config/m32r/m32r.h: Likewise.
28474         * config/m68hc11/m68hc11.md: Likewise.
28475         * config/mmix/mmix.c: Likewise.
28476         * config/mn10200/mn10200.c: Likewise.
28477         * config/romp/romp.c: Likewise.
28478         * config/sh/sh.c: Likewise.
28479         * config/stormy16/stormy16.c: Likewise.
28480         * config/stormy16/stormy16.h: Likewise.
28481         * config/stormy16/stormy16.md: Likewise.
28482
28483 2002-01-03  Graham Stott  <grahams@redhat.com>
28484
28485         * loop.h: Update copyright date.
28486         (LOOP_MOVABLES): Fix typo.
28487         (LOOP_REGS): Likewise.
28488         (LOOP_IVS): Likewise.
28489
28490 2002-01-03  Graham Stott  <grahams@redhat.com>
28491
28492         * cppinit.c: Update copyright date.
28493         Don't include output.h
28494         * Makefile.in: Update copyright date.
28495         Update dependency.
28496
28497 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
28498
28499         PR c/5226
28500         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
28501         (-pthread) Add to RS/6000 options.
28502
28503 2002-01-02  Kazu Hirata  <kazu@hxi.com>
28504
28505         * except.c: Fix comment typos.
28506         * loop.c: Likewise.
28507         * varasm.c: Likewise.
28508         * doc/tm.texi: Fix a typo.
28509
28510 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
28511
28512         * c-typeck.c (output_init_element): Allow initializing static storage
28513         duration objects with compound literals.
28514
28515 2002-01-02  Richard Henderson  <rth@redhat.com>
28516
28517         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
28518         after abusing it.
28519
28520 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28521
28522         * gcc.c (default_compilers): Const-ify.
28523         * mips-tdump.c (stab_names): Likewise.
28524         * mips-tfile.c (map_coff_types, map_coff_storage,
28525         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
28526         pseudo_ops_t, pseudo_ops): Likewise.
28527         * protoize.c (default_include): Likewise
28528
28529         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
28530         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
28531         Add array size in declaration.
28532         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
28533         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
28534         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
28535         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
28536         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
28537         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
28538         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
28539         emtens, make_nan): Const-ify.
28540         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
28541         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
28542
28543 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
28544
28545         * config.gcc (ia64-*-*): Set extra_headers.
28546         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
28547         * config/alpha/t-osf: Remove.
28548         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
28549
28550 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
28551
28552         * config/rs6000/t-aix43: Revert previous change.
28553
28554 2002-01-02  Jason Merrill  <jason@redhat.com>
28555
28556         * c-decl.c (c_expand_body): Call outlining_inline_function when
28557         emitting an inline function out of line.
28558
28559 2002-01-02  Richard Henderson  <rth@redhat.com>
28560
28561         * dwarf2out.c (limbo_die_node): Add created_for member.
28562         (new_die): New argument created_for.  Update all callers.
28563         (mark_limbo_die_list): New.
28564         (dwarf2out_init): Register limbo_die_list as a root.
28565         (dwarf2out_finish): Force insert limbo dies into their function
28566         context.
28567
28568 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
28569
28570         PR c++/5089
28571         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
28572
28573 2002-01-02  Kazu Hirata  <kazu@hxi.com>
28574
28575         * config/h8300/fixunssfsi.c: Update copyright.
28576         Fix comment typos.
28577         Fix formatting.
28578         * config/h8300/h8300.c: Update copyright.
28579         Eliminate warnings.
28580
28581 2002-01-02  Kazu Hirata  <kazu@hxi.com>
28582
28583         * config/romp/romp.c: Fix comment formatting.
28584         * config/romp/romp.h: Likewise.
28585         * config/romp/romp.md: Likewise.
28586         * config/s390/s390.c: Likewise.
28587         * config/stormy16/stormy16.c: Likewise.
28588         * config/stormy16/stormy16.h: Likewise.
28589
28590 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
28591
28592         * c-common.h (genrtl_expr_stmt_value): Declare.
28593         * c-semantics.c (genrtl_goto_stmt): Redirect to...
28594         (genrtl_goto_stmt_value): ... this new function.  Pass new
28595         argument down to expand_expr_stmt_value, taking
28596         TREE_ADDRESSABLE into account.
28597         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
28598         STMT_EXPR as addressable, i.e., one whose result we want.
28599         * expr.c (expand_expr): Don't save expression statement value
28600         of labeled_blocks or loop_exprs.
28601         * stmt.c (expand_expr_stmt): Redirect to...
28602         (expand_expr_stmt_value): ... this new function.  Use new
28603         argument to tell whether to save expression value.
28604         (expand_end_stmt_expr): Reset last_expr_type and
28605         last_expr_value if we don't have either.
28606         * tree-inline.c (declare_return_variable): Mark its use
28607         statement as addressable.
28608         * tree.h: Document new use of TREE_ADDRESSABLE.
28609         (expand_expr_stmt_value): Declare.
28610
28611 2002-01-01  Tom Rix  <trix@redhat.com>
28612
28613         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
28614         rs6000_emit_allocate_stack.
28615
28616 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
28617
28618         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
28619         ${srcdir}/ginclude/ to every entry in extra_headers.
28620         * configure: Regenerate.
28621         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
28622         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
28623         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
28624         * ginclude/proto.h: Rename to config/convex/proto.h.
28625
28626 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28627
28628         * attribs.c (handle_vector_size_attribute): Use host_integerp
28629         and tree_int_cst; remove warnings.
28630         * caller-save.c (insert_restore): Add cast to get rid of warning.
28631         (insert_save): Likewise.
28632         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
28633         * regmove.c (find_matches): Add temporary var to kill a warning.
28634
28635 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
28636
28637         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
28638         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
28639         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
28640         (vms-dwarf2eh.o): Add Makefile rule.
28641         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
28642         * config/alpha/vms-dwarf2eh.asm: New file.
28643
28644         * gcc.c (delete_if_ordinary): Delete all versions.
28645
28646 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
28647
28648         * config/mmix/mmix.md: Update FIXME to not mention
28649         define_constants.
28650         (MMIX_rJ_REGNUM): New define_constants constant.
28651         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
28652         "*movdicc_real"): Adjust contraints formatting.
28653         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
28654         for branch prediction.
28655         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
28656         output template.
28657         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
28658         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
28659         number.  Delete related FIXMEs.
28660         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
28661         from number to MMIX_rJ_REGNUM.
28662         (TARGET_MASK_BRANCH_PREDICT): New.
28663         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
28664         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
28665         value.  Add -mbranch-predict and -mno-branch-predict.
28666         (TARGET_VERSION): Drop date.
28667         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
28668         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
28669         for finding out global symbols.
28670         (mmix_asm_output_labelref): Revert condition for global symbol.
28671         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
28672         (mmix_print_operand_punct_valid_p): A '+' is valid.
28673
28674 See ChangeLog.6 for earlier changes.