013ac5c422ce44d1581b70310b7e02ae7af3b32d
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2002-07-01  Roger Sayle  <roger@eyesopen.com>
2
3         PR opt/4046
4         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
5         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
6         B are truth values.
7
8 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9
10         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
11
12 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
13
14         * README.Portability (Function prototypes): Give an example of
15         declaring and defining a function with no arguments.
16
17         * README.Portability (Function prototypes): Document new
18         variable-argument function macros.
19
20 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
21
22         * sh.c (langhooks.h): Include.
23         (sh_init_builtins, sh_media_init_builtins): New functions.
24         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
25         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
26         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
27         (builtin_description): New struct tag.
28         (signature_args, bdesc): New arrays.
29         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
30         (print_operand): Add 'N' modifier.
31         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
32         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
33         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
34         (CONST_COSTS): Add special case for SHmedia AND.
35         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
36         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
37         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
38         target_operand can also be const or unspec.
39         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
40         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
41         (attribute type): Add new types.
42         (anddi3): Add splitter.
43         (movdi_const_16bit+1): Add code to handle vector constants and
44         bitmasks efficiently.
45         (shori_media): Have generator function made.
46         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
47         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
48         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
49         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
50         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
51         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
52         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
53         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
54         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
55         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
56         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
57         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
58         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
59         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
60         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
61         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
62         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
63         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
64         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
65         (ftrv): Likewise.
66
67         (fpu_switch+1, fpu_switch+2): Remove constraint.
68
69 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
70
71         * tree.c (build_function_type_list): Update function comment.
72         Rename first argument to return_type.
73
74 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
75
76         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
77         tradcif.y and related files.
78
79 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
80
81         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
82
83 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
84
85         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
86
87 2002-06-30  Devang Patel  <dpatel@apple.com>
88
89         * objc/objc-act.c (finish_file): Avoid finish_objc() if
90         -fsyntax-only.
91
92 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
93                           Frank Ch. Eigler  <fche@redhat.com>
94                           Matthew Green  <mrg@redhat.com>
95                           Richard Henderson <rtl@redhat.com>
96                           Dave Hudson  <dave.hudson@ubicom.com>
97                           Jeff Johnston  <jjohnstn@redhat.com>
98                           Alan Lehotsky <apl@alum.mit.edu>
99                           Bernd Schmidt  <bernds@redhat.com>
100                           Graham Stott  <grahams@redhat.com>
101                           
102         * doc/extend.texi: Add ip2k port to description of attribute
103         naked.
104         * doc/install.texi (Specific): Add ip2k description.
105         * doc/install-old.texi (Configurations): Add ip2k to possible
106         cpu types.
107         * doc/md.texi: Document ip2k constraints.
108         * config/ip2k/crt0.S: New file.
109         * config/ip2k/ip2k-protos.h: New file.
110         * config/ip2k/ip2k.c: New file.
111         * config/ip2k/ip2k.h: New file.
112         * config/ip2k/ip2k.md: New file.
113         * config/ip2k/libgcc.S: New file.
114         * config/ip2k/t-ip2k: New file.
115
116 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
117
118         * config/mmix/mmix.md ("return"): New pattern.
119         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
120         (TARGET_USE_RETURN_INSN): New macros.
121         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
122         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
123         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
124         (MMIX_POP_ARGUMENT): New macro.
125         (mmix_target_asm_function_prologue): When no epilogue is executed,
126         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
127         (mmix_print_operand) <case '.'>: New case.
128         (mmix_print_operand_punct_valid_p): Match '.'.
129         (mmix_use_simple_return): New function.
130         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
131         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
132         -msingle-exit, -mno-single-exit.
133         (MMIX Options): Ditto.
134
135 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
136
137         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
138
139 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
140
141         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
142
143 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
144
145         * unroll.c (loop_iterations): Handle EQ loops.
146
147 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
148
149         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
150         constraint in define_expand, not splitter.
151         Formatting.
152
153 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
154
155         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
156         build_function_type_list instead of build_function_type.
157
158         * config/ia64/ia64.c (ia64_init_builtins): Same.
159
160         * config/alpha/alpha.c (alpha_init_builtins): Same.
161
162         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
163
164         * config/arm/arm.c (arm_init_builtins): Same.
165
166         * tree.h: Add build_function_type_list prototype.
167
168         * tree.c (build_function_type_list): New.
169
170 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
171
172         * collect2.c (scan_prog_file): Fix typo in message.
173
174 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
175
176         * fold-cont.c: Remove unused CHARMASK.
177
178 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
179
180         PR preprocessor/7150
181         * cppmain.c (scan_translation_unit_trad): Simplify.
182         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
183
184 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
185
186         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
187         Don't use CPP_PREDEFINES.
188         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
189         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
190         * config/i386/djgpp.h, config/i386/i386-coff.h,
191         config/i386/i386-interix.h, config/i386/i386-interix3.h,
192         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
193         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
194         config/i386/uwin.h: Similarly.
195
196 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
197
198         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
199         flag_inline_trees to enable inlining.
200
201 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
202
203         * configure.in (gcc_gxx_include_dir):  Change to match versioned
204         C++ headers if --enable-version-specific-runtime-libs is used.
205         * configure:  Regenerate.
206
207 2002-06-28  Jan Hubicka  <jh@suse.cz>
208
209         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
210
211 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
212
213         * combine.c (combine_simplify_rtx): Pass the mode of the
214         shift count, not the shift operation when trying to simplify
215         a shift on a SHIFT_COUNT_TRUNCATED target.
216
217 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
218
219         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
220         avoid the auto increment addressing modes.
221         ("*subsi3"): Likewise.
222         (split for add/sub on address): For 68HC12 push the value on 
223         the stack and do the operation with a pop.
224
225 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
226
227         * cpplib.c (_cpp_handle_directive): Move #define-specific
228         code to the #define handler...
229         (do_define): ...here.
230         (lex_macro_node): No longer a need to check for comments here.
231
232 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
233
234         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
235         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
236         Declare.
237         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
238         do not reorder basic blocks at the end when optimizing for size.
239
240 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
241
242         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
243         (m68hc11_make_autoinc_notes): New function.
244         (m68hc11_split_move): Be very cautious when spliting a move with
245         auto increment/decrement modes because this may result in incompatible
246         directions; add REG_INC notes to the resulting insn for CSE reg.
247
248 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
249
250         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
251         can be a valid address.
252
253 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
254
255         * config/rs6000/rs6000.c: Remove unusued variables from last
256         patch.
257
258 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
259
260         Revert:
261         * config/rs6000/rs6000.c (rs6000_override_options): Move
262         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
263
264 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
265
266         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
267         lvx/stv/dst builtins...
268         (altivec_expand_ld_builtin): ...to here.
269         (altivec_expand_st_builtin): ...here.
270         (altivec_expand_dst_builtin): ...and here (respectively).
271
272 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
273
274         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
275
276 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
277
278         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
279         subregs.
280         * recog.c (general_operand, register_operand): Disallow them.
281
282 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
283
284         PR preprocessor/7138
285         * cpplib.c (_cpp_handle_directive): Do traditional
286         preparation after setting state.angled_headers.
287         * cpptrad.c (scan_out_logical_line): Fix potential
288         quote bug.
289
290 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
291
292         * config/rs6000/rs6000.c (rs6000_override_options): Move
293         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
294
295 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
296
297         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
298         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
299         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
300
301 2002-06-27  Roger Sayle  <roger@eyesopen.com>
302
303         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
304         * config/stormy16/stormy16.h: Likewise.
305
306         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
307         with #define.
308
309 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
310
311         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
312         Hitachi entry.  Make punctuation more consistent.
313
314 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
315
316         * doc/install.texi: Change ` bit' to `-bit'.
317         * doc/md.texi: Change `-bits' to `-bit'.
318         * doc/tm.texi: Change `-bits' to ` bits'.
319
320 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
321
322         * gcse.c (hoist_code): Rewrite to only get list of dominated
323         blocks once per BB. Also fix reversed test (by removing need for 
324         the test at all).
325
326 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
327
328         * cpphash.h (_cpp_set_trad_context): Remove.
329         * cpplib.c (prepare_directive_trad): Do nothing for #define.
330         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
331         * cpptrad.c: Update comments.
332         (_cpp_read_logical_line_trad): Let scan_logical_line handle
333         updating the current context.
334         (scan_logical_line): Update the current context.
335         (_cpp_create_trad_definition): Similarly.
336         (_cpp_set_trad_context): Remove.
337
338 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
339
340         PR preprocessor/7070
341         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
342
343 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
344
345         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
346         config/xtensa/xtensa.c (xtensa_return_addr): New function.
347         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
348         config/xtensa/xtensa.md (fix_return_addr): New pattern.
349
350 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
351
352         * mips.c (coprocessor_operand, coprocessor2_operand,
353         symbolic_operand): Move prototypes from here...
354         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
355         symbolic_operand): ...to here.
356
357 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
358
359         * config/sh/crt1.asm: remove _stack label definition
360         and sentinel value.
361
362 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
363
364         * varasm.c: Include real.h before output.h.
365
366 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
367
368         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
369         check for TARGET_ALTIVEC.
370
371 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
372
373         * config.gcc (vax-*-vms*): Make obselete.
374
375 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
376
377         * gcc.c (warn_std): Delete.
378
379 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
380
381         * doc/extend.texi: Fix formatting of last checkin.
382
383 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
384
385         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
386         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
387
388 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
389
390         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
391         discrepancies from motorola's documentation.
392
393 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
394
395         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
396         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
397
398         * config/sh/lib1funcs.asm (udivdi3): Make first divide step 
399         produce a 32 bit result before normalization, then normalize with a
400         left shift.  Compute approximative error of 2nd reciprocal
401         approximation in 2's complement.  Fix mask generation from upper
402         longword of second divide stage result.
403         For large divisor, fix shift count used to truncate first stage
404         divide result; make decision if to adjust upwards based on comparison
405         of higher parts of normalized values.
406         (udivdi): Likewise.  Undo normalization of result for large divisor
407         case.
408
409 2002-06-25  David S. Miller  <davem@redhat.com>
410
411         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
412
413 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
414
415         * cpplib.c (do_include_common): Revert to correct line number
416         if -traditional.
417         * cpptrad.c (scan_out_logical_line): Treat null directive as
418         white space.  Invlidate MI optimization for non-whitespace
419         text outside a directive.
420
421 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
422
423         * Makefile.in (SHELL): Set to @SHELL@.
424         * fixinc/Makefile.in (SHELL): Likewise.
425
426         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
427         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
428         initialization.
429
430 2002-06-24  Jeff Law <law@redhat.com>
431
432         * flow.c (propagate_one_insn): When removing an insn
433         with a REG_LIBCALL note but not the entire libcall sequence,
434         delete the associated REG_RETVAL note.
435
436 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
437
438         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
439         (udivsi3): Likewise.  Rewrite SH1 implementation.
440         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
441         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
442         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
443         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
444         (_moddi3): Likewise.
445
446         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
447
448         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
449         arguments into account for stack_regs.
450
451 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
452
453         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
454         in examples.
455         
456 2002-06-24  Art Haas  <ahaas@neosoft.com>
457
458         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
459         * doc/tm.texi (Frame Layout): Likewise.
460
461 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
462         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
463         Set float_format to i128.
464
465 2002-06-24  David S. Miller  <davem@redhat.com>
466
467         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
468         32-bit ABI libfuncs to NULL.
469
470         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
471         strings instead of quoted strings for code blocks.
472
473         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
474         optabs if op1 is const0_rtx.
475
476         * Makefile.in (GTFILES): Add basic-block.h
477         * basic-block.h (label_value_list, tail_recursion_label_list):
478         Mark with GTY.
479
480 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
481
482         * cpptrad.c (scan_out_logical_line): Check recursing only when
483         we know we have a macro invocation in the function-like case.
484         Only call _cpp_handle_directive if we know we have a good
485         directive, or we want to reject a bad directive.
486
487 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
488
489         * doloop.c (doloop_valid_p): Correct comment.
490         (doloop_modify_runtime <abs_inc != 1>): Simplify.
491         (doloop_modify_runtime <do-while>): Don't emit code when NE.
492
493 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
494
495         * config.gcc: Add support for ip2k.
496
497 2002-06-23  Jan Hubicka  <jh@suse.cz>
498             Jeff Law <law@redhat.com>
499
500         * function.h (struct emit_status): Clarify potential contents
501         of regno_reg_rtx array.
502         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
503         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
504
505         * reg-stack.c (convert_regs_exit): Push the registers to stack in
506         proper order.
507
508 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
509
510         PR middle-end/6963
511         * function.c (assign_stack_temp_for_type): Do not return
512         the same MEM rtx for multiple uses of a stack slot.
513
514 2002-06-22  David S. Miller  <davem@redhat.com>
515
516         PR target/6841 target/6770 target/6719
517         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
518         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
519         GENERAL_OR_EXTRA_FP_REGS.
520
521 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
522
523         * cpptrad.c (struct fun_macro): Add line number.
524         (scan_out_logical_line): Set it, and use it to report unterminated
525         macro invocations.
526
527 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
528
529         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
530         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
531         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
532         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
533         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
534         REGEXP_ONEOF, check_name): Const-ify.
535
536 2002-06-21  Matt Thomas  <matt@3am-software.com>
537
538         * config/vax/vax.c (vax_output_function_prologue): Use
539         REGISTER_PREFIX.  Fix some indentation.
540         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
541         (VAX_ISTREAM_SYNC): Define.
542         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
543         i-stream sync to the end.
544         (REGISTER_PREFIX): Define as "".
545         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
546
547 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
548
549         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
550         configurations.
551
552 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
553
554         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
555         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
556
557 2002-06-21  Matt Thomas  <matt@3am-software.com>
558
559         * config/vax/netbsd.h: Adjust a comment.
560         (TARGET_DEFAULT): Redefine as 0.
561
562 2002-06-21  Richard Henderson  <rth@redhat.com>
563
564         * bb-reorder.c (make_reorder_chain_1): Search harder for the
565         vax casesi fallthru edge.
566         * cfglayout.c (cleanup_unconditional_jumps): Use
567         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
568         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
569         block after ADDR_VEC.
570
571 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
572
573         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
574
575 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
576
577         * cpperror.c (cpp_error): For traditional CPP, default to
578         diagnostics on pfile->line.
579         * cpplib.c (prepare_directive_trad): Set line number for
580         diagnostics for #define too.
581         * cpptrad.c (skip_whitespace): Skip comments properly.
582         (_cpp_expansions_different_trad): Initialize quote2.
583
584 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
585
586         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
587         * config/mmix/mmix.h: Ditto.
588         * config/mmix/mmix-protos.h: Ditto.
589         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
590         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
591         comment.  Comment extra CC modes.
592
593 2002-06-20 Jan Hubicka  <jh@suse.cz>
594
595         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
596         (scope_to_insns_finalize): Do not call set_block_levels; handle
597         sequences.
598         (choose_inner_scope): New.
599         * rtl.h (choose_inner_scope): Declare.
600
601 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
602
603         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
604         HOST_WIDE_INT.
605         * pa.c (pa_asm_output_mi_thunk): Likewise.
606         (n_deferred_plabels): Change type to size_t.
607         (output_deferred_plabels, output_call): Use size_t instead of int.
608
609 2002-06-20  Richard Henderson  <rth@redhat.com>
610
611         PR target/4041
612         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
613         pattern and adjust constraints for coldfire.
614
615 2002-06-20  Richard Henderson  <rth@redhat.com>
616
617         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
618
619 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
620
621         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
622
623 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
624
625         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
626
627 2002-06-20  Stan Shebs  <shebs@apple.com>
628
629         * dominance.c: Include errors.h instead of error.h.
630
631 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
632
633         * cppexp.c (cpp_interpret_integer): Don't force traditional
634         numbers to be unsigned.
635         * cpplib.c (prepare_directive_trad): Set line number for
636         diagnostics.
637         * cpptrad.c (scan_out_logical_line): Continue scanning out
638         at start of buffer.
639         * gcc.c (trad_capable_cpp): Use cc1 always.
640
641 2002-06-20  Jeffrey Law  <law@redhat.com>
642
643         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
644         elimination in leaf functions by default yet.
645
646 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
647
648         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
649
650 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
651
652         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
653         multilibs.
654         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
655         Fixes PR other/6836.
656
657 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
658                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
659
660         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
661
662         * basic-block.h: Do not include et-forest.h
663         (dominance_info): Declare as struct dominance-info.
664         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
665         deleting block.
666         * dominance.c (struct dominance_info): Define.
667         (BB_NODE, SET_BB_NODE): New macros.
668         (bb_hash_func, bb_eq_func): Kill.
669         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
670         nearest_common_dominator, dominated_by_p, recount_dominator,
671         add_to_dominance_info, delete_from_dominance_info): update for new
672         representation.
673         (get_dominated_by, redirect_immediate_dominators): Rewrite using
674         enumerate_sons.
675         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
676         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
677         structure.
678
679         * et-forest.h: Update copyright; revamp all function to operate on
680         nodes
681         (et_forest_value): Kill.
682         (et_forest_enumerate_sons, et_forest_node_value): New.
683         * et-forest.c: Update copyright.
684         * et-forest.h: Update copyright; revamp all function to operate on
685         nodes
686         (et_forest_value): Kill.
687         (et_forest_enumerate_sons, et_forest_node_value): New.
688
689         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
690
691         * basic-block.h: Inlude et-forest.h
692         (basic_block_def): Kill dominator.
693         (dominance_info): New type.
694         (loops): Use dominace_info.
695         (dominace handling functions): Take dominace_info as argument
696         instead of bitmaps.
697         (create_preheader): Likewise.
698         * cfg.c (entry_exit_blocks): Kill dominator.
699         (dump_flow_info): Do not dump dominators.
700         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
701         dominators.
702         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
703         (flow_loops_pre_header_scan, make_forwarder_block,
704         canonicale_loop_headers, flow_loops_find): Likewise.
705         * dominance.c: Include error.h
706         (idoms_to_doms): Kill.
707         (bb_hash_func, bb_eq_func): New static functions.
708         (debug_dominace_info): New global function.
709         (calculate_dominance_info): Use new et forest structure.
710         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
711         get_dominated_by, redirect_immediate_dominators,
712         nearest_common_dominator, dominated_by_p, verify_dominators,
713         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
714         delete_from_dominance_info): New global functions.
715         * gcse.c (domnators): CHange to dominance_info.
716         (alloc_hoist_mem): Do not alloc dominators
717         (free_code_hoist_mem): Use free_dominance_info.
718         (compute_code_hoist_data): Use dominance_info.
719         (hoist_code): Likewise.
720         * ifcvt.c (post_dominators): Likewise.
721         (find_if_case_2, if_convert): Likewise.
722         * predict.c (process_note_predictions, process_note_prediction,
723         estimate-probability): Likewise.
724         * sched-rgn.c (find_rgns, init_regions): Likewise.
725         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
726         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
727         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
728         find_evaluations, convert_to_ssa): Likewise.
729         * ssa.h (compute_dominance_frontiers): Likewise.
730
731         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
732
733         * Makefile.in (et-forest.c): Add.
734         * et-forest.c: New file.
735         * at-forest.h: New file.
736
737 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
738
739         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
740         array size calculation.
741         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
742         Likewise.
743
744         * diagnostic.c (diagnostic_kind_text): Const-ify.
745         * gengtype.c (lang_names): Likewise.
746
747 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
748
749         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
750
751 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
752
753         * config/sol2.h: New file.
754         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
755         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
756         (sparc-*-chorusos*): Likewise.
757         (sparc-*-elf*): Likewise.
758         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
759         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
760         (sparc-hal-solaris2*): Likewise.
761         (sparc-*-solaris2*): Likewise.
762         (sparclite-*-elf*): Likewise.
763         (sparc86x-*-elf*): Likewise.
764         (sparc64-*-elf*): Likewise.
765
766         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
767         config/sol2.h.
768         (ASM_SPEC): Override config/sol2.h version for now.
769         Removed obsolete GAS_REJECTS_MINUS_S variant.
770         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
771         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
772         (TARGET_OS_CPP_BUILTINS): Likewise.
773         Assert system=unix.
774         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
775         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
776         config/sol2.h.
777         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
778         (ASM_CPU_SPEC): Define.
779         (SUBTARGET_EXTRA_SPECS): Define.
780
781         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
782         in config/sparc/sol2.h.
783         (ASM_SPEC): Moved to config/sol2.h.
784         (CPP_CPU_SPEC): Simplified.
785         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
786         consistency.
787         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
788         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
789         STARTFILE_ARCH64_SPEC.
790         (STARTFILE_SPEC): Moved to config/sol2.h
791         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
792         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
793         (LINK_ARCH64_SPEC): Simplified.
794         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
795         (LINK_SPEC): Moved to config/sol2.h
796
797         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
798         config/sol2.h.
799         Use BITS_PER_WORD for size.
800         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
801         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
802         (CPP_PREDEFINES): Removed OS-specific part handled by
803         TARGET_OS_CPP_BUILTINS.
804         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
805         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
806         (ASM_SPEC): Moved to config/sol2.h.
807         (PREFERRED_DEBUGGING_TYPE): Likewise.
808         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
809         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
810         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
811         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
812
813         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
814         * config/i386/sol2gas.h: Removed.
815
816 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
817
818         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
819
820 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
821         
822         * gcc.c-torture/execute/simd-1.c: New.
823
824         * gcc.dg/simd-1.c: New.
825
826         * doc/extend.texi (Vector Extensions): Document that we can
827         specify simd types not specifically supported by the hardware.
828         Document that simd types can be used as function arguments.
829         Document that signness does make a difference in SIMD types.
830         Misc cleanups and revisions to the vector extensions section.
831
832         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
833         constants.
834
835         * expr.c (vector_mode_valid_p): New.
836
837         * expr.h: Add vector_mode_valid_p.
838
839         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
840
841         * c-common.c (type_for_mode): Always build vector nodes regardless
842         of VECTOR_MODE_SUPPORTED_P.
843         (handle_mode_attribute): Error if we can't emulate a nonexisting
844         vector mode.
845         (handle_vector_size_attribute): Same.
846
847         * optabs.c (expand_binop): Open-code vector operations.
848         (expand_unop): Open-code vector unops.
849         (expand_vector_binop): New.
850         (expand_vector_unop): New.
851         
852         * c-typeck.c (build_binary_op): Allow vectors in binops.
853         Allow vectors in conditional operatiors.
854         (build_unary_op): Allow vectors in unary minus.
855
856         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
857         TARGET_ALTIVEC.
858
859 2002-05-20  Richard Henderson  <rth@redhat.com>
860
861         * c-common.c (c_common_get_alias_set): Correctly handle characters.
862         Rearrange order of expressions; don't handle vectors here.
863         * alias.c (get_alias_set): Let vectors match their components.
864
865 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
866
867         * config/mips/mips.c (mips_emit_prefetch): Use hints which
868         match desired locality.
869
870 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
871
872         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
873         (h8300_insert_attributes): New.
874
875 2002-06-19  Akim Demaille  <akim@epita.fr>
876
877         * c-parse.in (initelt: identifier ':' initval): Add an empty
878         action to fix a type clash.
879         (aliasdecl, classdef): Add the missing closing `;'.
880         Whitespace changes.
881         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
882         $$ = $1 type clashes.
883
884 2002-06-19  Eric Christopher  <echristo@redhat.com>
885
886         * config/mips/mips.c (symbol_operand): New function.
887         (mips_emit_prefetch): Ditto.
888         * config/mips/mips-protos.h: Define.
889         * config/mips/mips.h (ISA_HAS_PREFETCH): Define.
890         (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
891         (LEGITIMIZE_ADDRESS): Ditto.
892         * config/mips/mips.md (prefetch, prefetch_si_address,
893         prefetch_si, prefetch_di_address, prefetch_di): New patterns.
894
895 2002-06-19  Eric Christopher  <echristo@redhat.com>
896
897         * config/fp-bit.h: Add unordered defines for gofast.
898
899 2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>
900
901         * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
902         DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
903         DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
904         REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
905         checking and without it.
906         (decl_name, decl_mode_check_failed, regexp_name,
907         regexp_mode_check_failed): New functions.
908         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
909         gen_presence_set, gen_absence_set, gen_automaton,
910         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
911         gen_regexp_sequence, gen_reserv, gen_insn_reserv,
912         automaton_decl_hash, automaton_decl_eq_p): Use the macros.
913         (find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
914         (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
915         (find_insn_decl): Ditto.  Set up mode of work_insn_decl.
916         (decl_hash, decl_eq_p): Use the macros.
917         (find_decl): Ditto.  Set up mode of work_decl.
918         (process_excls, process_presence_absence, process_decls,
919         check_automaton_usage, process_regexp, process_regexp_decls,
920         check_usage, loop_in_regexp, check_loops_in_regexps,
921         process_regexp_cycles, add_advance_cycle_insn_decl,
922         initiate_states, initiate_excl_sets,
923         initiate_presence_absence_sets, copy_insn_regexp, transform_1,
924         transform_2): Use the macros.
925         (transform_3): Ditto.  Check mode before making transformations of
926         ALLOF.
927         (regexp_transform_func, transform_insn_regexps,
928         process_unit_to_form_the_same_automaton_unit_lists,
929         form_the_same_automaton_unit_lists_from_regexp,
930         form_the_same_automaton_unit_lists,
931         process_seq_for_forming_states, process_alts_for_forming_states,
932         create_alt_states, form_ainsn_with_same_reservs, make_automaton,
933         form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
934         estimate_one_automaton_bound, compare_max_occ_cycle_nums,
935         units_to_automata_heuristic_distr, create_ainsns,
936         units_to_automata_distr, create_automata): Use the macros.
937         (form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
938         (longest_path_length, min_issue_delay_pass_states,
939         output_dead_lock_vect, output_tables, output_insn_code_cases,
940         output_internal_insn_latency_func, output_print_reservation_func,
941         output_description, output_automaton_units, generate): Use the
942         macros.
943         (make_insn_alts_attr): Ditto.  Check case when there are not
944         alternatives in the reservation.
945         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
946         make_bypass_attr, form_important_insn_automata_lists,
947         expand_automata): Use the macros.
948
949 2002-06-20  Tim Josling  <tej@melbpc.org.au>
950
951         * Makefile.in: Clean up code to check for misspecified languages
952         in enable-languages.
953
954 2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>
955
956         * cpptrad.c (_cpp_replacement_text_len): initialize len.
957
958 2002-06-19  Jason Merrill  <jason@redhat.com>
959
960         * Makefile.in (unstrap, restrap): New targets.
961         (bootstrap): Mention restrap.
962
963 2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>
964
965         * except.c (ehl_free): Remove.
966
967         * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
968         builtin_define and builtin_define_std.
969
970 2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
971
972         * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
973         (sCOND): Restrict operand class so that gcc knows how to reload them.
974         (bitfield_set): Merge two unnamed insn's using alternatives.
975         (call_value): Remove constraint on unused uperand.
976         (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
977         (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.
978
979         * longlong.h (count_trailing_zeros): Escape newline and beautify.
980
981 2002-06-19  Mark Mitchell  <mark@codesourcery.com>
982
983         * Makefile.in (QMTEST_DIR): Simplify definition.
984
985 2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
986
987         * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
988         #define.
989
990 2002-06-19  Neil Booth  <neil@daikokuya.co.uk>
991
992         * cpphash.h (struct cpp_reader): Make date and time strings.
993         (_cpp_builtin_macro_text, _cpp_copy_replacement_text,
994         _cpp_replacement_text_len): New.
995         * cppinit.c (cpp_create_reader): Update.
996         (init_builtins): Register appropriate builtins for -traditional-cpp.
997         * cppmacro.c (new_number_token): Remove.
998         (_cpp_builtin_macro_text): New.
999         (builtin_macro): Use it.
1000         (cpp_macro_definition): Update to handle traditional macros.
1001         * cppmain.c (cb_line_change): Don't do column positioning for
1002         traditional output.
1003         * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
1004         state ls_fun_close.
1005         (skip_whitespace): Fix.
1006         (maybe_start_funlike): Don't set state.parsing_args.
1007         (scan_out_logical_line): Remove duplicate error.  Use lex_state
1008         rather than state.parsing_args.
1009         (push_replacement_text): Handle builtins.
1010         (_cpp_replacement_text_len, _cpp_copy_replacement_text): New.
1011
1012 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
1013             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1014
1015         * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
1016         attribute __always_inline__.
1017
1018 2002-06-18  Bob Wilson  <bob.wilson@acm.org>
1019
1020         * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
1021         when generating the call to _mcount.
1022         (NO_PROFILE_COUNTERS): Define.
1023
1024 2002-06-18  Richard Henderson  <rth@redhat.com>
1025
1026         * print-rtl.c (print_rtx): Adjust NOTE argument numbers for
1027         2002-06-02 change.
1028
1029 Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
1030
1031         * t-sh (MULTILIB_EXCEPTIONS): Set to ml.
1032         config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
1033         * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
1034         * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.
1035
1036         * sh-protos.h (sh_pr_interrupt): Declare.
1037         * sh.c (sh_pr_interrupt): New function.
1038         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
1039         (sh_hard_regno_rename_ok): Likewise.
1040         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
1041
1042 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
1043
1044         * rtl.def (DEFINE_AUTOMATON): Add description of new options
1045         `time' and `v'.  Fix incorrect description of option `w'.
1046
1047         * doc/md.texi: Ditto.
1048
1049         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
1050         (gen_automata_option): Process the new options.
1051         (transform_2, transform_3): Initialize some variables.
1052         (initiate_automaton_gen): Use the new macros.
1053
1054 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
1055
1056         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
1057         (mips_set_return_address, mips_restore_gp): Declare.
1058         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
1059         (current_frame_info): Remove.
1060         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
1061         * config/mips/mips.c: Remove uses of current_frame_info.
1062         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
1063         (struct machine_function): Add 'frame' and 'insns_len'.
1064         (current_frame_info, zero_frame_info): Remove.
1065         (mips_restore_gp, mips_set_return_address): New.
1066         (mips_initial_elimination_offset): New.
1067         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
1068         (eh_return define_split): Use mips_set_return_address.
1069
1070 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1071
1072         * cpplib.c (dtable): Update.
1073         (end_directive): Decrement expansion prevention count.
1074         Clear state.in_expression.
1075         (prepare_directive_trad): Set state.in_expression.
1076         Increment expansion prevention count.
1077         * cpptrad.c (enum ls): New.
1078         (_cpp_overlay_buffer): Set overlaid_buffer.
1079         (_cpp_remove_overlay): Use overlaid_buffer.
1080         (_cpp_read_logcial_line_trad): Update buffer when it might
1081         have changed.
1082         (scan_out_logical_line): Handle state transitions for assertions
1083         and defined() in #if, and for funlike invocations including the
1084         directive case.  Handle '<' and '>' as a quote mechanism in
1085         #include.  Warn about unterminated macro invocations.
1086         * cpphash.h (struct lexer_state): New member in_expression.
1087         (struct cpp_reader): New member overlaid buffer.
1088
1089 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
1090
1091         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
1092         __always_inline__.
1093
1094 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
1095
1096         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
1097
1098         * doloop.c (doloop_optimize): Extract pattern from insn.
1099
1100 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
1101
1102         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
1103
1104 2002-06-17  Jeff Law <law@redhat.com>
1105
1106         * libgcc2.c: Do not include symcat.h or machmode.h.
1107
1108 2002-06-17  Richard Henderson  <rth@redhat.com>
1109
1110         PR target/6922
1111         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
1112
1113 2002-06-17  Tom Tromey  <tromey@redhat.com>
1114
1115         * dwarfout.c: Include function.h.
1116
1117 2002-06-17  Andreas Schwab  <schwab@suse.de>
1118
1119         * print-rtl.c (print_rtx): Print space before vector, not after.
1120         (debug_rtx): Clear sawclose before printing.
1121         (debug_rtx_list): Print newline after each list element.
1122         (debug_rtx_range): Likewise.
1123
1124 2002-06-17  Richard Henderson  <rth@redhat.com>
1125
1126         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
1127         (current_function_funcdef_no): Similarly.
1128         * function.c (funcdef_no): Similarly.
1129         (prepare_function_start): Set current_function_funcdef_no.
1130         (expand_function_start): Don't set current_function_profile_label_no.
1131         * dwarf2out.h (current_funcdef_number): Remove.
1132         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
1133         current_function_funcdef_no throughout.
1134         * dwarfout.c, vmsdbgout.c: Similarly.
1135         * except.c (sjlj_funcdef_number): Remove.
1136         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
1137         (output_function_exception_table): Likewise.
1138         * final.c (profile_function): Use current_function_funcdef_no
1139         instead of current_function_profile_label_no.
1140
1141 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
1142
1143         * sched-ebb.c (init_ready_list): Check INSN_P first.
1144
1145 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
1146
1147         * sh.md (divsi3): Update way how to find insns in a sequence.
1148
1149         * reload1.c (merge_assigned_reloads): Don't change reloads
1150         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
1151         to RELOAD_OTHER when there are conflicting input reloads.
1152
1153 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
1154
1155         * function.c (epilogue_done): Correctly build a sequence of insns for
1156         a sibcall epilogue.
1157
1158 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
1159
1160         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
1161         #define.
1162
1163         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
1164
1165 2002-06-16  Richard Henderson  <rth@redhat.com>
1166
1167         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
1168         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
1169
1170 2002-06-16  Richard Henderson  <rth@redhat.com>
1171
1172         PR opt/6722
1173         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
1174
1175 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1176
1177         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
1178         * config/i386/i386-aout.h, config/i386/i386elf.h,
1179         config/i386/sysv4.h: Remove CPP_PREDEFINES.
1180         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
1181         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
1182         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
1183         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
1184         CPP_PREDEFINES and part of CPP_SPEC.
1185         * config/i386/sysv4-cpp.h: New.
1186
1187 2002-06-16  Richard Henderson  <rth@redhat.com>
1188
1189         PR c/7030
1190         * dwarf2out.c (modified_type_die): Don't assign the qualified die
1191         to the unqualified type.
1192
1193 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
1194
1195         * i386-protos.h (x86_field_alignment): Declare.
1196         * i386.c (x86_field_alignment): Define.
1197         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
1198         (BIGGEST_FIELD_ALIGNMENT): Kill.
1199
1200 2002-06-16  Richard Henderson  <rth@redhat.com>
1201
1202         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
1203
1204 2002-06-16  Richard Henderson  <rth@redhat.com>
1205
1206         * c-common.c (flag_ms_extensions): Move from c++ front end.
1207         * c-common.h (flag_ms_extensions): Declare.
1208         * c-decl.c (c_decode_option): Add -fms-extensions.
1209         (grokfield): Don't accept anonymous structures in ISO C mode;
1210         accept only unnamed anonymous structures in GNU C mode; accept
1211         Plan 9 extensions in MS mode.
1212         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
1213         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
1214         (extension): Clear flag_iso.
1215         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
1216
1217 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
1218
1219         PR target/7042
1220         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
1221         early if current_function_epilogue_delay_list is non-empty.
1222         * config/cris/cris.md ("return"): Add sanity check asserting that
1223         current_function_epilogue_delay_list is empty.
1224
1225 2002-06-16  Jeff Law <law@redhat.com>
1226
1227         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
1228         sharing of hard registers.
1229
1230         * toplev.c (rest_of_compilation): Remove redundant conditional.
1231
1232         * toplev.c (rest_of_compilation): Perform a simpler, less costly
1233         cleanup of the CFG when not optimizing.
1234
1235 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
1236
1237         * gcc.c (main): Correct startfile_prefix_spec check.
1238
1239 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
1240
1241         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
1242         include both darwin.o and rs6000-c.o.
1243
1244 2002-06-15  Roger Sayle  <roger@eyesopen.com>
1245
1246         * expr.c (compare_from_rtx): Call simplify_relational_operation
1247         on all comparisons, not just those between integer constants,
1248         with the correct (possibly unsigned) comparison code.
1249         (do_compare_rtx_and_jump): Likewise.
1250
1251 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1252
1253         * Makefile.in (tm_defines): New configuration variable.
1254         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
1255         Pass tm_defines in TM_DEFINES.
1256         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
1257         * config.gcc (tm_defines): New configuration variable.
1258         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
1259         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
1260         * configure.in: Substitute tm_defines.
1261         * configure: Rebuilt.
1262         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
1263         * doc/install.texi: Update.
1264         * pa/pa-700.h: Delete file.
1265         * pa/pa-7100.h: Delete file.
1266
1267 2002-06-15  Roger Sayle  <roger@eyesopen.com>
1268
1269         * fold-const.c (comparison_to_compcode): New function to convert
1270         an comparison TREE CODE into a bit-based representation.
1271         (compcode_to_comparison): New function to convert from this bit
1272         based representation back to a comparison TREE CODE.
1273         (fold_truthop): Simplify (x<y) && (x==y) and related composite
1274         comparisons.
1275
1276 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
1277
1278         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
1279
1280         * stor-layout.c (compute_record_mode): Remove check for
1281         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
1282         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
1283         MEMBER_TYPE_FORCES_BLK.
1284
1285         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
1286
1287         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
1288
1289 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
1290
1291         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
1292
1293 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
1294
1295         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
1296         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
1297         * configure, config.in: Regenerate.
1298
1299 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
1300
1301         * loop.c (check_final_value): Use v->always_executed
1302         instead of v->always_computable.
1303         * unroll.c (final_giv_value): Don't calculate the final
1304         value as a function of the biv if the giv is not computed
1305         for every loop iteration.
1306
1307 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
1308
1309         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
1310
1311 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
1312
1313         PR c/6677
1314         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
1315         the truncation down when the target type is signed.
1316         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
1317         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
1318         the conversion if the target type is a smaller type.
1319
1320 2002-06-14  Richard Henderson  <rth@redhat.com>
1321
1322         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
1323         earlier.  Re-factor comparisons vs extrema.
1324
1325 2002-06-14  Richard Henderson  <rth@redhat.com>
1326
1327         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
1328
1329 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1330
1331         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
1332         * sched-deps.c (add_dependence): Likewise.
1333         (group_leader): Likewise.
1334         * sched-rgn.c (init_ready_list): Likewise.
1335         * doc/rtl.texi: Adjust accordingly.
1336
1337 2002-06-13  Jeffrey Law  <law@redhat.com>
1338
1339         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
1340         null pointer checks were eliminated.  Update prototype.
1341         (delete_null_pointer_checks): Similarly.
1342         * rtl.h (delete_null_pointer_checks): Update prototype.
1343         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
1344         delete_null_pointer_checks deletes one or more null
1345         pointer checks.  Do not run cleanup_cfg before gcse, the
1346         CFG is accurate and optimized at that point..
1347
1348         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
1349         of hard registers.
1350
1351 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
1352
1353         * Makefile.in (libgcc.mk): Depend on specs.
1354
1355 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
1356
1357         * sh.md (mulsi3): Update way how to find insns in a sequence.
1358
1359 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
1360
1361         * sh.h: Define HARD_REGNO_RENAME_OK
1362         * sh.c: sh_hard_regno_rename_ok: New. If current function has
1363         interrupt_handler attribute, only registers saved on stack are OK.
1364         * sh-protos.h: Declare sh_hard_regno_rename_ok.
1365
1366 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1367
1368         * config/sh/sh.md (jump): Emit jump insn.
1369         (call_pcrel): Get pattern of the result of gen_call_site.
1370         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
1371
1372 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1373
1374         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
1375         * cpptrad.c: Update comments.
1376         (skip_whitespace, copy_comment): Take a new parameter.
1377         (skip_escaped_newlines): Don't duplicate escaped newline test.
1378         (copy_comment): Different location for CUR, decide here how
1379         to copy / replace the comment.
1380         (skip_whitespace): Copy whitespace.
1381         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
1382         (scan_out_logical_line): Let copy comment handle keeping or
1383         replacing comments.
1384         (scan_parameters, _cpp_create_trad_definition): Update.
1385
1386 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
1387
1388         * reload.c (get_secondary_mem,find_reloads_address,
1389         find_reloads_address_1): Pass reference to MEM to find_reloads_address
1390         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
1391
1392 2002-06-13  Jessica Han  <jessica@cup.hp.com>
1393
1394         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
1395         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
1396         * doc/tm.texi: Document them.
1397         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
1398         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
1399         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
1400         (ASM_OUTPUT_FDESC): Likewise.
1401
1402 2002-06-13  Eric Christopher  <echristo@redhat.com>
1403
1404         * diagnostic.c (output_format): Fix thinko.
1405
1406 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
1407
1408         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
1409         (DWARF2_UNWIND_INFO): Define to 0.
1410
1411         * config/sh/sh.c (calc_live_regs): Don't use initial_value
1412         optimization for PR_MEDIA_REG.
1413
1414 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1415
1416         * cpphash.h (_cpp_lex_identifier_trad): Remove.
1417         * cpplib.c (end_directive): Don't skip, always remove overlay
1418         apart from #define.
1419         (prepare_directive_trad): Handle NULL pfile->directive.
1420         (_cpp_handle_directive): Always call prepare_directive_trad
1421         if traditional.
1422         * cppmain.c (check_multiline_token): Rename account_for_newlines,
1423         generalize inputs.
1424         (scan_translation_unit_trad): Use it.
1425         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
1426         output, get escaped newline in comment close correct.
1427         (check_output_buffer, skip_whitespace): Update.
1428         (_cpp_lex_identifier_trad): Remove.
1429         (scan_out_logical_line): Handle -C and comments in directives
1430         properly.
1431
1432 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
1433
1434         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
1435         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1436         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
1437         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
1438         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
1439         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
1440         (SELECT_SH5_COMPACT_NOFPU): Likewise.
1441         (TARGET_SWITCHES): Use them.
1442         (TARGET_CPU_DEFAULT): Define if not already defined.
1443         (TARGET_DEFAULT): Use it.
1444         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
1445         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
1446         * config/sh/t-monolib: New file.
1447
1448 2002-06-13  Roger Sayle  <roger@eyesopen.com>
1449
1450         * toplev.c (rest_of_compilation): Simplify (and correct) the
1451         logic of the first delete-null-pointer-checks pass.
1452
1453 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
1454
1455         * i386.c (ix86_expand_movstr):  Fix pasto.
1456
1457 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
1458
1459         * reload.c (find_valid_class):  Fix thinko in my previous patch.
1460
1461 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
1462
1463         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
1464         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
1465         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
1466         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
1467
1468 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
1469
1470         * tree-inline.c (expand_call_inline): Don' mess with _DECL
1471         fields.
1472
1473 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
1474
1475         * diagnostic.c (output_format): Recognize "%H" as a format
1476         specifier for a location_t.
1477         (text_specifies_location): New function.
1478         (diagnostic_set_info): Use it.
1479
1480 2002-06-13  Jeffrey Law  <law@redhat.com>
1481
1482         * emit-rtl.c (static_regno_reg_rtx): Define.
1483         (init_emit_once): Initialize static_regno_reg_rtx.
1484         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
1485         of building new hard reg objects once per function.
1486         (gen_rtx_REG): Try to share hard regs.
1487         * regclass.c (init_fake_stack_mems): New function broken out from
1488         init_regs.
1489         * rtl.h (init_fake_stack_mems): Declare.
1490         * toplev.c (lang_independent_init): Call init_regs before
1491         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
1492
1493         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
1494
1495         * alias.c (argument_registers): Remove.
1496         (init_alias_once): Initialize static_reg_base_value here.  Remove
1497         initialization of argument_registers.
1498         (init_alias_once_per_function): Remove.
1499         (init_alias_analysis): Copy all the entries from static_reg_base_value
1500         into new_reg_base_value all at once.
1501         * rtl.h (init_alias_once_per_function): Remove declaration.
1502         * function.c (prepare_function_start): Do not call
1503         init_alias_once_per_function.
1504
1505         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
1506         starting a sequence and emitting an INSN.
1507
1508 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
1509
1510         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
1511
1512 2002-06-13  David S. Miller  <davem@redhat.com>
1513
1514         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
1515
1516 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1517
1518         * cpplib.c (end_directive): Handle line skipping.  Only remove
1519         the rest of the line if the directive was valid.
1520         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
1521         expanding a traditional macro.
1522         * cpptrad.c (recursive_macro): New.
1523         (read_logical_line_trad): Handle skipping.
1524         (scan_out_logical_line): Continue after a successful directive.
1525         Don't expand macros whilst skipping, or if recursing.
1526         (_cpp_create_trad_definition): scan_out_logical_line now sets
1527         the output current position.
1528
1529 2002-06-12  Eric Christopher  <echristo@redhat.com>
1530
1531         From Chris Demetriou  <cgd@broadcom.com>
1532         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
1533         comment.
1534         (ISA_HAS_MADD_MSUB): Ditto.
1535         (ISA_HAS_NMADD_NMSUB): Ditto.
1536
1537 2002-06-12  Eric Christopher  <echristo@redhat.com>
1538
1539         * config.gcc: Consolidate little endian handling and
1540         little/big endian targets.
1541         * config/mips/elfl.h: Remove file.
1542         * config/mips/elfl64.h: Ditto.
1543         * config/mips/ecoffl.h: Ditto.
1544         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
1545
1546 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
1547
1548         * gengtype.h (xvasprintf): New prototype.
1549         (xasprintf): New prototype.
1550         (struct outf): New.
1551         (get_output_file): Return an outf_p.
1552         (header_file): Is now an outf_p.
1553         (base_files): Now are outf_p.
1554         (oprintf): New.
1555         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
1556         rather than stdio operations.  Use xasprintf in a few places,
1557         when appropriate.
1558         (xvasprintf): New.
1559         (xasprintf): New.
1560         (struct filemap): Delete.
1561         (files): Delete.
1562         (output_files): New.
1563         (oprintf): New.
1564         (create_file): Create an outf_p.  Add parameter to indicate output
1565         file name, change all callers.
1566         (open_base_files): Create gtype-desc.c here.
1567         (get_output_file_with_visibility): Rewrite.
1568         (get_output_file_name): Just look at 'name' field in struct outf.
1569         (close_output_files): Rewrite.
1570
1571 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
1572
1573         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
1574         (MASK_G_FLOAT): Define.
1575         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
1576         (TARGET_SWITCHES): Likewise.
1577         (TARGET_DEFAULT): Likewise.
1578
1579 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
1580
1581         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
1582         * config/mips/mips.c (mips_output_filename): Don't print a
1583         ".file" directive if we are using DWARF-2.
1584         (mips_output_function_prologue): Do not emit source file
1585         name for TARGET_GAS.
1586
1587 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
1588
1589         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
1590         decide whether emit the short opcode.
1591         * i386.h (x86_shift1): Declare.
1592         (TARGET_SHIFT1): New macro.
1593         * i386.c (x86_shift1): New global variable.
1594
1595         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
1596         unconditionally; make loop to rebuild CFG; kill unnecesary
1597         find_basic_block calls; kill compute_bb_for_insn call.
1598         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
1599         * haifa-sched.c (sched_init): Likewise.
1600         * ssa-ccp.c (ssa_const_prop): Likewise.
1601         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1602
1603 2002-06-11  David S. Miller  <davem@redhat.com>
1604
1605         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
1606         active_insn_p.
1607
1608 2002-06-11  Richard Henderson  <rth@redhat.com>
1609
1610         * c-common.c (builtin_define_type_max): New.
1611         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
1612         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
1613
1614         From Joseph S. Myers:
1615         * glimits.h: Rewrite to expect the double underscore definitions
1616         from the compiler.
1617
1618         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
1619         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
1620         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
1621         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
1622         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
1623         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
1624         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
1625         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
1626
1627 2002-06-11  Richard Henderson  <rth@redhat.com>
1628
1629         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
1630         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
1631         (code_for_builtns): Update.
1632         (alpha_init_builtins): Add __builtin_thread_pointer and
1633         __builtin_set_thread_pointer.
1634         (alpha_expand_builtin): Handle void builtins.
1635         * doc/extend.texi (Alpha Built-in Functions): Update.
1636
1637 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
1638
1639         PR target/6997
1640         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
1641
1642 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
1643
1644         * config.gcc: Make the name of the extra-modes file adjustable
1645         by target stanzas.
1646         (s390x, strongarm, xscale stanzas): Use this facility.
1647         * configure.in: Update to match.
1648         * configure: Regenerate.
1649
1650 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
1651
1652         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
1653         max/mins as unsigned GE compares.
1654
1655 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
1656
1657         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
1658         * config/vax/bsd.h: New file.
1659         * config/vax/netbsd.h: Add missing notice.
1660         (CPP_PREDEFINES): Remove.
1661         (TARGET_OS_CPP_BUILTINS): Define.
1662         (CPP_SPEC): Use NETBSD_CPP_SPEC.
1663         * config/vax/openbsd.h: Update copyright years.
1664         (CPP_PREDEFINES): Remove.
1665         (TARGET_OS_CPP_BUILTINS): Define.
1666         * config/vax/ultrix.h: Likewise.
1667         * config/vax/vaxv.h: Likewise.
1668         * config/vax/vms.h: Likewise.
1669         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
1670         (CPP_PREDEFINES, CPP_SPEC): Remove.
1671
1672 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
1673
1674         * i386.md (addqi_1_slp, subqi_1_slp
1675         (andqi_ext0, testqi_ext0): Remove unnecesary check.
1676         (addhi*, addqi*): Simplify "dec" condition.
1677         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
1678         (and, or, xor to QImode splitters): New.
1679         (iorqi_ext*): New.
1680         (xorqi_ext_0): New.
1681         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
1682         (andqi_ext_1_rex64): New.
1683         (ashrqi*_slp): New.
1684         (ashlqi*_slp): New.
1685         (lshlqi*_slp): New.
1686         (rotrqi3*_slp): New.
1687         (rotlqi3*_slp): New.
1688
1689 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
1690
1691         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
1692         softfloat.h.
1693         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
1694         (CPP_ENDIAN_LITTLE_SPEC): Delete.
1695         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
1696         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
1697         __LONG_DOUBLE_128__ setting, _CALL_* setting.
1698         (CPP_DEFAULT_SPEC): Delete.
1699         (CPP_FLOAT_DEFAULT_SPEC): Delete.
1700         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
1701         (CPP_SYSV_DEFAULT_SPEC): Delete.
1702         (CPP_ENDIAN_BIG_SPEC): Delete.
1703         (CPP_ENDIAN_LITTLE_SPEC): Delete.
1704         (CPP_ENDIAN_SPEC): Delete.
1705         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
1706         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
1707         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
1708         cpp_longdouble_default.
1709         * config/rs6000/softfloat.h: Delete.
1710         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
1711         (EXTRA_SPECS): Delete cpp_cpu.
1712         (TARGET_CPU_CPP_BUILTINS): New.
1713         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
1714         prototype.
1715         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
1716         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
1717         (CPP_DEFAULT_SPEC): Delete.
1718         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
1719         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
1720         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
1721         (CPP_DEFAULT_SPEC): Delete.
1722         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
1723         (CPLUSPLUS_CPP_SPEC): Likewise.
1724         (CPP_CPU_SPEC): Delete.
1725         (CPP_DEFAULT_SPEC): Delete.
1726         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
1727         (CPLUSPLUS_CPP_SPEC): Likewise.
1728         (CPP_CPU_SPEC): Delete.
1729         (CPP_DEFAULT_SPEC): Delete.
1730         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
1731         (CPP_DEFAULT_SPEC): Delete.
1732         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
1733         (CPP_DEFAULT_SPEC): Delete.
1734
1735         * doc/gty.texi: Small updates.
1736
1737 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1738
1739         * objc/objc-act.c (warn_with_ivar): Adjust calls to
1740         diagnostic_count_error.
1741         (warn_with_method): Likewise.
1742
1743         * diagnostic.h (warnings_are_errors_message): New field of
1744         diagnostic_context.
1745         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
1746         match semantics.
1747         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
1748         (diagnostic_count_diagnostic): Make aware of other kinds of
1749         diagnostics.
1750         (diagnostic_initialize): Initialize warnings_are_errors_message field.
1751
1752 2002-06-11  Tom Tromey  <tromey@redhat.com>
1753
1754         For PR java/6520:
1755         * fold-const.c (fold_convert): Don't modify existing tree's type.
1756
1757 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
1758
1759         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
1760
1761 2002-06-11  Richard Henderson  <rth@redhat.com>
1762
1763         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
1764
1765 2002-06-11  Richard Henderson  <rth@redhat.com>
1766
1767         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
1768         DWARF2_UNWIND_INFO is false.
1769
1770 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
1771
1772         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
1773
1774         * config/s390/s390.c (emit_prologue): gen_store_multiple
1775         returns an insn now, not a pattern.
1776
1777 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1778
1779         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
1780         $(TEXI2DVI) -o.
1781
1782 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
1783
1784         * i386.c (x86_promote_QImode): Set for Athlon
1785         (x86_fast_prefix): New global variable.
1786         (x86_arch_always_fancy_math_387): Fix formating.
1787         * i386.h (x86_fast_prefix): Declare
1788         (TARGET_FAST_PREFIX): define.
1789         * i386.md (and to strict_low_part, HI to SI
1790         promoting splitter): Use new macro.
1791
1792         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
1793
1794 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
1795
1796         * Makefile.in (distclean): Delete junk left in testsuite
1797         directory, too.
1798
1799 2002-06-11  Jeffrey Law <law@redhat.com>
1800
1801         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
1802         last insn created by the splitter.
1803
1804         * caller-save.c (init_caller_save): Move creation of SAVEINSN
1805         and RESTINSN into into the scope of the sequence.
1806
1807         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
1808         RETURN insns.
1809
1810         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
1811
1812         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
1813         not the pattern.  So extract the pattern from the insn.
1814
1815         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
1816
1817 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
1818
1819         * config/s390/s390.md (movsi): Only use floating point
1820         register alternatives when operands are already fprs.
1821         (movdi_31, movdi_64): Likewise.
1822
1823 2002-06-11  David S. Miller  <davem@redhat.com>
1824
1825         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
1826         Only run RTX equality checks on INSN_P rtl.
1827
1828 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
1829
1830         * config/s390/s390.md (reload_base, ltorg): Remove.
1831         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
1832         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
1833         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
1834         s390_asm_output_pool_prologue): Likewise.
1835         * s390.h (s390_pool_start_insn): Likewise.
1836
1837         * s390.c (s390_output_symbolic_const): Remove support for
1838         old-style pool chunks.
1839         (s390_function_epilogue): Likewise.
1840         (s390_output_constant_pool): Likewise.  Also, fix incorrect
1841         alignment for 64-bit literal pools.
1842         (print_operand_address): Remove 'y' and 'Y' format flags.
1843         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
1844         old-style pool chunks.
1845         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
1846         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
1847         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
1848
1849         * s390.c (consttable_operand): New function.
1850         * s390-protos.h (consttable_operand): Declare it.
1851         * s390.h (PREDICATE_CODES): Add consttable_operand.
1852         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
1853         consttable_sf, consttable_df, pool_start_31, pool_end_31,
1854         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
1855         * s390.c (struct constant, struct constant_pool): New data types.
1856         (constant_modes, gen_consttable): New variables.
1857         (s390_start_pool, s390_end_pool, s390_add_pool,
1858         s390_dump_pool, s390_free_pool): New functions.
1859         (s390_chunkify_pool): Completely reimplement literal pool
1860         overflow handling.
1861
1862         * s390.c (s390_pool_overflow): New variable.
1863         * s390.h (s390_pool_overflow): Declare it.
1864         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
1865         jumps in literal pool overflow situations.
1866
1867         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
1868         (s390_frame_info): Account for possible use of RETURN_REGNUM
1869         by new literal pool overflow code.
1870         (s390_emit_prologue): Likewise.
1871
1872 2002-06-05  David S. Miller  <davem@redhat.com>
1873
1874         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
1875         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
1876         emit_insns_before_scope, emit_insns_after,
1877         emit_insns_after_scope): Delete declaration.
1878         * ada/misc.c (insert_code_for): Use emit_insn* instead of
1879         emit_insns_foo.
1880         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
1881         (alpha_set_memflags): Fix comment.
1882         (set_frame_related_p): Use get_insns instead of gen_sequence.
1883         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
1884         emitting no insns.
1885         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
1886         gen_sequence.
1887         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
1888         * config/fr30/fr30.c (fr30_move_double): Likewise.
1889         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
1890         Likewise.
1891         * config/ia64/ia64.c (spill_restore_mem): Likewise.
1892         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
1893         no insns.
1894         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
1895         instead of gen_sequence.
1896         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
1897         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
1898         * config/sh/sh.c (sh_need_epilogue): Likewise.
1899         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
1900         attributes.
1901         (setjmp pattern and split): Use them to avoid splitter which emits
1902         no RTL.
1903         * genattrtab.c (main): Emit include of function.h
1904         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
1905         get_insns instead of gen_sequence.
1906         * config/cris/cris.c (cris_split_movdx): Likewise.
1907         * emit-rtl.c (emit_insns*): Kill.
1908         (try_split): Expect insn list instead of SEQUENCE.
1909         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
1910         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
1911         Make them abort if a SEQUENCE is given and RTL checking is
1912         enabled.
1913         (emit_*_scope): Don't forget to set scope on final insn.
1914         (gen_sequence): Move from here...
1915         * ssa.c (gen_sequence): To here as private function.
1916         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
1917         comments.
1918         (expand_builtin_return, expand_builtin_mathfn): Likewise.
1919         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
1920         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
1921         (expand_builtin_expect_jump): Use get_insns and fix comments.
1922         * calls.c (try_to_integrate): Use emit_insn_foo.
1923         (expand_call, emit_library_call_value_1): Likewise.
1924         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
1925         (emit_move_insn_1): Use get_insns instead of gen_sequence.
1926         (expand_expr): Use emit_insn_foo.
1927         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
1928         * except.c (build_post_landing_pads): Likewise.
1929         * flow.c (attempt_auto_inc): Likewise.
1930         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
1931         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
1932         * function.c (fixup_var_refs_insn): Use get_insns instead of
1933         gen_sequence.
1934         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
1935         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
1936         (fixup_stack_1, purge_addressof_1, expand_main_function,
1937         get_arg_pointer_save_area): Likewise.
1938         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
1939         expand_function_end): Use emit_insn_foo.
1940         (record_insns, keep_stack_depressed): Work with insn list instead
1941         of SEQUENCE, fix comments.
1942         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
1943         noce_try_store_flag_constants, noce_try_store_flag_inc,
1944         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
1945         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
1946         (noce_process_if_block): Use get_insns instead of gen_sequence.
1947         * optabs.c (add_equal_note): Work with insn list, fix comments.
1948         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
1949         (expand_unop, expand_complex_abs, expand_unop_insn,
1950         expand_no_conflict_block): Likewise.
1951         (gen_move_insn): Use get_insns instead of gen_sequence.
1952         (gen_cond_trap): Likewise.
1953         * integrate.c (copy_rtx_and_substitute): Likewise.
1954         (emit_initial_value_sets): Use emit_insn_foo.
1955         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
1956         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
1957         now that RTL generators give insn lists.
1958         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
1959         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
1960         instead of gen_sequence.
1961         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
1962         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
1963         instead of gen_sequence.
1964         * loop.c (move_movables, emit_prefetch_instructions,
1965         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
1966         Likewise.
1967         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
1968         (product_cheap_p): Likewise, and add commentary about RTL wastage
1969         here.
1970         * lcm.c (optimize_mode_switching): Use get_insns instead of
1971         gen_sequence.
1972         * profile.c (gen_edge_profiler): Likewise.
1973         * regmove.c (copy_src_to_dest): Likewise.
1974         * reg-stack.c (compensate_edge): Likewise and fix comment.
1975         * gcse.c (process_insert_insn): Likewise.
1976         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
1977         * jump.c (delete_prior_computation): Update comment.
1978         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
1979         of gen_sequence, update comments to match.
1980         * recog.c (peephole2_optimize): Work with insn lists instead of
1981         SEQUENCE rtl.
1982         * sched-vis.c (print_pattern): Abort on SEQUENCE.
1983         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
1984         Use get_insns instead of gen_sequence.
1985         (copy_loop_body): Likewise and don't emit dummy NOTE.
1986         * genrecog.c: Don't mention SEQUENCE rtl in comments.
1987         * combine.c (try_combine): Expect insn lists from split generator.
1988         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
1989         hand.
1990
1991 2002-06-11  Roger Sayle  <roger@eyesopen.com>
1992             Andreas Jaeger <aj@suse.de>
1993
1994         * cfgbuild.c: Update copyright years.
1995
1996 2002-06-11  Andreas Schwab  <schwab@suse.de>
1997
1998         * config/m68k/m68k.h (PREDICATE_CODES): Define.
1999
2000 2002-06-11  Eric Christopher  <echristo@redhat.com>
2001
2002         * doc/tm.texi (Run-time Target): Add comment about flag_iso
2003         and strict ANSI.
2004         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
2005         * config/mips/ecoffl.h: Ditto.
2006         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
2007         (CPP_PREDEFINES): Ditto.
2008         * config/mips/elfl64.h: Ditto.
2009         * config/mips/elfl.h: Ditto.
2010         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
2011         out until irix header consolidation.
2012         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
2013         with SUBTARGET_OS_CPP_BUILTINS.
2014         * config/mips/iris6.h: Ditto.
2015         (CPLUSPLUS_CPP_SPEC): Remove.
2016         * config/mips/linux.h: Ditto.
2017         * config/mips/netbsd.h: Ditto.
2018         * config/mips/openbsd.h: Ditto.
2019         * config/mips/rtems.h: Ditto.
2020         * config/mips/rtems64.h: Ditto.
2021         * config/mips/sni-svr4.h: Ditto.
2022         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
2023         ISA_MIPS32, ISA_MIPS64): New defines.
2024         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
2025         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
2026         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
2027         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
2028         (TARGET_CPU_CPP_BUILTINS): Define.
2029         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
2030         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
2031         (movdicc): Remove check for ISA_MIPS32.
2032          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
2033         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
2034         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
2035         sunge_sf, sunle_df, sunle_sf): New patterns.
2036
2037 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2038
2039         * Makefile.in: Update cppmain.o.
2040         * cpphash.h (struct cpp_reader): Move some members to a
2041         nested structure.
2042         (trad_line): Rename saved_line.
2043         (_cpp_read_logical_line_trad): Update.
2044         (_cpp_remove_overlay): New.
2045         * cppinit.c (cpp_create_reader): No need to set saved_line.
2046         (cpp_destroy): Update.
2047         (cpp_read_main_file): Only overlay if compiling.
2048         * cpplex.c (continue_after_nul): Return false if in directive.
2049         * cpplib.c (EXPAND): New.
2050         (directive_table, SEEN_EOL): Update.
2051         (end_directive): Remove overlay if traditional; don't skip
2052         line in traditional #define.
2053         (prepare_directive_trad): New.
2054         (_cpp_handle_directive, run_directive): Update for traditional
2055         directives.
2056         (lex_macro_node): Simplify, don't use lex_identifier_trad.
2057         * cpplib.h (struct options): Add preprocess_only.
2058         * cppmain.c: Don't include intl.h.
2059         (cpp_preprocess_file): Set options->preprocess_only.
2060         (scan_translation_unit_trad): Fix, and print line numbers.
2061         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
2062         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
2063         save_replacement_text, _cpp_create_trad_definition): Update for
2064         variable renaming.
2065         (_cpp_overlay_buffer): Save line number.
2066         (_cpp_remove_overlay): Rename from restore_buff, restore line.
2067         (_cpp_read_logical_line_trad): Don't handle overlays here.
2068         (scan_out_logical_line): Process directives.
2069
2070 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
2071
2072         * gthr-win32.h: Wrap functions in extern "C".
2073         (__gthread_key_t): Typedef as unsigned long,
2074         not win32 DWORD.
2075         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
2076         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
2077         (__gthr_win32_once, __gthr_win32_key_create,
2078         __gthr_win32_key_delete, __gthr_win32_getspecific,
2079         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
2080         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
2081         __gthr_win32_mutex_unlock): Declare.
2082         (__gthread_once,__gthread_key_create,
2083         __gthread_key_delete, __gthread_getspecific,
2084         __gthread_setspecific, __gthread_mutex_init_function,
2085         __gthread_mutex_lock,__gthread_mutex_trylock,
2086         __gthread_mutex_unlock): Call corresponding
2087         __gthr_win32_* extern implementations if #defined
2088         __GTHREAD_HIDE_WIN32API.
2089         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
2090         $(srcdir)/config/i386/gthr-win32.c
2091         * config/i386/gthr-win32.c: New implementation file.
2092         (__gthr_win32_once, __gthr_win32_key_create,
2093         __gthr_win32_key_delete, __gthr_win32_getspecific,
2094         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
2095         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
2096         __gthr_win32_mutex_unlock): New functions, based on
2097         static inlines in gthr-win32.h.
2098
2099 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
2100
2101         * config/xtensa/xtensa.c (override_options): Don't warn about
2102         using -fpic or -fPIC when PIC is enabled by default.
2103
2104 2002-06-10  Roger Sayle  <roger@eyesopen.com>
2105
2106         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
2107
2108 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
2109
2110         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
2111         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
2112         exists, substitute its pathname as @extra_modes_file@, define
2113         EXTRA_MODES_FILE to be an appropriate string to #include it
2114         with, and define EXTRA_CC_MODES to 1.
2115
2116         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
2117         it's defined.  Get rid of redundancy in calling sequence for
2118         CC; don't use it to define CCmode, to avoid a warning.
2119         * libgcc2.c: Include symcat.h for the sake of machmode.def.
2120
2121         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
2122         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
2123         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
2124         New files.
2125         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
2126         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
2127
2128         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
2129         defining extra CC modes.
2130
2131 2002-06-10  Roger Sayle  <roger@eyesopen.com>
2132             Andreas Jaeger <aj@suse.de>
2133
2134         * cfgrtl.c (create_basic_block_structure):  Remove index argument
2135         and use last_basic_block++ instead.  (create_basic_block): Update.
2136         * cfgbuild.c (find_basic_blocks_1): Likewise.
2137
2138         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
2139         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
2140         * sched-ebb.c (schedule_ebbs): Likewise.
2141         * sched-rgn.c (schedule_insns): Likewise.
2142         * ssa-ccp.c (ssa_const_prop): Likewise.
2143         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
2144         * toplev.c (rest_of_compilation): Likewise.
2145         * config/ia64/ia64.c (ia64_reorg): Likewise.
2146
2147 2002-06-10  Roger Sayle  <roger@eyesopen.com>
2148
2149         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
2150         of matching registers.
2151
2152 2002-06-10  Roger Sayle  <roger@eyesopen.com>
2153
2154         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
2155         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
2156
2157 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
2158
2159         * config/mmix/mmix.h: Improve comments.
2160         (CPP_SPEC, CPP_PREDEFINES): Don't define.
2161         (TARGET_CPU_CPP_BUILTINS): Define.
2162         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
2163         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
2164         unused predicate.
2165         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
2166         compiler warning.
2167         (mmix_constant_address_p): Remove another
2168         redundant test before case.
2169         (mmix_canonicalize_comparison): Remove unused function.
2170         (mmix_print_operand_address): Don't test and adjust for operand in
2171         non-canonical format.
2172         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
2173         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
2174
2175 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
2176
2177         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
2178         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
2179         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
2180         (gen_compare): Use CCmode unconditionally.
2181
2182 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
2183
2184         PR optimization/6759
2185         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
2186         the REQ_EQUAL note.
2187
2188 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
2189
2190         PR c/6660
2191         * c-decl.c (grokfield): Allow user defined types if they declare
2192         structs or unions for unnamed fields.
2193
2194 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
2195
2196         PR c/6809
2197         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
2198
2199 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
2200
2201         PR optimization/6842
2202         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
2203         operand subreg cannot be simplified.
2204
2205 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
2206
2207         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
2208         (compare_constant): Likewise.
2209         (output_addressed_constants): Likewise.
2210
2211 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
2212
2213         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
2214         merge bb with itself.
2215
2216 2002-06-10  Richard Henderson  <rth@redhat.com>
2217
2218         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
2219         (builtin_zapnot): Likewise.
2220
2221         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
2222         reservation.
2223
2224 2002-06-10  Eric Christopher  <echristo@redhat.com>
2225
2226         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
2227         prototype and function.
2228         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
2229         (call_insn_operand): Remove half pic references.
2230         (legitimate_address_p): Ditto.
2231         * config/i386/i386.h: Remove half pic defines.
2232
2233 2002-06-10  Eric Christopher  <echristo@redhat.com>
2234
2235         * doc/extend.texi (Return Address): Add note explaining the side-
2236         effects of inlining on __builtin_return_address.
2237
2238 2002-06-10  Tom Tromey  <tromey@redhat.com>
2239
2240         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
2241         (c-common.o): Depend on langhooks.h.
2242
2243 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2244
2245         * cpphash.h (_cpp_read_logical_line_trad,
2246         _cpp_expansions_different_trad): Update prototypes.
2247         * cpplex.c (continue_after_nul): New.
2248         * cppmain.c: Include cpphash.h.
2249         (scan_translation_unit_trad): New.
2250         (cpp_preprocess_file): Call it.
2251         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
2252         overlay.
2253         (_cpp_expansions_different_trad): Update prototype.
2254
2255 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
2256
2257         Fix cfi generation for SH[1-4]:
2258
2259         * sh.c (frame_insn): New function.
2260         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
2261         (push): Now returns rtx.  Use frame_insn.
2262         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
2263         of a DF register.
2264         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
2265
2266 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
2267
2268         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
2269         and gtype-desc.c.
2270         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
2271         (distclean): ... not here.  But do delete all testsuite/*.log,
2272         testsuite/*.sum files here.  Delete mkheaders.  Delete
2273         po/*.gmo and the testsuite directory in a split tree build.
2274
2275 2002-06-10  Jeffrey Law  <law@redhat.com>
2276
2277         * alias.c (static_reg_base_value): New to hold RTL for
2278         items allocated once per function for the aliasing code.
2279         (init_alias_once_per_function): Initialize static_reg_base_value.
2280         (init_alias_analysis): Avoid throw-away allocations of RTL by
2281         using pre-computed values in static_reg_base_value.
2282         * function.c (prepare_function_start): Call
2283         init_alias_once_per_function appropriately.
2284         * rtl.h (init_alias_once_per_function): Declare.
2285         * caller-save (init_caller_save): Restructure slightly to
2286         avoid lots of silly RTL generation.
2287         * expr.c (init_expr_once): Likewise.
2288         * reload1.c (reload_cse_regs_1): Allocate throw-away register
2289         RTL object here.  Pass it into children.
2290         (reload_cse_simplify_operands): Use passed-in register RTL
2291         object.
2292         (reload_cse_simplify): Pass through throw-away register
2293         RTL object.
2294
2295 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
2296
2297         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
2298
2299 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
2300
2301         * gcc.c (process_command): Avoid assignment to read-only location.
2302         Fix sizeof calculation.
2303
2304 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2305
2306         * cpphash.h (struct cpp_macro): Put comments on their own lines.
2307         (_cpp_expansions_different_trad): New.
2308         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
2309         * cpptrad.c (canonicalize_text): New.
2310         (scan_out_logical_line): Handle no arguments correctly.
2311         (save_replacement_text): Commit memory when finished.
2312         (_cpp_expansions_different_trad): New.
2313
2314 2002-06-10  Tim Josling  <tej@melbpc.org.au>
2315
2316         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
2317         TREELANG and COBOL.
2318         (lang_names): Add treelang and cobol.
2319         (get_file_basename): Add code to support treelang and cobol as
2320         4th and 5th users of c-common.c.
2321
2322 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
2323
2324         * Makefile.in (install-driver): Install driver as
2325         $(target_alias)-gcc-$(version).
2326         * gcc.c (spec_version): Make const.
2327         (process_command): Handle -V and -b by using exec.
2328         * doc/invoke.texi (Target Options): Restore -V option,
2329         update docs for -b option.
2330
2331 2002-06-10  Tim Josling  <tej@melbpc.org.au>
2332
2333         * configure.in (remaining_languages_check):
2334         Added check that all languages specified were found.
2335         Exit if not found. Previous behaviour was silent failure.
2336         * configure: Regenerated.
2337
2338 2002-06-10  Tim Josling  <tej@melbpc.org.au>
2339
2340          First steps to making treelang documentation compliant, based on
2341          instructions in sourcebuild.texi. Also add to gcc.c list of
2342          default languages.
2343
2344         * doc/contrib.texi: Add self as contributor of treelang.
2345
2346         * doc/frontends.texi: Add mention of treelang.
2347
2348         * doc/invoke.texi (Overall Options): Add mention of treelang.
2349
2350         * doc/standards.texi:  Add mention of treelang.
2351
2352 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
2353
2354         * config/cris/cris.c: Include ggc.h
2355
2356 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2357
2358         * cpphash.h (_cpp_push_text_context): Update.
2359         (_cpp_arguments_ok): New.
2360         * cppmacro.c (_cpp_arguments_ok): New, split out from...
2361         (collect_args): ...here.
2362         (_cpp_push_text_context): Change inputs.
2363         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
2364         replace_args_and_push): New.
2365         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
2366         Don't use IS macros directly.
2367         (scan_out_logical_line): Handle function-like macro argument
2368         collection.
2369         (push_replacement_text): Update.
2370         (replacement_length): Remove.
2371         (_cpp_create_trad_definition): Don't skip whitespace before
2372         checking for '('.
2373
2374 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2375
2376         * config/avr/avr.c (avr_mcu_types): Update for new devices.
2377         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
2378         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
2379         * config/avr/avr.md ("type" and "length" attributes): New type
2380         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
2381         output a single "call" or "rcall" insn depending on device size.
2382         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
2383
2384 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
2385
2386         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
2387         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
2388         assembler option.
2389         (CPP_CPU_SPEC): Add power3 and power4.
2390         (PROCESSOR_DEFAULT): Change to 604e.
2391         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
2392         (CPP_CPU_SPEC): Similar additions.
2393         (enum process_type): Add POWER4.
2394         (RTX_COSTS): Add POWER4.
2395         (CPP_CPU_SPEC): Similar additions.
2396         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
2397         (PROCESSOR_DEFAULT64): Define.
2398         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
2399         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
2400         branch adjustment.
2401         (rs6000_issue_rate): Add Power4.
2402         * config/rs6000/rs6000.md (cpu attr): Add power4.
2403         (iu compare): Remove 604, 604e, 620, 630.
2404         Add basic Power4 scheduling information.
2405         (mfcr/mtcrf): Change type attribute to cr_logical.
2406
2407 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2408
2409         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
2410         ATTRIBUTE_PRINTF_2.
2411         * gengtype-lex.l: Fix format specifier warning.
2412
2413         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
2414         not isspace.
2415         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
2416         lieu of isspace/IDchar.
2417         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
2418         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
2419         ISSPACE.
2420
2421 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
2422
2423         * Makefile.in (LIBCPP_OBJS): Take out version.o.
2424         * cpphash.h (cpp_reader): Take out print_version member.
2425         * cppinit.c: (cpp_handle_option): Don't do anything with
2426         -version.  Just set help_only for --version, --target-help.
2427         Just set verbose option for -v.
2428         (cpp_post_options): Don't print a version string.
2429
2430 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2431
2432         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
2433         (avr_section_type_flags): New, handle .noinit* sections.
2434
2435 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2436
2437         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
2438         and include netbsd_entry_point.
2439         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
2440         (NETBSD_ENTRY_POINT): Define.
2441
2442 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2443
2444         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
2445         if not already defined.
2446         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
2447
2448 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2449
2450         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
2451         in a noreturn function.
2452         (avr_output_function_prologue, avr_output_function_epilogue):
2453         Correct function size calculation.  Do not crash on empty function.
2454         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
2455
2456 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2457
2458         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
2459         netbsd_link_spec and netbsd_entry_point.
2460         (LINK_SPEC): Use %(netbsd_link_spec).
2461         (NETBSD_ENTRY_POINT): Define.
2462
2463 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2464
2465         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
2466         linker emulation.
2467         (LINK_ARCH64_SPEC): Likewise.
2468         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
2469         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
2470
2471 2002-06-08  Marc Espie  <espie@openbsd.org>
2472
2473         * lists.c (free_list):  Fix typo in comment.
2474
2475 2002-06-08  Andreas Jaeger  <aj@suse.de>
2476
2477         * lcm.c (optimize_mode_switching): Add unused attribute for
2478         variable.
2479
2480         * sched-deps.c (sched_analyze): Remove unused variable.
2481
2482 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
2483
2484         * diagnostic.def: Don't capitalize diagnostict descriptors.
2485
2486 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2487
2488         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
2489         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
2490         (NETBSD_ENTRY_POINT): Define.
2491
2492 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2493
2494         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
2495         NETBSD_LINK_SPEC_ELF.
2496         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
2497         (NETBSD_ENTRY_POINT): Define.
2498         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
2499         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
2500         netbsd_entry_point.
2501         (NETBSD_ENTRY_POINT): Define.
2502
2503 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2504
2505         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
2506         netbsd_link_spec and netbsd_entry_point.
2507         (LINK_SPEC): Use %(netbsd_link_spec).
2508         (NETBSD_ENTRY_POINT): Define.
2509
2510 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
2511
2512         * config/netbsd-elf.h (LINK_SPEC): Rename to...
2513         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
2514         to specify program entry point.
2515
2516 2002-06-07  Jeff Law <law@redhat.com
2517
2518         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
2519         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
2520         than creating a new register.
2521         (distribute_notes): Likewise.
2522         * df.c (df_reg_use_gen): Likewise.
2523         (df_reg_clobber_gen): Likewise.
2524         (df_ref_record): Likewise.
2525         * expr.c (use_regs): Likewise.
2526         * flow.c (propagate_one_insn): Likewise.
2527         (mark_set_1): Likewise.
2528         (mark_used_reg): Likewise.
2529         * reload.c (emit_reload_insns): Likewise.
2530
2531 2002-06-07  Roger Sayle  <roger@eyesopen.com>
2532
2533         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
2534         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
2535         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
2536         comparison code comp can be reversed.
2537
2538 2002-06-07  Roger Sayle  <roger@eyesopen.com>
2539
2540         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
2541         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
2542         equivalent x > -1.0 when -ffast-math.
2543
2544 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
2545
2546         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
2547         * config/mips/t-netbsd: New file.
2548
2549 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
2550
2551         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
2552         options their own entries.
2553         (parse_option): Clarify comment.
2554         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
2555         special case.  Replace if/strcmp chain for -W options with
2556         use of new OPT_* entries for them.
2557         (cpp_handle_options): Update to match.
2558         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
2559         * c-decl.c: Update call to cpp_handle_option.
2560
2561 2002-06-07  Akim Demaille  <akim@epita.fr>
2562
2563         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
2564         Whitespace changes.
2565
2566 2002-06-07  Jeffrey Law  <law@redhat.com>
2567
2568         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
2569         on empty lists.
2570
2571 2002-06-07  H.J. Lu  (hjl@gnu.org)
2572
2573         * configure.in: Add --enable-__cxa_atexit.
2574         * configure: Regenerated.
2575         * config.in: Likewise.
2576
2577         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
2578         not defined.
2579
2580 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
2581
2582         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
2583
2584 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
2585
2586         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
2587
2588 2002-06-07  Jason Merrill  <jason@redhat.com>
2589
2590         * cppexp.c (num_equality_op): Use a temporary variable to work
2591         around gcc 3.0.4 bug.
2592
2593 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
2594
2595         * diagnostic.c (diagnostic_build_prefix): Tidy.
2596
2597 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2598
2599         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
2600         scan_parameters, save_replacement_text, replacement_length): New.
2601         (scan_out_logical_line): Take a macro and save parameters if
2602         non-NULL.
2603         (_cpp_logical_line_trad): Update.
2604         (_cpp_create_trad_definition): Update to handle function-like
2605         macros.
2606         * cpplex.c (new_buff): Update.
2607         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
2608         * cpphash.h: ...here.
2609         (CPP_ALIGN2, _cpp_save_parameter): New.
2610         * cppmacro.c (save_parameter): Rename, export.
2611         (parse_params): Update.
2612
2613 2002-06-07  Andreas Jaeger  <aj@suse.de>
2614
2615         * config/mmix/mmix.c: Remove extra broken prototype for
2616         mmix_init_machine_status.
2617
2618 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
2619
2620         * gengtype.c: Add comments before all the routines.
2621
2622 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
2623
2624         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
2625         from and add t-sh64 to ${tmake_file}.
2626         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
2627         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
2628         * config/sh/t-netbsd-sh5-32: Remove.
2629         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
2630         MULTILIB_ENDIAN.
2631         (MULTILIB_DIRNAMES): Define.
2632
2633 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
2634
2635         * i386.md (and promoting splitters): Disable QI to SImode promoting
2636         when doing so changes immediate to be 32bit.
2637
2638         * rtl.h (emit_*_scope): Declare.
2639         * emit-rtl.c (emit_*_scope): New global functions.
2640         (try_split): Copy scope.
2641         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
2642         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
2643         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
2644         noce_process_if_block, find_cond_trap): Copy scopes.
2645         * recog.c (peephole2_optimize): likewise.
2646
2647 2002-06-06  Jeffrey Law  <law@redhat.com>
2648
2649         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
2650
2651 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
2652
2653         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
2654
2655 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2656
2657         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
2658         ($(docdir)/gccinstall.info): New target.
2659         (info): Depend on it.
2660         (gccinstall.dvi): New target.
2661         (dvi): Depend on it.
2662         * doc/.cvsignore: Ignore new info files.
2663         * doc/install.texi (@setfilename): Reflect new info filename.
2664
2665 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
2666
2667         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
2668         on an UNSPEC.
2669
2670 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
2671
2672         PR objc/6834
2673         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
2674         c_common_get_alias_set.
2675         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
2676
2677 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2678
2679         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
2680         functions.
2681         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
2682         * avr/avr.c (avr_output_function_epilogue): Use above to determine
2683         function size.
2684         * pa/pa.c (pa_output_function_prologue): Likewise.
2685
2686 2002-06-05  David S. Miller  <davem@redhat.com>
2687
2688         * integrate.c (subst_constants): Handle 'B' RTL format.
2689
2690 2002-06-05  Eric Christopher  <echristo@redhat.com>
2691
2692         * varasm.c (make_decl_rtl): Fix comment for removed
2693         halfpic.c.
2694
2695 2002-06-05  Eric Christopher  <echristo@redhat.com>
2696
2697         * Makefile.in: Remove missed halfpic bits.
2698
2699 2002-06-05  Eric Christopher  <echristo@redhat.com>
2700
2701         * toplev.c: Remove half-pic.
2702         * config/mips/mips.c: Ditto.
2703         * config/mips/mips.h: Ditto. Remove unused defines.
2704         * config/mips/openbsd.h: Update comment to reflect above.
2705         * config/mips/mips.md: Remove half-pic constraints.
2706         * halfpic.h: Delete.
2707         * halfpic.c: Ditto.
2708
2709 2002-06-05  Jeffrey Law  <law@redhat.com>
2710
2711         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
2712         rejects (mem (lo_sum (reg) (unspec))), but will allow
2713         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
2714
2715 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2716
2717         * cpphash.h (_cpp_create_definition): Update prototype.
2718         (_cpp_push_text_context, _cpp_create_trad_definition): New.
2719         ( cpp_lex_identifier_trad): New.
2720         (_cpp_set_trad_context): New.
2721         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
2722         * cpplib.c (SEEN_EOL): Update.
2723         (lex_macro_node): Update for -traditional.
2724         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
2725         * cppmacro.c (_cpp_create_definition): Split into
2726         create_iso_definition() and _cpp_create_trad_definition().
2727         (warn_of_redefinition): Update prototype; handle traditional
2728         macros.
2729         (_cpp_push_text_context): New.
2730         * cpptrad.c (skip_whitespace, push_replacement_text): New.
2731         (lex_identifier): Call ht_lookup with correct start.
2732         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
2733         _cpp_set_trad_context): New.
2734         (scan_out_logical_line): Update to handle changing contexts.
2735
2736 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
2737
2738         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
2739         (shl*-*-elf*): Add.
2740         * config/sh/t-be (MULTILIB_ENDIAN): Set.
2741         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
2742         * t-sh (MULTILIB_ENDIAN): Set.
2743         (MULTILIB_OPTIONS): Use it.
2744         * t-sh64 (MULTILIB_OPTIONS): Likewise.
2745         (MULTILIB_DIRNAMES): Likewise.
2746
2747 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
2748
2749         * toplev.h (report_error_function): Remove.
2750
2751         * diagnostic.h (location_t): New datatype.
2752         (text_info): Likewise.
2753         (diagnostic_info): Likewise.
2754         (output_prefix): New macro.
2755         (diagnostic_last_function_changed): Likewise.
2756         (diagnostic_set_last_function): Likewise.
2757         (diagnostic_last_module_changed): Likewise.
2758         (diagnostic_set_last_module): Likewise.
2759         (report_diagnostic): Now macro.
2760         (diagnostic_set_info): Declare.
2761
2762         * diagnostic.c (report_problematic_module): Rename to
2763         diagnostic_repor_current_module.
2764         (set_diagnostic_context): Remove.
2765         (count_error): Rename to diagnostic_error_count.
2766         (error_function_changed): Remove.
2767         (record_last_error_function): Likewise.
2768         (error_module_changed): Likewise.
2769         (record_last_error_module): Likewise.
2770         (context_as_prefix): Rename to diagnostic_build_prefix.
2771         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
2772         (diagnostic_set_info): New function.
2773
2774         * objc/objc-act.c: #include diagnostic.h
2775         (error_with_ivar): Adjust call to count_error.
2776         (warn_with_method): Likewise.
2777         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
2778
2779 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
2780
2781         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
2782         lang_hooks.types.make_type instead of make_node; set up
2783         __va_list_tag type decl.
2784         (xtensa_builtin_saveregs): Remove broken use of
2785         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
2786         for saved registers; add varargs alias set.
2787
2788 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2789
2790 config:
2791         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
2792         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
2793         CPP_PREDEFINES and part of CPP_SPEC.
2794         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
2795         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
2796
2797 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
2798
2799         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
2800
2801 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
2802
2803         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
2804
2805 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
2806
2807         * gengtype-yacc.y: Make sure all rules end with a semicolon.
2808
2809 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
2810
2811         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
2812         typo in function prototype and include "ggc.h" header.
2813
2814 2002-06-04  Richard Henderson  <rth@redhat.com>
2815
2816         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
2817         (print_operand) ['U']: Likewise.
2818         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
2819         (alpha_expand_unaligned_store_words): Likewise.
2820         (alpha_expand_builtin_vector_binop): Fix typo.
2821         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
2822         umulh, and cix insns.
2823         (one_arg_builtins): Add cix builtins.
2824         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
2825         (alpha_expand_builtin): Fix typo in arity.
2826         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
2827         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
2828         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
2829         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
2830         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
2831         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
2832         builtin_ctlz, builtin_ctpop): New.
2833         * doc/extend.texi (Alpha Built-in Functions): Update.
2834
2835 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
2836
2837         * gengtype.c (write_gc_root): Don't unnecessarily prevent
2838         global variable-length arrays being roots.
2839
2840         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
2841         * configure.in (config_gtfiles): New variable.
2842         (all_gtfiles): Initialise from config_gtfiles.
2843         * configure: Regenerate.
2844
2845 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2846
2847 config/i386:
2848         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
2849         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
2850         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
2851         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
2852         win32.h (CPP_SPEC): Remove cpp_cpu.
2853         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
2854         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
2855
2856 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
2857
2858         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
2859
2860 2002-06-04  Jeff Law <law@redhat.com.
2861             David Edelsohn <edelsohn@gnu.org>
2862             Michael Matz <matz@kde.org>
2863
2864         * sched-int.h (struct deps): New field libcall_block_tail_insn.
2865         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
2866         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
2867         is set, then mark the current insn as being part of a libcall
2868         scheduling group.
2869         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
2870
2871         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
2872         insns against the issue rate.
2873
2874 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
2875
2876         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
2877         * final.c (final_scan_insn): Likewise.
2878         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
2879         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
2880         * haifa-sched.c (unlink_other_notes): Likeewise.
2881         (reemit_notes): Likewise.
2882         * print-rtl.c (print_rtx): Likewise.
2883         * sched-deps (sched-analyze): Likewise.
2884         * rtl.c (note_insn_name): Likewise.
2885         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
2886         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
2887         (RANGE_*): Kill.
2888
2889 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
2890
2891         * varasm.c (mark_constants): Handle RTX format 'B'.
2892
2893 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2894
2895         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
2896         (struct cpp_context): Add traditional fields.
2897         * cppmacro.c (paste_all_tokens, push_ptoken_context,
2898         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
2899         * cpptrad.c (skip_comment, lex_identifier,
2900         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
2901
2902 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
2903
2904         * gbl-ctors.h: Fix formatting.
2905         * gcc.c: Likewise.
2906         * gccspec.c: Likewise.
2907         * gcov.c: Likewise.
2908         * gcov-io.h: Likewise.
2909         * gcse.c: Likewise.
2910         * ggc-common.c: Likewise.
2911         * ggc.h: Likewise.
2912         * ggc-page.c: Likewise.
2913         * ggc-simple.c: Likewise.
2914         * global.c: Likewise.
2915         * graph.h: Likewise.
2916         * gthr-dce.h: Likewise.
2917         * gthr.h: Likewise.
2918         * gthr-posix.h: Likewise.
2919         * gthr-rtems.h: Likewise.
2920         * gthr-solaris.h: Likewise.
2921         * gthr-win32.h: Likewise.
2922
2923 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
2924
2925         Merge from pch-branch:
2926
2927         * gengtype.h (UNION_OR_STRUCT_P): New macro.
2928         * gengtype.c (write_gc_structure_fields): Use it.
2929         (write_gc_root): Use it here too.
2930
2931         * gengtype.c (write_gc_structure_fields): Assume that lengths
2932         of typenames fit into an 'int'; don't pass a size_t to "%d" in
2933         printf.
2934         (write_gc_marker_routine_for_structure): Likewise.
2935         (write_gc_types): Likewise.
2936         (write_gc_root): Likewise.
2937
2938         * varray.h (VARRAY_CLEAR): New.
2939         (varray_clear): Prototype.
2940         * varray.c (varray_clear): New.
2941         * cselib.c (reg_values_old): New.
2942         (used_regs_old): New.
2943         (cselib_init): Use cached varrays if available to avoid
2944         generating large amounts of garbage.
2945         (cselib_finish): Don't throw away old varrays.
2946
2947         * final.c (insn_addresses_): Move out of ifdef.
2948
2949         * varray.c (uses_ggc): Make more varray kinds GCable.
2950         * varray.h (union varray_data_tag): Let gengtype see
2951         fields 'generic' and 'te'.
2952         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
2953         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
2954         (reg_to_stack): Don't call VARRAY_FREE.
2955         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
2956         (insn_addresses_): Use gengtype to mark.
2957         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
2958         pointers; handle generic pointers in unused union fields.
2959         (get_output_file_with_visibility): Include cselib.h,
2960         insn-addr.h in gtype-desc.c.
2961         * function.c (prologue): Use gengtype to mark.
2962         (epilogue): Likewise.
2963         (sibcall_epilogue): Likewise.
2964         * dependence.c: Include gt-dependence.h, ggc.h.
2965         (struct def_use): Use gengtype to mark.
2966         (struct loop): Likewise.
2967         (struct induction): Likewise.
2968         (struct dependence): Likewise.
2969         (def_use_chain): Likewise.
2970         (dep_chain): Likewise.
2971         (loop_chain): Likewise.
2972         (induction_chain): Likewise.
2973         (init_dependence_analysis): Don't free anything, just clear pointers.
2974         (build_def_use): Use GGC to allocate def_use.
2975         (add_loop): Use GGC to allocate loop.
2976         (find_induction_variable): Use GGC to allocate induction.
2977         (check_node_dependence): Use GGC to allocate induction, dependence.
2978         (dump_node_dependence): Don't free varrays.
2979         (end_dependence_analysis): Likewise.
2980         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
2981         (struct elt_loc_list): Likewise.
2982         (struct elt_list): Likewise.
2983         * cselib.c: Don't include obstack.h.
2984         (hash_table): Use gengtype to mark.
2985         (reg_values): Use gengtype to mark.
2986         (used_regs): Use gengtype to mark.
2987         (cselib_obstack): Delete.
2988         (cselib_startobj): Delete.
2989         (empty_vals): Mark as deletable.
2990         (empty_elt_lists): Mark as deletable.
2991         (empty_elt_loc_lists): Mark as deletable.
2992         (new_elt_list): Use GGC to allocate struct elt_list.
2993         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
2994         (clear_table): Don't delete obstack; don't unnecessarily clear
2995         deletable variables.
2996         (new_cselib_val): Use GGC to allocate struct cselib_val.
2997         (cselib_init): Don't set up obstacks.  Use GGC to allocate
2998         hash table.
2999         (cselib_finish): Just clear variables, don't free anything.
3000         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
3001         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
3002         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
3003         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
3004         (gt-reg-stack.h): New rule.
3005         (gt-dependence.h): New rule.
3006         (gtype-desc.o): Add cselib.h, insn-addr.h.
3007
3008         * varray.c: Use only necessary headers.
3009         (element_size): New.
3010         (uses_ggc): New.
3011         (varray_init): Take type, not size.  Use GGC if appropriate.
3012         (varray_grow): Update for change to struct varray_head_tag.
3013         Use GGC if appropriate.
3014         * varray.h (struct const_equiv_data): Use gengtype.
3015         (enum varray_data_enum): New.
3016         (union varray_data_tag): Use gengtype.
3017         (struct varray_head_tag): Use gengtype.  Replace size field with
3018         enum varray_data_enum.
3019         (varray_init): Update prototype.
3020         (VARRAY_SCHED_INIT): Delete.
3021         (VARRAY_*_INIT): Update for change to varray_init.
3022         (VARRAY_SCHED): Delete.
3023         (VARRAY_PUSH_SCHED): Delete.
3024         (VARRAY_TOP_SCHED): Delete.
3025         * tree.h: Update for change to length specifier.
3026         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
3027         (clone_body): Likewise.
3028         * ssa.h (ssa_definition): Use gengtype to mark.
3029         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
3030         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
3031         * rtl.h (struct rtvec_def): Update for change to length specifier.
3032         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
3033         (struct initial_value_struct): Update for change to length specifier.
3034         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
3035         (ggc_add_tree_varray_root): Delete prototype.
3036         (ggc_mark_rtx_varray): Delete prototype.
3037         (ggc_mark_tree_varray): Delete prototype.
3038         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
3039         (ggc_add_tree_varray_root): Delete.
3040         (ggc_mark_rtx_varray): Delete.
3041         (ggc_mark_tree_varray): Delete.
3042         (ggc_mark_rtx_varray_ptr): Delete.
3043         (ggc_mark_tree_varray_ptr): Delete.
3044         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
3045         (create_varray): Delete prototype.
3046         * gengtype.c (varrays): Delete.
3047         (create_varray): Delete.
3048         (adjust_field_type): Detect array of string pointers.
3049         (process_gc_options): Remove code to handle varray_type option.
3050         (set_gc_used_type): Remove TYPE_VARRAY case.
3051         (output_escaped_param): New.
3052         (write_gc_structure_fields): Use output_escaped_param on all
3053         parameters.  Handle 'skip' with 'use_param' option.  Handle
3054         arrays of strings.  Remove TYPE_VARRAY handling.
3055         (write_gc_roots): Use boolean to detect 'length' option.
3056         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
3057         (struct_fields): Call adjust_field_type on array fields.
3058         (type): Remove VARRAY_TYPE case.
3059         (type_option): Likewise.
3060         * gengtype-lex.l: Don't consider varray_type a keyword.
3061         * function.h: Update for change to length specifier.
3062         (free_eh_status): Delete prototype.
3063         * function.c (free_after_compilation): Don't call free_eh_status.
3064         (reorder_blocks): Don't use VARRAY_FREE.
3065         * except.c (struct eh_status): Update for change to length specifier.
3066         remove varray_type specifier.
3067         (free_eh_status): Delete.
3068         * dwarf2out.c: Include gt-dwarf2out.h.
3069         (used_rtx_varray): Use gengtype to mark, move
3070         outside ifdefs.
3071         (incomplete_types): Likewise.
3072         (decl_scope_table): Likewise.
3073         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
3074         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
3075         * c-tree.h (struct lang_type): Update for change to length specifier.
3076         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
3077         * c-objc-common.c: Include gt-c-objc-common.h.
3078         (deferred_fns): Mark for gengtype.
3079         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
3080         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
3081         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
3082         (gtype-desc.o): Update dependencies.
3083         (dwarf2out.o): Add gt-dwarf2out.h.
3084         (varray.o): Update dependencies.
3085         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
3086         (gt-c-objc-common.h): New rule.
3087         (gt-dwarf2out.h): New rule.
3088         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
3089
3090         * doc/gty.texi (GTY Options): Correct spelling.
3091         (GGC Roots): Likewise.
3092         * Makefile.in (TEXI_CPP_FILES): New.
3093         (TEXI_GCC_FILES): New.
3094         (TEXI_GCCINT_FILES): New.
3095         (TEXI_CPPINT_FILES): New.
3096         ($(docdir)/cpp.info): Use new macros.
3097         ($(docdir)/gcc.info): Likewise.
3098         ($(docdir)/gccint.info): Likewise.
3099         ($(docdir)/cppinternals.info): Likewise.
3100         (cpp.dvi): Likewise.
3101         (gcc.dvi): Likewise.
3102         (gccint.dvi): Likewise.
3103         (cppinternals.dvi): Likewise.
3104
3105         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
3106         * doc/gccint.texi (Top): Include gty.texi.
3107         * doc/gty.texi: New file.
3108
3109         * bitmap.c: Include ggc.h, gt-bitmap.h.
3110         (bitmap_ggc_free): New.
3111         (bitmap_elem_to_freelist): New.
3112         (bitmap_element_free): Use bitmap_elem_to_freelist.
3113         (bitmap_element_allocate): Allow use of GGC.
3114         (bitmap_clear): Use bitmap_elem_to_freelist.
3115         (bitmap_copy): Update for change to bitmap_element_allocate.
3116         (bitmap_set_bit): Likewise.
3117         (bitmap_operation): Update for changes elsewhere.
3118         (bitmap_initialize): Allow to create bitmaps that will use GGC.
3119         * bitmap.h (struct bitmap_element_def): Use gengtype.
3120         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
3121         (bitmap_initialize): Add extra parameter.
3122         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
3123         (BITMAP_ALLOCA): Delete.
3124         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
3125         (BITMAP_GGC_ALLOC): New.
3126         * Makefile.in (gtype-desc.o): Add bitmap.h.
3127         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
3128         (GTFILES): Add bitmap.c.
3129         (gt-bitmap.h): New rule.
3130         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
3131         * basic-block.h: Update for changes to bitmap_initialize.
3132         * except.c (exception_handler_label_map): Move into...
3133         (struct eh_status): Here.
3134         (struct eh_region): Make 'aka' GCable.
3135         (free_eh_status): Don't need to specially handle
3136         exception_handler_label_map.
3137         (add_ehl_entry): Update for changes to exception_handler_label_map.
3138         (find_exception_handler_labels): Likewise.
3139         (remove_exception_handler_label): Likewise.
3140         (maybe_remove_eh_handler): Likewise.
3141         (for_each_eh_label): Likewise.
3142         (remove_eh_handler): Allocate 'aka' using GGC.
3143         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
3144         to list of includes.
3145
3146         * gengtype.c (write_gc_marker_routine_for_structure): Name
3147         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
3148         (write_gc_types): Arrange for the tests with NULL to be inlined.
3149         (write_gc_roots): Update uses of procedure pointers.
3150         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
3151
3152         * Makefile.in (explow.o): Add dependency on gt-explow.h.
3153         (sdbout.o): Add dependency on gt-sdbout.h.
3154
3155         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
3156         (mem_attrs_htab): Likewise.
3157         (init_emit_once): Don't call ggc_add_deletable_htab.
3158         * fold-const.c (size_htab): Use gengtype to clear unused entries.
3159         (size_int_type_wide): Don't call ggc_add_deletable_htab.
3160         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
3161         parameters, use them, change callers.
3162         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
3163         (write_gc_roots): Handle 'if_marked' option.
3164         (main): Don't need to call set_gc_used_type any more.
3165         * ggc.h (ggc_htab_marked_p): Delete.
3166         (ggc_htab_mark): Delete.
3167         (struct ggc_cache_tab): New.
3168         (gt_ggc_cache_rtab): New declaration.
3169         * ggc-common.c (struct d_htab_root): Delete.
3170         (d_htab_roots): Delete.
3171         (ggc_add_deletable_htab): Delete.
3172         (ggc_htab_delete): Handle new htab-deleting mechanism.
3173         (ggc_mark_roots): Use new htab-deleting mechanism.
3174         * tree.c (type_hash_table): Use gengtype to clear unused entries.
3175         Make static.
3176         (init_obstacks): Don't call ggc_add_deletable_htab.
3177
3178         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
3179         (struct hashed_entry): Likewise.
3180         (nst_method_hash_list): Likewise.
3181         (cls_method_hash_list): Likewise.
3182         (HASH_ALLOC_LIST_SIZE): Delete.
3183         (ATTR_ALLOC_LIST_SIZE): Delete.
3184         * objc/objc-act.c (hash_init): Use ggc to allocate
3185         nst_method_hash_list, cls_method_hash_list.
3186         (hash_enter): Use ggc to allocate; allocate one entry at a time.
3187         (hash_add_attr): Likewise.
3188         (ggc_mark_hash_table): Delete.
3189         (objc_act_parse_init): Delete.
3190         (objc_init): Delete reference to objc_act_parse_init.
3191         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
3192         obstack.h.  Replace references to 'struct hash_table' with htab_t.
3193         (struct symbol_hash_entry): Replace hash header with key field.
3194         (struct file_hash_entry): Replace hash header with key field.
3195         (struct demangled_hash_entry): Replace hash header with key field.
3196         (hash_string_eq): New.
3197         (hash_string_hash): New.
3198         (symbol_hash_newfunc): Delete.
3199         (symbol_hash_lookup): Modify to use htab_t.
3200         (file_hash_newfunc): Delete.
3201         (file_hash_lookup): Modify to use htab_t.
3202         (demangled_hash_newfunc): Delete.
3203         (demangled_hash_lookup): Modify to use htab_t.
3204         (tlink_init): Modify to use htab_t.
3205         * hash.h: Delete.
3206         * hash.c: Delete.
3207         * ggc.h: Delete forward structure declarations.
3208         Delete prototypes for deleted functions.
3209         * ggc-common.c: Don't include hash.h.
3210         (ggc_add_tree_hash_table_root): Delete.
3211         (ggc_mark_tree_hash_table_entry): Delete.
3212         (ggc_mark_tree_hash_table): Delete.
3213         (ggc_mark_tree_hash_table_ptr): Delete.
3214         * gengtype.c (write_gc_structure_fields): Allow param_is option.
3215         (write_gc_marker_routine_for_structure): Use visibility of
3216         the parameter if there is one.
3217         * function.c: Replace hash.h with hashtab.h.  Replace references
3218         to 'struct hash_table *' with htab_t.
3219         (struct insns_for_mem_entry): Include a plain key.
3220         (fixup_var_refs_insns_with_hash): Update to use htab_t.
3221         (insns_for_mem_newfunc): Delete.
3222         (insns_for_mem_hash): Update to use htab_t.
3223         (insns_for_mem_comp): Likewise.
3224         (insns_for_mem_walk): Likewise.
3225         * c-lang.c: Include ggc.h.
3226         * Makefile.in (OBJS): Remove hash.o.
3227         (c-lang.o): Add GGC_H.
3228         (COLLECT2_OBJS): Remove hash.o.
3229         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
3230         (ggc-common.o): Remove hash.h.
3231         (function.o): Remove hash.h, add HASHTAB_H.
3232         (genautomata.o): Remove hash.h, add HASHTAB_H.
3233
3234         * varasm.c (mark_const_str_htab_1): Delete.
3235         (mark_const_str_htab): Delete.
3236         (const_str_htab_del): Delete.
3237         (const_str_htab): Use gengtype to mark.
3238         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
3239         allocate them.
3240         * tree.c (mark_tree_hashtable_entry): Delete.
3241         (mark_tree_hashtable): Delete.
3242         * tree.h (mark_tree_hashtable): Delete prototype.
3243         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
3244         (ggc_mark): Likewise.
3245         (ggc_calloc): New.
3246         (htab_create_ggc): New.
3247         * ggc-common.c (ggc_calloc): New.
3248         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
3249         (struct type): Add param_struct structure.
3250         * gengtype.c (param_structs): New.
3251         (adjust_field_type): Handle param_is option.
3252         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
3253         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
3254         (write_gc_structure_fields): Add new PARAM parameter.  Update
3255         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
3256         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
3257         Use it to generate function name.  Update callers.
3258         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
3259         Process them.
3260         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
3261         option.
3262         (main): Define PTR as pointer-to-scalar.  Don't specially
3263         mark deferred_string or ehl_map_entry.
3264         * gengtype-yacc.y (PARAM_IS): Add new token.
3265         (externstatic): Use adjust_field_type.
3266         (type_option): Add PARAM_IS.
3267         * gengtype-lex.l: Add rule for typedef of function pointers.
3268         Add rule for PARAM_IS.
3269         (IWORD): Add size_t.
3270         * except.c (exception_handler_label_map): Use gengtype to mark.
3271         (type_to_runtime_map): Likewise.
3272         (mark_ehl_map_entry): Delete.
3273         (mark_ehl_map): Delete.
3274         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
3275         (t2r_mark_1): Delete.
3276         (t2r_mark): Delete.
3277         * Makefile.in (gtype-desc.o): Correct dependencies.
3278         (GTFILES): Add hashtab.h.
3279         (genautomata.o): Actually uses hashtab.h.
3280
3281         * Makefile.in (stringpool.o): Add $(GGC_H).
3282         (dwarf2asm.o): Likewise.
3283         (GTFILES): Add hashtable.h.
3284         * c-common.h (struct c_common_identifier): Use gengtype.
3285         * c-decl.h (c_mark_tree): Delete.
3286         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
3287         * c-tree.h (struct lang_identifier): Use gengtype.
3288         (union lang_tree_node): New.
3289         (c_mark_tree): Delete prototype.
3290         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
3291         dwarf2_debug_hooks.
3292         * gengtype-lex.l (IWORD): Allow 'bool'.
3293         (ptr_alias): Match.
3294         * gengtype-yacc.y (ALIAS): New token.
3295         (type_option): New rule.
3296         (option): Use type_option.
3297         * gengtype.c (process_gc_options): New.
3298         (set_gc_used_type): Use it.
3299         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
3300         Add new variable 't' to hold the type of the field being processed.
3301         Add more error checking.  Use UNION_P when looking at 'desc' option.
3302         Handle language-specific structures containing other
3303         language-specific structures.
3304         (write_gc_types): Handle 'ptr_alias' option.
3305         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
3306         * ggc-common.c (ggc_pending_trees): Delete.
3307         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
3308         (ggc_mark_trees): Delete.
3309         (gt_ggc_m_tree_node): Delete.
3310         * ggc.h (ggc_pending_trees): Delete.
3311         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
3312         * hashtable.h (ht_identifier): Use gengtype.
3313         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
3314         * langhooks.h (struct lang_hooks): Delete mark_tree.
3315         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
3316         anyway.
3317         * system.h: Poison LANG_HOOKS_MARK_TREE.
3318         * tree.c (tree_node_structure): New.
3319         * tree.h (struct tree_common): Use gengtype.
3320         (struct tree_int_cst): Likewise.
3321         (struct tree_real_cst): Likewise.
3322         (struct tree_string): Likewise.
3323         (struct tree_complex): Likewise.
3324         (struct tree_vector): Likewise.
3325         (struct tree_identifier): Likewise.
3326         (struct tree_list): Likewise.
3327         (struct tree_vec): Likewise.
3328         (struct tree_exp): Likewise.
3329         (struct tree_block): Likewise.
3330         (struct tree_type): Likewise.
3331         (struct tree_decl): Likewise.
3332         (enum tree_structure_enum): New.
3333         (union tree_node): Use gengtype, with an alias.
3334         (tree_node_structure): Prototype.
3335         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
3336
3337         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
3338         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
3339         to LANG_HOOKS_FUNCTION_FINAL.
3340         * Makefile.in (GTFILES): Add bitmap.h.
3341         * except.c (struct eh_region): Mark field 'aka' to be skipped.
3342
3343         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
3344         (alpha_init_machine_status): Give proper type.
3345         * Makefile.in (c-lang.o): Depend on gtype-c.h.
3346         (optabs.o): Depend on gt-optabs.h.
3347         (GTFILES): Add optabs.o.
3348         (gt-optabs.h): Add rule.
3349         * optabs.c: Include gt-optabs.h.
3350
3351         * gengtype.c (set_gc_used_type): Correct some errors in last change.
3352         (write_gc_structure_fields): If a field which should be NULL is
3353         not, abort.
3354         * c-pragma.c: Move struct align_stack and variable alignment_stack
3355         out from the ifdef.
3356
3357         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
3358         * config/xtensa/xtensa.c: Include gt-cris.h.
3359         (struct machine_function): Use gengtype to mark.
3360         * config/mmix/mmix.h (struct machine_function): Use gengtype
3361         to mark.
3362         * config/cris/t-cris: Add dependencies for gt-cris.h.
3363         * config/cris/cris.c: Include gt-cris.h.
3364         (struct machine_function): Use gengtype to mark.
3365         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
3366         to mark.
3367         * doc/tm.texi (Per-Function Data): Delete references to
3368         mark_machine_status.
3369         * config/ia64/ia64.c (ia64_override_options): Don't set
3370         mark_machine_status.
3371         * config/i386/i386.c (override_options): Likewise.
3372         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
3373         * config/arm/arm.c (arm_init_expanders): Likewise.
3374         * config/alpha/alpha.c (override_options): Likewise.
3375         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
3376         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
3377         (write_gc_structure_fields): Don't handle 'really' option.
3378         Handle 'maybe_null' option.
3379         (write_gc_types): Handle 'maybe_null' option.
3380         * function.h (struct function): Don't use "really".
3381         (mark_machine_status): Delete declaration.
3382         (mark_lang_status): Delete declaration.
3383         (gt_ggc_mr_machine_function): Delete prototype.
3384         (gt_ggc_mr_language_function): Delete prototype.
3385         * function.c (mark_machine_status): Delete.
3386         (mark_lang_status): Delete.
3387         (gt_ggc_mr_machine_function): Delete.
3388         (gt_ggc_mr_language_function): Delete.
3389         * c-tree.h (mark_c_function_context): Delete prototype.
3390         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
3391         * c-decl.c (struct language_function): Rename from struct
3392         c_language_function.  Update uses.  Use gengtype to mark.
3393         (mark_c_function_context): Delete.
3394         * c-common.h (struct c_language_function): Rename from struct
3395         language_function.
3396         (mark_stmt_tree): Delete prototype.
3397         (c_mark_lang_decl): Delete prototype.
3398         (mark_c_language_function): Delete prototype.
3399         * c-common.c (mark_stmt_tree): Delete.
3400         (c_mark_lang_decl): Delete.
3401         (mark_c_language_function): Delete.
3402
3403         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
3404         (lang_bitmap): New typedef.  Use where appropriate.
3405         (struct type): Add gc_used field, lang_struct field.
3406         (UNION_P): New macro.
3407         (new_structure): New prototype.
3408         (find_structure): Remove 'pos' parameter.  Change all callers.
3409         * gengtype-lex.l: Update for changes to find_structure.
3410         * gengtype-yacc.y (typedef_struct): Use new_structure.
3411         (yacc_ids): Suppress warning.
3412         (type): Use new_structure.
3413         * gengtype.c (string_type): Update for changes to struct type.
3414         (find_structure): Just find a structure, don't worry about
3415         creating one.
3416         (new_structure): New.
3417         (note_yacc_type): Use new_structure.
3418         (set_gc_used_type): New.
3419         (set_gc_used): New.
3420         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
3421         (write_gc_types): Handle TYPE_LANG_STRUCT.
3422         (write_gc_marker_routine_for_structure): New.
3423         (main): Call set_gc_used.  Add some calls to set_gc_used_type
3424         for places where GCC doesn't use gengtype properly yet.
3425         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
3426         (gt_ggc_m_tree_node): Likewise.
3427
3428         * varasm.c (copy_constant): Call expand_constant if we hit
3429         something we can't recognise.
3430
3431         * ggc-common.c (ggc_mark_rtvec_children): Delete.
3432         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
3433         (lang_mark_false_label_stack): Delete.
3434         * rtl.h (struct rtvec_def): Use gengtype to mark.
3435         * ggc.h (ggc_mark_rtvec): Delete.
3436         (gt_ggc_m_rtvec_def): Delete.
3437         (ggc_mark_nonnull_tree): Delete.
3438         (ggc_mark_rtvec_children): Delete prototype.
3439         (lang_mark_false_label_stack): Delete declaration.
3440
3441         * gengtype.h (note_yacc_type): Add prototype.
3442         * gengtype.c (note_yacc_type): New function.
3443         * gengtype-lex.l: Add lexer support for yacc files.
3444         * gengtype-yacc.y (start): Extract union from yacc files.
3445         (yacc_union): New rule.
3446         (yacc_typematch): New rule.
3447         (yacc_ids): New rule.
3448         (enum_items): Tweak for efficiency.
3449         (optionseq): Likewise.
3450
3451         * c-common.h (struct language_function): Use gengtype.
3452         (struct c_lang_decl): Likewise.
3453         * c-tree.h (struct lang_decl): Likewise.
3454         (struct lang_type): Likewise.
3455         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
3456         tree language substructures.
3457
3458         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
3459         ggc_mark_tree.
3460         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
3461
3462         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
3463
3464         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
3465         mark. Remove 'data.block.cleanup_ptr' field.
3466         (struct stmt_status): Use usual technique to mark struct nesting.
3467         (gt_ggc_mr_nesting_cond): Delete.
3468         (gt_ggc_mr_nesting_loop): Delete.
3469         (gt_ggc_mr_nesting_block): Delete.
3470         (gt_ggc_mr_nesting_case_stmt): Delete.
3471         (expand_start_cond): Set discriminator.
3472         (expand_start_loop): Likewise.
3473         (expand_start_null_loop): Likewise.
3474         (expand_start_bindings_and_block): Set discriminator.  Don't set
3475         deleted fields.
3476         (expand_decl_cleanup): Replace 'cleanup_ptr' with
3477         &thisblock->data.block.cleanups.
3478         (expand_start_case): Set discriminator.
3479         (expand_start_case_dummy): Set discriminator.
3480
3481         * ggc-callbacks.c: Remove.
3482
3483         * gengtype.h (struct type): Add 'u.s.bitmap' field.
3484         (find_structure): Add 'pos' parameter.
3485         * gengtype-lex.l: Update callers to find_structure.
3486         * gengtype-yacc.y: Likewise.
3487         * gengtype.c (find_structure): Allow for structures to be defined
3488         in multiple language backends.
3489         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
3490         (counter): Rename to gc_counter.
3491         (write_gc_structure_fields): Fail when writing out fields for
3492         an incomplete structure.  Ignore arrays of scalars.  Handle
3493         'tree_vec' special.
3494         (write_gc_types): Reset counter for each procedure written.
3495
3496         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
3497         (free_case_nodes): Delete.
3498         (expand_end_case_type): Delete call to free_case_nodes.
3499
3500         * Makefile.in (cselib.o): Include gt-<filename>.h.
3501         (gcse.o): Likewise.
3502         (profile.o): Likewise.
3503         (alias.o): Likewise.
3504         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
3505         alphabetize backend files.
3506         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
3507         * alias.c: Use gengtype for roots.
3508         * c-common.h (struct stmt_tree_s): Use gengtype.
3509         * c-decl.c: Use gengtype for roots.
3510         * cselib.c: Use gengtype for roots.
3511         * expr.c: Use gengtype for roots.
3512         * fold-const.c: Use gengtype for roots.
3513         * gcse.c: Use gengtype for roots.
3514         * gengtype-lex.l: Handle typedefs of function types.
3515         Allow for empty array bounds.
3516         Allow processing to stop on initialisers.
3517         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
3518         (semiequal): New rule.
3519         * gengtype.c (create_file): Tidy output files.
3520         (get_output_file_with_visibility): Fix paren warning.  Fix bug
3521         involving multiple input files mapping to one output file.
3522         (write_gc_structure_fields): Skip arrays of scalars.
3523         (write_gc_types): Tidy output files.
3524         (write_gc_root): New function.
3525         (write_gc_roots): Fix bugs, add support for roots that are
3526         structures.
3527         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
3528         (ggc_mark_tree_ptr): Delete.
3529         (ggc_add_rtx_root): Delete.
3530         (ggc_add_tree_root): Delete.
3531         (ggc_del_root): Delete.
3532         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
3533         allocate struct initial_value_struct.
3534         * profile.c: Use gengtype for roots.
3535         * sdbout.c: Use gengtype for roots.
3536         * varasm.c (mark_weak_decls): Delete unused prototype.
3537         (mark_const_hash_entry): Delete unused function.
3538         * config/darwin-protos.h: Use gengtype for roots.
3539         (machopic_add_gc_roots): Delete.
3540         * config/arm/arm.c: Use gengtype for roots.
3541         * config/arm/arm.h: Use gengtype for roots.
3542         * config/c4x/c4x-protos.h: Use gengtype for roots.
3543         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
3544         * config/d30v/d30v-protos.h: Use gengtype for roots.
3545         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
3546         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
3547         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
3548         * config/ia64/ia64-protos.h: Use gengtype for roots.
3549         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
3550         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
3551         * config/m68hc11/m68hc11.c (z_reg): Make global.
3552         (z_reg_qi): Make global.
3553         (m68hc11_add_gc_roots): Delete.
3554         * config/mcore/mcore-protos.h: Use gengtype for roots.
3555         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
3556         * config/mips/mips.c (mips_add_gc_roots): Delete.
3557         * config/mips/mips.h: Use gengtype for roots.
3558         * config/mmix/mmix.c (override_options): Use gengtype for roots.
3559         * config/mmix/mmix.h: Use gengtype for roots.
3560         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
3561         * config/mn10200/mn10200.h: Use gengtype for roots.
3562         * config/pa/pa.c: Use gengtype for roots, marking.
3563         (struct deferred_plabel): Use GGC, gengtype.
3564         (pa_add_gc_roots): Delete.
3565         (mark_deferred_plabels): Delete.
3566         * config/pj/pj-protos.h: Use gengtype for roots.
3567         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
3568         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
3569         machopic_add_gc_roots.
3570         * config/rs6000/rs6000.h: Use gengtype for roots.
3571         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
3572         (gt-darwin.h): Add rule.
3573         * config/sh/sh.c: Use gengtype for roots.
3574         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
3575         (gt-sh.h): Add rule.
3576         * config/sparc/sparc.c: Use gengtype for roots.
3577         (sparc_add_gc_roots): Delete.
3578         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
3579         (mark_ultrasparc_pipeline_state): Delete.
3580         * config/sparc/sparc.h: Use gengtype for roots.
3581
3582         * Makefile.in (c-parse.o): Update dependencies.
3583         (c-common.o): Likewise.
3584         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
3585         Add dependencies for the files they generate.
3586         * c-common.c: Replace ggc_add_* uses with GTY annotations.
3587         * c-common.h: Likewise.
3588         * c-decl.c: Likewise.
3589         (gt_ggc_mp_binding_level): Delete.
3590         * c-lang.c: Include gtype-c.h.
3591         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
3592         gt-c-parse.h.
3593         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
3594         (gt_ggc_mp_align_stack): Delete.
3595         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
3596         * function.c: Replace ggc_add_* uses with GTY annotations.
3597         (gt_ggc_mp_function): Delete.
3598         * function.h: Replace ggc_add_* uses with GTY annotations.
3599         * gengtype.c (lang_names): New.
3600         (NUM_BASE_FILES): New.
3601         (open_base_files): Create language base files.
3602         (startswith): New.
3603         (get_file_basename): New.
3604         (get_base_file_bitmap): New.
3605         (get_output_file_with_visibility): Rename from get_output_file.
3606         Add more mappings for various C/Objc filenames.
3607         (finish_root_table): New.
3608         (write_gc_roots): Handle dependencies and scoping properly.
3609         * gengtype.h: Add prototypes for new functions.
3610         * ggc-common.c (struct deletable_root): Delete.
3611         (deletables): Delete.
3612         (ggc_add_deletable_root): Delete.
3613         (ggc_mark_roots): No need to deal with deleted functionality.
3614         * ggc.h (ggc_add_deletable_root): Delete prototype.
3615         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
3616         (gtype-objc.h): Add rule to create.
3617         * objc/config-lang.in (gtfiles): New.
3618         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
3619         ggc_add_* with GTY markers.  Include gtype-objc.h.
3620         (ggc_mark_imp_list): Delete.
3621         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
3622         * objc/objc-lang.c: Random Whitespace Change.
3623
3624         * except.h (exception_handler_labels): Delete.
3625         (get_exception_handler_labels): New.
3626         * except.c (exception_handler_labels): Delete.
3627         (struct eh_status): Add exception_handler_labels field.
3628         (doing_eh): Don't add exception_handler_labels as root.
3629         (free_eh_status): Don't need to free exception_handler_labels.
3630         (get_exception_handler_labels): New.
3631         (find_exception_handler_labels): Update for move of
3632         exception_handler_labels.
3633         (remove_exception_handler_label): Likewise.
3634         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
3635         * jump.c (rebuild_jump_labels): Likewise.
3636         * loop.c (find_and_verify_loops): Likewise.
3637         * sched-rgn.c (is_cfg_nonregular): Likewise.
3638
3639         * gengtype.c (write_gc_structure_fields): Handle variable-length
3640         TYPE_ARRAYs.
3641
3642         * varasm.c (struct weak_syms): Use GGC, gengtype.
3643         (mark_weak_decls): Delete.
3644         (weak_decls): Likewise.
3645         (add_weak): Likewise.
3646         (remove_from_pending_weak_list): Likewise.
3647         (init_varasm_once): Likewise.
3648
3649         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
3650         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
3651         stor-layout.c, regclass.c, and lists.c.
3652         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
3653         gt-regclass.h and gt-lists.h on s-gtype.
3654         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
3655         * except.c: Use gengtype for roots.
3656         * explow.c: Use gengtype for roots.  Include gt-explow.h.
3657         * expr.h (init_stor_layout_once): Delete prototype.
3658         * function.c: Use gengtype for roots.
3659         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
3660         * gengtype-yacc.y (start): Can also be an externstatic.
3661         (externstatic): New production.
3662         (struct_fields): Correct array bounds inversion for 2-d arrays.
3663         * gengtype.c (variables): New variable.
3664         (note_variable): New function.
3665         (get_output_file): Include libfuncs.h into gtype-desc.c.
3666         (get_output_file_name): New function.
3667         (write_gc_structure_fields): Suppress warnings.
3668         (write_gc_types): Make static.
3669         (put_mangled_filename): New function.
3670         (write_gc_roots): New function.
3671         (main): Call write_gc_roots.
3672         * gengtype.h (note_variable): Prototype.
3673         (get_output_file_name): Prototype.
3674         (write_gc_types): Delete prototype.
3675         * ggc.h: Clean up unnecessary structure predefinitions.
3676         (struct ggc_root_tab): Define.
3677         (gt_ggc_m_rtx_def): Make function, not macro.
3678         (gt_ggc_m_tree_node): Likewise.
3679         * libfuncs.h: Use gengtype for roots.
3680         * lists.c: Use gengtype for roots.  Include gt-lists.h.
3681         (init_EXPR_INSN_LIST_cache): Delete.
3682         * optabs.c: Use gengtype for roots.
3683         (gt_ggc_mp_optab): Delete.
3684         * optabs.h: Use gengtype for roots.
3685         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
3686         * rtl.h: Use gengtype for roots.
3687         (init_EXPR_INSN_LIST_cache): Delete prototype.
3688         * stor-layout.c: Use gengtype for roots.
3689         Include gt-stor-layout.h.
3690         (init_stor_layout_once): Delete.
3691         * toplev.c: Use gengtype for roots.  Delete calls to deleted
3692         routines.
3693         * tree.c: Use gengtype for roots.
3694         * tree.h: Use gengtype for roots.
3695         * varasm.c: Use gengtype for roots.
3696
3697         * Makefile.in (GTFILES): Add @all_gtfiles@.
3698         * configure: Regenerate.
3699         * configure.in: Construct all_gtfiles from the gtfiles definitions
3700         in config-lang.in.
3701         * gengtype-yacc.y (type): Warn about duplicate structure names.
3702         * gengtype.c (get_output_file): Handle .c files in language
3703         subdirectories.
3704
3705         * Makefile.in (GTFILES): Run gengtype on all the config files
3706         and on the target .c file.
3707         * except.c (mark_eh_region): Delete.
3708         (init_eh_for_function): Use GGC on struct eh_status.
3709         (mark_eh_status): Delete.
3710         (free_eh_status): Use GGC.
3711         (expand_eh_region_start): Use GGC to
3712         (collect_eh_region_array): Allocate last_region_number using GGC.
3713         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
3714         (remove_eh_handler): Let GGC free struct eh_region.
3715         (add_call_site): Use GGC to reallocate call_site_record array.
3716         * function.c (init_machine_status): Update calling sequence.
3717         (mark_machine_status): Likewise.
3718         (mark_lang_status): Likewise.
3719         (prepare_function_start): Update init_machine_status call.
3720         (mark_function_status): Delete.
3721         (maybe_mark_struct_function): Delete.
3722         (ggc_mark_struct_function): Delete.
3723         (gt_ggc_mp_function): New.
3724         (gt_ggc_mr_machine_function): New.
3725         (gt_ggc_mr_language_function): New.
3726         (init_function_once): Use canonical names.
3727         * function.h (struct function): Use gengtype.
3728         (init_machine_status): Return the structure.
3729         (mark_machine_status): Take a 'void *'.
3730         (mark_lang_status): Likewise.
3731         * ggc-common.c (ggc_mark_trees): Use canonical name for
3732         ggc_mark_struct_function.
3733         * tree.h (ggc_mark_struct_function): Delete prototype.
3734         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
3735         (alpha_init_machine_status): Likewise.
3736         (override_options): Use canonical name for alpha_mark_machine_status.
3737         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
3738         * config/arm/arm.h (struct machine_function): Use gengtype.
3739         * config/arm/arm.c (arm_mark_machine_status): Delete.
3740         (arm_init_machine_status): Update calling sequence.
3741         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
3742         * config/cris/cris.c (cris_init_machine_status): Update
3743         calling sequence.
3744         * config/d30v/d30v.h (struct machine_function): Use gengtype.
3745         * config/d30v/d30v.c (d30v_init_machine_status): Update
3746         calling sequence.
3747         (d30v_mark_machine_status): Delete.
3748         * config/i386/i386.c: Include gt-i386.h.
3749         (struct machine_function): Use gengtype.
3750         (ix86_init_machine_status): Update calling sequence.
3751         (ix86_mark_machine_status): Delete.
3752         (override_options): Use canonical namke for ix86_mark_machine_status.
3753         * config/ia64/ia64.h (struct machine_function): Use gengtype.
3754         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
3755         sequence.
3756         (ia64_mark_machine_status): Delete.
3757         (ia64_override_options): Use canonical name for
3758         ia64_mark_machine_status.
3759         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
3760         sequence.
3761         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
3762         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
3763         * gengtype.c (get_output_file): Fix warning.
3764         (main): Add prototype to suppress warning.
3765         * tree.c: Remove tree_hash_mark prototype.
3766
3767         * tree.h (init_stmt): Delete prototype.
3768         * toplev.c (lang_independent_init): Don't call init_stmt.
3769         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
3770         (stmt_obstack): Delete.
3771         (POPSTACK): No need to free 'struct nesting'.
3772         (gt_ggc_mr_nesting_cond): Use canonical names.
3773         (gt_ggc_mr_nesting_loop): Use canonical names.
3774         (gt_ggc_mr_nesting_block): Use canonical names.
3775         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
3776         (mark_stmt_status): Delete.
3777         (init_stmt): Delete.
3778         (clear_last_expr): Clear both last_expr_type and last_expr_value.
3779         Use it everywhere that last_expr_type was cleared.
3780         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
3781         (zap_lists): Delete.
3782         * ggc.h (ggc_add_deletable_root): Prototype.
3783         (mark_stmt_status): Remove prototype.
3784         * ggc-common.c (ggc_add_deletable_root): New.
3785         (ggc_mark_roots): Handle deletable roots.
3786         * function.c (ggc_mark_struct_function): Use canonical name
3787         for mark_stmt_status.
3788         * emit-rtl.c (free_sequence_stack): New.
3789         (start_sequence): Use a freelist for sequences.
3790         (end_sequence): Likewise.
3791         (init_emit_once): Add free_sequence_stack as a deleteable root.
3792         * c-pragma.c Include gt-c-pragma.h.
3793         (struct align_stack): Use gengtype.
3794         (push_alignment): Use GGC for struct align_stack.
3795         (mark_align_stack): Delete.
3796         (gt_ggc_mp_align_stack): New.
3797         (init_pragma): Use canonical name for mark_align_stack.
3798         * c-decl.c: Include gt-c-decl.h.
3799         (struct binding_level): Use gengtype.
3800         (make_binding_level): Use GGC; handle the freelist here.
3801         (pop_binding_level): New.
3802         (pushlevel): Move code into make_binding_level.
3803         (push_label_level): Likewise.
3804         (poplevel): Move code into pop_binding_level.
3805         (pop_label_level): Likewise.
3806         (mark_binding_level): Delete.
3807         (gt_ggc_mp_binding_level): New.
3808         (c_init_decl_processing): Use canonical name for mark_binding_level.
3809         Add free_binding_level as deletable root.
3810         (mark_c_function_context): Use canonical name for mark_binding_level.
3811         * Makefile.in (c-decl.o): Add gt-c-decl.h.
3812         (c-pragma.o): Add gt-c-pragma.h.
3813         (GTFILES): Add c-decl.c and c-pragma.c.
3814         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
3815
3816         * tree.c (struct type_hash): Use gengtype.
3817         (init_obstacks): Use canonical name for type_hash_mark.
3818         (type_hash_mark): Delete.
3819         Include gt-tree.h.
3820         * rtl.h (struct mem_attrs): Use gengtype.
3821         * optabs.h (struct optab): Use gengtype.
3822         * optabs.c (expand_binop): Squish signed/unsigned warning.
3823         (mark_optab): Make local, use canonical name, use autogenerated
3824         marker procedure.
3825         (init_optabs): Use canonical name for mark_optab.
3826         (new_optab): Use GGC to allocate optabs.
3827         * ggc.h: Delete mark_optab prototype.
3828         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
3829         mem_attrs marker procedure.
3830         * gengtype.c (get_output_file): Include headers in gtype-desc.c
3831         explicitly rather than deducing them from file names.
3832         (write_gc_structure_fields): Handle arrays of structures.
3833         (main): Return non-zero exit code if errors occur during output.
3834         * emit-rtl.c (mem_attrs_mark): Delete.
3835         (init_emit_once): Use canonical name for mem_attrs marker procedure.
3836         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
3837         (tree.o): Depend on gt-tree.h.
3838         (GTFILES): Add rtl.h, optabs.h, tree.c.
3839         (gt-tree.h): Add it to s-gtype rule.
3840
3841         * .cvsignore: Ignore gengtype flex/bison generated files.
3842         * Makefile.in (GGC_H): Add gtype-desc.h.
3843         (OBJS): Add gtype-desc.o.
3844         (GEN): Add gengtype.
3845         (STAGESTUFF): Add gengtype.
3846         (varasm.o): Add gt-varasm.h.
3847         (stmt.o): Add gt-stmt.h.
3848         (except.o): Add gt-except.h.
3849         (integrate.o): Add gt-integrate.h.
3850         (GTFILES): New.
3851         Add new rules for new files.
3852         * configure: Regenerate.
3853         * configure.in: Correct defaults.h paths.
3854         * emit-rtl.c (mark_sequence_stack): Delete.
3855         (mark_emit_status): Delete.
3856         (start_sequence): Allocate sequence structures using GGC.
3857         (end_sequence): Allocate sequence structures using GGC.
3858         * except.c: Use gengtype for various structures.  Include
3859         gt-except.h.
3860         * expr.c (mark_expr_status): Delete.
3861         * function.c: Use gengtype for various structures.  Include
3862         gt-function.h.
3863         (mark_function_status): Use standard gt_ggc names for marker functions.
3864         (ggc_mark_struct_function): Likewise.
3865         * function.h: Use gengtype for various structures.
3866         * gengtype-lex.l: New file.
3867         * gengtype-yacc.y: New file.
3868         * gengtype.c: New file.
3869         * gengtype.h: New file.
3870         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
3871         the standard names.  Remove some now-unnecessary prototypes.
3872         * integrate.c: Use gengtype for various structures.  Include
3873         gt-integrate.h.
3874         (mark_hard_reg_initial_vals): Delete.
3875         * integrate.h (mark_hard_reg_initial_vals): Delete.
3876         * stmt.c: Use gengtype for various structures.  Include
3877         gt-stmt.h.
3878         (mark_case_node): Delete.
3879         (mark_goto_fixup): Delete.
3880         (mark_stmt_status): Use standard gt_ggc names for marker functions.
3881         * system.h: Define GTY to empty.   In flex/bison files,
3882         don't poison malloc or realloc, instead just define them to
3883         xmalloc and xrealloc.
3884         * varasm.c: Use gengtype for various structures.  Include
3885         gt-varasm.h.  Use standard gt_ggc names for marker functions.
3886         (mark_pool_constant): Delete.
3887         (mark_varasm_status): Delete.
3888         (decode_rtx_const): #if 0 out non-typesafe hack.
3889
3890         * function.h (free_lang_status): Mark as obsolete.
3891         * function.c (free_lang_status): Mark as obsolete.
3892         * c-decl.c (push_c_function_context): Use GC to allocate and free
3893         struct language_function.
3894         (pop_c_function_context): Likewise.
3895         * c-common.c (mark_c_language_function): Mark struct
3896         language_function.
3897
3898         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
3899         Document that the machine_function structures must be allocated
3900         using GC.  Update mark_machine_status documentation.
3901         * function.h: Don't declare free_machine_status.
3902         * function.c (free_machine_status): Don't define.
3903         (free_after_compilation): Don't call free_machine_status.
3904         (ggc_mark_struct_function): Mark f->machine.  Call
3905         mark_machine_status only on non-NULL pointers.
3906         * system.h: Poison free_machine_status.
3907         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
3908         struct machine_function.
3909         (xtensa_free_machine_status): Delete.
3910         (override_options): Don't set free_machine_status.
3911         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
3912         free_machine_status.
3913         (rs6000_init_machine_status): Use GC on struct machine_function.
3914         (rs6000_free_machine_status): Delete.
3915         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
3916         machine_function.
3917         (ia64_mark_machine_status): Likewise.
3918         (ia64_free_machine_status): Delete.
3919         (ia64_override_options): Don't set free_machine_status.
3920         * config/i386/i386.c (override_options): Don't set
3921         free_machine_status.
3922         (ix86_init_machine_status): Use GC on struct machine_function.
3923         (ix86_mark_machine_status): Likewise.
3924         (ix86_free_machine_status): Delete.
3925         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
3926         machine_function.
3927         (d30v_mark_machine_status): Likewise.
3928         (d30v_free_machine_status): Delete.
3929         (d30v_init_expanders): Don't set free_machine_status.
3930         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
3931         machine_function.
3932         (arm_init_machine_status): Likewise.
3933         (arm_free_machine_status): Delete.
3934         (arm_init_expanders): Don't set free_machine_status.
3935         * config/alpha/alpha.c (override_options): Don't set
3936         free_machine_status.
3937         (alpha_init_machine_status): Use GC on struct machine_function.
3938         (alpha_mark_machine_status): Likewise.
3939         (alpha_free_machine_status): Delete.
3940
3941         * varasm.c (compare_constant): Fix typo.
3942
3943         * varasm.c: Don't include obstack.h.
3944         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
3945         (struct rtx_const): Give substructures names, improve formatting.
3946         (struct constant_descriptor): Delete.
3947         (struct constant_descriptor_tree): New, based on constant_descriptor.
3948         (const_hash_table): Is a hash table of trees.
3949         (mark_const_hash_entry): Is used for hashes of trees.  Mark
3950         constant_descriptor_tree structure.
3951         (mark_const_str_htab_1): Mark deferred_string structure.
3952         (compare_constant): Rewrite to compare trees.
3953         (compare_constant_1): Delete.
3954         (record_constant): Delete.
3955         (record_constant_1): Delete.
3956         (output_constant_def): Use struct constant_descriptor_tree.
3957         Don't duplicate trees twice.
3958         (struct constant_descriptor_rtx): New.
3959         (struct pool_constant): Used for rtx constants.
3960         (init_varasm_status): Update for change to struct varasm_status.
3961         (mark_varasm_status): Likewise.
3962         (free_varasm_status): Delete.
3963         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
3964         (record_constant_rtx): Likewise.
3965         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
3966         (force_const_mem): Likewise.
3967         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
3968         * function.c (free_after_compilation): Don't use free_varasm_status.
3969         * function.h: Don't prototype free_varasm_status.
3970
3971         * ggc-common.c (ggc_realloc): Handle X being NULL.
3972
3973         * ggc-common.c (ggc_realloc): New function.
3974         * ggc.h: Prototype it.
3975         * emit-rtl.c (free_emit_status): Delete.
3976         (init_emit): Allocate emit subarrays using GC.
3977         (gen_reg_rtx): Reallocate subarrays using GC.
3978         (init_emit): Use GC to allocate 'struct emit_status' and its
3979         subarrays.
3980         (mark_emit_status): Mark structure and its subarrays.
3981         * stmt.c (free_stmt_status): Delete.
3982         * expr.c (free_expr_status): Delete.
3983         * function.h: Remove prototypes for deleted functions.
3984         * function.c (free_after_compilation): Don't use deleted functions.
3985         Don't call free() on x_parm_reg_stack_loc.
3986         (free_after_parsing): Don't use free_stmt_status.
3987         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
3988         (mark_function_status): Mark x_parm_reg_stack_loc.
3989
3990         * varasm.c (init_varasm_status): Use GC to allocate
3991         'struct varasm_status' and its fields x_const_rtx_hash_table
3992         and x_const_rtx_sym_hash_table.
3993         (mark_varasm_status): Mark them.
3994         (free_varasm_status): Use GC to free them.
3995         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
3996         (mark_expr_status): Mark the structure itself.
3997         (free_expr_status): Use GC to free the structure.
3998         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
3999         (mark_stmt_status): Mark the 'struct stmt_status' itself.
4000         (init_stmt_for_function): Allocate the structure for GC.
4001
4002         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
4003         (equate_type_number_to_die): Likewise.
4004         * tree.h (TYPE_SYMTAB_DIE): New macro.
4005         (struct die_struct): Predeclare.
4006         (struct tree_type): Add field symtab.die.   Add a tag
4007         to the union type of field symtab.
4008
4009         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
4010         'struct rtvec_def *', not 'struct rtvec_def'.
4011
4012         * function.h (original_arg_vector): Make a real rtvec.
4013         * function.c (ggc_mark_struct_function): Adjust.
4014         * integrate.c (expand_inline_function): Adjust.
4015
4016 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
4017
4018         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
4019         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
4020         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
4021         (TARGET_VERSION_CPU): Define according to the
4022         default target.
4023         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
4024         TARGET_VERSION_CPU.
4025         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
4026         if TARGET_SHMEDIA64.
4027         (LINK_DEFAULT_CPU_EMUL): Define according to the
4028         default target.
4029         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
4030         (SUBTARGET_LINK_SPEC): Define.
4031         (LINK_SPEC): Use SH_LINK_SPEC.
4032         (ASM_SPEC): Remove.
4033         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
4034         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
4035         and TARGET_SHMEDIA64 which abort, for now.
4036         * config/sh/t-netbsd-sh5: New file.
4037         * config/sh/t-netbsd-sh5-32: New file.
4038         * config/sh/t-netbsd-sh5-64: New file.
4039
4040 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
4041             Richard Henderson  <rth@redhat.com>
4042
4043         * config/alpha/alpha.c (reg_or_const_int_operand): New.
4044         (some_operand, input_operand): Accept CONST_VECTOR.
4045         (alpha_extra_constraint): Add 'W'.
4046         (alpha_expand_zap_mask): New.
4047         (alpha_expand_builtin_vector_binop): New.
4048         (enum alpha_builtin): New.
4049         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
4050         (alpha_init_builtins, alpha_expand_builtin): New.
4051         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
4052         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
4053         (PREDICATE_CODES): Update.
4054         * config/alpha/alpha-protos.h: Update.
4055         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
4056         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
4057         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
4058         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
4059         (movv2si, movv2si_fix, movv2si_nofix): New.
4060         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
4061         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
4062         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
4063         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
4064         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
4065         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
4066         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
4067         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
4068         builtin_unpkbw, unpkbw): New.
4069         * doc/extend.texi (Alpha Built-in Functions): New.
4070
4071 2002-06-03  Richard Henderson  <rth@redhat.com>
4072
4073         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
4074         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
4075
4076 2002-06-03  Richard Henderson  <rth@redhat.com>
4077
4078         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
4079
4080         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
4081         (const0_operand): New.
4082         (reg_or_fp0_operand, fp0_operand): Remove.
4083         * config/alpha/alpha.h (PREDICATE_CODES): Update.
4084         * config/alpha/alpha-protos.h: Update.
4085         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
4086         and fp0_operand with reg_or_0_operand and const0_operand.
4087
4088 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
4089
4090         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
4091
4092 2002-06-03  Roger Sayle  <roger@eyesopen.com>
4093
4094         * gcse.c (cprop_jump): Use single_set to get the pattern
4095         from the setcc argument.
4096
4097 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
4098
4099         * diagnostic.h (diagnostic_count): Move from output_buffer to
4100         diagnostic_context.
4101         (diagnostic_kind_count): Adjust definition.
4102
4103 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
4104
4105         * except.c (except.c): Do not rebuild CFG.
4106         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
4107         optimization.
4108
4109 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
4110
4111         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
4112         * toplev.c: Include cfglahout.h
4113         * Makefile.in (toplev.c): Add dependnecy.
4114
4115 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4116
4117         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
4118         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
4119         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
4120
4121 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
4122
4123         * config/ns32k/netbsd.h: Update copyright years.
4124         (TARGET_OS_CPP_BUILTINS): Define.
4125         (CPP_PREDEFINES): Remove.
4126         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
4127         (TARGET_CPU_CPP_BUILTINS): Define.
4128
4129 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4130
4131         * emit-rtl.c: Fix formatting.
4132         * errors.h: Likewise.
4133         * except.c: Likewise.
4134         * explow.c: Likewise.
4135         * expmed.c: Likewise.
4136         * expr.c: Likewise.
4137         * expr.h: Likewise.
4138
4139 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4140
4141         * config/h8300/elf.h: Fix formatting.
4142         * config/h8300/rtems.h: Likewise.
4143
4144 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
4145
4146         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
4147
4148 2002-06-02  Tom Tromey  <tromey@redhat.com>
4149
4150         * fixinc/fixincl.x: Rebuilt.
4151         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
4152
4153 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4154
4155 config/i370:
4156         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
4157         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
4158         * mvs.h: Similarly.
4159         * oe.h: Similarly.
4160
4161 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
4162
4163         * final.c (final):  Allow notes to not have computed addresses;
4164         kill no longer needed STACK_REGS ifdef.
4165
4166 2002-06-02  Richard Henderson  <rth@redhat.com>
4167
4168         * gcse.c (bypass_conditional_jumps): Fix typo last change.
4169
4170 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
4171
4172         * loop.c (emit_prefetch_instructions): Properly place the address
4173         computation.
4174
4175 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
4176
4177         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
4178         (set_block_for_insn): Turn into macro.
4179         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
4180         * cfglayout.c (insn_scopes): Kill.
4181         (scope_to_insns_initialize): Do not use insn_scopes.
4182         (scope_to_insns_finalize): Likewise.
4183         (duplicate_insn_chain): Likewise.
4184         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
4185         * cfgrtl.c (basic_block_for_insn): Kill.
4186         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
4187         (create_basic_block_structure): Use reorder_insns.
4188         (compute_bb_for_insn): Do not use basic_block_for_insn.
4189         (merge_blocks_nomove): Likewise.
4190         (update_bb_for_insn): Likewise.
4191         (verify_flow_info): Likewise.
4192         (set_block_for_insn): Kill.
4193         * combine.c (try_combine): Update gen_rtx_INSN call.
4194         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
4195         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
4196         scopes and BBs.
4197         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
4198         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
4199         Clear BB.
4200         (emit_insns_after): Simplify.
4201         (emit_copy_of_insn_after): Copy scope.
4202         * final.c (final_start_function): Lower scopes.
4203         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
4204         * integrate.c (copy_insn_list): Cope scopes.
4205         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
4206         * loop.c (loop_optimize): Do not care block notes.
4207         * print-rtl.c (print_rtx): Print BB.
4208         * recog.c (apply_change_group): Simplify.
4209         * rtl.c (copy_rtx): Handle 'B'.
4210         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
4211         * rtl.h (Field accessors): Update indexes.
4212         * sched-ebb.c (schedule_ebbs): Do not lower notes.
4213         * sched-rgn.c (schedule_insns): Likewise.
4214         * toplev.c (rest_of_compilation): Lower notes.
4215         * unroll.c (unroll_loop): Do not care scoping notes.
4216         (copy_loop_body): Copy scopes.
4217
4218 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4219
4220 config/h8300:
4221         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
4222         SUBTARGET_SPEC.
4223         * rtems.h: Similarly.
4224         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
4225         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
4226         (TARGET_CPU_CPP_BUILTINS): Use.
4227
4228 2002-06-02  Richard Henderson  <rth@redhat.com>
4229
4230         * alias.c: Include target.h.
4231         (mark_constant_function): Use targetm.binds_local_p instead
4232         of checking TREE_PUBLIC ourselves.
4233         * Makefile.in (alias.o): Add TARGET_H.
4234
4235 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4236
4237         * c-lex.c: Update copyright and file description.
4238
4239 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4240
4241         * config/fr30/fr30.h: Update to new CPP macros.
4242
4243 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4244
4245         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
4246
4247 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4248             Zack Weinberg <zack@codesourcery.com>
4249
4250         * c-common.c (c_common_init): Override cpplib's default
4251         warn_long_long setting.
4252         * c-lex.c (lex_number): Replace with interpret_integer,
4253         interpret_float, narrowest_unsigned_type and
4254         narrowest_signed_type, taking advantage of the new
4255         cpplib functionality.
4256         * cpperror.c (_cpp_begin_message): If a warning is turned
4257         into an error, avoid printing "warning:".
4258         * cppexp.c (cpp_num_sign_extend): New.
4259         * cppinit.c: Update comment.
4260         * cpplib.h (cpp_num_sign_extend): New.
4261         * tree.h: Update comment.
4262
4263 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
4264
4265         * diagnostic.h (struct diagnostic_context):  Add new member
4266         internal_error.
4267         (internal_error_function): Remove declaration.
4268         * diagnostic.c (internal_error_function): Remove definition..
4269         (internal_error): Adjust use.
4270
4271 2002-06-02  Richard Henderson  <rth@redhat.com>
4272
4273         * rtl.h (CC0_P): New.
4274         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
4275         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
4276         (bypass_block): Save old dest block for dump text.
4277         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
4278         Allow only true SET insns, not single_set.
4279
4280 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
4281
4282         * diagnostic.c (diagnostic_finish): Rename to output_flush.
4283         (clear_disgnostic_info): Rename to output_clear_data.  Use false
4284         instead of 0 for boolean value.
4285         Adjust function call throughout.
4286
4287 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
4288
4289         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
4290         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
4291
4292 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4293
4294         * d30v.h (CPP_PREDEFINES): Replace with
4295         (TARGET_CPU_CPP_BUILTINS): New.
4296
4297 2002-06-02  Roger Sayle  <roger@eyesopen.com>
4298
4299         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
4300
4301 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
4302
4303         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
4304
4305 2002-06-02  Richard Henderson  <rth@redhat.com>
4306
4307         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
4308
4309 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4310
4311         Support for C++ constructors/destructors.
4312         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
4313         instead of looping if main() returns.
4314         (asm_file_start): Output global symbols that cause .data and .bss
4315         initialization code to be linked in, unconditionally for now.
4316         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
4317         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
4318         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4319         (LIBSTDCXX): New.
4320         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
4321         (__tablejump__): New.
4322         (__do_copy_data, __do_clear_bss): New.
4323         (__do_global_ctors, __do_global_dtors): New.
4324         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
4325         _ctors, _dtors.
4326
4327 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4328
4329         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
4330         (CPP_SPEC, CPP_PREDEFINES): Kill.
4331         * c4x/rtems.h (CPP_PREDEFINES): Kill.
4332         (TARGET_OS_CPP_BUILTINS): New.
4333
4334 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
4335
4336         * Makefile.in (tracer.o): New.
4337         * params.def (TRACER_*): New options.
4338         * rtl.h (tracer): Declare.
4339         * timevar.def (TV_TRACER): New.
4340         * toplev.c (dump_file_index): Add DFI_tracer.
4341         (dump_file_info): Add tracer.
4342         (flag_tracer): New.
4343         (lang_indepdenent_options): Add tracer.
4344         (rest_of_compilation): Call tracer.
4345         * tracer.c: New file.
4346         * invoke.texi (-ftracer): Document.
4347         (--param tracer-*): Document.
4348
4349 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
4350
4351         * tree-inline.c (expand_call_inline): Make the statement
4352         expression we generate have a COMPOUND_STMT.
4353
4354 2002-06-01  Roger Sayle  <roger@eyesopen.com>
4355
4356         * gcse.c (cprop_cc0_jump): Function deleted.
4357         (cprop_jump): Take an additional argument which is the possibly
4358         NULL cc setting insn immediately before the conditional jump.
4359         When a MODE_CC set is present, substitute it into the JUMP_INSN
4360         before attempting the constant propagation.
4361         (cprop_insn):  Recognize cc setters followed by conditional jumps
4362         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
4363         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
4364         (find_bypass_set): New function based upon find_avail_set used by
4365         cprop, but finds constant expressions available at the end of
4366         basic blocks.
4367         (bypass_block): New function.  Given a basic block that begins
4368         with a conditional jump and multiple incoming edges, perform
4369         the jump bypass optimization.
4370         (bypass_conditional_jumps): New function.  Call bypass_block with
4371         each suitable basic block in the CFG using a simple single pass.
4372
4373 2002-06-01  Roger Sayle  <roger@eyesopen.com>
4374
4375         * tree.c (real_minus_onep): New function to test for -1.0.
4376         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
4377
4378 2002-06-01  Roger Sayle  <roger@eyesopen.com>
4379
4380         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
4381         and "!p && !q" into "(p|q) == 0" under suitable conditions.
4382
4383 2002-06-01  Andreas Jaeger  <aj@suse.de>
4384
4385         * cppexp.c (cpp_classify_number): Cast precission to int for
4386         correct printf format.
4387
4388 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4389
4390         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
4391         expected, but don't really exist: atmega83, atmega85, attiny10.
4392         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
4393         emulations for all devices.
4394         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
4395         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
4396
4397 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
4398
4399         * config/h8300/h8300-protos.h: Add a prototype for
4400         h8300_shift_needs_scratch_p.
4401         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
4402         * config/h8300/h8300.h (OK_FOR_R): New.
4403         (OK_FOR_S): Likewise.
4404         (OK_FOR_T): Likewise.
4405         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
4406         * config/h8300/h8300.md (anonymous shift patterns): Use
4407         constraints R, S, and T.
4408
4409 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4410
4411         * basic-block.h (struct basic_block_def): New field loop_father.
4412         (BB_VISITED): New flag.
4413         (struct loop): New field pred, removed field shared.
4414         (struct loops): New field parray.
4415         (LOOP_EXITS_DOMS): Removed.
4416         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
4417         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
4418         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
4419         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
4420         verify_loop_structure): Declare.
4421         * cfg.c (entry_exit_blocks): Initialize loop_father field.
4422         * cfganal.c (dfs_enumerate_from): New function.
4423         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
4424         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
4425         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
4426         flow_loop_dump, flow_loops_dump, flow_loops_free,
4427         flow_loop_tree_node_add, flow_loop_level_compute,
4428         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
4429         flow_loop_outside_edge_p): Modified for new infrastructure.
4430         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
4431         redirect_edge_with_latch_update, flow_loop_free): New static functions.
4432         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
4433         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
4434         find_common_loop, verify_loop_structure, loop_latch_edge,
4435         loop_preheader_edge): New functions.
4436         (flow_loops_cfg_dump): Do not show dominators, as this information
4437         does not remain up to date long.
4438         (flow_loops_find): Store results in new format.
4439         * predict.c (propagate_freq, estimate_probability,
4440         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
4441         infrastructure.
4442
4443 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
4444
4445         * except.c (nothrow_function_p): Walk epilogue delay list
4446         checking the insn, not the chain for potential throws.
4447
4448 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
4449
4450         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
4451         (install): Refer to install-cpp directly.
4452         (uninstall-cpp): Folded into uninstall rule.
4453         * configure.in: Delete all code relating to --disable-cpp.
4454         * configure: Regenerate.
4455         * config/t-install-cpp: Delete.
4456
4457 2002-05-31  Richard Henderson  <rth@redhat.com>
4458
4459         * configure.in (HAVE_AS_TLS): Add alpha tests.
4460         * configure: Rebuild.
4461         * config/alpha/alpha.c (TARGET_AS_TLS): New.
4462         (alpha_tls_size, alpha_tls_size_string): New.
4463         (overide_options): Set it.  Always install machine_status hooks.
4464         (input_operand): Accept got tls predicates.
4465         (local_symbol_p): Merge into ...
4466         (local_symbolic_operand): ... here.  Reject tls symbols.
4467         (global_symbolic_operand): Likewise.
4468         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
4469         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
4470         (tp16_symbolic_operand, tp32_symbolic_operand): New.
4471         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
4472         (alpha_encode_section_info): Handle TLS symbols.
4473         (alpha_strip_name_encoding): Likewise.
4474         (alpha_legitimate_address_p): Likewise.
4475         (alpha_legitimize_address): Likewise.
4476         (alpha_expand_mov): Early exit to avoid nop moves.
4477         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
4478         (alpha_init_machine_status, alpha_mark_machine_status,
4479         alpha_free_machine_status): Always define.
4480         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
4481         (print_operand, print_operand_address): Add TLS relocs.
4482         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
4483         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
4484         (TARGET_SWITCHES): Add -mtls-kernel.
4485         (alpha_tls_size, alpha_tls_size_string): New.
4486         (TARGET_OPTIONS): Add -mtls-size=.
4487         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
4488         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
4489         (ASM_OUTPUT_LABELREF): Skip %.
4490         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
4491         (PREDICATE_CODES): Update.
4492         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
4493         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
4494         UNSPEC_TP, UNSPECV_SET_TP): New.
4495         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
4496         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
4497         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
4498         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
4499         (call_value_osf_2_er): Accept anything as op4.
4500         * config/alpha/alpha-protos.h: Update.
4501         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
4502
4503 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
4504
4505         * cppinit.c (append_include_chain): Always pay attention to
4506         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
4507         marker on argument.
4508
4509 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4510
4511         * target.h: Fix formatting.
4512         * timevar.h: Likewise.
4513         * tlink.c: Likewise.
4514         * toplev.c: Likewise.
4515         * toplev.h: Likewise.
4516         * tree.c: Likewise.
4517         * tree-dump.h: Likewise.
4518         * tree.h: Likewise.
4519         * tree-inline.h: Likewise.
4520         * unroll.c: Likewise.
4521         * unwind-dw2.c: Likewise.
4522         * unwind-dw2-fde.c: Likewise.
4523         * unwind-dw2-fde-glibc.c: Likewise.
4524         * unwind-dw2-fde.h: Likewise.
4525         * unwind.h: Likewise.
4526         * unwind-sjlj.c: Likewise.
4527         * varasm.c: Likewise.
4528         * varray.h: Likewise.
4529         * vmsdbg.h: Likewise.
4530         * vmsdbgout.c: Likewise.
4531         * xcoffout.h: Likewise.
4532
4533 2002-05-31  Igor Shevlyakov <igor@microunity.com>
4534
4535         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
4536         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
4537
4538 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
4539
4540         * gcc.c (cpp_unique_options): Remove "-d" options.
4541         (cpp_debug_options): New spec string.
4542         (default_compilers): Use it.
4543         * objc/lang-specs.h: Likewise.
4544
4545 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
4546
4547         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
4548         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
4549         * gcc/mklibgcc.in: Likewise.
4550         * gcc/config/arc/t-arc: Likewise.
4551         * gcc/configure.in: Likewise.
4552         * gcc/configure: Regenerate.
4553
4554 2002-05-31  Stan Shebs  <shebs@apple.com>
4555             Turly O'Connor  <turly@apple.com>
4556
4557         * c-decl.c (struct binding_level): Change int field n_incomplete
4558         to tree list incomplete_list.
4559         (clear_binding_level): Init field with NULL.
4560         (pushdecl): Add incomplete type to list.
4561         (mark_binding_level): Mark the incomplete list.
4562         (finish_struct): Scan the incomplete list for types instead
4563         of all decls in the current binding level.
4564
4565 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4566
4567         * pa.c (output_millicode_call): Add missing '%' characters.
4568         (output_call): Likewise.
4569
4570 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
4571
4572         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
4573         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
4574
4575 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
4576
4577         * varasm.c (mark_constant_pool): Walk epilogue delay list
4578         checking the insn, not the chain for potential constants.
4579
4580 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
4581
4582         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
4583
4584 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
4585
4586         * i386.c (classify_argument): Properly handle base types.
4587
4588         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
4589         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
4590         registers.
4591
4592 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
4593
4594         * gcse.c (gcse_emit_move_after): New.
4595         (pre_delete, hoist_store): Use it.
4596
4597         * reload1.c (emit_input_reload_insns): Use constrain_operands
4598         instead of constraint_accepts_reg_p to verify optimization.
4599         (constraint_accepts_reg_p): Kill
4600
4601         * reload1.c (reload_cse_delete_noop_set): Kill.
4602         (reload_cse_simplify): use delte_insn_and_edges.
4603
4604 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4605
4606         * cfgloop.c (flow_loops_find): Initialize first and last fields
4607         correctly.
4608
4609 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4610
4611         * c-common.c (builtin_define_std): Correct logic.
4612
4613 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4614
4615         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
4616         (output_call): Likewise.
4617
4618 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4619
4620         * pa.c: Move output.h include after tree.h include.
4621         (pa_asm_output_mi_thunk): Constify identifier lab.
4622
4623 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
4624
4625         * config/ns32k/ns32k.h: Define named constants for the
4626         bits in target_flags and use them.
4627         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
4628
4629 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4630
4631         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
4632         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
4633         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
4634         default scheduling model.
4635         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
4636         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
4637         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
4638         * doc/install.texi (hppa*-*-*): Document default scheduling.
4639
4640 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4641
4642         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
4643
4644 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
4645
4646         * config.gcc (ns32k-*-netbsd*): Set tm_file to
4647         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
4648         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
4649         netbsd.h, or netbsd-aout.h.
4650
4651 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
4652
4653         * longlong.h (count_trailing_zeros): Add missing \, and clean up
4654         whitespace in __ns32000__ case.
4655
4656 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
4657
4658         * expr.c (expand_expr): Output partially zeroed out vectors with
4659         output_constant_def.
4660
4661 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
4662
4663         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
4664         (sh-*-netbsdelf*)
4665         (shl*-*-netbsdelf*): New targets.
4666         * config/sh/netbsd-elf.h: New file.
4667         * config/sh/t-netbsd: New file.
4668
4669 2002-05-30  Richard Henderson  <rth@redhat.com>
4670             Eric Botcazou  <ebotcazou@multimania.com>
4671
4672         PR optimization/6822
4673         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
4674         to unsigned int for op1 comparisons.  Use gen_int_mode.
4675
4676 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
4677
4678         * expmed.c (const_mult_add_overflow_p): New.
4679         * expr.h: Declare it.
4680         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
4681         Don't eliminate the biv if the giv has a constant multiplier and
4682         the rhs argument of the comparison does satisfy the predicate.
4683         Use expand_mult_add to compute the replacement constant.
4684
4685 2002-05-30  Osku Salerma  <osku@iki.fi>
4686
4687         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
4688         (c_common_get_alias_set): Handle it.
4689         * doc/extend.texi: Document it.
4690
4691 2002-05-30  Richard Henderson  <rth@redhat.com>
4692
4693         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
4694         * toplev.c (process_options): Don't check it.
4695         * doc/tm.texi: Don't document it.
4696         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
4697         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
4698         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
4699         frame pointer optimization if current_function_profile.
4700
4701 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4702
4703         * langhooks.c: Fix formatting.
4704         * langhooks.h: Likewise.
4705         * lcm.c: Likewise.
4706         * libgcc2.c: Likewise.
4707         * lists.c: Likewise.
4708         * local-alloc.c: Likewise.
4709         * loop.c: Likewise.
4710         * loop.h: Likewise.
4711
4712 2002-05-30  Marc Espie <espie@openbsd.org>
4713
4714         * config.gcc (sparc64-*-openbsd*): New.
4715         * config/sparc/openbsd1-64.h: New.
4716         * config/sparc/openbsd64.h: New.
4717
4718 2002-05-30  Jeff Law <law@redhat.com>
4719
4720         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
4721         a dead insn with a REG_RETVAL note when the entire libcall is not
4722         dead and remove the associated REG_LIBCALL note at the same time.
4723
4724 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
4725
4726         * lcm.c (output.h): #include.
4727         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
4728         as an ordinary block.
4729         (optimize_mode_switching): Don't pretend that the exit block is
4730         an ordinary block, or handle sucessors of entry block specially.
4731         Instead, split edges from entry block and to exit block, and
4732         put a computing definition on the thus gained post-entry-block,
4733         and a need on the pre-exit-block.
4734
4735 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
4736
4737         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
4738         * rtl.texi: Document 'B'
4739
4740 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
4741
4742         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
4743         at run-time.
4744         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
4745
4746 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
4747
4748         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
4749         const0_rtx instead of NULL_RTX when in error.
4750         (altivec_expand_abs_builtin): Same.
4751         (rs6000_expand_binop_builtin): Same.
4752         (altivec_expand_predicate_builtin): Same.
4753         (altivec_expand_stv_builtin): Same.
4754         (rs6000_expand_ternop_builtin): Same.
4755         (altivec_expand_builtin): Same.
4756
4757 2002-05-29  David S. Miller  <davem@redhat.com>
4758
4759         * rtl.h (clear_emit_caches): Delete.
4760         * integrate.c (output_inline_function): Don't call it.
4761         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
4762         (clear_emit_caches): Delete definition.
4763         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
4764
4765 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
4766
4767         * config/mmix/mmix.c: Include real.h.
4768         (mmix_constant_address_p): Remove redundant test before switch.
4769
4770 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4771
4772         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
4773         only if not already defined.
4774
4775 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
4776
4777         * config/h8300/h8300-protos.h: Remove prototypes for
4778         ok_for_bclr and small_power_of_two.
4779         * config/h8300/h8300.c (small_power_of_two): Remove.
4780         (ok_for_blcr): Likewise.
4781         (fix_bit_operand): Make WHAT deal with an integer instead of a
4782         constraint character.
4783         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
4784         (CONST_OK_FOR_P): Likewise.
4785         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
4786         CONST_OK_FOR_P any more.
4787         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
4788         of fix_bit_operand.
4789         (iorqi3): Likewise.
4790         (xorqi3): Likewise.
4791
4792 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4793
4794         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
4795         (CPP_PREDEFINES): Make sure this is undefined.
4796         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
4797         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
4798         or -U__MIPSEB__ before defining one or the other.  Instead,
4799         use %(subtarget_endian_default) if neither -EB nor -EL are
4800         specified.
4801         (SUBTARGET_EXTRA_SPECS): Define.
4802         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
4803         %(netbsd_cpp_spec).
4804
4805 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
4806
4807         * doc/md.texi (Patterns): Note pattern condition pitfall
4808         for unnamed insn.
4809
4810 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
4811
4812         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
4813         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
4814         ternary operations from here...
4815         (rs6000_expand_builtin): ...to here.
4816         New argument expandedp.
4817         Change all instances of altivec_expand_binop_builtin to
4818         rs6000_expand_binop_builtin.
4819         (altivec_expand_unop_builtin): Rename to
4820         rs6000_expand_unop_builtin.
4821         (altivec_expand_binop_builtin): Rename to
4822         rs6000_expand_binop_builtin.
4823         (altivec_expand_ternop_builtin): Rename to
4824         rs6000_expand_ternop_builtin.
4825
4826 2002-05-29  Richard Henderson  <rth@redhat.com>
4827
4828         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
4829         (TARGET_BI_ARCH): Likewise.
4830         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
4831         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
4832         (TARGET_64BIT_DEFAULT): Default to 0.
4833         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
4834
4835 2002-05-29  Richard Henderson  <rth@redhat.com>
4836
4837         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
4838         (get_pc_thunk_name): New.
4839         (output_set_got): Use it.
4840         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
4841         into linkonce sections.
4842
4843 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4844
4845         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
4846         (CPP_PREDEFINES): Make sure this is undefined.
4847         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
4848         (CPP_SUBTARGET_SPEC): Don't provide different versions for
4849         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
4850         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
4851         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
4852         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
4853         (CPP_PREDEFINES): Make sure this is undefined.
4854         (SUBTARGET_EXTRA_SPECS): Define.
4855         (CPP_SPEC): Use %(netbsd_cpp_spec).
4856
4857 2002-05-29  Jeff Law <law@redhat.com>
4858
4859         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
4860
4861         * flow.c (propagate_one_insn): Do not remove a dead insn if it
4862         contains a REG_RETVAL note.
4863
4864         * haifa-sched (sched_analyze): Remove another useless clearing
4865         of SCHED_GROUP_P I missed yesterday.
4866
4867         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
4868         * pa.c (pa_asm_output_mi_thunk): New function.
4869         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
4870
4871 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4872             Marek Michalkiewicz  <marekm@amelek.gda.pl>
4873
4874         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
4875         (avr_asm_only_p): Make non-static.
4876         (enum avr_arch): Remove.
4877         (avr_arch_types): New.
4878         (avr_mcu_types): Update.
4879         (avr_override_options): Use avr_arch_types table instead of switch.
4880         * avr.h (CPP_PREDEFINES): Die.
4881         (avr_base_arch_macro, avr_extra_arch_macro): New.
4882         (TARGET_CPU_CPP_BUILTINS): New.
4883         (CPP_SPEC, EXTRA_SPECS): Simplify.
4884         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
4885         CPP_AVR5_SPEC): Die.
4886
4887 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4888
4889         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
4890         NETBSD_OS_CPP_BUILTINS_AOUT.
4891         (SUBTARGET_EXTRA_SPECS): Define.
4892         (CPP_SPEC): Use %(netbsd_cpp_spec).
4893
4894 2002-05-29  Richard Henderson  <rth@redhat.com>
4895
4896         * config/i386/i386.c (ix86_output_function_epilogue): New.
4897         (TARGET_ASM_FUNCTION_EPILOGUE): New.
4898         (pic_label_name): Remove.
4899         (pic_labels_used): New.
4900         (ix86_asm_file_end): Emit one pc load stub for each register used.
4901         (output_set_got): Generate deep pc load to any register.
4902         (ix86_select_alt_pic_regnum): New.
4903         (ix86_save_reg): Don't save pic register if we can find a valid
4904         call-clobbered replacement.
4905         (ix86_expand_prologue): If we found a valid replacement, renumber
4906         pic_offset_table_rtx.
4907         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
4908         pic_offset_table_rtx after reload.
4909         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
4910         * config/i386/i386.md (set_got): Make insn, not expander.
4911         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
4912
4913 2002-05-29  Richard Henderson  <rth@redhat.com>
4914
4915         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
4916         alignment for alloca.
4917
4918 2002-05-29  Richard Henderson  <rth@redhat.com>
4919
4920         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
4921         (print_operand_address): Only add rip for symbolic addresses
4922         for which we do not have another relocation type.
4923
4924 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4925
4926         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
4927         (EXTRA_SPECS): Add netbsd_cpp_spec.
4928         (CPP_SPEC): Use %(netbsd_cpp_spec).
4929         (CPP_PREDEFINES): Remove.
4930         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
4931         (EXTRA_SPECS): Define.
4932         (CPP_SPEC): Use %(netbsd_cpp_spec).
4933         (CPP_PREDEFINES): Remove.
4934
4935 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4936
4937         PR preprocessor/6844
4938         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
4939         NUL.
4940
4941 2002-05-29  Eric Christopher  <echristo@redhat.com>
4942
4943         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
4944         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
4945
4946 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
4947
4948         * config/fr30/fr30.md: Remove previous restriction on splits.
4949         Enforce conformance through gen_lowpart and cont_int_operand.
4950         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
4951         as the assembler does not support ".bss".
4952
4953 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4954
4955         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
4956         (CPP_PREDEFINES): Remove.
4957         (SUBTARGET_EXTRA_SPECS): Define.
4958         (CPP_SPEC): Use %(netbsd_cpp_spec).
4959         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
4960         (CPP_PREDEFINES): Remove.
4961         (SUBTARGET_EXTRA_SPECS): Define.
4962         (CPP_SPEC): Use %(netbsd_cpp_spec).
4963         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
4964         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
4965         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
4966         Add netbsd_cpp_spec.
4967         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
4968
4969 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4970             Zack Weinberg <zack@codesourcery.com>
4971
4972         * cppexp.c (cpp_num): Move to cpplib.h.
4973         (CPP_ERROR): Remove.
4974         (interpret_float_suffix, interpret_int_suffix): New.
4975         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
4976         (cpp_classify_number, cpp_interpret_integer): New.
4977         (interpret_number): Remove.
4978         (eval_token): Update to use new routines.
4979         * cpphash.h (cpp_num_part): Move to cpplib.h.
4980         * cppinit.c (cpp_post_options): Set warn_long_long.
4981         * cpplib.h (struct cpp_options): Add warn_long_long.
4982         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
4983         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
4984         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
4985         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
4986         cpp_interpret_integer): New.
4987
4988 2002-05-29  Joel Sherrill <joel@OARcorp.com>
4989
4990         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
4991
4992 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
4993
4994         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
4995         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
4996         (CPP_SUBTARGET_SPEC): Define.
4997         (SUBTARGET_EXTRA_SPECS): Define.
4998         (CPP_SPEC): Remove.
4999
5000 2002-05-29  Chris Lattner  <sabre@nondot.org>
5001
5002         * ssa.c (rename_insn_1): Rename uses of undefined registers to
5003         prevent confusion if/when the register is defined.
5004
5005 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
5006
5007         PR target/6838
5008         * config/cris/cris.md: Fix typos and thinkos in comments.
5009         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
5010         second alternative.
5011         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
5012         ("*mov_sideqi_mem"): Similar, but for operand 3.
5013         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
5014         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
5015         Remove spurious mode specifier on operand 2.
5016
5017 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
5018
5019         * config/h8300/h8300-protos.h: Remove the prototype for
5020         o_operand.
5021         Add prototypes for single_one_operand and single_zero_operand.
5022         * config/h8300/h8300.c (o_operand): Remove.
5023         (single_one_operand): New.
5024         (single_zero_operand): Likewise.
5025         (print_operand): For 'V' operand, and the operand with 0xff.
5026         For 'V' and 'W' operands, do not and the bit position with 7.
5027         * config/h8300/h8300.md (various anonymous patterns): Replace
5028         use of exact_log2 with single_one_operand/single_zero_operand.
5029
5030 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
5031
5032         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
5033
5034 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
5035
5036         * config/s390/s390.c (legitimate_pic_operand_p): Do not
5037         accept symbolic LARL operands.
5038         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
5039         epilogue insns.
5040
5041 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
5042
5043         * config/s390/s390.md (cmpstr_64/31): Mark whole
5044         input registers as used.
5045
5046 2002-05-28  Richard Henderson  <rth@redhat.com>
5047
5048         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
5049         not current_function_uses_pic_offset_table and
5050         current_function_uses_const_pool; examine current_function_profile.
5051         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
5052         input to blockage if needed.
5053         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
5054         (legitimize_pic_address): Likewise.  Set regs_ever_live for
5055         pic_offset_table_rtx when invoked during reload.
5056         * config/i386/i386.h (FINALIZE_PIC): Remove.
5057         * config/i386/i386.md (tablejump): Reformat.  Do not set
5058         current_function_uses_pic_offset_table.
5059         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
5060         (blockage): Accept anything as operand 0.
5061
5062 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
5063
5064         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
5065         common CPP built-ins for all NetBSD a.out targets.
5066         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
5067         common CPP built-ins for all NetBSD ELF targets.
5068         * config/netbsd.h: Add missing notice.
5069         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
5070         for all NetBSD targets.
5071         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
5072         for all NetBSD targets using an LP64 code model.
5073         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
5074         NetBSD targets.
5075
5076 2002-05-28  Richard Henderson  <rth@redhat.com>
5077
5078         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
5079         update if UPDATE_LIFE_LOCAL.
5080
5081 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5082
5083         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
5084
5085 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
5086                           Jason R. Thorpe <thorpej@wasabisystems.com>
5087
5088         config/sh reorganization to factor out endianness and coff:
5089
5090         * config/sh/little.h: New file.
5091         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
5092         defined, define to 0 to select big-endian.
5093         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
5094         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
5095         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
5096         * config/sh/t-be: New file.
5097         * config/sh/t-le: New file.
5098
5099         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
5100         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
5101         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
5102         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
5103         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
5104         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
5105         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
5106         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
5107         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
5108         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
5109         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
5110         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
5111         (LINK_SPEC): Define to SH_LINK_SPEC.
5112         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
5113         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
5114         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
5115         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
5116         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
5117         * config/sh/coff.h: New file.
5118         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
5119         (TARGET_OBJFMT_CPP_BUILTINS): Define.
5120         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
5121         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
5122         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
5123         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
5124         (PTRDIFF_TYPE): Likewise.
5125         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
5126         (CPP_PREDEFINES): Don't define.
5127         (TARGET_OBJFMT_CPP_BUILTINS): Define.
5128         (LINK_SPEC): Define to SH_LINK_SPEC.
5129         (LINK_EMUL_PREFIX): Redefine.
5130         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
5131         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
5132         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
5133         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
5134         (TARGET_OS_CPP_BUILTINS): Define.
5135         (TARGET_DEFAULT): Redefine.
5136         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
5137         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
5138         (LINK_SPEC): Don't redefine.
5139         (LINK_DEFAULT_CPU_EMUL): Redefine.
5140         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
5141         * sh.c (sh_asm_named_section): Don't declare / define.
5142         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
5143         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
5144         (sh64-*-elf* tm_file): Likewise.
5145         (sh-*-rtemself* tm_file): Likewise.
5146         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
5147         (sh-*-linux* tmake_file): Add sh/t-le.
5148         (sh-*-rtems* tm_file): Add sh/coff.h
5149         (sh-*-* tm_file): Likewise.
5150
5151 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
5152
5153         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
5154         CONSTANT_POOL_ADDRESS_P.
5155
5156         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
5157
5158 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
5159             Jeff Law <law@redhat.com>
5160
5161         * optabs.c (expand_binop): Fix nwords sign warnings.
5162         generate pseudo for add_optab.
5163
5164         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
5165         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
5166
5167 2002-05-28      Marc Espie <espie@openbsd.org>
5168
5169         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
5170         inherited from gas.h.
5171         (ASM_QUAD):  Undef.  OpenBSD does not support it.
5172
5173 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
5174
5175         * doc/install.texi (binaries): Change mingw binaries
5176         link to www.mingw.org.
5177
5178 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5179
5180         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
5181
5182 2002-05-28  Richard Henderson  <rth@redhat.com>
5183
5184         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
5185         bottom alignment for leaf functions.
5186
5187 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
5188
5189         * config/pa/milli32.S, config/pa/lib1funcs.asm,
5190         config/sparc/sol2-g1.asm: Delete unused files.
5191
5192 2002-05-28  Richard Henderson  <rth@redhat.com>
5193
5194         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
5195
5196         * flow.c (calculate_global_regs_live): Rename call_used to
5197         invalidated_by_call.  Initialize from regs_invalidated_by_call
5198         instead of call_used_regs.
5199
5200         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
5201         DECL_EXTERNAL.
5202
5203 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
5204
5205         * tree.h: Don't include real.h.
5206         Forward-declare struct realvaluetype.
5207         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
5208         contain it.
5209         (TREE_REAL_CST_PTR): New accessor.
5210         (TREE_REAL_CST): Update.
5211         * real.h: Include machmode.h.
5212         (realvaluetype): Make it struct realvaluetype, not a typedef.
5213         (build_real): Prototype here.
5214
5215         * tree.c: Include real.h.
5216         (build_real): Allocate the REAL_VALUE_TYPE as a separate
5217         object in GC memory, set TREE_REAL_CST_PTR to point to it.
5218         (build_real_from_int_cst): Use build_real.
5219         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
5220         REAL_CST.
5221
5222         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
5223         fold-const.c, print-tree.c, real.c: Include real.h.
5224         * Makefile.in: Update dependency lists.
5225
5226 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5227
5228         * basic-block.h (last_basic_block): Declare.
5229         (expunge_block_nocompact): Declaration removed.
5230         (compact_blocks): Declare.
5231         * cfg.c (last_basic_block): New variable.
5232         (expunge_block_nocompact): Removed.
5233         (expunge_block): Do not compact basic blocks.
5234         (compact_blocks): New.
5235         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
5236         longer change.
5237         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
5238         last_basic_block.
5239         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
5240         real positions of blocks.
5241         (delete_unreachable_blocks): Simplified -- quadratic behavior now
5242         cannot occur.
5243         (cleanup_cfg): Compact blocks.
5244         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
5245         basic_block_info varray.
5246         (flow_delete_block): Comment update.
5247         (back_edge_of_syntactic_loop_p): Modify position check code.
5248         (verify_flow_info): Update checking.
5249         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
5250         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
5251         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
5252         indices no longer change.
5253         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
5254         last_basic_block.
5255         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
5256         * profile.c (branch_prob): Compact blocks.
5257         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
5258         last_basic_block.
5259
5260 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
5261
5262         * config/h8300/h8300.md (two anonymous patterns): New.
5263
5264 2002-05-28  David S. Miller  <davem@redhat.com>
5265
5266         * config/sparc/sparc.md (cpu): Tidy.
5267         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
5268         'trap'.
5269         (in_call_delay): Delete reference to 'return' type.
5270         (eligible_for_return_delay, in_return_delay, define_delay
5271         referencing those): Delete.
5272         (rest of file): Use new type attributes as appropriate.
5273         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
5274         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
5275         * config/sparc/ultra1_2.md (us1_single): New reservation.
5276         (us1_ialuX): Likewise.
5277         * config/sparc/ultra3.md (us3_single): Likewise.
5278         (us3_ialuX): Likewise.
5279         (us3_imul, us3_idiv): Tweak.
5280
5281 2002-05-28  Richard Henderson  <rth@redhat.com>
5282
5283         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
5284         STRING_CST.
5285
5286 2002-05-28  Richard Henderson  <rth@redhat.com>
5287
5288         * config.gcc: Obsolete mn10200.
5289
5290 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5291
5292         * cppexp.c (interpret_number): Optimize for single-digit
5293         and less-than-half-precision cases.
5294         (num_trim, num_positive, num_div_op): Cast constants.
5295
5296 2002-05-27  Bo Thorsen  <bo@suse.de>
5297
5298         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
5299         3.1 branch. The file was made by Jakub Jelinek.
5300         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
5301         support so multilib doesn't break. And don't define this at all
5302         when -Dinhibit_libc is used.
5303         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
5304         * config/i386/t-linux64: Implement full multilib support. Patch
5305         originally done by Andreas Jaeger and Jakub Jelinek.
5306
5307 2002-05-27  Roger Sayle  <roger@eyesopen.com>
5308
5309         * c-common.c: Add support for __attribute__((nothrow)) to specify
5310         that a function cannot throw an exception (using TREE_NOTHROW).
5311         (handle_nothrow_attribute): New function to process this attribute.
5312
5313         * doc/extend.texi: Document the new nothrow function attribute.
5314
5315 2002-05-27  H.J. Lu  (hjl@gnu.org)
5316
5317         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
5318         (num_positive): Likewise.
5319         (num_div_op): Likewise.
5320
5321 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5322
5323         * c-common.c (c_common_init): Always use intmax_t.
5324
5325 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5326
5327         * c-common.c (c_common_init): Use intmax_t for now.
5328
5329 2002-05-24  Andrew Haley  <aph@redhat.com>
5330
5331         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
5332         if T is a boolean type.
5333
5334 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5335
5336         * basic-block.h (last_basic_block): Defined as synonym for
5337         n_basic_blocks.
5338         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
5339         flow_depth_first_order_compute, flow_preorder_transversal_compute,
5340         flow_dfs_compute_reverse_init): Replaced relevant occurences of
5341         n_basic_blocks with last_basic_block.
5342         * cfgbuild.c (make_edges): Likewise.
5343         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
5344         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
5345         * combine.c (combine_instructions): Likewise.
5346         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
5347         iterative_dataflow_bitmap): Likewise.
5348         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
5349         calc_idoms, idoms_to_doms): Likewise.
5350         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
5351         Likewise.
5352         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
5353         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
5354         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
5355         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
5356         delete_null_pointer_checks, compute_code_hoist_vbeinout,
5357         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
5358         compute_store_table, build_store_vectors): Likewise.
5359         * haifa-sched.c (sched_init): Likewise.
5360         * ifcvt.c (if_convert): Likewise.
5361         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
5362         pre_edge_lcm, compute_available, compute_nearerout,
5363         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
5364         Likewise.
5365         * predict.c (estimate_probability, process_note_prediction,
5366         note_prediction_to_br_prob): Likewise.
5367         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
5368         * recog.c (split_all_insns, peephole2_optimize): Likewise.
5369         * regrename.c (copyprop_hardreg_forward): Likewise.
5370         * resource.c (init_resource_info): Likewise.
5371         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
5372         init_regions, schedule_insns): Likewise.
5373         * ssa-ccp.c (ssa_const_prop): Likewise.
5374         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
5375         * ssa.c (compute_dominance_frontiers,
5376         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
5377
5378         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
5379         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
5380         sizes consistently.
5381
5382 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
5383
5384         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
5385         new.
5386         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
5387         hoist_insn_after, hoist_insn_to_edge): New.
5388
5389 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
5390
5391         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
5392         (PROP_FINAL): Include.
5393         * flow.c (life_analysis, update_life_info,
5394         init_propagate_block_info, mark_set_1, mark_used_rgs):
5395         Support SCAN_DEAD_STORE.
5396
5397 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5398
5399         * c-common.c (c_common_init): Set CPP arithmetic precision.
5400         * cppexp.c (cpp_num_part): Move typedef ...
5401         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
5402         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
5403         (sanity_checks): Update.
5404
5405 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
5406
5407         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
5408         (mkheaders): New rule.
5409         (install-mkheaders): New rule.
5410         * configure.in (all_outputs): Add mkheaders.
5411         * configure: Regenerate.
5412         * mkheaders.in: New file.
5413
5414 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
5415
5416         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
5417
5418 2002-05-26  Andreas Jaeger  <aj@suse.de>
5419
5420         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
5421
5422 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5423
5424         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
5425         right_shift): Remove.
5426         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
5427         HIGH_PART): New.
5428         (struct op): Use cpp_num.
5429         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
5430         num_part_mul, num_unary_op, num_binary_op, num_negate,
5431         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
5432         num_div_op, num_lshift, num_rshift, append_digit): New.
5433         (interpret_number, parse_defined, eval_token, reduce): Update
5434         for two-integer arithmetic.
5435         (binary_handler): New typedef.
5436         (optab): Update.
5437         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
5438         (_cpp_parse_expr, reduce): Update to handle two-integers.
5439         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
5440
5441 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5442
5443         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
5444         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
5445         branch insn into account, do not assume 1.
5446         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
5447         over single word insn.  Handle upper half of I/O space too.
5448         * config/avr/avr.md (*sbrx_branch): Use it.
5449         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
5450         (*sbix_branch, *sbix_branch_bit7): Likewise.
5451         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
5452         Use RTL peepholes to optimize register operand sign tests.
5453
5454 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5455
5456         * config/avr/avr.c (avr_asm_only_p): New variable.
5457         (avr_override_options): Set it here if AVR1.
5458         (asm_file_start): Test it here, report an error if set.
5459
5460 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
5461
5462         * alias.c: Fix formatting.
5463         * attribs.c: Likewise.
5464         * bb-reorder.c: Likewise.
5465         * bitmap.c: Likewise.
5466         * bitmap.h: Likewise.
5467         * builtins.c: Likewise.
5468
5469 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
5470
5471         * reload.c (find_valid_class): Accept new argument DEST,
5472         choose class accordingly.
5473         (push_reload): Update callers.
5474
5475 2002-05-26  Andreas Jaeger  <aj@suse.de>
5476
5477         * combine.c (combine_instructions): Do not indent #if for
5478         traditional C.
5479
5480 2002-05-25  Richard Henderson  <rth@redhat.com>
5481
5482         * c-pragma.c (apply_pragma_weak): Convert value identifier to
5483         string for decl_attributes.
5484         (handle_pragma_weak): Call assemble_alias if we're modifying
5485         an existing decl.
5486
5487 2002-05-25  Richard Henderson  <rth@redhat.com>
5488
5489         PR target/6788
5490         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
5491         using rtl instead of fprintf.
5492         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
5493         * config/sparc/sparc-protos.h: Update.
5494
5495 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5496
5497         * Makefile.in (C_COMMON_H): Fix.
5498         Update other targets.
5499         * c-common.c: Don't include c-lex.h.
5500         (builtin_define_with_value): Make static and prototype.
5501         (builtin_define_std): Move from c-lex.h.
5502         * c-common.h (init_c_lex): Move from c-lex.h.
5503         * c-decl.c: Don't include c-lex.h.
5504         (make_pointer_declarator): Move from c-parse.in.
5505         * c-lex.c: Don't include c-lex.h.
5506         * c-lex.h: Remove.
5507         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
5508         (make_pointer_declarator): Move to c-decl.c.
5509         * c-pragma.c: Don't include c-lex.h.
5510         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
5511         * c-tree.h (make_pointer_declarator): New.
5512 doc:
5513         * passes.texi, tm.texi: Update.
5514 objc:
5515         * Make-lang.in: Update and correct.
5516         * objc-act.c: Don't include c-lex.h or cpplib.h.
5517 treelang:
5518         * treetree.c: Don't include c-lex.h.
5519 config:
5520         * darwin-c.c: Don't include c-lex.h.
5521         * c4x/c4x-c.c: Don't include c-lex.h.
5522         * c4x/t-c4x: Update.
5523         * i370/i370-c.c: Don't include c-lex.h.
5524         * i370/t-i370: Update.
5525         * i960/i960-c.c: Don't include c-lex.h.
5526         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
5527         * i960/t-960bare: Update.
5528         * i960/t-vxworks: Update.
5529         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
5530         * rs6000/t-darwin: Update.
5531         * rs6000/t-rs6000-c-rule: Update.
5532         * v850/v850-c.c: Don't include c-lex.h.
5533         * v850/v850.c: Don't include c-lex.h or cpplib.h.
5534
5535
5536 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
5537
5538         * tree.def: Fix typos.
5539         * doc/install.texi: Likewise.
5540
5541 2002-05-25  Richard Henderson  <rth@redhat.com>
5542
5543         * configure.in (HAVE_AS_TLS): Add ia64 test.
5544         * configure: Rebuild.
5545         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
5546         (override_options): Set it.
5547         (TARGET_HAVE_TLS): New.
5548         (sdata_symbolic_operand): Look for 's'.
5549         (tls_symbolic_operand): New.
5550         (ia64_expand_load_address): Abort for tls symbols.
5551         (gen_tls_get_addr): New.
5552         (gen_thread_pointer): New.
5553         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
5554         (rtx_needs_barrier): Add new unspecs.
5555         (ia64_encode_section_info): Handle tls symbols.
5556         (ia64_strip_name_encoding): Strip two encoding chars.
5557         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
5558         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
5559         (TARGET_OPTIONS): Add tls-size.
5560         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
5561         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
5562         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
5563         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
5564         (movsf, movdf): Likewise.
5565         (movdi_symbolic): Use match_scratch.  Don't split if we won't
5566         have a scratch availiable.
5567         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
5568         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
5569         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
5570         * config/ia64/ia64-protos.h: Update.
5571         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
5572         sdata_symbolic_operand.
5573         (ASM_OUTPUT_LABELREF): Strip two characters.
5574
5575 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
5576
5577         * combine.c (simplify_set): Remove an unnecessary subreg.
5578
5579 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5580
5581         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
5582
5583         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
5584
5585 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
5586
5587         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
5588
5589 2002-05-25  Roger Sayle  <roger@eyesopen.com>
5590
5591         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
5592         (cond (compare x y) 0) into the equivalent (cond x y).
5593
5594 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
5595
5596         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
5597
5598 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
5599
5600         * config.gcc: Remove all stanzas for previously obsoleted
5601         systems.  Where necessary, add explicit error stanzas to
5602         prevent removed systems from being misidentified as something
5603         else.  Begin a fresh obsoletions list, with the systems that
5604         were reprieved last round.
5605         * doc/install.texi: Remove all mention of dead targets.
5606         * fixinc/mkfixinc.sh: Likewise.
5607
5608         * config/arm/arm.h: Bit 31 of target_flags is no longer
5609         reserved.
5610
5611         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
5612         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
5613         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
5614         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
5615         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
5616         config/alpha/osf12.h, config/alpha/osf2or3.h,
5617         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
5618         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
5619         config/clipper/clipper-protos.h, config/clipper/clipper.c,
5620         config/clipper/clipper.h, config/clipper/clipper.md,
5621         config/clipper/clix.h, config/convex/convex-protos.h,
5622         config/convex/convex.c, config/convex/convex.h,
5623         config/convex/convex.md, config/convex/fixinc.convex,
5624         config/convex/proto.h, config/elxsi/elxsi-protos.h,
5625         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
5626         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
5627         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
5628         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
5629         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
5630         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
5631         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
5632         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
5633         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
5634         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
5635         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
5636         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
5637         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
5638         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
5639         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
5640         config/m68k/altos3068.h, config/m68k/apollo68.h,
5641         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
5642         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
5643         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
5644         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
5645         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
5646         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
5647         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
5648         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
5649         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
5650         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
5651         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
5652         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
5653         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
5654         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
5655         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
5656         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
5657         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
5658         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
5659         config/mips/dec-osf1.h, config/mips/elflorion.h,
5660         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
5661         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
5662         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
5663         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
5664         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
5665         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
5666         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
5667         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
5668         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
5669         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
5670         config/ns32k/sequent.h, config/ns32k/tek6000.h,
5671         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
5672         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
5673         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
5674         config/sparc/rtems.h, config/we32k/we32k-protos.h,
5675         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
5676         Delete file.
5677
5678 2002-05-24  Richard Henderson  <rth@redhat.com>
5679
5680         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
5681         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
5682         * config/i386/i386.c (tls_model_chars): Add leading space.
5683         (tls_symbolic_operand): Don't bias by 1.
5684         (legitimize_address): Don't unbias by 1.
5685
5686 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5687
5688         * lcm.c (optimize_mode_switching): Change bb used as indices
5689         to bb->index.
5690
5691 2002-05-24  Richard Henderson  <rth@redhat.com>
5692
5693         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
5694         of update_life_info_in_dirty_blocks.
5695
5696 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
5697
5698         PR other/6782
5699         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
5700
5701 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5702
5703         PR preprocessor/6780
5704         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
5705
5706 2002-05-24  Jim Blandy  <jimb@redhat.com>
5707
5708         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
5709         entry with a type code of zero, marking the end of the compilation
5710         unit's macro info.
5711
5712 2002-05-24  Richard Henderson  <rth@redhat.com>
5713
5714         * varasm.c (asm_output_bss): Always output one byte.
5715         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
5716
5717 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5718
5719         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
5720         namespace.
5721
5722 2002-05-24  Andreas Jaeger  <aj@suse.de>
5723
5724         * ggc-page.c (alloc_page): Cast variables of type size_t to
5725         unsigned long, adjust printf format string.
5726         (ggc_alloc): Likewise.
5727         (ggc_print_statistics): Likewise.
5728         (ggc_print_statistics): Correct printf format string for SCALE to
5729         use unsigned long.
5730
5731 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
5732
5733         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
5734
5735 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
5736             Zack Weinberg     <zack@codesourcery.com>
5737
5738         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
5739         quoted strings.
5740         * dwarf2out.c (lookup_filename): Properly quote filename in .file
5741         directive in assembly file.
5742         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
5743         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
5744         * config/pj/pj.h (ASM_FILE_START): Likewise.
5745         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
5746         * config/avr/avr.c (asm_file_end): Likewise.
5747         * toplev.c (output_quoted_string): Handle possibly signed plain
5748         char.
5749         * toplev.h (output_clean_symbol_name): Declare
5750         * toplev.c (output_clean_symbol_name): Define.
5751         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
5752         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
5753
5754 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
5755
5756         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
5757
5758 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
5759
5760         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
5761         of size of unsigned.
5762
5763 2002-05-23  Richard Henderson  <rth@redhat.com>
5764
5765         * configure.in (HAVE_AS_TLS): New test.
5766         * config.in, configure: Rebuild.
5767         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
5768         (ix86_tls_dialect_string, ix86_tls_dialect): New.
5769         (override_options): Set it.
5770         (tls_model_chars, tls_symbolic_operand): New.
5771         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
5772         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
5773         (local_exec_symbolic_operand): New.
5774         (get_pic_label_name): Merge into output_set_got.
5775         (ix86_asm_file_end): Emit pic_label_name if defined.
5776         (legitimate_constant_p, constant_address_p): New.
5777         (legitimate_pic_operand_p): New.
5778         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
5779         (legitimate_address_p): Likewise.
5780         (ix86_encode_section_info): Rename from i386_; handle tls decls.
5781         (ix86_strip_name_encoding): New.
5782         (get_thread_pointer): New.
5783         (legitimize_address): Handle tls symbols.
5784         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
5785         Remove UNSPEC_PLT.
5786         (struct machine_function): Add some_ld_name.
5787         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
5788         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
5789         (output_addr_const_extra): New.
5790         (maybe_get_pool_constant): New.
5791         (ix86_split_to_parts): Use it.
5792         (ix86_expand_move): Handle tls symbols.
5793         (ix86_tls_get_addr): New.
5794         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
5795         (TARGET_OPTIONS): Add tls-dialect.
5796         (CONSTANT_ADDRESS_P): Use new out-of-line function.
5797         (LEGITIMATE_CONSTANT_P): Likewise.
5798         (LEGITIMATE_PIC_OPERAND_P): Likewise.
5799         (TARGET_STRIP_NAME_ENCODING): New.
5800         (ASM_OUTPUT_LABELREF): New.
5801         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
5802         (OUTPUT_ADDR_CONST_EXTRA): New.
5803         (PREDICATE_CODES): Update.
5804         (ix86_tls_dialect, ix86_tls_dialect_string): New.
5805         * config/i386/i386.md: Regroup and renumber unspec constants.
5806         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
5807         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
5808         (tls_global_dynamic, tls_local_dynamic_base): New.
5809         (tls_local_dynamic_once): New.
5810         * config/i386/i386-protos.h: Update.
5811
5812 2002-05-23  Richard Henderson  <rth@redhat.com>
5813
5814         * genemit.c (gen_insn): Print file:lineno comment before function.
5815         (main): likewise.
5816         * gensupport.c (struct queue_elem): Add filename member.
5817         (queue_pattern): Initialize it; update all callers.
5818         (process_include): Don't free filename.
5819         (read_md_rtx): Set read_rtx_filename.
5820
5821 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
5822
5823         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
5824
5825 2002-05-23  Richard Henderson  <rth@redhat.com>
5826
5827         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
5828
5829 2002-05-23  Richard Henderson  <rth@redhat.com>
5830
5831         * doc/extend.texi (C++98 Thread-Local Edits): Update with
5832         commentary from Mark.
5833
5834 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5835
5836         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
5837         Use FOR_EACH_BB macros to iterate over basic block chain.
5838         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
5839         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
5840         Likewise.
5841         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
5842         find_unreachable_blocks, create_edge_list, verify_edge_list,
5843         remove_fake_edges, add_noreturn_fake_exit_edges,
5844         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
5845         Likewise.
5846         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
5847         find_sub_basic_blocks): Likewise.
5848         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
5849         Likewise.
5850         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
5851         Likewise.
5852         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
5853         Likewise.
5854         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
5855         commit_edge_insertions, commit_edge_insertions_watch_calls,
5856         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
5857         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
5858         * conflict.c (conflict_graph_compute): Likewise.
5859         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
5860         df_modified_p, df_refs_unlink, df_dump): Likewise.
5861         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
5862         * final.c (compute_alignments): Likewise.
5863         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
5864         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
5865         count_or_remove_death_notes): Likewise.
5866         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
5867         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
5868         classic_gcse, compute_transp, cprop, compute_pre_data,
5869         compute_transpout, invalidate_nonnull_info,
5870         delete_null_pointer_checks_1, delete_null_pointer_checks,
5871         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
5872         compute_store_table, build_store_vectors, store_motion): Likewise.
5873         * global.c (global_conflicts, mark_elimination): Likewise.
5874         * graph.c (print_rtl_graph_with_bb): Likewise.
5875         * haifa-sched.c (sched_init): Likewise.
5876         * ifcvt.c (if_convert): Likewise.
5877         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
5878         compute_available, compute_nearerout, compute_rev_insert_delete,
5879         optimize_mode_switching): Likewise.
5880         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
5881         * predict.c (estimate_probability, note_prediction_to_br_prob,
5882         propagate_freq, counts_to_freqs, expensive_function_p,
5883         estimate_bb_frequencies): Likewise.
5884         * profile.c (instrument_edges, get_exec_counts,
5885         compute_branch_probabilities, compute_checksum, branch_prob,
5886         find_spanning_tree): Likewise.
5887         * recog.c (split_all_insns, peephole2_optimize): Likewise.
5888         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
5889         Likewise.
5890         * regclass.c (scan_one_insn, regclass): Likewise.
5891         * regmove.c (mark_flags_life_zones, regmove_optimize,
5892         record_stack_memrefs): Likewise.
5893         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
5894         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
5895         * resource.c (find_basic_block): Likewise.
5896         * sched-ebb.c (schedule_ebbs): Likewise.
5897         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
5898         find_single_block_region, find_rgns, schedule_insns)
5899         * sibcall.c (optimize_sibling_and_tail_recursive_call)
5900         * ssa-ccp.c (optimize_unexecutable_edges,
5901         ssa_ccp_df_delete_unreachable_insns): Likewise.
5902         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
5903         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
5904         rename_block, convert_to_ssa, compute_conservative_reg_partition,
5905         compute_coalesced_reg_partition, rename_equivalent_regs,
5906         convert_from_ssa): Likewise.
5907         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
5908         process_for_unwind_directive): Likewise.
5909
5910         * df.c (FOR_ALL_BBS): Removed.
5911         * gcse.c (struct null_pointer_info): Type of current_block field
5912         changed.
5913         (struct reg_avail_info): Type of last_bb field changed.
5914         * config/ia64/ia64.c (block_num): Removed.
5915         (need_copy_state): Type changed.
5916         (last_block): New.
5917
5918 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5919
5920         * cppinit.c (mark_named_operators): Split out from init_builtins.
5921         (cpp_finish_options): Call it from here instead.
5922
5923 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
5924
5925         * builtin-attrs.def: Update copyright years.
5926         (ATTR_NONNULL): New attribute identifier.
5927         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
5928         attribute tree lists.
5929         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
5930         format operand.
5931         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
5932         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
5933         attribute lists.  Chain the appropriate nonnull attribute.
5934         * c-format.c (check_format_arg): Remove null format string
5935         warning.
5936         * testsuite/gcc.dg/format/null-1.c: New test.
5937
5938 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5939
5940         * Makefile.in (ADAC): Define.
5941         (SYSLIBS): Define.
5942         (.SUFFIXES): Move before language makefile fragments.
5943         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
5944
5945 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
5946
5947         * varasm.c (make_decl_rtl): Don't allow weak variables to be
5948         placed in common.
5949
5950 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
5951
5952         * cfg.c (dump_flow_info): Print results of
5953         maybe_hot/probably_never_executed predicates.
5954         * toplev.c (open_dump_file): Print function frequency.
5955
5956 2002-05-23  David S. Miller  <davem@redhat.com>
5957
5958         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
5959         regsets.
5960
5961 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
5962
5963         * c-common.c (warn_nonnull): Declare.
5964         (c_common_attribute_table): Add "nonnull" attribute.
5965         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
5966         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
5967         check_function_arguments_recurse): New functions.
5968         * c-common.h (warn_nonnull): Declare extern.
5969         (check_function_arguments, check_function_arguments_recurse): New
5970         prototypes.
5971         * c-decl.c (c_decode_option): Add -Wnonnull option.
5972         * c-format.c (set_Wformat): Set warn_nonnull if enabling
5973         format checking.
5974         (format_check_context): New structure.
5975         (check_format_info_recurse): Remove recursion and rename to...
5976         (check_format_arg): ...this.  Update comment.
5977         (check_format_info): Use check_function_arguments_recurse.
5978         * c-typeck.c (build_function_call): Call check_function_arguments
5979         instead of check_function_format.
5980         * doc/extend.texi: Document "nonnull" attribute.
5981         * doc/invoke.texi: Docuemnt -Wnonnull option.
5982         * testsuite/gcc.dg/nonnull-1.c: New test.
5983         * testsuite/gcc.dg/nonnull-2.c: New test.
5984
5985 2002-05-23  David S. Miller  <davem@redhat.com>
5986
5987         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
5988         * cfgcleanup.c (cleanup_cfg): If it is set do not
5989         attempt to delete trivially dead insns.
5990         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
5991         * toplev.c (rest_of_compilation): Document non-trivial aspect
5992         the RTL before optimize_save_area_alloca is run.
5993
5994 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5995
5996         * c-lex.c (indent_level): Remove.
5997         (cb_file_change, c_lex): Remove indent level handling.
5998         * c-lex.h (indent_level): Remove.
5999         * input.h (struct file_stack): Remove indent_level.
6000         * toplev.c (push_srcloc): Remove indent_level handling.
6001
6002 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
6003
6004         PR target/6753
6005         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
6006         of x in constraints for clarity.
6007         (sse_mov?fcc split): abort if op2 == op3.
6008         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
6009         sse_movsfcc_const0_4): Add earlyclobber.
6010         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
6011         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
6012         Use Y instead of x in constraints.
6013
6014 2002-05-23  Richard Henderson  <rth@redhat.com>
6015
6016         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
6017         (C++98 Thread-Local Edits): New subsection.
6018
6019         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
6020         (ix86_arch): Set type to enum processor_type.
6021
6022         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
6023         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
6024
6025 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
6026
6027         * configure.in: Fix as version test for binutils 2.12.1 releases
6028         (without dates).
6029         * configure: Rebuilt.
6030
6031 2002-05-23  Richard Henderson  <rth@redhat.com>
6032
6033         * config/i386/i386.c (get_pic_label_name): New.
6034         (load_pic_register): Remove.
6035         (output_set_got): New.
6036         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
6037         * config/i386/i386.md (UNSPEC_SET_GOT): New.
6038         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
6039         (prologue_set_got, prologue_get_pc): Remove.
6040         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
6041         (builtin_setjmp_receiver): Use gen_set_got.
6042         * config/i386/i386-protos.h: Update.
6043
6044 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
6045
6046         * gcse.c (hash_expr): Do not use alias set for hashing.
6047
6048 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
6049
6050         * dbxout.c (dbxout_class_name_qualifiers): New function.
6051         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
6052
6053 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6054
6055         * cpperror.c (_cpp_begin_message): No special casing
6056         of CPP_FATAL_LIMIT.
6057         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
6058         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
6059         * cpplib.c (do_include_common): Use DL_ERROR.
6060         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
6061         (DL_ICE): Renumber.
6062         * fix-header.c (read_scan_file): Update.
6063
6064 2002-05-22  Richard Henderson  <rth@redhat.com>
6065
6066         * config/i386/i386.c (ix86_expand_call): New function, extracted
6067         from md call patterns.  Add pic_offset_table_rtx to
6068         CALL_INSN_FUNCTION_USAGE when needed.
6069         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
6070         (call_value_pop, call_value, untyped_call): Likewise.
6071         (call_exp, call_value_exp): Remove.
6072         * config/i386/i386-protos.h: Update.
6073
6074 2002-05-22  Richard Henderson  <rth@redhat.com>
6075
6076         * varasm.c (default_section_type_flags): Check for VAR_DECL
6077         before using DECL_THREAD_LOCAL.
6078
6079 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
6080
6081         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
6082         (STARTFILE_SPEC): Delete PE crt0.o.
6083         * config/rs6000/aix51.h: Same.
6084         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
6085         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
6086         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
6087         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
6088         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
6089
6090 2002-05-22  Richard Henderson  <rth@redhat.com>
6091
6092         * varasm.c (default_section_type_flags): Handle tls data and
6093         default sections.
6094         (default_unique_section): Handle tls sections.
6095
6096 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
6097
6098         * configure.in (CROSS): Define NATIVE_CROSS.
6099         * configure: Regenerate.
6100         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
6101         (startfile_prefix_spec): New var.
6102         (static_specs): Add startfile_prefix_spec.
6103         (do_spec_2): Split out from..
6104         (do_spec): ..here.
6105         (main): Process startfile_prefix_spec.
6106         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
6107         dynamic linker.
6108         (STARTFILE_PREFIX_SPEC): Define.
6109         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
6110         absolute paths.
6111
6112 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
6113
6114         * cpperror.c: Fix formatting.
6115         * cppexp.c: Likewise.
6116         * cppfiles.c: Likewise.
6117         * cpphash.c: Likewise.
6118         * cpphash.h: Likewise.
6119         * cppinit.c: Likewise.
6120         * cpplex.c: Likewise.
6121         * cpplib.c: Likewise.
6122         * cppmacro.c: Likewise.
6123         * cppmain.c: Likewise.
6124         * cppspec.c: Likewise.
6125
6126 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
6127
6128         * combine.c (force_to_mode): Use gen_int_mode.
6129         Don't clear CONST_INT bits outside of mode.
6130
6131 2002-05-22  Richard Henderson  <rth@redhat.com>
6132
6133         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
6134         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
6135
6136 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
6137
6138         PR c/6643
6139         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
6140         if DECL_SIZE_UNIT is INTEGER_CST.
6141
6142 2002-05-22  Richard Henderson  <rth@redhat.com>
6143
6144         * flow.c (life_analysis): Delete broken reg_label check.
6145
6146 2002-05-22  Richard Henderson  <rth@redhat.com>
6147
6148         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
6149         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
6150
6151 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
6152
6153         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
6154         (embed-bb.c): New rule.
6155         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
6156         * config/sh/embed_bb.c: Delete.
6157
6158 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
6159
6160         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
6161
6162 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
6163
6164         * config/h8300/h8300.md (*andorqi3): New.
6165
6166 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6167
6168         PR preprocessor/6517
6169         * Makefile.in: Update.
6170         * c-common.c (c_common_post_options): Add preprocessor
6171         errors to the error count.
6172         * c-lang.c (c_post_options): Kill.
6173         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
6174         * hooks.h: Add header guards.
6175         * langhooks-def.h: Include hooks.h.
6176         (LANG_HOOKS_POST_OPTIONS): Update.
6177         * langhooks.h (struct lang_hooks): Update post_options.
6178         * toplev.c (parse_options_and_default_flags): Update.
6179 objc:
6180         * objc-lang.c (objc_post_options): Kill.
6181         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
6182
6183 2002-05-21  Bruce Korb  <bkorb@gnu.org>
6184
6185         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
6186         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
6187         * fixinc/fixincl.x: regen.
6188
6189 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
6190
6191         * cfgbuild.c: Fix formatting.
6192         * cfg.c: Likewise.
6193         * cfgcleanup.c: Likewise.
6194         * cfglayout.c: Likewise.
6195         * cfgloop.c: Likewise.
6196         * cfgrtl.c: Likewise.
6197
6198 2002-05-21  Richard Henderson  <rth@redhat.com>
6199
6200         * c-common.h (enum rid): Add RID_THREAD.
6201         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
6202         (grokdeclarator): Grok __thread.
6203         * c-parse.in (reswords): Add __thread.
6204         (rid_to_yy): Add RID_THREAD.
6205
6206         * tree.h (DECL_THREAD_LOCAL): New.
6207         (struct tree_decl): Add thread_local_flag.
6208         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
6209         * tree.c (staticp): TLS variables are not static.
6210
6211         * target-def.h (TARGET_HAVE_TLS): New.
6212         * target.h (have_tls): New.
6213         * output.h (SECTION_TLS): New.
6214         * varasm.c (assemble_variable): TLS variables can't be common for now.
6215         (default_section_type_flags): Handle .tdata and .tbss.
6216         (default_elf_asm_named_section): Handle SECTION_TLS.
6217         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
6218
6219         * flags.h (flag_tls_default): Declare.
6220         * toplev.c (flag_tls_default): Define.
6221         (display_help): Display help for it.
6222         (decode_f_option): Set it.
6223
6224         * doc/extend.texi (Thread-Local): New node describing language-level
6225         thread-local storage.
6226         * doc/invoke.texi (-ftls-model): Document.
6227
6228         * fixinc/inclhack.def (thread_keyword): New.
6229         * fixinc/fixincl.x: Rebuild.
6230
6231 2002-05-21  Jeffrey A Law  <law@redhat.com>
6232
6233         * optabs.c (expand_binop): For double-word integer multiplies,
6234         do not compute intermediate results into something that is
6235         not a register (such as a SUBREG or MEM).
6236
6237         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
6238         (ix86_sched_reorder): Make sure to initialize scheduling
6239         data even when there's only one insn in the ready queue.
6240
6241 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
6242
6243         * genautomata.c (reserv_sets_hash_value): Fix a typo.
6244
6245 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
6246
6247         * genautomata.c (reserv_sets_hash_value): Define hash_value as
6248         set_el_t.  Transform the hash value into unsigned.
6249         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
6250         (transform_3): Add code to process `(A,B)+(D,E)'.
6251
6252 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
6253
6254         * reload1.c (do_output_reload): Run delete_output_reload
6255         only if optimizing.
6256
6257 2002-05-21  Roger Sayle  <roger@eyesopen.com>
6258
6259         PR middle-end/6600
6260         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
6261         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
6262         (can_store_by_pieces): ... and here to limit the largest mode used.
6263         Add a comment to document this function.
6264
6265 2002-05-21  Richard Henderson  <rth@redhat.com>
6266
6267         * flow.c (life_analysis): Fix test for deleted label.
6268
6269 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6270
6271         * doc/tm.texi: Fix typo.
6272
6273 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
6274
6275         * c-common.c (c_common_init): Set options->unsigned_char from
6276         flag_signed_char.
6277         (cb_register_builtins): Define __STRICT_ANSI__ and
6278         __CHAR_UNSIGNED__ here...
6279         * cppinit.c (init_builtins): Not here.
6280         (cpp_create_reader): unsigned_char option defaults to 0, not
6281         !DEFAULT_SIGNED_CHAR.
6282         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
6283         and -funsigned-char.
6284
6285         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
6286         * cpphash.c (_cpp_init_hashtable): Don't set it.
6287         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
6288         directly.  Clarify comment.
6289
6290 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6291
6292         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
6293         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
6294         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
6295         BASIC_BLOCK (n_basic_blocks - 1).
6296         * cfganal.c (can_fallthru, flow_call_edges_add,
6297         flow_preorder_transversal_compute): Too.
6298         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
6299         find_sub_basic_blocks): Too.
6300         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
6301         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
6302         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
6303         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
6304         * combine.c (this_basic_block): Type changed to basic_block.
6305         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
6306         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
6307         get_last_value, distribute_notes, distribute_links): Too.
6308         * final.c (compute_alignments): Too.
6309         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
6310         * function.c (thread_prologue_and_epilogue_insns): Too.
6311         * gcse.c (compute_code_hoist_vbeinout): Too.
6312         * global.c (build_insn_chain): Too.
6313         * ifcvt.c (find_if_block, find_cond_trap): Too.
6314         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
6315         * regmove.c (regmove_optimize): Too.
6316         * resource.c (find_basic_block): Too.
6317         * sched-ebb.c (schedule_ebbs): Too.
6318         * ssa-dce.c (find_control_dependence, find_pdom): Too.
6319
6320 2002-05-21  Andreas Jaeger  <aj@suse.de>
6321
6322         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
6323
6324 2002-05-21  Richard Henderson  <rth@redhat.com>
6325
6326         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
6327         unspec names, not numbers.
6328
6329 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6330
6331         * doc/sourcebuild.texi: Mention snapshot-README and
6332         snapshot-index.html as needing updating for new front ends.
6333
6334 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6335
6336         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
6337         disabling checking, and avoid multiple evaluation of RTX.
6338
6339 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
6340
6341         * bitmap.c (bitmap_find_bit): Return early if we have the correct
6342         element cached.
6343
6344 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
6345
6346         * profile.c (gen_edge_profiler):  Set alias set before the memory is
6347         used.
6348
6349 2002-05-20  David S. Miller  <davem@redhat.com>
6350
6351         * cselib.c (max_value_regs): New.
6352         (cselib_lookup, cselib_invalidate_regno): Initialize it when
6353         adding new entries to the REG_VALUES table and we are dealing with
6354         a hard register.
6355         (clear_table): Initialize it.
6356         (cselib_invalidate_regno): Use it to determine which hard
6357         registers to scan when mode is not VOIDmode.
6358
6359 2002-05-20  Duraid Madina   <duraid@fl.net.au>
6360
6361         * tradcpp.c (fixup_newlines): Use old-style function header.
6362
6363 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
6364
6365         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
6366
6367 2002-05-20  H.J. Lu  (hjl@gnu.org)
6368
6369         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
6370
6371         * config/mips/mips.h (DFMODE_NAN): Defined.
6372         (SFMODE_NAN): Likewise.
6373
6374 2002-05-20  Dale Johannesen  <dalej@apple.com>
6375
6376         * combine.c (cant_combine_insn_p):  Back out my
6377         previous patch.
6378
6379 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
6380
6381         * params.c: Fix formatting.
6382         * params.h: Likewise.
6383         * predict.c: Likewise.
6384         * prefix.c: Likewise.
6385         * print-rtl.c: Likewise.
6386         * print-tree.c: Likewise.
6387         * profile.c: Likewise.
6388
6389 2002-05-20  H.J. Lu  (hjl@gnu.org)
6390
6391         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
6392
6393 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
6394
6395         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
6396         switches straight on to the assembler, do not abbreviate them.
6397         * config/arm/elf.h (ASM_SPEC): As above.
6398         * config/arm/semi.h (ASM_SPEC): As above.
6399         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
6400         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
6401         -mcpu=xscale on to the assembler by default.
6402         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
6403
6404 2002-05-20  Richard Henderson  <rth@redhat.com>
6405
6406         * cse.c (canon_hash): Reorder do_not_record test.  Always
6407         allow pic_offset_table_rtx.
6408
6409 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
6410
6411         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
6412         (expand_binop): Ditto (3 times).
6413
6414 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
6415
6416         * Makefile.in (distclean): Remove QMTest stuff.
6417         (QMTEST_PATH): New variable.
6418         (QMTESTFLAGS): Likewise.
6419         (QMTESTRUNFLAGS): Likewise.
6420         (QMTEST): Likewise.
6421         (QMTEST_GPP_TESTS): Likewise.
6422         (QMTEST_DIR): Likewise.
6423         (QMTEST_DIR/context): New target.
6424         (qmtest-g++): Likeise.
6425         (qmtest-gui): Likewise.
6426         (QMTEST_DIR/gpp-expected.qmr): Likewise.
6427
6428 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
6429
6430         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
6431         an altivec register if TARGET_ALTIVEC.
6432
6433         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
6434         to ALTIVEC_VECTOR_MODE.
6435         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
6436         (rs6000_va_arg): Vectors may go in registers if they are not
6437         altivec vectors.
6438
6439 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
6440
6441         * protoize.c: Fix formatting.
6442
6443 2002-05-19  Richard Henderson  <rth@redhat.com>
6444
6445         * gensupport.c (init_include_reader): Merge into ...
6446         (process_include): ... here.  Simplify composite path creation.
6447         Plug memory leaks.  Fix file/line number tracking.  Do not
6448         process_define_cond_exec.  Return void.
6449         (process_rtx): Don't check process_include return value.
6450
6451 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6452
6453         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
6454         fields.
6455         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
6456         traversing basic block chain.
6457         (create_basic_block_structure, create_basic_block): Declaration changed.
6458         (link_block, unlink_block): Declare.
6459         * cfg.c (entry_exit_blocks): Initialize new fields.
6460         (link_block, unlink_block): New.
6461         (expunge_block_nocompact): Unlink basic block.
6462         (dump_flow_info): Print prev_bb/next_bb fields.
6463         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
6464         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
6465         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
6466         * cfgrtl.c (create_basic_block_structure, create_basic_block,
6467         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
6468         (verify_flow_info): Check that list agrees with numbering.
6469
6470 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
6471
6472         * c-common.c (preprocessing_asm): New macro.
6473         * c-lex.h (builtin_define, builtin_assert): Use pfile.
6474 doc:
6475         * tm.texi: Update.
6476 config/alpha:
6477         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
6478         (CPP_SPEC): Simplify.
6479         (TARGET_CPU_CPP_BUILTINS): Update.
6480         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
6481         (CPP_SPEC): Simplify.
6482         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
6483         (TARGET_OS_CPP_BUILTINS): Update.
6484         * osf.h (CPP_XFLOAT_SPEC): Kill.
6485         (TARGET_OS_CPP_BUILTINS): Update.
6486         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
6487         * osf5.h (CPP_XFLOAT_SPEC): Kill.
6488         * vms.h (CPP_SUBTARGET_SPEC): Kill.
6489         (TARGET_OS_CPP_BUILTINS): Update.
6490
6491 2002-05-19  Richard Henderson  <rth@redhat.com>
6492
6493         * varasm.c (default_binds_local_p): Fix typo.
6494
6495 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6496
6497         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
6498         CONST_INT operand to the correct mode after adding 1 to it.
6499
6500 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
6501
6502         * config.gcc (powerpc-wrs-windiss*): New target.
6503
6504 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6505
6506         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
6507         (ashrdi3): Use it.
6508
6509 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
6510
6511         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
6512         alphasort.
6513         * config.in: Regenerated.
6514         * configure: Regenerated.
6515
6516 2002-05-19  Richard Henderson  <rth@redhat.com>
6517
6518         * target-def.h (TARGET_BINDS_LOCAL_P): New.
6519         * target.h (struct gcc_target): Move boolean fields to the end.
6520         Add binds_local_p.
6521         * varasm.c (default_binds_local_p): New.
6522         * output.h: Declare it.
6523
6524         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
6525         * config/cris/cris.c (cris_encode_section_info): Likewise.
6526         * config/i386/i386.c (i386_encode_section_info): Likewise.
6527         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
6528         * config/sh/sh.c (sh_encode_section_info): Likewise.
6529
6530         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
6531         (TARGET_BINDS_LOCAL_P): New.
6532
6533 2002-05-19  Richard Henderson  <rth@redhat.com>
6534
6535         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
6536         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
6537         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
6538
6539         * toplev.c (display_help): Kill -a -ax help.
6540
6541         * config/1750a/1750a.h, config/alpha/alpha.h,
6542         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
6543         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
6544         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
6545         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
6546
6547         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
6548         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
6549
6550         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
6551         (ix86_output_function_block_profiler): Kill.
6552         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
6553         (m68hc11_function_block_profiler): Kill.
6554         * config/m68hc11/m68hc11-protos.h: Update.
6555         * config/m88k/m88k.c (output_block_profiler): Kill.
6556         (output_function_block_profiler): Kill.
6557         * config/m88k/m88k-protos.h: Update.
6558
6559 2002-05-19  Richard Henderson  <rth@redhat.com>
6560
6561         * system.h (STRIP_NAME_ENCODING): Poison it.
6562         * output.h (STRIP_NAME_ENCODING): Remove.
6563         (default_strip_name_encoding): Declare.
6564         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
6565         * target.h (strip_name_encoding): New.
6566         * varasm.c (default_strip_name_encoding): New.
6567
6568         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
6569         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
6570         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
6571         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
6572         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
6573         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
6574         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
6575         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
6576         config/v850/v850.h: Use the hook, not the macro.
6577
6578         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
6579         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
6580         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
6581         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
6582         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
6583         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
6584         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
6585         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
6586         config/v850/v850.c, config/v850/v850.h:
6587         Move STRIP_NAME_ENCODING to out-of-line function and add
6588         TARGET_STRIP_NAME_ENCODING.
6589
6590         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
6591         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
6592         with TARGET_STRIP_NAME_ENCODING referencing existing function;
6593         make function static.
6594
6595         * xcoffout.c: Include target.h
6596         * Makefile.in (xcoffout.o): Update.
6597
6598         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
6599         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
6600         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
6601         reloc argument unused.
6602         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
6603
6604         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
6605         STRIP_NAME_ENCODING docs.
6606
6607 2002-05-19  Andreas Jaeger  <aj@suse.de>
6608
6609         * gengenrtl.c: Add prototype for excluded_rtx.
6610
6611         * real.h: Add prototype for exact_real_truncate.
6612
6613 2002-05-18  Richard Henderson  <rth@redhat.com>
6614
6615         * system.h (ENCODE_SECTION_INFO): Poison it.
6616         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
6617         * target.h (encode_section_info): New.
6618         * varasm.c (make_decl_rtl, output_constant_def): Use it.
6619         * hooks.c (hook_tree_int_void): New.
6620         * hooks.h: Declare it.
6621
6622         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
6623         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
6624         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
6625         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
6626         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
6627         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
6628         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
6629         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
6630         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
6631         config/mcore/mcore-protos.h, config/mcore/mcore.c,
6632         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
6633         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
6634         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
6635         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
6636         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
6637         referencing existing function.  Make function static.
6638
6639         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
6640         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
6641         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
6642         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
6643         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
6644         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
6645         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
6646         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
6647         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
6648         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
6649         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
6650         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
6651         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
6652         Move ENCODE_SECTION_INFO to out-of-line function and add
6653         TARGET_ENCODE_SECTION_INFO.
6654
6655         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
6656         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
6657
6658         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
6659         from SUBTARGET_*
6660         (switch_to_section): Replace in_rdata case with in_readonly_data.
6661
6662         * config/h8300/h8300.c (h8300_encode_label): Make static.
6663         * config/h8300/h8300-protos.h: Update.
6664
6665         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
6666         from rs6000_encode_section_info; make static.
6667         (rs6000_xcoff_encode_section_info): New.
6668
6669         * config/v850/v850.c (v850_encode_data_area): Make static.
6670         * config/v850/v850-protos.h: Update.
6671
6672         * config/vax/vax.c: Include flags.h.
6673         (vms_select_section): Fix typo.
6674
6675         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
6676         ENCODE_SECTION_INFO docs.
6677
6678 2002-05-18  Richard Henderson  <rth@redhat.com>
6679
6680         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
6681         REGISTER_TARGET_PRAGMAS.
6682         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
6683
6684         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
6685
6686 2002-05-18  Richard Henderson  <rth@redhat.com>
6687
6688         * system.h (SELECT_RTX_SECTION): Poison.
6689         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
6690         * target.h (select_rtx_section): New.
6691         * varasm.c (output_constant_pool): Use it.
6692         (default_select_rtx_section, default_elf_select_rtx_section): New.
6693         * output.h: Declare them.
6694
6695         * config/darwin.h (SELECT_RTX_SECTION): Move ...
6696         * config/darwin.c (machopic_select_rtx_section): ... here.
6697         * config/darwin-protos.h: Update.
6698
6699         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
6700         * config/nextstep.c (machopic_select_rtx_section): ... here.
6701         (nextstep_select_section): Rename variable to avoid macro clash.
6702         * config/nextstep-protos.h: Update.
6703
6704         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
6705         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
6706         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
6707         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
6708         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
6709         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
6710         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
6711         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
6712         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
6713         (SELECT_RTX_SECTION): Remove.
6714
6715         * config/darwin.h, config/elfos.h, config/nextstep.h,
6716         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
6717         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
6718         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
6719         config/sparc/lynx.h, config/xtensa/xtensa.c
6720         (TARGET_ASM_SELECT_RTX_SECTION): New.
6721
6722         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
6723         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
6724         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
6725         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
6726         (ia64_aix_select_rtx_section): New.
6727         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
6728         redefining.
6729         * config/mips/mips.c (mips_select_rtx_section): Make static.
6730         Support ELF SHF_MERGE features.
6731         * config/mips/mips-protos.h: Update.
6732         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
6733         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
6734         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
6735         make static, fall back to default_elf_select_rtx_section.
6736         * config/rs6000/rs6000-protos.h: Update.
6737         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
6738         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
6739         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
6740         * config/romp/romp.c (romp_select_rtx_section): New.
6741         * config/s390/s390.c (s390_select_rtx_section): New.
6742         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
6743         declarations before target macro definition.
6744         (xtensa_emit_call): Use static buffer.
6745         (xtensa_select_rtx_section): New.
6746         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
6747         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
6748         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
6749
6750         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
6751         SELECT_RTX_SECTION docs.
6752
6753 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
6754
6755         * i386.md (movsi/movdi): Fix template.
6756         (sse2 patterns): Set attributes consistently.
6757
6758         * i386.md (pushqi2, ashrqi_*): Fix constraint.
6759
6760 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
6761
6762         * optabs.c (complex_part_zero_p): New.
6763         * (expand_cmplxdiv_straight): Use it.
6764         * (expand_cmplxdiv_wide): Ditto.
6765         * (expand_binop): Ditto.
6766
6767 2002-05-18  Richard Henderson  <rth@redhat.com>
6768
6769         * final.c (HAVE_READONLY_DATA_SECTION): New.
6770         (shorten_branches): Use it instead of ifdefs.
6771         * varasm.c (enum in_section): Add in_readonly_data.
6772         (text_section, data_section): Tidy.
6773         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
6774
6775         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
6776         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
6777         (READONLY_DATA_SECTION): Don't undef.
6778
6779         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
6780         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
6781         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
6782
6783         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
6784         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
6785         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
6786         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
6787
6788         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
6789         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
6790         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
6791         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
6792         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
6793         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
6794         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
6795         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
6796         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
6797
6798         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
6799         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
6800         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
6801         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
6802         config/pa/pa64-hpux.h, config/sparc/litecoff.h
6803         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
6804
6805         * config/elfos.h, config/netware.h, config/svr3.h,
6806         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
6807         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
6808         config/h8300/h8300.h, config/i386/i386-interix.h,
6809         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
6810         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
6811
6812         * config/elfos.h, config/netware.h, config/svr3.h,
6813         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
6814         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
6815         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
6816         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
6817
6818         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
6819         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
6820         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
6821         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
6822         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
6823         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
6824         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
6825         config/rs6000/sysv4.h, config/v850/v850.h
6826         (EXTRA_SECTIONS): Remove in_const/in_rdata.
6827         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
6828
6829         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
6830         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
6831         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
6832         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
6833         * config/alpha/alpha.c (alpha_start_function): Likewise.
6834         (alpha_write_linkage): Likewise.
6835         * config/m32r/m32r.c (m32r_select_section): Likewise.
6836         * config/m88k/m88k.c (m88k_select_section): Likewise.
6837         * config/mips/mips.c (mips_select_rtx_section): Likewise.
6838         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
6839         (rs6000_elf_select_section): Likewise.
6840         * config/v850/v850.c (v850_select_section): Likewise.
6841
6842         * config/1750a/1750a.h, config/i860/sysv3.h
6843         (READONLY_DATA_SECTION_ASM_OP): New.
6844         READONLY_DATA_SECTION_ASM_OP.
6845         * config/i386/interix.c, config/i386/winnt.c
6846         (i386_pe_unique_section): Always use .rdata prefix.
6847         * config/pa/som.h (readonly_data): Always switch to read-only section.
6848         (READONLY_DATA_SECTION): Predicate on flag_pic.
6849         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
6850         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
6851         (READONLY_DATA_SECTION): Update.
6852
6853 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
6854
6855         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
6856         is used without -Wformat.
6857         * c-common.h (warn_format_zero_length): Declare extern.
6858         * c-decl.c (warn_options): Add "format-zero-length".
6859         * c-format.c (warn_format_zero_length): Declare.
6860         (set_Wformat): Set warn_format_zero_length for -Wformat.
6861         (check_format_info): Only warn about zero-length formats if
6862         warn_format_zero_length is true.  Include the format type
6863         name in the warning message.
6864         * doc/invoke.texi: Document -Wformat-zero-length.
6865         * testsuite/gcc.dg/format/zero-length-1.c: New test.
6866
6867 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
6868
6869         * timevar.c: Fix formatting.
6870         * tlink.c: Likewise.
6871         * toplev.c: Likewise.
6872         * tree-dump.c: Likewise.
6873         * tree-inline.c: Likewise.
6874
6875 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
6876
6877         * cppinit.c (cpp_post_options): If preprocessed, turn off
6878         traditional.  If traditional, turn off column numbers.
6879         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
6880         * cpptrad.c (handle_newline): Update line_base.
6881         (skip_comment): Handle -Wcomment.
6882
6883 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
6884
6885         * cppinit.c (struct builtin): Remove unused fields.
6886         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
6887         (operator_array): New - was second half of builtin_array.
6888         (init_builtins): Simplify loop over builtin_array/operator_array.
6889
6890 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
6891
6892         * defaults.h (UNIQUE_SECTION): Remove.
6893         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
6894
6895 2002-05-17  Richard Henderson  <rth@redhat.com>
6896
6897         * expr.c (init_expr_once): Don't use start/end_sequence.
6898         Use rtx_alloc instead of emit_insn.
6899         * toplev.c (lang_dependent_init): Run init_expr_once here ...
6900         (lang_independent_init): ... not here.
6901
6902 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
6903
6904         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
6905
6906 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6907
6908         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
6909         for fixed registers, possibly used for global register variables.
6910         (initial_elimination_offset, avr_output_function_prologue,
6911         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
6912
6913 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6914
6915         * Makefile.in: Update for cpptrad.c.
6916         * cpphash.h (struct cpp_buffer): New members for buffer
6917         overlays.
6918         (struct cpp_reader): New members for traditional output.
6919         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
6920         * cppinit.c (cpp_create_reader): Set trad_line.
6921         (cpp_destroy): Free trad_out_base if used.
6922         (cpp_read_main_file): Overlay an empty buffer if traditional.
6923         (cpp_finish_options): Don't do builtins.
6924         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
6925         (cpp_handle_option): Handle it.
6926         * cpplex.c (continue_after_nul): New.
6927         (_cpp_lex_direct): Use handle_nul.
6928         * cpplib.h (struct cpp_options): New traditional option.
6929         * cpptrad.c: New file.
6930
6931 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6932
6933         * c-common.c (c_common_init_options): Use C89 for Objective-C,
6934         and set the options flag.
6935         * cppinit.c (lang_flags): Remove objc.
6936         (lang_defaults): Remove OBJC and OBJCXX.
6937         (set_lang): Update.
6938         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
6939         (cpp_handle_option): Remove -+ and -lang-objc++.
6940         For ObjC, just set a flag.
6941         (print_help): Update.
6942         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
6943
6944 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6945
6946         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
6947         bootstrap with -mips3.
6948
6949 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
6950
6951         * final.c: Fix formatting.
6952         * fix-header.c: Likewise.
6953         * flow.c: Likewise.
6954         * fold-const.c: Likewise.
6955         * function.c: Likewise.
6956
6957 2002-05-17  David S. Miller  <davem@redhat.com>
6958
6959         PR c/6689, PR optimization/6615
6960         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
6961         and make it a pointer to rtx.  Update comments.
6962         (update_equiv_regs): When scanning for equivalences, record
6963         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
6964         it while making the equiv replacements.
6965
6966 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6967
6968         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
6969
6970 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
6971
6972         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
6973         when encoding visibility into SYMBOL_REF_FLAG.
6974
6975 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
6976
6977         * expr.c (force_operand): Fix reversed move.
6978
6979 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
6980
6981         * doc/install.texi (Testing): Mention two common DejaGnu warnings
6982         that can be ignored.
6983
6984 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6985
6986         * doc/install.texi (Final install): Recommend to install into a
6987         "clean" target directory.
6988
6989 2002-05-17  Richard Henderson  <rth@redhat.com>
6990
6991         * config/ia64/ia64.md: Use braced strings instead of quoted strings
6992         for code blocks.  Tidy whitespace.
6993
6994 2002-05-17  Richard Henderson  <rth@redhat.com>
6995
6996         * hooks.c (hook_tree_bool_false): New.
6997         * hooks.h: Declare it.
6998         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
6999         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
7000         * target.h (select_section, unique_section): New.
7001         (in_small_data_p): New.
7002         * varasm.c (resolve_unique_section): Use hooks instead of macros.
7003         (variable_section, output_constant_def_contents): Likewise.
7004         (default_select_section, default_unique_section): New.
7005         (categorize_decl_for_section, default_elf_select_section): New.
7006         * output.h: Declare them.
7007
7008         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
7009         (TARGET_ASM_SELECT_SECTION): New.
7010         (SELECT_SECTION): Move ...
7011         * config/darwin.c (machopic_select_section): ... here.
7012         * config/darwin-protos.h: Update.
7013
7014         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
7015         (SELECT_SECTION): Move ...
7016         * config/nextstep.c (nextstep_select_section): ... here.
7017         * config/nextstep-protos.h: Update.
7018
7019         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
7020         (TARGET_ASM_SELECT_SECTION): New.
7021         * config/svr3.h (SELECT_SECTION): Remove.
7022
7023         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
7024         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
7025         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
7026         (alpha_encode_section_info): Use it.
7027         * config/alpha/alpha-protos.h: Update.
7028         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
7029         (SELECT_SECTION, UNIQUE_SECTION): Remove.
7030         (TARGET_ASM_SELECT_SECTION): New.
7031         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
7032
7033         * config/arm/pe.h (UNIQUE_SECTION): Remove.
7034         (TARGET_ASM_UNIQUE_SECTION): New.
7035
7036         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
7037         (avr_unique_section): Rename from unique_section; make static.
7038         * config/avr/avr-protos.h: Update.
7039         * config/avr/avr.h (UNIQUE_SECTION): Remove.
7040
7041         * config/c4x/c4x.h (SELECT_SECTION): Remove.
7042
7043         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
7044         (TARGET_ASM_UNIQUE_SECTION): New.
7045         * config/i386/i386-interix.h: Likewise.
7046         * config/i386/win32.h: Likewise.
7047         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
7048         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
7049         * config/i386/sco5.h (SELECT_SECTION): Remove.
7050         (TARGET_ASM_SELECT_SECTION): New.
7051         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
7052
7053         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
7054         instead of SELECT_SECTION.
7055         * config/m68k/dpx2.h: Likewise.
7056         * config/rs6000/lynx.h: Likewise.
7057
7058         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
7059         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
7060         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
7061         (ia64_in_small_data_p): New.
7062         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
7063         (ia64_aix_select_section, ia64_aix_unique_section): New.
7064         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
7065         (SELECT_SECTION, UNIQUE_SECTION): Remove.
7066
7067         * config/m32r/m32r.h (SELECT_SECTION): Remove.
7068         (TARGET_ASM_SELECT_SECTION): New.
7069         * config/m32r/m32r.c (m32r_select_section): Take align argument.
7070         * config/m32r/m32r-protos.h: Update.
7071
7072         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
7073         (SELECT_SECTION): Move ...
7074         * config/m88k/m88k.c (m88k_select_section): ... here.
7075
7076         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
7077         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
7078         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
7079         (mcore_unique_section): Make static.
7080         * config/mcore/mcore-protos.h: Update.
7081
7082         * config/mips/elf.h (UNIQUE_SECTION): Remove.
7083         (TARGET_ASM_UNIQUE_SECTION): New.
7084         * config/mips/elf64.h: Likewise.
7085         * config/mips/iris6gld.h: Likewise.
7086         * config/mips/linux.h: Likewise.
7087         * config/mips/mips-protos.h: Update.
7088         * config/mips/mips.c (mips_select_section): Add align argument.
7089         * config/mips/mips.h (SELECT_SECTION): Remove.
7090         (TARGET_ASM_SELECT_SECTION): New.
7091
7092         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
7093         * config/mmix/mmix.c (mmix_select_section): Remove.
7094         (mmix_unique_section): Remove.
7095         * config/mmix/mmix-protos.h: Update.
7096
7097         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
7098         (SELECT_SECTION): Move ...
7099         * config/pa/pa.c (pa_select_section): ... here.
7100         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
7101
7102         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
7103         from rs6000_select_section and make static.
7104         (rs6000_elf_unique_section): Similarly.
7105         (rs6000_xcoff_select_section): From xcoff.h.
7106         (rs6000_xcoff_unique_section): Likewise.
7107         * config/rs6000/rs6000-protos.h: Update.
7108         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
7109         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
7110         * config/rs6000/xcoff.h: Likewise.
7111
7112         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
7113         (SELECT_SECTION): Move ...
7114         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
7115
7116         * config/v850/v850.h (SELECT_SECTION): Move ...
7117         * config/v850/v850.c (v850_select_section): ... here.
7118         (TARGET_ASM_SELECT_SECTION): New.
7119
7120         * config/vax/vms.h (SELECT_SECTION): Move ...
7121         * config/vax/vax.c (vms_select_section): ... here.
7122         (TARGET_ASM_SELECT_SECTION): New.
7123
7124         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
7125         for the target hooks.
7126
7127 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
7128
7129         * config/arm/arm.c (emit_multi_reg_push): Do not set
7130         RTX_FRAME_RELATED_P on the SEQUENCE.
7131
7132 2002-05-16  Richard Henderson  <rth@redhat.com>
7133
7134         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
7135         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
7136
7137 2002-05-16  Richard Henderson  <rth@redhat.com>
7138
7139         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
7140
7141         * config/ia64/ia64.c (saveable_obstack): Do not declare.
7142
7143 2002-05-16  Richard Henderson  <rth@redhat.com>
7144
7145         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
7146         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
7147         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
7148         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
7149         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
7150         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
7151         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
7152         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
7153         Revert "Basic block renumbering removal", and two followup patches.
7154
7155 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
7156
7157         * lcm.c (optimize_mode_switching): Revert previous change.
7158
7159 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7160
7161         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
7162         with only extant block numbers.
7163
7164 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
7165
7166         * lcm.c (optimize_mode_switching): Fix typo.
7167
7168 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7169
7170         * flow.c (calculate_global_regs_live): Queue blocks in program order.
7171
7172 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7173
7174         * doc/install.texi (Configuration): Document PWDCMD.
7175
7176 2002-05-16  Dale Johannesen  <dalej@apple.com>
7177
7178         * combine.c (cant_combine_insn_p):  Reenable combinations
7179         involving hard regs unless CLASS_LIKELY_SPILLED_P.
7180
7181 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7182
7183         * c-common.c (cb_register_builtins): Handle more built-ins
7184         here rather than in gcc.c specs.
7185         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
7186         (cpp_options): Pass -O flags even when only preprocessing.
7187         * toplev.c (set_fast_math_flags): New prototype.
7188         (fast_math_flags_set_p): New.
7189         (set_no_fast_math_flags): Remove.
7190         (decode_f_option): Update.
7191         * toplev.h (set_fast_math_flags): Update.
7192         (fast_math_flags_set_p): New.
7193         (set_no_fast_math_flags): Remove.
7194 config:
7195         * c4x/c4x.c (c4x_override_options): Update.
7196
7197 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
7198
7199         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
7200         Default-define here.
7201         (builtin_define_with_value): Can now wrap the expansion in
7202         quotation marks if such is wanted.
7203         (cb_register_builtins): Update calls to builtin_define_with_value.
7204         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
7205         here.
7206         (c_common_init): Set options->stdc_0_in_system_headers.
7207         * c-lex.h: Update prototype of builtin_define_with_value.
7208         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
7209         and REGISTER_PREFIX.
7210
7211         * cppinit.c (VERS, ULP, C, X): Kill.
7212         (builtin_array): Remove entries for __VERSION__,
7213         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
7214         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
7215         a constant.
7216         (init_builtins): Kill off a bunch of now-dead code.
7217         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
7218         -fno-leading-underscore.
7219         (cpp_handle_option): Remove code to set user_label_prefix.
7220         (cpp_post_options): Likewise.
7221
7222         * cpplib.h (struct cpp_options): Remove user_label_prefix.
7223         (stdc_0_in_system_headers): New.
7224         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
7225         stdc_0_in_system_headers) too to decide the value of __STDC__.
7226
7227         * tradcpp.c (user_label_prefix): Kill.
7228         (main): Remove code handling -f(no-)leading-underscore.
7229         (initialize_builtins): Don't define __REGISTER_PREFIX__
7230         or __USER_LABEL_PREFIX__.
7231         (install_value): Wrap compound statement in dummy loop so the
7232         macro works properly in an if statement.
7233
7234
7235 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
7236
7237         * loop.h (struct loop_info): Add member has_prefetch.
7238         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
7239         (prescan_loop): Initialize has_prefetch.
7240         (struct prefetch_info): Change prefetch_in_loop and
7241         prefetch_before_loop from bit fields to ints.
7242         (emit_prefetch_instructions): Several small fixes.
7243         (check_dbra_loop): Don't reverse loop that uses prefetch.
7244
7245 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7246
7247         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
7248         * configure.in: Likewise.
7249         * fixinc/check.tpl: Likewise.
7250         * fixinc/fixinc.dgux: Likewise.
7251         * fixinc/fixinc.svr4: Likewise.
7252         * fixinc/fixinc.winnt: Likewise.
7253         * fixinc/fixincl.sh: Likewise.
7254         * fixproto: Likewise.
7255         * configure: Regenerate.
7256
7257 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7258
7259         Basic block renumbering removal:
7260         * basic_block.h (struct basic_block_def): Renamed index to sindex,
7261         added prev_bb and next_bb fields.
7262         (n_basic_blocks): Renamed to num_basic_blocks.
7263         (last_basic_block): New, index of last basic block.
7264         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
7265         traversing basic block chain.
7266         (BLOCK_NUM): index -> sindex.
7267         (create_basic_block_structure, create_basic_block): Declaration changed.
7268         (debug_num2bb): Declare.
7269         (expunge_block_nocompact): Declaration removed.
7270         (link_block, unlink_block, compact_blocks): Declare.
7271         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
7272         * cfg.c (entry_exit_blocks): Initialize new fields.
7273         (clear_edges, alloc_block, expunge_block, cached_make_edge,
7274         redirect_edge_pred, dump_flow_info, dump_edge_info,
7275         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
7276         free_aux_for_edges): Modified.
7277         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
7278         (expunge_block_nocompact): Removed.
7279         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
7280         find_unreachable_blocks, create_edge_list, print_edge_list,
7281         verify_edge_list, flow_edge_list_print, remove_fake_successors,
7282         remove_fake_edges, flow_reverse_top_sort_order_compute,
7283         flow_depth_first_order_compute, flow_preorder_transversal_compute,
7284         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
7285         flow_dfs_compute_reverse_execute): Modified.
7286         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
7287         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
7288         Modified.
7289         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
7290         merge_blocks_move_predecessor_nojumps,
7291         merge_blocks_move_successor_nojumps, merge_blocks,
7292         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
7293         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
7294         * cfglayout.c (skip_insns_after_block, label_for_bb,
7295         record_effective_endpoints, scope_to_insns_finalize,
7296         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
7297         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
7298         cfg_layout_duplicate_bb): Modified.
7299         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
7300         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
7301         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
7302         flow_loops_find, flow_loop_outside_edge_p): Modified.
7303         * cfgrtl.c (create_basic_block_structure, create_basic_block,
7304         flow_delete_block, compute_bb_for_insn, split_block,
7305         try_redirect_by_replacing_jump, redirect_edge_and_branch,
7306         force_nonfallthru_and_redirect, tidy_fallthru_edge,
7307         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
7308         commit_edge_insertions, commit_edge_insertions_watch_calls,
7309         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
7310         purge_all_dead_edges): Modified.
7311         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
7312         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
7313         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
7314         Modified.
7315         * conflict.c (conflict_graph_compute): Modified.
7316         * df.c (FOR_ALL_BBS): Removed.
7317         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
7318         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
7319         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
7320         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
7321         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
7322         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
7323         * final.c (compute_alignments, final_scan_insn): Modified.
7324         * flow.c (verify_local_live_at_start, update_life_info,
7325         update_life_info_in_dirty_blocks, free_basic_block_vars,
7326         delete_noop_moves, calculate_global_regs_live,
7327         initialize_uninitialized_subregs, allocate_bb_life_data,
7328         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
7329         mark_used_reg, count_or_remove_death_notes): Modified.
7330         * function.c (thread_prologue_and_epilogue_insns): Modified.
7331         * gcse.c (struct null_pointer_info): Change typo of current_block
7332         to basic_block.
7333         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
7334         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
7335         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
7336         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
7337         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
7338         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
7339         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
7340         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
7341         pre_delete, one_pre_gcse_pass, compute_transpout,
7342         invalidate_nonnull_info, delete_null_pointer_checks_1,
7343         free_code_hoist_mem, compute_code_hoist_vbeinout,
7344         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
7345         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
7346         compute_store_table, build_store_vectors, insert_insn_start_bb,
7347         insert_store, replace_store_insn, free_store_memory, store_motion):
7348         Modified.
7349         * global.c (global_alloc, global_conflicts, mark_elimination,
7350         build_insn_chain): Modified.
7351         * graph.c (print_rtl_graph_with_bb): Modified.
7352         * haifa-sched.c (sched_init): Modified.
7353         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
7354         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
7355         if_convert): Modified.
7356         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
7357         compute_insert_delete, pre_edge_lcm, compute_available,
7358         compute_farthest, compute_nearerout, compute_rev_insert_delete,
7359         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
7360         Modified.
7361         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
7362         * loop.c (loop_dump_aux): Modified.
7363         * predict.c (combine_predictions_for_insn, estimate_probability,
7364         last_basic_block_p, process_note_prediction, process_note_predictions,
7365         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
7366         expensive_function_p, estimate_bb_frequencies,
7367         compute_function_frequency): Modified.
7368         * print-rtl.c (print_rtx): Modified.
7369         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
7370         get_exec_counts, compute_branch_probabilities, compute_checksum,
7371         branch_prob, find_spanning_tree): Modified.
7372         * recog.c (split_all_insns, peephole2_optimize): Modified.
7373         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
7374         convert_regs_1, convert_regs_2, convert_regs): Modified.
7375         * regclass.c (scan_one_insn, regclass): Modified.
7376         * regmove.c (mark_flags_life_zones, regmove_optimize,
7377         combine_stack_adjustments): Modified.
7378         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
7379         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
7380         * reorg.c (dbr_schedule): Modified.
7381         * resource.c (find_basic_block, init_resource_info): Modified.
7382         * sbitmap.c (sbitmap_intersection_of_succs,
7383         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
7384         sbitmap_union_of_preds): Modified.
7385         * sched-deps.c (init_dependency_caches): Modified.
7386         * sched-ebb.c (schedule_ebbs): Modified.
7387         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
7388         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
7389         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
7390         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
7391         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
7392         ssa_const_prop): Modified.
7393         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
7394         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
7395         * ssa.c (remove_phi_alternative, find_evaluations,
7396         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
7397         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
7398         make_regs_equivalent_over_bad_edges,
7399         make_equivalent_phi_alternatives_equival,
7400         compute_conservative_reg_partition,
7401         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
7402         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
7403         Modified.
7404
7405 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
7406
7407         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
7408
7409 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
7410
7411         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
7412         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
7413         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
7414         calling CONSTANT_POOL_ADDRESS_P.
7415         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
7416         to decide whether to define __arm__ or __thumb.
7417         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
7418         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
7419
7420 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7421
7422         * config/arc/arc.h (CPP_PREDEFINES): Remove.
7423         (CPP_SPEC): Update.
7424         (TARGET_CPU_CPP_BUILTINS): New.
7425
7426 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7427
7428         * cpphash.h (cpp_macro): Move here, and make expansion a union.
7429         * cppmacro.c (cpp_macro): Remove.
7430         (enter_macro_context, replace_args, warn_of_redefinition,
7431         _cpp_create_definition, cpp_macro_definition): Update.
7432
7433 2002-05-16  Jason Merrill  <jason@redhat.com>
7434
7435         * config/mips/mips.c (mips_output_external): Don't do sdata
7436         optimization for a variable with DECL_COMDAT set.
7437
7438 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
7439
7440         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
7441         Cleanups for accepting modifiers on pointers.
7442         Fix predicate typos.
7443         Allow long pointers as well as int pointers.
7444
7445 2002-05-15  Richard Henderson  <rth@redhat.com>
7446
7447         * varasm.c (merge_weak): Remove special case for extern and common.
7448
7449 2002-05-15  Matt Hiller  <hiller@redhat.com>
7450
7451         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
7452         XFAILing.
7453         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
7454         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
7455         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
7456         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
7457         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
7458         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
7459
7460 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
7461
7462         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
7463
7464 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
7465
7466         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
7467         ("altivec_mfvscr"): Read from VSCR.
7468
7469         Add vscr sets for the following insns: altivec_vctuxs,
7470         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
7471         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
7472         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
7473         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
7474         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
7475         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
7476         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
7477         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
7478         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
7479         altivec_vsum2sws, altivec_vsumsws.
7480
7481         * config/rs6000/rs6000.h: Add VSCR fixed register.
7482         (CALL_REALLY_USED_REGISTERS): Add vscr.
7483         (CALL_USED_REGISTERS): Same.
7484         (FIXED_REGISTERS): Same.
7485         (REG_ALLOC_ORDER): Same.
7486         (reg_class): Add VSCR_REGS.
7487         (REG_CLASS_NAMES): Same.
7488         (REG_CLASS_CONTENTS): Same.
7489         (VSCR_REGNO): New.
7490         (REGISTER_NAMES): Add vscr.
7491         (DEBUG_REGISTER_NAMES): Same.
7492         (ADDITIONAL_REGISTER_NAMES): Same.
7493         (FIRST_PSEUDO_REGISTER): Increment.
7494         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
7495
7496 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
7497
7498         * fold-const.c (fold): Fix a typo.
7499
7500 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
7501
7502         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
7503         comparison against the highest or lowest integer value before
7504         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
7505         transformation and that of an unsigned comparison against 0
7506         right after.
7507
7508 2002-05-15  Richard Henderson  <rth@redhat.com>
7509
7510         * varasm.c (merge_weak): Error for any weakening after definition.
7511         Adjust weakening after use warning to catch more cases.
7512         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
7513         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
7514
7515 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
7516
7517         * invoke.texi (-malign-double): Re-add lost warning.
7518
7519         * i386-protos.h (x86_output_mi_thunk): Declare.
7520         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
7521         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
7522
7523         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
7524         when flag_asynchronous_unwind_tables is set.
7525
7526         * flags.h (flag_reorder_functions): Declare.
7527         * function.c (prepare_function_start): Initialize frequnecy.
7528         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
7529         * Makefile.in (predict.o): Add dependency on target.h and params.h
7530         * defaults.h (HOT_TEXT_SECTION_NAME,
7531         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
7532         * predict.c (choose_function_section): New function.
7533         (estimate_bb_frequencies): Use it.
7534         * toplev.c (flag_reorder_functions): New global variable.
7535         (lang_independent_options): New.
7536         (parse_options_and_default_flags): Set.
7537         * varasm.c (assemble_start_function): Bypass functdion alignment
7538         for never executed functions.
7539         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
7540         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
7541         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7542         Document.
7543
7544         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
7545
7546         * predict.c: Inlude profile.h
7547         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
7548         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
7549         Use the information about maximal counter in the program.
7550
7551         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
7552
7553         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
7554         probably_never_executed_bb_p): New functions.
7555         * cfgcleanup.c (outgoing_edges_match): Use them.
7556         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
7557         (maybe_hot_bb_p, probably_cold_bb_p,
7558         probably_never_executed_bb_p): New functions.
7559
7560         * function.h (function): Add new field function_frequency.
7561         * predict.c (compute_function_frequency): New function.
7562         (estimate_probability): Call it.
7563
7564 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
7565
7566         PR optimization/5172, optimization/5200
7567         * gcse.c (gcse_main): Disable store_motion.
7568
7569 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
7570
7571         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
7572         (c_common_nodes_and_builtins): Use it.
7573         (builtin_define_with_value): New function.
7574         (cb_register_builtins): Define __SIZE_TYPE__,
7575         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
7576         using builtin_define_with_value.  Use consistent notation when
7577         defining __GXX_WEAK__.
7578         (WCHAR_TYPE_SIZE): Don't redefine.
7579         (combine_strings): Don't use WCHAR_TYPE_SIZE.
7580
7581         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
7582         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
7583         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
7584         * tradcpp.c (initialize_builtins): Likewise.
7585         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
7586
7587         * c-lex.h (builtin_define_with_value): Prototype.
7588         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
7589         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
7590         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
7591
7592         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
7593         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
7594         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
7595         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
7596         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
7597         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
7598         config/sparc/sol2-bi.h, config/sparc/sparc.h:
7599         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
7600         to __SIZE_TYPE__ etc from all spec strings. When this makes
7601         extra specs empty, delete them.
7602
7603 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7604
7605         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
7606         for PA8000 or generating dwarf2 call frame information.
7607         (output_call): Remove DO_FRAME_NOTES check from return pointer
7608         optimization.
7609         (following_call): Return 0 when scheduling for PA8000 or generating
7610         dwarf2 call frame information.  Revise comment.
7611
7612 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
7613
7614 config/alpha:
7615         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
7616         and __IEEE_FP_INEXACT as appropriate.
7617         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
7618         (CPP_SPEC): Remove ieee defines.
7619         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
7620
7621 2002-05-14  Richard Henderson  <rth@redhat.com>
7622
7623         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
7624         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
7625
7626 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
7627
7628         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
7629         (CPP_SPEC): Update.
7630         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
7631         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
7632         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
7633         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
7634         (EXTRA_SPECS): Update.
7635         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
7636         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
7637         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
7638         define TARGET_OS_CPP_BUILTINS if necessary.
7639
7640 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
7641
7642         * gcc.c (cpp_options): Must pass -m* and -f* options
7643         to the front end even when only preprocessing.
7644         (cc1_options): Remove redundant -lang-c.
7645         * tradcpp.c (main): Ignore -m options.
7646 objc:
7647         * lang-specs.h: Similarly.
7648
7649 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
7650
7651         * genautomata.c (transform_3): Add code for transformation
7652         `(A,B,...)+C -> A+C,B,...'.
7653
7654 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
7655
7656         * final.c (end_final): Do not output profile_arcs constructor, when
7657         no functions are instrumented.
7658
7659 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
7660
7661         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
7662
7663 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7664
7665         * doc/install.texi: Remove special markup originally required for
7666         HTML generation with texi2html.
7667
7668 2002-05-14  Andreas Schwab  <schwab@suse.de>
7669
7670         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
7671         SELECT_SECTION.
7672         (UNIQUE_SECTION): Define to get small data correctly.
7673
7674         * varasm.c (resolve_unique_section): Add third parameter
7675         flag_function_or_data_sections and use it instead of
7676         flag_function_sections.
7677         (assemble_start_function): Pass flag_function_sections.
7678         (asm_emit_uninitialised): Pass flag_data_sections.
7679         (assemble_variable): Likewise.
7680
7681 2002-05-14  Richard Henderson  <rth@redhat.com>
7682
7683         * config/i386/i386.md: Use define_constants for unspec numbers.
7684         * config/i386/i386.c: Likewise.
7685
7686 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7687
7688         * doc/contrib.texi: Update my entry.
7689
7690 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
7691
7692         * fixinc/inclhack.def (winidss_valist): Limit applicability.
7693         * fixinc/fixincl.x: Regenerated.
7694         * fixinc/tests/base/math.h: Update.
7695         * fixinc/tests/base/testing.h: Likewise.
7696
7697 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
7698
7699         * genattr.c (gen_attr): Don't emit a comma after the last
7700         enumerator.
7701
7702 2002-05-13  Richard Henderson  <rth@redhat.com>
7703
7704         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
7705         by non-local gotos.
7706         * recog.c (peephole2_optimize): Likewise.
7707
7708 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
7709
7710         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
7711         input to O_BINARY.
7712
7713 2002-05-13  Jeffrey A Law  (law@redhat.com)
7714
7715         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
7716         Update prototype and callers.
7717         (propagate_one_insn): Stack pointer adjustments kill MEMs on
7718         the mem_set_list which reference the stack pointer, as do
7719         calls to constant functions as they may clobber outgoing
7720         argument space.
7721
7722         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
7723
7724         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
7725         (ia32_multipass_dfa_lookahead): New function.
7726
7727 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7728
7729         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
7730         (translate_options): Remove 'V'.
7731         (process_command): Similarly.
7732 doc:
7733         * invoke.texi: Remove documentation of 'V'.
7734
7735 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
7736
7737         * config/s390/linux.h: Revert 2002-04-22 changes.
7738
7739 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
7740
7741         * config/fr30/fr30.md: Only allow splits of immediate loads
7742         if the destination is a register.
7743
7744 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
7745
7746         * Makefile.in (c-common.o, cppinit.o): Update.
7747         * c-common.c: Include except.h.
7748         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
7749         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
7750         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
7751         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
7752         CPP_PREDEFINES): Handle here.
7753 config:
7754         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
7755         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
7756         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
7757         TARGET_OS_CPP_BUILTINS.
7758         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
7759         (CPP_SPEC, EXTRA_SPECS): Update.
7760         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
7761         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
7762         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
7763         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
7764         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
7765 doc:
7766         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
7767         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
7768
7769 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
7770
7771         * emit-rtl.c (global_rtl): Update comment.
7772         (const_double_htab, const_double_htab_hash,
7773         const_double_htab_hash, lookup_const_double): New.
7774         (const_int_htab_hash, const_int_htab_eq): Remove const
7775         qualifiers, which cause tons of warnings with RTL checking on.
7776         (gen_rtx_CONST_DOUBLE): Deleted.
7777         (const_double_from_real_value): New function - bears some
7778         resemblance to the former immed_real_const_1.
7779         (immed_double_const): Moved here from varasm.c and
7780         simplified.
7781         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
7782         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
7783         (gen_rtx): Use immed_double_const.
7784         (init_emit_once): Initialize the const_double_htab.  Use
7785         REAL_VALUE_FROM_INT where possible.  Can now use
7786         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
7787         * varasm.c (struct varasm_status): Remove x_const_double_chain.
7788         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
7789         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
7790         (init_varasm_status, mark_varasm_status): Don't touch
7791         x_const_double_chain.
7792
7793         * output.h: Delete prototype for clear_const_double_mem.
7794         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
7795         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
7796         const_double_from_real_value, not immed_real_const_1, and use
7797         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
7798         CONST_DOUBLE_ATOF.
7799         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
7800         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
7801         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
7802         (gen_rtx_REG): Second arg is unsigned.
7803
7804         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
7805         (excluded_rtx): New, return true for CONST_DOUBLE.
7806         (genmacro): Write nothing for excluded codes.
7807         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
7808         * expr.c (expand_expr): Likewise.
7809         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
7810         CONST_DOUBLE_CHAIN.
7811         * toplev.c (rest_of_compilation): Don't call
7812         clear_const_double_mem.
7813
7814         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
7815         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
7816         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
7817         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
7818         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
7819         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
7820         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
7821         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
7822
7823 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7824
7825         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
7826
7827 2002-05-12  Tom Tromey  <tromey@redhat.com>
7828
7829         * tree.h (copy_node): Don't mention TREE_PERMANENT.
7830
7831 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
7832
7833         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
7834         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
7835         * gensupport.h: Prototype new routines.
7836         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
7837         use of printf.
7838         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
7839         (next_comma_elt): Use scan_comma_elt.
7840
7841         * config/i386/i386.md: Use new attribute notation to break up
7842         long lines in define_attr forms.
7843
7844 2002-05-12  Richard Henderson  <rth@redhat.com>
7845
7846         * expr.c (compress_float_constant): New.
7847         (emit_move_insn): Use it.
7848         (float_extend_from_mem): New.
7849         (init_expr_once): Initialize it.
7850         * real.c (exact_real_truncate): New.
7851
7852         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
7853         dropped into memory; penalize for size.
7854         (RTX_COSTS): FLOAT_EXTEND is free.
7855         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
7856         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
7857
7858 2002-05-12  Richard Henderson  <rth@redhat.com>
7859
7860         * profile.h (profile_info): Add missing extern to declaration.
7861         * profile.c (profile_info): Define it.
7862
7863 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7864
7865         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
7866         used for DImode and TImode.
7867
7868 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7869
7870         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
7871         fake a newline.
7872
7873 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
7874
7875         * config/rs6000/rs6000.c (rs6000_default_long_calls,
7876         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
7877         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
7878         (rs6000_override_options): Handle -m(no-)longcall.
7879         (init_cumulative_args, output_mi_thunk): Check for both
7880         longcall and shortcall attributes on the function.
7881         (rs6000_attribute_table): Add "shortcall".
7882         (rs6000_handle_longcall_attribute): Update comment.
7883         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
7884         altivec_expand_ternop_builtin): Add default clauses to switches
7885         to silence warnings.
7886
7887         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
7888         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
7889         (TARGET_OPTIONS): Add longcall and no-longcall.
7890
7891         * config/rs6000/rs6000.md (call_nonlocal_sysv,
7892         call_value_nonlocal_sysv): Split by alternatives.  One pair
7893         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
7894         the call cookie.  The other pair accepts only LR/CTR and has
7895         no restriction.
7896
7897         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
7898         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
7899         tmake_file.
7900         * config/rs6000/rs6000-c.c: New file.
7901         * config/rs6000/t-rs6000-c-rule: New file.
7902         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
7903         Prototype rs6000_pragma_longcall.
7904
7905         * doc/extend.texi: Document shortcall attribute.
7906         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
7907
7908 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7909
7910         * reorg.c (dbr_schedule): Remove unnecessary test.
7911
7912 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
7913
7914         * i386.md (testsi to testqi spliters): New.
7915
7916         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
7917
7918         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
7919
7920         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
7921
7922         * basic-block.h: New flag EDGE_CAN_FALLTHRU
7923         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
7924         that can be made fallthru.
7925
7926         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
7927
7928         * cfglayout.c (cleanup_unconditional_jumps): New static function.
7929         (cfg_layout_initialize): Use it.
7930
7931 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7932
7933         * config/avr/avr.c (avr_mcu_types): Update supported devices.
7934         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7935         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7936
7937 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
7938
7939         * dbxout.c: Fix formatting.
7940         * dependence.c: Likewise.
7941         * df.c: Likewise.
7942         * diagnostic.c: Likewise.
7943         * doloop.c: Likewise.
7944         * dominance.c: Likewise.
7945         * doschk.c: Likewise.
7946         * dwarf2asm.c: Likewise.
7947         * dwarf2out.c: Likewise.
7948         * dwarfout.c: Likewise.
7949
7950 2002-05-10  Richard Henderson  <rth@redhat.com>
7951
7952         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
7953         Convert integers constants as needed.  Replace "nwords" field with
7954         "sizeof_bb".
7955         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
7956         * function.h: Fix typo in comment.
7957         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
7958
7959 2002-05-10  Roger Sayle  <roger@eyesopen.com>
7960
7961         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
7962         into the equivalent (signed char)c > 0.
7963
7964 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
7965
7966         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
7967         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
7968         (struct prefetch_info): Fix spelling of member bytes_accessed.
7969         (emit_prefetch_instructions): Make dump messages more regular;
7970         restructure code to add more dump messages; use new macros for
7971         heuristics. (There are no code generation changes in any of this).
7972
7973 2002-05-10  David S. Miller  <davem@redhat.com>
7974
7975         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
7976         (struct rtx_def): Update unchanging flag comment.
7977         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
7978         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
7979         to be handled to INSN too.
7980         (dbr_schedule): Likewise.
7981         * resource.c (next_insn_no_annul): Likewise.
7982
7983         * cse.c (rtx_cost): Remove multiplication by power of 2 special
7984         casing.
7985
7986 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7987
7988         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
7989         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
7990         (possibly) work around broken /bin/sh.
7991
7992 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7993
7994         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
7995         . as N64/N32 libgcc_s.so subdirs.
7996
7997 2002-05-10  David S. Miller  <davem@redhat.com>
7998
7999         * config/sparc/sparc.md: Use define_constants for unspec numbers.
8000
8001         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
8002         more accurately.
8003         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
8004         comment.
8005         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
8006         * doc/rtl.texi: Document these macros more accurately.
8007         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
8008         JUMP_INSNs and CALL_INSNs.
8009         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
8010         or INSN_FROM_TARGET_P if the code is appropriate.
8011
8012 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8013
8014         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
8015         before using SYMBOL_REF_FLAG (addr).
8016
8017         * config/avr/avr-protos.h (avr_io_address_p): Declare.
8018         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
8019         Make non-static.  Update all callers.
8020         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
8021         New insns to clear/set/test a single bit in I/O address space.
8022
8023 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8024
8025         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
8026
8027 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8028
8029         * Makefile.in: Update.
8030         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
8031         builtin_define_std): New.
8032         (c_common_init): Register CPP builtins callback.
8033         * c-common.h (flag_iso, flag_undef): New.
8034         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
8035         * c-lex.c: Don't include target.h.
8036         (cb_register_builtins): Move to c-common.c.
8037         (init_c_lex): Don't register hook here.
8038         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
8039         (cpp_define, cpp_assert): Remove.
8040         * gcc.c (cc1_options): Pass -undef to front end.
8041         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
8042         (TARGET_INITIALIZER): Update.
8043         * target.h (struct cpp_reader): Don't predeclare.
8044         (struct gcc_target): Remove cpp builtin hook.
8045         * tree.c (default_register_cpp_builtins): Remove.
8046 doc:
8047         * tm.texi: Update.
8048
8049 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8050
8051         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
8052
8053 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8054
8055         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
8056         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
8057
8058 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
8059
8060         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
8061         * config/sparc/libgcc-sparc-glibc.ver: New file.
8062         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
8063         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
8064
8065 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
8066
8067         PR target/6429
8068         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
8069         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
8070         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
8071         base multilibs.
8072         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
8073         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
8074         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
8075         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
8076
8077 2002-05-09  Richard Henderson  <rth@redhat.com>
8078
8079         * config/ia64/ia64.md: Use define_constants for unspec numbers.
8080         * config/ia64/ia64.c: Likewise.
8081
8082 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
8083
8084         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
8085         (save_restore_insns): Likewise.
8086         (mips_expand_prologue, mips_expand_epilogue): Update callers.
8087         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
8088
8089 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
8090
8091         * athlon.md, k6.md, pentium.md, ppro.md): New files.
8092         * i386.md: Move scheduling information into new files.
8093
8094         * i386.md (type attribute): Add "rotate" for rotate insns.
8095         (rotate insns): Set type to "rotate".
8096         (various attributes and function units): Treat rotate like shift.
8097         (pent_pair attribute): Only rotates by one bit position are
8098         pairable.
8099         (sbb insns): Explicitly set pent_pair attribute on a couple
8100         that were missing it.
8101
8102 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
8103
8104         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
8105         make sure that buffer starts on odd word address.
8106         (sh_va_arg): Skip odd fp registers when reading a double precision
8107         value.
8108
8109 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8110
8111         * tree.h (preserve_data, object_permanent_p, type_precision):
8112         Remove.
8113
8114 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8115
8116         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
8117         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
8118 doc:
8119         * cpp.texi: Update for removal of obsolete features.
8120
8121 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
8122                           Jeffrey A Law  (law@redhat.com)
8123
8124         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
8125         the DFA interface for Pentium processors.
8126         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
8127         (attr_pent_pair, ix86_pent_find_pair): Remove.
8128         (ix86_sched_reorder_pentium): Remove.
8129         (ix86_sched_reorder): Remove reordering for Pentium.
8130         * i386.md (Pentium scheduling): Rewrite using DFA description.
8131
8132 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
8133
8134         * cfganal.c (can_fallthru): Fix fast path.
8135         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
8136         with edges to the next block.
8137
8138 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
8139                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
8140
8141         * final.c (end_final): Use C trees to output data structures for profiling.
8142
8143         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
8144         (profile.o): New dependency profile.h
8145         (final.o): New dependency profile.h
8146         * profile.h: New file. New global structure profile_info.
8147         * final.h (count_edges_instrumented_now): Declare.
8148         (current_function_cfg_checksum): Declare.
8149         (function_list): New structure.
8150         (functions_head, functions_tail): New static variables.
8151         (end_final): Emits more data, removed some -ax stuff.
8152         (final): Stores function names and chcksums.
8153         * gcov-io.h (__write_gcov_string): New function.
8154         (__read_gcov_string): New function.
8155         * gcov.c (read_profile): New function.
8156         (create_program_flow_graph): Uses read_profile instead of reading
8157         da_file.
8158         (read_files): Removed da_file checking, it's done by read_profile now.
8159         * libgcc2.c (bb_function_info): New structure.
8160         (bb): New field in structure, removed some -ax stuff.
8161         (__bb_exit_func): Changed structure of da_file.
8162         * profile.c (count_edges_instrumented_now): New global variable.
8163         (current_function_cfg_checksum): New global variable.
8164         (max_counter_in_program): New global variable.
8165         (get_exec_counts): New function.
8166         (compute_checksum): New function.
8167         (instrument_edges): Sets count_edges_instrumented_now.
8168         (compute_branch_probabilities): Uses get_exec_counts instead of
8169         reading da_file.
8170         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
8171         (init_branch_prob): Removed da_file checking, done in get_exec_counts
8172         now.
8173         (end_branch_prob): Removed da_file checking, done in get_exec_counts
8174         now.
8175         * gcov.texi: Updated information about gcov file format.
8176
8177 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
8178
8179         * sbitmap.c: Fix formatting.
8180         * scan.c: Likewise.
8181         * scan-decls.c: Likewise.
8182         * sched-deps.c: Likewise.
8183         * sched-ebb.c: Likewise.
8184         * sched-rgn.c: Likewise.
8185         * sched-vis.c: Likewise.
8186         * sdbout.c: Likewise.
8187         * sibcall.c: Likewise.
8188         * simplify-rtx.c: Likewise.
8189         * ssa.c: Likewise.
8190         * ssa-ccp.c: Likewise.
8191         * ssa-dce.c: Likewise.
8192         * stmt.c: Likewise.
8193         * stor-layout.c: Likewise.
8194         * stringpool.c: Likewise.
8195
8196 2002-05-09  David S. Miller  <davem@redhat.com>
8197
8198         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
8199
8200 2002-05-07  David S. Miller  <davem@redhat.com>
8201
8202         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
8203         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
8204         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
8205         library implementation clobbers the output before the inputs
8206         are fully consumed, use stack temporary for the output.
8207
8208 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
8209
8210         * config/netbsd.h (CPP_SPEC): Remove.
8211         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
8212         * config/i386/netbsd.h (CPP_SPEC): Define.
8213         * config/ns32k/netbsd.h (CPP_SPEC): Define.
8214         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
8215         * config/sparc/netbsd.h (CPP_SPEC): Define.
8216         * config/vax/netbsd.h (CPP_SPEC): Define.
8217
8218 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
8219
8220         * read-rtl.c: Fix formatting.
8221         * real.c: Likewise.
8222         * recog.c: Likewise.
8223         * regclass.c: Likewise.
8224         * regmove.c: Likewise.
8225         * reg-stack.c: Likewise.
8226         * reload1.c: Likewise.
8227         * reload.c: Likewise.
8228         * resource.c: Likewise.
8229         * rtlanal.c: Likewise.
8230         * rtl.c: Likewise.
8231         * rtl-error.c: Likewise.
8232
8233 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8234
8235         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
8236         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
8237
8238 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
8239
8240         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
8241         use __SSE2__ macro instead.
8242         * config/i386/xmmintrin.h: Likewise.
8243
8244 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
8245
8246         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
8247         and use it in all invocations of these macros.  Clean up comments.
8248         * rtl.c (rtl_check_failed_flag): Add an argument for the name
8249         of the flag access macro whose check failed.
8250         * doc/rtl.texi (Flags): Document additional flag uses.
8251
8252 2002-05-08  Robert Spier <rspier@pobox.com>
8253             Neil Booth  <neil@daikokuya.demon.co.uk>
8254
8255         PR preprocessor/6521
8256         * cppfiles.c (handle_missing_header): Don't do anything
8257         different for <> includes.
8258 doc:
8259         * cppopts.texi: Update documentation for -MG.
8260
8261 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8262
8263         * cpplex.c (cpp_interpret_charconst): Truncate as well as
8264         sign-extend.
8265 doc:
8266         * cpp.texi: Clarify multichar charconst valuation.
8267
8268 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
8269
8270         * doc/invoke.texi: Document -mwindiss option.
8271
8272 2002-05-08  Jason Merrill  <jason@redhat.com>
8273
8274         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
8275
8276         * dwarf2out.c (gen_type_die): Abort on broken recursion.
8277
8278         PR c++/6381
8279         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
8280         REAL_CST.
8281
8282 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
8283
8284         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
8285         little-endian multilibs to override arm/thumb multilibs.
8286         Do not build hardware floating point multilibs, nor apcs-26
8287         multilibs for the Thumb.
8288
8289 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
8290
8291         PR c/6569.
8292         * varasm.c (mark_weak): New function.
8293         (merge_weak): Use it.  Do not call declare_weak.
8294         (declare_weak): Use merge_weak.
8295
8296 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
8297
8298         * cse.c (dead_libcall_p): Update counts.
8299         (delete_trivially_dead_insns): Update call of dead_libcall_p.
8300
8301 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
8302
8303         * cfglayout.c (function_tail_eff_head): Rename to ...
8304         (function_footer): ... this one.
8305         (unlink_insn_chain): New functions.
8306         (label_for_bb): Only call block_label and emit debug message.
8307         (record_effective_endpoints): Actually unlink the headers and footers.
8308         (fixup_reorder_cahin): Re-insert the unlinked sequences.
8309         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
8310         * cfglayout.h (struct reorder_block_def): New fields footer/header;
8311         remove eff_head/eff_end.
8312         * rtl.h (set_first_insn): Declare.
8313         * emit-rtl.c (set_first_insn): New function.
8314
8315         * cfglayout.c (fixup_reorder_chain): Dump duplicated
8316         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
8317         cfg_layout_duplicate_bb): New global function.
8318         (duplicate_insn_chain): New static function.
8319         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
8320         cfg_layout_duplicate_bb): Declare.
8321         (struct reorder_block_def): Add "original" field.
8322         * emit-rtl.c (emit_copy_of_insn_after): New function.
8323         * rtl.h (emit_copy_of_insn_after): Declare.
8324
8325         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
8326         (fixup_reorder_chain): properly handle edges to exit block.
8327
8328 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8329                                Jan Hubicka  <jh@suse.cz>
8330
8331         * basic-block.h (note_prediction_to_br_prob): declare.
8332         * c-semantics.c: Inlucde predit.h
8333         (expand_stmt): predict GOTO_STMT as not taken.
8334         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
8335         (cleanup_cfg): Do not free tail_recursion_list.
8336         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
8337         (flow_delete_block): Kill predictions past end of basic block.
8338         * output.h (delete_unreachable_blocks): Declare.
8339         * predict.c (predicted_by_p, process_note_predictions,
8340         process_note_prediction, last_block_p): New function.
8341         (estimate_probability): Bypass loop on PRED_CONTINUE;
8342         do not handle noreturn heuristics; kill PRED_RETURN; add
8343         PRED_EARLY_RETURN.
8344         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
8345         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
8346         * predict.h (IS_TAKEN): New constant.
8347         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
8348         * rtl.c (NOTE_INSN_PREDICTION): New.
8349         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
8350         New macro.
8351         (insn_note): add NOTE_INSN_PREDICTION.
8352         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
8353         CFG; free tail_recursion_label_list.
8354         * stmt.c: Include predict.h;
8355         (return_prediction): New.
8356         (expand_value_return): Use it.
8357         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
8358
8359 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
8360
8361         * config/mips/mips.md: Name the unspecs with define_constant.
8362         (*HILO_delay): Rename to 'hilo_delay' (no star).
8363         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
8364         (reload_outdi, reload_outsi): Likewise.
8365
8366 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
8367
8368         * toplev.c: Fix formatting.
8369
8370 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
8371
8372         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
8373         * configure.in (ac_rtlflag_checking): New.
8374         * doc/install.texi (--enable-checking): Document RTL flag checking.
8375
8376 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8377
8378         * c-common.c (c_common_init): Set options->unsigned_wchar.
8379         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
8380         group target dependencies.
8381         (init_builtins, cpp_handle_option): Update.
8382         * cpplex.c (cpp_interpret_charconst): Update.
8383         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
8384         signed_char to unsigned_char, group target dependencies.
8385         * defaults.h (WCHAR_UNSIGNED): Remove.
8386         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
8387 config:
8388         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
8389         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
8390         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
8391         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
8392         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
8393 doc:
8394         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
8395
8396 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
8397
8398         * fixinc/inclhack.def (windiss_math1): New fix.
8399         (windiss_math2): Likewise.
8400         (windiss_valist): Likewise.
8401         * fixinc/fixincl.x: Regenerated.
8402
8403 2002-05-07  Andreas Jaeger  <aj@suse.de>
8404
8405         * genautomata.c (output_internal_min_issue_delay_func): Add
8406         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
8407         (output_internal_trans_func): Likewise.
8408
8409 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
8410
8411         * pa.c (hppa_profile_hook): Use force_reg to get the address
8412         of the profile hook into an appropriate pseudo register.
8413
8414 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
8415
8416         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
8417         (LINK_START_SPEC): Handle it.
8418         (LINK_OS_SPEC): Likewise.
8419         (CPP_SPEC): Likewise.
8420         (STARTFILE_SPEC): Likewise.
8421         (LIB_SPEC): Likewise.
8422         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
8423         all platforms.
8424         (CRTSAVRES_DEFAULT_SPEC): New macro.
8425         (LIB_WINDISS_SPEC): New macro.
8426         (CPP_OS_WINDISS_SPEC): Likewise.
8427         (STARTFILE_WINDISS_SPEC): Likewise.
8428         (ENDFILE_WINDISS_SPEC): Likewise.
8429         (LINK_START_WINDISS_SPEC): Likewise.
8430         (LINK_OS_WINDISS_SPEC): Likewise.
8431         * config/rs6000/windiss.h: New file.
8432
8433 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
8434
8435         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
8436
8437 2002-05-06  David S. Miller  <davem@redhat.com>
8438
8439         * config/sparc/sparc.md (shift insns): Do not mask off
8440         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
8441         take care of it.
8442
8443 2002-05-06  Richard Henderson  <rth@redhat.com>
8444
8445         PR c++/6212
8446         * expr.c (highest_pow2_factor_for_type): New.
8447         (expand_assignment): Use it.
8448
8449 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
8450
8451         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
8452         unspec_volatile.
8453         ("altivec_mfvscr"): Same.
8454
8455 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
8456
8457         * rtl.h (struct rtx_def): Update comments.
8458         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
8459         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
8460         RTL_FLAG_CHECK macros with list of expected RTL codes.
8461         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
8462         (rtl_check_failed_flag): New.
8463         * reload1.c (reload): Use REG macro before changing rtx to MEM.
8464         (reload_cse_noop_set_p): Check rtx code before using access macro.
8465         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
8466         before using access macro.
8467
8468 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
8469
8470         * doc/rtl.texi (Flags): Update to reflect current usage.
8471
8472 2002-05-06  Roger Sayle  <roger@eyesopen.com>
8473
8474         PR opt/3995
8475         * fold-const.c (sign_bit_p): New function.
8476         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
8477         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
8478         Reapply fold when converting (A & C) == C into (A & C) != 0.
8479         (fold_binary_op_with_conditional_arg): Fix typo in comment.
8480
8481 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8482
8483         * c-common.c (warn_multichar): New.
8484         (c_common_init): Set CPP's warn_multichar.
8485         * c-common.h (warn_multichar): New.
8486         * c-decl.c (warn_multichar): Remove.
8487         * c-lex.c (lex_charconst): Update.
8488         * c-tree.h (warn_multichar): Remove.
8489         * cppexp.c (eval_token): Sign-extend charconst value.
8490         * cppinit.c (cpp_create_reader): Set warn_multichar.
8491         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
8492         each character.  Update prototype.  Sign-extend the result.
8493         * cpplib.h: Fix conditions.
8494         (struct cpp_options): Add new warning flag.
8495         (cpp_interpret_charconst): Update prototype.
8496 doc:
8497         * cpp.texi: Update documentation.
8498
8499 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
8500
8501         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
8502         Fix typo in usage of allof instead of unit.
8503
8504 2002-05-06  Richard Henderson  <rth@redhat.com>
8505
8506         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
8507         and any jump or call for IN.
8508
8509 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
8510
8511         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
8512         -msse2.
8513         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
8514
8515 2002-05-06  Roger Sayle  <roger@eyesopen.com>
8516
8517         * fold-const.c (lshift-double): Cast the high word to an unsigned
8518         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
8519         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
8520         avoid compiler warning.  (fold): Remove redundant code from
8521         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
8522
8523 2002-05-06  Jeff Law  <law@redhat.com>
8524
8525         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
8526         * pa.c (pa_adjust_cost): Remove all true dependency cost
8527         adjustments.  Also remove support for non-DFA scheduling.
8528         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
8529         to adjust true dependency costs.  Update various comments.
8530         (7100lc, 7200, 7300 scheduling): Simplify by combining the
8531         FP ALU & MPY units into a single unit.
8532
8533 2002-05-06  Catherine Moore  <clm@redhat.com>
8534
8535         * config/v850/v850.c (compute_register_save_size): Make sure
8536         to count all of the registers that will be saved.
8537
8538 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
8539
8540         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
8541
8542 2002-05-06  David S. Miller  <davem@redhat.com>
8543
8544         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
8545         allow result to overlap input operands in memory.
8546
8547 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8548
8549 doc:
8550         * cpp.texi: Update multichar charconst docs.
8551
8552 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8553
8554         * cpplex.c (cpp_interpret_charconst): Sign-extend each
8555         character.  Don't ignore excess characters.  Treat
8556         multicharacter character constants as signed.
8557         (cpp_parse_escape): Clarify diagnostic.
8558
8559 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
8560
8561         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
8562         use add instead of shift.
8563         (ashldi3_sp64): Likewise.
8564         (ashlsi3_const1, ashldi3_const1): Remove.
8565         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
8566         * config/sparc/sparc.c (const1_operand): New.
8567
8568 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
8569
8570         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
8571
8572 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
8573
8574         PR target/6561
8575         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
8576
8577 2002-05-05  Richard Henderson  <rth@redhat.com>
8578
8579         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
8580         memory latency adjustments.
8581         (alpha_variable_issue): Remove.
8582         (alpha_use_dfa_pipeline_interface): New.
8583         (alpha_multipass_dfa_lookahead): New.
8584         * config/alpha/alpha.md: Remove define_function_unit scheduling;
8585         include new dfa scheduling.
8586         (attr type): Add none.
8587         (blockage): Use it.
8588         * config/alpha/ev4.md: New.
8589         * config/alpha/ev5.md: New.
8590         * config/alpha/ev6.md: New.
8591
8592 2002-05-05  David S. Miller  <davem@redhat.com>
8593
8594         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
8595
8596 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
8597
8598         * cse.c: Fix formatting.
8599         * emit-rtl.c: Likewise.
8600
8601 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
8602
8603         * genautomata.c (initiate_states): Add additional guard to
8604         initialize `units_array'.
8605
8606 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
8607
8608         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
8609         process_unit_to_form_the_same_automaton_unit_lists,
8610         form_the_same_automaton_unit_lists
8611         check_unit_distributions_to_automata): New prototypes and
8612         functions.
8613         (check_automata): Rename it into `check_automata_insn_issues'.
8614         (unit_decl): New fields `the_same_automaton_unit' and
8615         `the_same_automaton_message_reported_p'.
8616         (unit_decl_t): New typedef.
8617         (the_same_automaton_lists): New gloval variable.
8618         (unit_regexp, unit_set_el, units_array, units_cmp,
8619         output_get_cpu_unit_code_func): Use the typedef.
8620         (evaluate_max_reserv_cycles): Increment
8621         `description->max_insn_reserv_cycles'.
8622         (initiate_states): Don't increment `max_cycles_num'.
8623         (transform_insn_regexps): Move code around transformation of
8624         regexps from `generate'.
8625         (generate): Remove call of `transform_insn_regexps'.
8626         (expand_automata): Call `transform_insn_regexps' and
8627         `check_unit_distributions_to_automata'.  Check errors before
8628         `generate'.
8629
8630         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
8631         automaton `ultrasparc3_1'.
8632
8633 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8634
8635         * c-common.c (c_common_init): Set up CPP arithmetic.
8636         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
8637         something reasonable for the host.
8638         (sanity_checks): Add checks.
8639         (cpp_read_main_file): Call sanity_checks() from here...
8640         (cpp_post_options): ... not here.
8641         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
8642         * cpplib.h (struct cpp_options): New member int_precision.
8643
8644 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8645
8646         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
8647
8648 2002-05-04  David S. Miller  <davem@redhat.com>
8649
8650         * config/sparc/linux.h, config/sparc/linux64.h
8651         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
8652
8653         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
8654         more RTX codes.
8655         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
8656
8657         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
8658         of SETs.
8659
8660 2002-05-05  Tim Josling  <tej@melbpc.org.au>
8661
8662         * treelang; New directory for new sample language treelang.
8663
8664 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8665
8666         * Makefile.in (c-lex.o): Update.
8667         * c-lex.c: Include target.h.
8668         (cb_register_builtins): New.
8669         (init_c_lex): Set builtins callback.
8670         * c-lex.h (cpp_define, cpp_assert): New prototypes.
8671         * cppinit.c (init_builtins): Use callback, including for
8672         GXX_WEAK.
8673         * cpplib.h (struct cpp_callbacks): New member.
8674         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
8675         (TARGET_INITIALIZER): Update.
8676         * target.h (struct gcc_target): New hook.
8677         * tree.c (default_register_cpp_builtins): New.
8678         * tree.h (default_register_cpp_builtins): New.
8679 doc:
8680         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
8681
8682 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8683
8684         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
8685         (cpp_post_options): Move sanity checks to...
8686         (sanity_checks): New.
8687         * cpplex.c (maybe_read_ucs): Fix prototype.
8688         (parse_string, cpp_parse_escape): Cast for %c format specifier.
8689         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
8690         if necessary.
8691
8692 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
8693
8694         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
8695         builtins.  Use V2DI patterns instead of TI for logical operations.
8696         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
8697         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
8698         (ix86_expand_builtins): Change the pattern used for movntdq.
8699         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
8700         sse2_nandv2di3): New patterns.
8701         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
8702         on operands.
8703         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
8704         (cvtdq2pd): Correct mode on operand 1.
8705         (sse2_umulsidi3): Describe without unspec.
8706         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
8707         machine modes.
8708         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
8709         (ashlv2di3): Likewise, from sse2_ashlv2di3.
8710         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
8711         ashlv4si3, ashlv2di3): Use SImode for shift count.
8712         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
8713         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
8714         New patterns.
8715         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
8716         New typedefs.
8717         (__m128i, __m128d): New macros.
8718         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
8719         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
8720         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
8721         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
8722         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
8723         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
8724         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
8725         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
8726         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
8727         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
8728         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
8729         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
8730         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
8731         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
8732         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
8733         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
8734         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
8735         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
8736         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
8737         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
8738         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
8739         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
8740         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
8741         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
8742         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
8743         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
8744         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
8745         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
8746         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
8747         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
8748         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
8749         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
8750         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
8751         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
8752         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
8753         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
8754         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
8755         functions.
8756         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
8757         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
8758
8759 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
8760
8761         * dwarf2out.c: Fix formatting.
8762         * varasm.c: Likewise.
8763
8764 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
8765
8766         PR c/6543
8767         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
8768         clobber and use result as temporary value.
8769
8770 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
8771
8772         * expr.c (force_operand): Use expand_simple_* to handle more
8773         cases.
8774
8775 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8776
8777         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
8778         and sign-extension.
8779         (lex_charconst): Update for change in prototype of
8780         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
8781         appropriately.
8782         * cpphash.h (BITS_PER_CPPCHAR_T): New.
8783         * cppinit.c (cpp_create_reader): Initialize them for no
8784         change in semantics.
8785         (cpp_post_options): Add sanity checks.
8786         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
8787         and truncation issues.  Calculate in type cppchar_t.
8788         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
8789         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
8790         run-time dependent precision correctly.  Return whether the
8791         result is signed or not.
8792         * cpplib.c (dequote_string): Use cppchar_t; update.
8793         * cpplib.h (cppchar_signed_t): New.
8794         struct cpp_options): New precision members.
8795         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
8796         * cppexp.c (eval_token): Update.
8797
8798 2002-05-03  David S. Miller  <davem@redhat.com>
8799
8800         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
8801         * config/sparc/sparc.c (sparc_rtx_costs): New function
8802         implementing RTX_COSTS and CONST_COSTS.
8803         * config/sparc/sparc.h (CONST_COSTS): Delete.
8804         (RTX_COSTS_CASES): Define.
8805         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
8806         the work.
8807
8808         * config/sparc/sparc.md (DFA schedulers): Split out...
8809         * config/sparc/cypress.md, config/sparc/hypersparc.md,
8810         config/sparc/sparclet.md, config/sparc/supersparc.md,
8811         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
8812
8813         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
8814         checks on it, always defined for Sparc.
8815
8816         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
8817         Tweak, and add more detailed comments.
8818
8819 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
8820
8821         * Re-apply patch accidentally reverted with
8822         DFA scheduler merge: remove all rules and variables to slurp
8823         source files out of libiberty and rebuild them with HOST_CC.
8824         ($(HOST_PREFIX_1)varray.o): New rule.
8825         (genattrtab rule): Word wrap.
8826
8827 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
8828
8829         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
8830         (CPP_SUBTARGET_SPEC): Define.
8831         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
8832         cpp_subtarget specs.
8833         (CPP_SPEC): Redefine to include %(cpp_subtarget).
8834
8835 2002-05-03  David S. Miller  <davem@redhat.com>
8836
8837         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
8838         * target.h (struct gcc_target): Delete cycle_display member.
8839
8840         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
8841         (rtx_needs_barrier): Delete reference to cycle_display unspec.
8842         (ia64_sched_reorder2): Mention need for cycle display handling
8843         once such notes exist.
8844
8845 2002-05-03  Richard Henderson  <rth@redhat.com>
8846
8847         * real.c (etoasc): Strip most trailing zeros for clarity.
8848         * sched-vis.c: Include real.h.
8849         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
8850         * Makefile.in (sched-vis.o): Add real.h.
8851
8852 2002-05-03  David S. Miller  <davem@redhat.com>
8853
8854         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
8855         no longer needed.
8856
8857 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
8858
8859         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
8860         when we get an out of range literal.
8861         (altivec_expand_ternop_builtin): Same.
8862         (altivec_expand_unop_builtin): Same.
8863         (altivec_expand_builtin): Same, for dss.
8864         (altivec_expand_builtin): Use trees instead of rtl when
8865         determining literal argument validity.
8866
8867 2002-05-03  David S. Miller  <davem@redhat.com>
8868
8869         Delete cycle display scheduling hook.
8870         * config/ia64/ia64.c (ia64_cycle_display,
8871         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
8872         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
8873         and use emit_insn_before instead of ia64_emit_insn_before.
8874         * config/ia64/ia64.md (unspec usage): Delete cycle display.
8875         (cycle_display): Delete insn pattern.
8876         * config/sparc/sparc.md (unspec usage): Delete cycle display.
8877         (cycle_display): Delete insn pattern.
8878         * config/sparc/sparc.c (sparc_cycle_display,
8879         TARGET_SCHED_CYCLE_DISPLAY): Delete.
8880         * doc/md.texi (cycle_display): Don't mention.
8881         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
8882
8883 2002-05-03  Richard Henderson  <rth@redhat.com>
8884
8885         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
8886         * recog.h: Declare them.
8887
8888         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
8889         * config/sparc/sparc.md: Use store_data_bypass_p instead.
8890         * config/sparc/sparc-protos.h: Update.
8891
8892 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
8893
8894         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
8895         -D__arch64__.  Add -D_LP64.
8896         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
8897         from sparc.h.
8898         (CPP_ARCH64_SPEC): Likewise.
8899         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
8900         (NO_BUILTIN_SIZE_TYPE): Undef.
8901
8902 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
8903
8904         * genautomata.c (min_issue_delay_pass_states): Change return type
8905         in the prototype.
8906         (min_issue_delay_pass_states): Change the algorithm.
8907         (min_issue_delay): Set up min_insn_issue_delay for the state.
8908         (output_min_issue_delay_table): Interchange the nested loops and
8909         and initiate min_insn_issue_delay for states.
8910
8911 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
8912
8913         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
8914         jump is simplejump.
8915
8916 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
8917
8918         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
8919         sequence.
8920
8921 2002-05-03  Richard Henderson  <rth@redhat.com>
8922
8923         PR opt/6534
8924         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
8925         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
8926         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
8927         code before JUMP, not EARLIEST.
8928
8929 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
8930
8931         * c-format.c (check_format_info_main): Don't check for presence of
8932         parameter for * width until after operand number has been read,
8933         and only check for it if format parameters are available.
8934         Fixes PR c/6547.
8935
8936 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
8937
8938         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
8939         (LINK_SPEC): Undef before defining.
8940
8941 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
8942
8943         PR preprocessor/6489
8944         * tradcpp.c (fixup_newlines): New.
8945         (main, finclude): Use it.
8946
8947 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
8948
8949         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
8950         * config/mips/mips.c (mips_unique_section): Strip encoding from
8951         decl name.
8952
8953 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
8954
8955         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
8956         mode.
8957
8958 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8959
8960         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
8961         (Specific): Removed buildstats references.
8962         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
8963         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
8964         Accomodate Solaris versions beyond 8.
8965         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
8966         (Specific, *-*-solaris2.8): Removed, obsolete.
8967
8968 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
8969
8970         PR target/6542
8971         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
8972         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
8973         fill leaf_reg_remap with identity.
8974         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
8975
8976 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
8977
8978         * config/h8300/crti.asm: Remove trailing spaces.
8979         * config/h8300/h8300.c: Likewise.
8980         * config/h8300/lib1funcs.asm: Likewise.
8981
8982 2002-05-02  Jason Merrill  <jason@redhat.com>
8983
8984         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
8985         * c-decl.c (c_init_decl_processing): Use it.
8986         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
8987         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
8988         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
8989
8990 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
8991
8992         * regrename.c: Fix formatting.
8993         * tree.c: Likewise.
8994
8995 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
8996
8997         * i386.md (attribute memory): Handle compares properly.
8998
8999 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
9000
9001         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
9002         to none.
9003
9004 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
9005
9006         * function.c: Fix formatting.
9007
9008 2002-05-02  Jan Hubicka  <jh@suse.cz>
9009
9010         * haifa-sched.c (schedule_insn): Print table of instructions and
9011         reservations.
9012         (sched_block): Do not print ready list at verbosity level 1.
9013         * sched-vis.c (print_insn): Make global.
9014         * sched-ebb.c (ebb_print_insn): Rename from...
9015         (print_insn): ... this one.
9016         * sched-int.h (print_insn): Declare
9017
9018 2002-05-02  Richard Henderson  <rth@redhat.com>
9019
9020         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
9021         emitted by cycle_display.
9022
9023 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
9024
9025         * doc/install.texi (*-*-freebsd*): Update to latest status.
9026
9027 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
9028
9029         PR target/6540
9030         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
9031         * config/float-sparc.h: Assume 128-bit long double if
9032         __LONG_DOUBLE_128__ is defined.
9033
9034 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
9035
9036         * genattrtab.c (write_function_unit_info): Add a dummy element
9037         when num_units == 0.
9038
9039 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9040
9041         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
9042         TYPE_MODE (double_type_node) instead of DFmode.
9043
9044 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
9045
9046         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
9047         jumps post reload.
9048         * toplev.c (rest_of_compilation): Revert Richard's patch.
9049
9050 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9051
9052         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
9053
9054 2002-05-02  Catherine Moore  <clm@redhat.com>
9055
9056         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
9057
9058 2002-05-02  Kazu Hirata  <kazu@hxi.com>
9059
9060         * combine.c: Fix comment typos.
9061         * expr.c: Likewise.
9062         * genautomata.c: Likewise.
9063         * stmt.c: Likewise.
9064         * tree.h: Likewise.
9065
9066 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
9067
9068         * doc/install.texi: State GNAT version requirements.
9069
9070 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
9071
9072         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
9073         of the frame pointer or arg pointer register which strict register
9074         checking is not enabled.
9075
9076 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
9077
9078         * gcc.dg/altivec-8.c: New.
9079
9080         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
9081         PRE_INC and PRE_DEC for altivec modes.
9082
9083 2002-05-01  Bruce Korb  <bkorb@gnu.org>
9084
9085         * fixinc/check.tpl(set-writable): make sure the function exists first
9086         * fixinc/inclhack.def(alpha_assert): fix test_text
9087         * fixinc/tests/base/assert.h: add in missing result
9088
9089 2002-05-01  Jeff Law  <law@redhat.com>
9090
9091         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
9092         'T' constraint.
9093
9094 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
9095
9096         * dbxout.c (dbxout_type): Emit size information for range types,
9097         as well, but only when using GDB extensions.
9098
9099 2002-05-01  Richard Henderson  <rth@redhat.com>
9100
9101         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
9102         target-independent gnu binutils date test.
9103
9104 2002-05-01  Richard Henderson  <rth@redhat.com>
9105
9106         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
9107         info before expunging the block.
9108
9109 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
9110
9111         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
9112         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
9113         -M -or -MM is in effect.
9114
9115 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
9116
9117         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
9118         A29k configurations.
9119         * doc/install.texi: Update to match.
9120
9121 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9122
9123         PR bootstrap/6514
9124         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
9125         for duplicates. Always loop over whole list.
9126
9127 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9128
9129         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
9130
9131 2002-05-01      Joel Sherrill <joel@OARcorp.com>
9132
9133         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
9134         support routines.
9135
9136 2002-05-01      Joel Sherrill <joel@OARcorp.com>
9137
9138         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
9139
9140 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
9141
9142         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
9143         (nabs_nopower): Same.
9144         (floatdisf2): New pattern.
9145         (absdi2): Convert to define_insn_and_split.
9146         (nabsdi2): Same.
9147         (trunctfsf2): Same.
9148         (floatditf2): Same.
9149         (floatsitf2): Same.
9150         (fix_trunctfdi2): Same.
9151         (fix_trunctfsi2): Same.
9152
9153 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
9154
9155         * doc/install.texi: Update Texinfo version requirement
9156         documentation.
9157
9158 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
9159
9160         PR target/6512, PR target/5628
9161         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
9162         when memory is not aligned.
9163         (movdf_insn_v9only_vis): Likewise.
9164         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
9165         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
9166         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
9167
9168 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
9169
9170         * gcc.dg/altivec-7.c: New.
9171
9172         * config/rs6000/altivec.h: Cleanup.
9173
9174 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
9175
9176         * doc/invoke.texi (Option Summary): Add -mvrsave=.
9177         (RS/6000 and PowerPC Options): Document -mvrsave=.
9178
9179         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
9180         (rs6000_altivec_vrsave_string): Same.
9181         (rs6000_override_options): Call rs6000_parse_vrsave_option.
9182         (rs6000_parse_vrsave_option): New.
9183         (rs6000_stack_info): Only generate vrsave instructions when
9184         TARGET_ALTIVEC_VRSAVE.
9185
9186         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
9187         (rs6000_altivec_vrsave_string): Define extern.
9188         (rs6000_altivec_vrsave): Same.
9189         (TARGET_ALTIVEC_VRSAVE): New.
9190
9191 2002-04-30  Richard Henderson  <rth@redhat.com>
9192
9193         PR opt/6516
9194         * toplev.c (rest_of_compilation): Don't run cross-jump before
9195         bb-reorder.
9196
9197 2002-04-30  Tom Rix  <trix@redhat.com>
9198
9199         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
9200         check which_alternative.
9201
9202 2002-04-30  Kazu Hirata  <kazu@hxi.com>
9203
9204         * cpplex.c: Fix comment formatting.
9205         * function.c: Likewise.
9206         * integrate.c: Likewise.
9207         * regrename.c: Likewise.
9208         * sibcall.c: Likewise.
9209         * simplify-rtx.c: Likewise.
9210         * tree-inline.c: Likewise.
9211
9212 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9213
9214         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
9215         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
9216         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
9217         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
9218         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
9219         * pa/x-ada: New file.  Define ADA_CFLAGS.
9220
9221 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
9222
9223         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
9224         from MMIX_LAST_REGISTER_FILE_REGNUM.
9225         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
9226         (struct machine_function): New member highest_saved_stack_register
9227         previously static variable in mmix.c.
9228         (MACHINE_DEPENDENT_REORG): Define.
9229         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
9230         (MMIX_OUTPUT_REGNO): New.
9231         (mmix_target_asm_function_prologue): Move calculation of last used
9232         saved-stack-register into...
9233         (mmix_machine_dependent_reorg): New function.  Update to also handle
9234         !TARGET_ABI_GNU.
9235         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
9236         register names, simplify somewhat by new variable regno.
9237         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
9238         register.
9239         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
9240         emitting register names.
9241         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
9242         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
9243         Remove fixed FIXME.
9244         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
9245         Declare.
9246
9247         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
9248
9249 2002-04-30  Richard Henderson  <rth@redhat.com>
9250
9251         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
9252         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
9253         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
9254         emit_tfmode_cvt): New.
9255         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
9256         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
9257         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
9258         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
9259         * config/sparc/sparc-protos.h: Update.
9260
9261 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
9262
9263         * install.texi (Final install): Add to the list of info to include
9264         in a report of a successful bootstrap, and add link to 3.1 list.
9265
9266 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
9267
9268         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
9269         (mode): Add vector modes
9270         (i387): Kill attribute.
9271         (unit): New attribute.
9272         (length_immediate): Grok new types.
9273         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
9274         (modrm): Use "unit".
9275         (memory): Handle MMX/SSE properly.
9276         (scheduling descriptions): Kill uses of fop1.
9277         (sse, mmx, fp patterns): Set type and mode properly.
9278
9279 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
9280
9281         * pa.c (override_options): Default to PA8000 scheduling.
9282         * doc/invoke.texi (HP-PA options): Mention newly added 7300
9283         scheduling parameter.
9284
9285         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
9286         handling of double precision multiplies.
9287
9288         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
9289         fpdiv and fpsqrt instructions.
9290         (7200 & 7300 scheduling): Fix typo in handling of
9291         store-load and store-store penalties.
9292
9293 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9294
9295         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
9296         mips.  Add two missing commas.
9297
9298 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
9299
9300         * doc/contrib.texi (Contributors): Update Paolo Carlini's
9301         and Benjamin Kosnik's entries.
9302
9303 2002-04-29  David S. Miller  <davem@redhat.com>
9304
9305         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
9306         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
9307         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
9308         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
9309
9310 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9311
9312         * combine.c (find_split_point): Use gen_int_mode.
9313
9314 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
9315
9316         Merging code from dfa-branch:
9317
9318         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
9319
9320         * genautomata.c (output_reserv_sets): Fix typo.
9321
9322         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
9323
9324         * genautomata.c (output_reserv_sets): Remove
9325         next_cycle_output_flag.
9326
9327         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
9328
9329         * sched-rgn.c (init_ready_list): Make the DFA code handle
9330         USE/CLOBBER insns in the same way as the traditional
9331         scheduler.
9332         (new_ready): Similarly..
9333
9334         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
9335
9336         * haifa-sched.c (schedule_block): Change the DFA state only after
9337         issuing insn.
9338
9339         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
9340
9341         * pa.c (hppa_use_dfa_pipeline_interface): New function.
9342         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
9343         (override_options): Add PA7300 scheduling support.
9344         (pa_adjust_cost): Update various comments.  Properly
9345         handle anti and output dependencies when using the
9346         DFA scheduler.
9347         (pa_issue_rate): Add PA7300 scheduling support.
9348         (pa_can_combine_p): Call extract_insn before calling
9349         constrain_operands (taken from mainline tree).
9350         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
9351         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
9352         descriptions using DFA descriptions.  Add PA7300
9353         scheduling support.
9354
9355         2002-03-30  David S. Miller  <davem@redhat.com>
9356
9357         Add UltraSPARC-III DFA scheduling support.
9358         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
9359         Update FP conditional move on register insn patterns to use it, as
9360         appropriate.
9361         (define_attr cpu): Add ultrasparc3.
9362         (define_attr us3load_type): New, update integer load patterns to
9363         set it, as appropriate.
9364         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
9365         (rest): Add UltraSPARC3 scheduling description.
9366         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
9367         (PROCESSOR_ULTRASPARC3): New.
9368         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
9369         ({ASM,CPP}_CPU_SPEC): Likewise.
9370         (REGISTER_MOVE_COST): Likewise.
9371         (RTX_COSTS): Likewise.
9372         * config/sparc/sparc.c (sparc_override_options,
9373         sparc_initialize_trampoline, sparc64_initialize_trampoline,
9374         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
9375         sparc_issue_rate): Likewise.
9376         * config/sparc/sol2.h: Likewise.
9377         * config/sparc/sol2-sld-64.h: Likewise.
9378         * config/sparc/linux64.h: Likewise.
9379
9380         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
9381
9382         * doc/md.texi: Add comments about usage the latency time for the
9383         different dependencies and about case when two or more conditions
9384         in different define_insn_reservations returns TRUE for an insn.
9385
9386         * doc/md.texi: Add reference for automaton based pipeline
9387         description.
9388
9389         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
9390
9391         * doc/passes.texi: Add missed information about genattrtab.
9392
9393         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
9394
9395         * genautomata.c (output_automata_list_transition_code): Check
9396         automata_list on NULL.
9397
9398         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
9399
9400         * genautomata.c (output_insn_code_cases,
9401         output_automata_list_min_issue_delay_code,
9402         output_automata_list_transition_code,
9403         output_automata_list_state_alts_code): Comment the functions.
9404
9405         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
9406
9407         * genautomata.c (automata_list_el_t): New typedef.
9408         (get_free_automata_list_el,free_automata_list_el,
9409         free_automata_list, automata_list_hash, automata_list_eq_p,
9410         initiate_automata_lists, automata_list_start, automata_list_add,
9411         automata_list_finish, finish_automata_lists,
9412         output_insn_code_cases, output_automata_list_min_issue_delay_code,
9413         output_automata_list_transition_code,
9414         output_automata_list_state_alts_code, add_automaton_state,
9415         form_important_insn_automata_lists): New functions and prototypes.
9416         (insn_reserv_decl): Add members important_automata_list and
9417         processed_p.
9418         (ainsn): Add members important_p.
9419         (automata_list_el): New structure.
9420         (first_free_automata_list_el, current_automata_list,
9421         automata_list_table): New global variables.
9422         (create_ainsns): Initiate member important_p.
9423         (output_internal_min_issue_delay_func): Generate the switch and
9424         call output_insn_code_cases.
9425         (output_internal_trans_func, output_internal_state_alts_func):
9426         Ditto.
9427         (generate): Call initiate_automata_lists.
9428         (automaton_states): New global variable.
9429         (expand_automata): Call form_important_insn_automata_lists.
9430         (write_automata): Call finish_automata_lists.
9431
9432         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
9433
9434         * genautomata.c (add_excls, add_presence_absence): Check that
9435         cpu units in the sets belong the same automaton.
9436
9437         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
9438         about that cpu units in the sets belong the same automaton.
9439
9440         * doc/md.texi: Ditto.
9441
9442         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
9443                     Nitin Gupta  <niting@noida.hcltech.com>
9444
9445         * config/sh/sh.c (sh_use_dfa_interface): New function.
9446
9447         (sh_issue_rate): New Function.
9448         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
9449         TARGET_SCHED_ISSUE_RATE: define.
9450
9451         * config/sh/sh.md: Add DFA based pipeline description for SH4.
9452
9453         (define_attr insn_class): New attribute used for DFA
9454          scheduling.
9455         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
9456         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
9457          cmpeqdi_t): Likewise.
9458
9459         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
9460          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
9461          ex_group.
9462         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
9463
9464         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
9465
9466         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
9467         break.
9468
9469         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
9470
9471         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
9472         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
9473         necessary.
9474         (output_dfa_start_func): Initiate new variable insn_codes_length,
9475         (write_automata): Output definition of the new variable.
9476
9477         2001-10-02  David S. Miller  <davem@redhat.com>
9478
9479         * haifa-sched.c (advance_one_cycle): New function.
9480         (schedule_block): Use it.
9481         (queue_to_ready): Use it, and also make sure to advance the DFA
9482         state on all stall cycles, not just those where insn_queue links
9483         are found.
9484
9485         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
9486
9487         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
9488         non-zero if the highest-priority instruction could be scheduled.
9489         (choose_ready): Remove last argument from max_issue call.
9490
9491         2001-09-28  David S. Miller  <davem@redhat.com>
9492
9493         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
9494         ultrasparc and 3 for other multi-issue sparcs.
9495
9496         2001-09-27  David S. Miller  <davem@redhat.com>
9497
9498         * config/sparc/sparc.md (cycle_display): New pattern.
9499         * config/sparc/sparc.c (sparc_cycle_display): New.
9500         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
9501
9502         2001-09-25  David S. Miller  <davem@redhat.com>
9503
9504         Convert all of Sparc scheduling to DFA
9505         * config/sparc/sparc.md: Kill all define_function_unit
9506         directives and replace with DFA equivalent.
9507         * config/sparc/sparc.c (ultrasparc_adjust_cost,
9508         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
9509         ultra_fpmode_conflict_exists, ultra_find_type,
9510         ultra_build_types_avail, ultra_flush_pipeline,
9511         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
9512         ultrasparc_variable_issue, ultrasparc_sched_init,
9513         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
9514         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
9515         ultra_cur_hist, ultra_cycles_elapsed): Kill.
9516         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
9517         ultrasparc_store_bypass_p): New.
9518         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
9519         Declare.
9520
9521         2001-09-24  David S. Miller  <davem@redhat.com>
9522
9523         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
9524         ready->vec[foo] not ready[foo].
9525
9526         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
9527
9528         * doc/md.texi: Correct examples for define_insn_reservations
9529         `mult' and `div'.
9530
9531         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
9532
9533         * genautomata.c (create_automata): Print message about creation of
9534         each automaton.
9535         (generate): Remove printing meease about creation of
9536         automata.
9537
9538         2001-09-05  David S. Miller  <davem@redhat.com>
9539
9540         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
9541         * config/sparc/linux64.h: Likewise.
9542
9543         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
9544
9545         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
9546         schedule_block, sched_init, sched_finish): Add missed calls of
9547         use_dfa_pipeline_interface.
9548
9549         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
9550         Ditto.
9551
9552         * sched-vis.c (get_visual_tbl_length): Ditto.
9553
9554         2001-08-27  Richard Henderson  <rth@redhat.com>
9555
9556         * genattr.c (main): Emit state_t even when not doing scheduling.
9557
9558         2001-08-27  Richard Henderson  <rth@redhat.com>
9559
9560         * genautomata.c (expand_automata): Always create a description.
9561
9562         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
9563
9564         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
9565         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
9566         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
9567         RTL constructions.
9568
9569         * genattr.c (main): New variable num_insn_reservations.  Increase
9570         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
9571         pipeline hazard recognizer interface.
9572
9573         * genattrtab.h: New file.
9574
9575         * genattrtab.c: Include genattrtab.h.
9576         (attr_printf, check_attr_test, make_internal_attr,
9577         make_numeric_value): Move protypes into genattrtab.h.  Define them
9578         as external.
9579         (num_dfa_decls): New global variable.
9580         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
9581         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
9582         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
9583         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
9584
9585         * genautomata.c: New file.
9586
9587         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
9588
9589         * sched-int.h: (curr_state): Add the external definition for
9590         automaton pipeline interface.
9591         (haifa_insn_data): Add comments for members blockage and units.
9592
9593         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
9594         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
9595         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
9596         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
9597         TARGET_SCHED_DFA_POST_CYCLE_INSN,
9598         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
9599         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
9600         macros.
9601         (TARGET_SCHED): Use the new macros.
9602
9603         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
9604         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
9605         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
9606         dfa_bubble): New members in gcc_target.sched.
9607
9608         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
9609         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
9610         (insn_queue): Redefine it as pointer to array.
9611         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
9612         INSN_QUEUE_SIZE.
9613         (max_insn_queue_index_macro_value): New variable.
9614         (curr_state, dfa_state_size, ready_try): New varaibles for
9615         automaton interface.
9616         (ready_element, ready_remove, max_issue): New function prototypes
9617         for automaton interface.
9618         (choose_ready): New function prototype.
9619         (insn_unit, blockage_range): Add comments.
9620         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
9621         FUNCTION_UNITS_SIZE == 0.
9622         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
9623         actual_hazard, potential_hazard): Add comments.
9624         (insn_cost): Use cost -1 as undefined value.  Remove
9625         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
9626         pipeline interface.
9627         (ready_element, ready_remove): New functions for automaton
9628         interface.
9629         (schedule_insn): Add new code for automaton pipeline interface.
9630         (queue_to_ready): Add new code for automaton pipeline interface.
9631         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
9632         (debug_ready_list): Print newline when the queue is empty.
9633         (max_issue): New function for automaton pipeline interface.
9634         (choose_ready): New function.
9635         (schedule_block): Add new code for automaton pipeline interface.
9636         Print ready list before scheduling each insn.
9637         (sched_init): Add new code for automaton pipeline interface.
9638         Initiate insn cost by -1.
9639         (sched_finish): Free the current automaton state and finalize
9640         automaton pipeline interface.
9641
9642         * sched-rgn.c: Include target.h.
9643         (init_ready_list, new_ready, debug_dependencies): Add new code for
9644         automaton pipeline interface.
9645
9646         * sched-vis.c: Include target.h.
9647         (get_visual_tbl_length): Add code for automaton interface.
9648         (target_units, print_block_visualization):  Add comments.
9649
9650         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
9651         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
9652         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
9653         (getruntime.o, genautomata.o): New entries.
9654         (genattrtab.o): Add new dependency file genattrtab.h.
9655         (genattrtab): Add new dependencies.  Link it with `libm.a'.
9656         (getruntime.o, hashtab.o): New entries for canadian cross.
9657
9658         * doc/md.texi: Description of automaton based model.
9659
9660         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
9661         Add comments.
9662         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
9663         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
9664         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
9665         TARGET_SCHED_DFA_POST_CYCLE_INSN,
9666         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
9667         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
9668         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
9669         hook descriptions.
9670         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
9671         MAX_DFA_ISSUE_RATE): New macro descriptions.
9672
9673         * doc/contrib.texi: Add dfa based scheduler contribution.
9674
9675         * doc/gcc.texi: Add more information about genattrtab.
9676
9677 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9678
9679         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
9680         adjust_address_nv call.
9681
9682 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
9683
9684         * doc/install.texi (Testing): Provide additional information, and
9685         a stronger encouragement, for running the testsuites.
9686
9687 2002-04-29  DJ Delorie  <dj@redhat.com>
9688
9689         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
9690         given in upper case.
9691
9692 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9693
9694         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
9695         Solaris 2 <widec.h> if missing.
9696         * fixinc/fixincl.x: Regenerate.
9697         * fixinc/tests/base/widec.h: New file.
9698
9699 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
9700
9701         * toplev.c (f_options): Add "profile" switch so that
9702         -fno-profile can be used to disable -p.
9703
9704 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
9705
9706         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
9707         UV2DImode.
9708         * tree.c (build_common_tree_nodes_2): Likewise.
9709         * tree.h (enum tree_index): Likewise.
9710         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
9711
9712         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
9713         entries.
9714         (init_mmx_sse_builtins): Initialize SSE2 builtins.
9715         (ix86_expand_builtin): Add support for SSE2 builtins.
9716         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
9717         (VALID_SSE_REG_MODE): Use it.
9718         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
9719         (enum ix86_builtins): Add SSE2 builtins.
9720         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
9721         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
9722         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
9723         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
9724         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
9725         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
9726         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
9727         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
9728         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
9729         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
9730         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
9731         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
9732         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
9733         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
9734         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
9735         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
9736         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
9737         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
9738         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
9739         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
9740         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
9741         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
9742         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
9743         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
9744         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
9745         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
9746         lfence_insn): New patterns.
9747         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
9748         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
9749
9750 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
9751
9752         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
9753
9754 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9755
9756         * doc/contrib.texi (Contributors): Add Paolo Carlini and
9757         Janis Johnson.
9758         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
9759         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
9760         and CPU instead of cpu.
9761
9762 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
9763
9764         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
9765         variables.
9766         (lang_independent_options): Add -fif-conversion, -fif-conversion2
9767         (rest_of_compilation): Do if conversion only when asked for.
9768         (parse_options_and_default_flags): Set new variables to 1 for -O1
9769         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
9770
9771 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
9772
9773         * i386.c (dbx64_register_map): Fix typo.
9774
9775 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
9776
9777         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
9778         real_one_half, real_bb_freq_max): New static variables.
9779         (debug_profile_bbauxs): Kill.
9780         (process_note_predictions): Kill unused variable.
9781         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
9782         volatile double.
9783         (propagate_freq): Use REAL_ARITHMETICS.
9784         (estimate_bb_frequencies): Likevise; init new static variables.
9785         * Makefile.in (predict.o): Add dependency on real.h
9786
9787 2002-04-28  David S. Miller  <davem@redhat.com>
9788
9789         PR target/6500
9790         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
9791         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
9792         several {reads,writes} instead.
9793         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
9794         Define.
9795
9796 2002-04-27  David S. Miller  <davem@redhat.com>
9797
9798         PR target/6494
9799         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
9800         of the stack bias.
9801
9802         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
9803         including signal.h and sys/ucontext.h, not needed.
9804
9805 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
9806
9807         * varasm.c (output_constant_def): Correct test for not calling
9808         ENCODE_SECTION_INFO for INTEGER_CST.
9809
9810 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9811
9812         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
9813         keep most cases as function eval_token.
9814         (eval_token): New function.
9815         (_cpp_parse_expr): Read token here for improved diagnostics.
9816         Don't use op_as_text.  Detect bad ':' here.
9817         (reduce): Don't detect bad ':' here.
9818         (op_as_text): Remove.
9819         * cpphash.h (_cpp_test_assertion): Change prototype.
9820         * cpplib.c (_cpp_test_assertion): Change prototype.
9821
9822 2002-04-28  Richard Henderson  <rth@redhat.com>
9823
9824         PR c/5154
9825         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
9826         (ggc_mark_rtx_children): New.
9827
9828 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
9829
9830         PR target/6496
9831         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
9832         after call peepholes for UltraSPARC.
9833         (call + jump 64-bit peepholes): Remove.
9834
9835 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9836
9837         PR c/6497
9838         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
9839         result as temporary value.
9840
9841 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
9842
9843         PR c++/6396
9844         * toplev.c (rest_of_compilation): Only run regrename and copy
9845         propagation if optimizing.
9846
9847 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
9848
9849         PR optimization/6475
9850         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
9851         register of REGNO_DECL (i).
9852         * Makefile.in (reload1.o): Add $(TREE_H).
9853
9854 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9855
9856         * cppexp.c (lex): Update to use state.skip_eval.
9857         (struct op): Remove prio and flags members.
9858         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
9859         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
9860         (LEFT_ASSOC): New macro.
9861         (optab): New table of operator priorities and flags.
9862         (SHIFT): Update.
9863         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
9864         malloc-ed parser stack.
9865         (reduce): New; reduce the operator stack.
9866         (_cpp_expand_op_stack): Expand the operator stack as necessary.
9867         * cpphash.h (struct op): Predeclare.
9868         (struct cpp_reader): New members op_stack, op_limit.
9869         (struct lexer_state): New member skip_eval.
9870         (_cpp_parse_expr): Update.
9871         (_cpp_expand_op_stack): New.
9872         * cpplib.c (do_if): Update.
9873         * cppinit.c (cpp_create_reader): Create op stack.
9874         (cpp_destroy): And destroy it.
9875         * cpplib.h (CPP_LAST_CPP_OP): Correct.
9876         (TTYPE_TABLE): Correct.
9877
9878 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9879
9880         PR c/6343
9881         * c-decl.c (duplicate_decls): Call merge_weak.
9882         * c-pragma.c (apply_pragma_weak): Warn about misuse.
9883         * output.h (merge_weak): Prototype merge_weak.
9884         * varasm.c (merge_weak): New function.
9885         (declare_weak): Make sure we don't give an error on VAR_DECLs.
9886         Mark RTL with SYMBOL_REF_WEAK.
9887
9888 2002-04-27  Kurt Garloff <garloff@suse.de>
9889
9890         * tree-inline.c (inlinable_function_p): Improve heuristics
9891         by using a smoother function to cut down allowable inlinable size.
9892         * param.def: Add parameters max-inline-insns-single,
9893         max-inline-slope, min-inline-insns that determine the exact
9894         shape of the above function.
9895         * param.h: Likewise.
9896
9897 2002-04-26  Richard Henderson  <rth@redhat.com>
9898
9899         * c-parse.in (malloced_yyss, malloced_yyvs): New.
9900         (yyoverflow): Re-add.  Set them.
9901         (free_parser_stacks): New.
9902         * c-common.h: Declare it.
9903         * c-lex.c (c_common_parse_file): Call it.
9904
9905 2002-04-26  Richard Henderson  <rth@redhat.com>
9906
9907         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
9908         for fallthru search.
9909
9910 2002-04-26  Eric Christopher  <echristo@redhat.com>
9911
9912         PR optimization/3700
9913         * config/mips/mips.c (mips_issue_rate): Define.  New function.
9914         (TARGET_SCHED_ISSUE_RATE): Use.
9915
9916 2002-04-25  David S. Miller  <davem@redhat.com>
9917
9918         PR target/6422
9919         * reorg.c (optimize_skip): Do not allow exception causing
9920         instructions to be considered for delay slots.
9921         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
9922         (relax_delay_slots): Do not try to consider exception causing
9923         instructions as redundant.
9924
9925 2002-04-26  Richard Henderson  <rth@redhat.com>
9926
9927         PR c/5225
9928         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
9929
9930 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
9931
9932         PR bootstrap/6445
9933         * config/i386/i386.md (untyped_call): Return the value in a float
9934         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
9935         TARGET_80387.
9936
9937 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
9938
9939         * tree.c (tree_int_cst_lt): Compare constants whose types differ
9940         in unsigned-ness correctly.
9941
9942 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9943
9944         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
9945         portable runtime model.
9946
9947 2002-04-26  Richard Henderson  <rth@redhat.com>
9948
9949         * c-parse.in (yyoverflow): Revert.
9950
9951 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
9952             Richard Henderson  <rth@redhat.com>
9953
9954         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
9955         result as temporary value.
9956
9957 2002-04-26  Richard Henderson  <rth@redhat.com>
9958
9959         PR c/3581
9960         * c-common.c (fix_string_type): Split out of ...
9961         (combine_strings): ... here.  Take a varray, not a tree list.
9962         (c_expand_builtin_printf): Use fix_string_type.
9963         * c-common.h: Update decls.
9964         * c-parse.in (string): Remove.  Update all uses to use STRING
9965         instead, and not call combine_strings.
9966         (yylexstring): New.
9967         (_yylex): Use it.
9968         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
9969         (build_asm_stmt): Likewise.
9970         * objc/objc-act.c (my_build_string): Use fix_string_type.
9971         (build_objc_string_object): Build varray for combine_strings.
9972
9973 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
9974
9975         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
9976         x86-64.
9977
9978 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
9979
9980         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
9981         (HAVE_NO_R_OPERAND): Remove.
9982         (HAVE_VALUE): Remove.
9983         (op_to_prio): Update.
9984         (UNARY): Don't alter flags.
9985         (_cpp_parse_expr): want_value used to indicate whether
9986         a number or unary operator is expected next.  Distinguish
9987         unary and binary +/-.
9988         (op_as_text): Update for unary operators.
9989
9990 2002-04-25  Richard Henderson  <rth@redhat.com>
9991
9992         PR c/2161
9993         * c-parse.in (yyoverflow): New.
9994
9995 2002-04-25  Richard Henderson  <rth@redhat.com>
9996
9997         PR c/2098
9998         * c-common.c (shorten_compare): Simplfy conditions leading to
9999         the generation of a warning.
10000
10001 2002-04-25  Richard Henderson  <rth@redhat.com>
10002
10003         PR c/2035
10004         * expmed.c (extract_bit_field): Fall through to generic code rather
10005         than aborting on subreg special case.
10006
10007 2002-04-25  David S. Miller  <davem@redhat.com>
10008
10009         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
10010         for DECL being NULL.
10011
10012 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
10013
10014         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
10015
10016 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
10017
10018         * c-decl.c (grokdeclarator): Remove outdated ??? note
10019         on invalid declaration of flexible array members.
10020
10021 2002-04-25  Richard Henderson  <rth@redhat.com>
10022
10023         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
10024
10025 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
10026
10027         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
10028         needed by the compiler, even if they are used as global regs.
10029
10030 2002-04-25  Matt Hiller  <hiller@redhat.com>
10031
10032         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
10033         functions.
10034         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
10035         of the corresponding functions.
10036         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
10037         New prototypes.
10038
10039 2002-04-25  Matt Hiller  <hiller@redhat.com>
10040
10041         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
10042
10043         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
10044         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
10045         registers, adjust comment accordingly.
10046         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
10047         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
10048         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
10049         for coprocessor registers.
10050         (ADDITIONAL_REGISTER_NAMES): Include
10051         ALL_COP_ADDITIONAL_REGISTER_NAMES.
10052
10053         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
10054         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
10055         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
10056         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
10057         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
10058
10059         (mips_char_to_class): Adjust comment to include coprocessor
10060         constraint letters.
10061
10062         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
10063         New functions.
10064         (mips_reg_names, mips_regno_to_class): Include coprocessor
10065         information.
10066         (mips_sw_reg_names): Ditto, make non-static.
10067         (mips_move_1word): Handle moves to and from coprocessor registers.
10068         (mips_move_2words): Handle moves to and from coprocessor
10069         registers.
10070         (mips_class_max_nregs, mips_register_move_cost): Handle
10071         coprocessor register classes.
10072         (override_options): Initialize mips_char_to_class and
10073         mips_hard_regno_mode_ok properly for coprocessor registers.
10074
10075         * config/mips/mips.md (movdi_internal, movdi_internal2,
10076         movsi_internal1, movsi_internal2): Add constraint-sets for
10077         coprocessor registers.
10078         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
10079         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
10080         isn't mips.
10081         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
10082         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
10083         isn't mips.
10084         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
10085         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
10086         isn't mips.
10087         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
10088         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
10089         isn't mips.
10090
10091         * doc/tm.texi: Document feature.
10092
10093 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10094
10095         * integrate.c (function_attribute_inlinable_p): Simplify.
10096         Check the table pointer is not NULL.
10097
10098 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
10099
10100         * doc/c-tree.texi: Fix typo in introduction.
10101
10102 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10103
10104         * c-common.h (c_common_parse_file): Update.
10105         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
10106         * c-lex.c (YYDEBUG): Get from c-lex.h.
10107         (c_common_parse_file): Update.
10108         * c-lex.h (YYDEBUG, yydebug): New.
10109         * c-parse.in (YYDEBUG): Get from c-lex.h.
10110         (c_set_yydebug): Remove.
10111         * c-tree.h (c_set_yydebug): Remove.
10112         * langhooks-def.h (lhd_do_nothing_i): New.
10113         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
10114         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
10115         * langhooks.c  (lhd_do_nothing_i): New.
10116         (lhd_set_yydebug): Remove.
10117         * langhooks.h (struct lang_hooks): Update.
10118         * toplev.c (set_yydebug): New.
10119         (compile_file): Update call to parse_file hook.
10120         (decode_d_option): Update.
10121 objc:
10122         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
10123
10124 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
10125
10126         * loop.c (load_mems): Don't change the interface of called functions.
10127
10128         * calls.c (expand_call): Take current_function_pretend_args_size
10129         into account when setting argblock for sibcalls.
10130
10131 2002-04-24  Matt Hiller  <hiller@redhat.com>
10132
10133         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
10134         * c-lex.c: Ditto.
10135
10136         * cpplex.c (skip_line_comment): Process comment one multibyte
10137         character at a time rather than one char at a time, if
10138         appropriate.
10139         (parse_string): Process string one multibyte character at a time
10140         rather than one char at a time, if appropriate.
10141         * c-lex.c (lex_string): Lex and copy multibyte strings
10142         appropriately.
10143         * cpplib.h (cppchar_t): Change to unsigned.
10144
10145 2002-04-24  Richard Henderson  <rth@redhat.com>
10146
10147         PR c/3467
10148         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
10149         for c99.
10150
10151 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
10152
10153         * sh.c (sh_va_arg): If argument was passed by reference,
10154         dereference the pointer.
10155
10156         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
10157
10158         * sh.md (divsi3_i4_media): Use match_operand for input values
10159         rather than hard registers.
10160         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
10161         unnecessarily through hard registers.  Keep copies of pseudo
10162         registers outside of the libcall sequence.
10163
10164         * sh.md (casesi_shift_media): Add modes.
10165
10166         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
10167         values in memory.
10168
10169 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10170
10171         * attribs.c (c_common_attribute_table): Move table and handlers
10172         to c-common.c.
10173         (format_attribute_table, lang_attribute_table,
10174         lang_attribute_common): Remove.
10175         (init_attributes): Replace NULL pointers with pointers to the
10176         empty table.
10177         (handle_packed_attribute, handle_nocommon_attribute,
10178         handle_common_attribute, handle_noreturn_attribute,
10179         handle_noinline_attribute, handle_always_inline_attribute,
10180         handle_used_attribute, handle_unused_attribute,
10181         handle_const_attribute, handle_transparent_union_attribute,
10182         handle_constructor_attribute, handle_destructor_attribute,
10183         handle_mode_attribute, handle_section_attribute,
10184         handle_aligned_attribute, handle_weak_attribute,
10185         handle_alias_attribute, handle_visibility_attribute,
10186         handle_no_instrument_function_attribute, handle_malloc_attribute,
10187         handle_no_limit_stack_attribute, handle_pure_attribute,
10188         handle_deprecated_attribute, handle_vector_size_attribute,
10189         vector_size_helper): Move to c-common.c.
10190         * c-common.c (c_common_attribute_table,
10191         handle_packed_attribute, handle_nocommon_attribute,
10192         handle_common_attribute, handle_noreturn_attribute,
10193         handle_noinline_attribute, handle_always_inline_attribute,
10194         handle_used_attribute, handle_unused_attribute,
10195         handle_const_attribute, handle_transparent_union_attribute,
10196         handle_constructor_attribute, handle_destructor_attribute,
10197         handle_mode_attribute, handle_section_attribute,
10198         handle_aligned_attribute, handle_weak_attribute,
10199         handle_alias_attribute, handle_visibility_attribute,
10200         handle_no_instrument_function_attribute, handle_malloc_attribute,
10201         handle_no_limit_stack_attribute, handle_pure_attribute,
10202         handle_deprecated_attribute, handle_vector_size_attribute,
10203         vector_size_helper): Move from attribs.c.
10204         * c-common.h (c_common_attribute_table,
10205         c_common_format_attribute_table): New.
10206         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
10207         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
10208         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
10209         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
10210         (LANG_HOOKS_INITIALIZER): Update.
10211         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
10212         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
10213         * target.h: Update comment.
10214         * tree.c (default_target_attribute_table): Remove.
10215         * tree.h (default_target_attribute_table, format_attribute_table,
10216         lang_attribute_table, lang_attribute_common): Remove.
10217 objc:
10218         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
10219         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
10220
10221 2002-04-24  Jason Merrill  <jason@redhat.com>
10222
10223         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
10224         * dwarf2out.c (dwarf_attr_name): Support it.
10225         (gen_array_type_die): Emit it.
10226         (lookup_type_die): No special handling for VECTOR_TYPE.
10227         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
10228
10229 2002-04-24  Richard Henderson  <rth@redhat.com>
10230
10231         * config/mips/mips.md (movdi_usd): Renumber.
10232
10233 2002-04-24  David S. Miller  <davem@redhat.com>
10234
10235         PR target/6420
10236         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
10237         32-bit Sparc and current_function_returns_struct is true.
10238
10239 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
10240
10241         * loop.c (canonicalize_condition): Use gen_int_mode.
10242
10243 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
10244
10245         * config/rs6000/altivec.h: Cleanup file.  Add non individual
10246         variants.
10247         (vec_vaddubm): New.
10248         (vec_vadduhm): New.
10249         (vec_vadduwm): New.
10250         (vec_vaddfp): New.
10251         (vec_vaddcuw): New.
10252         (vec_vaddubs): New.
10253         (vec_vaddsbs): New.
10254         (vec_vadduhs): New.
10255         (vec_vadduws): New.
10256         (vec_vaddsws): New.
10257         (vec_vand): New.
10258         (vec_vandc): New.
10259         (vec_vavgub): New.
10260         (vec_vavgsb): New.
10261         (vec_vavguh): New.
10262         (vec_vavgsh): New.
10263         (vec_vavguw): New.
10264         (vec_vavgsw): New.
10265         (vec_vrfip): New.
10266         (vec_vcmpbfp): New.
10267         (vec_vcmpequb): New.
10268         (vec_vcmpequh): New.
10269         (vec_vcmpequw): New.
10270         (vec_vcmpeqfp): New.
10271         (vec_vcmpgefp): New.
10272         (vec_vcmpgtub): New.
10273         (vec_vcmpgtsb): New.
10274         (vec_vcmpgtuh): New.
10275         (vec_vcmpgtsh): New.
10276         (vec_vcmpgtuw): New.
10277         (vec_vcmpgtsw): New.
10278         (vec_vcmpgtfp): New.
10279         (vec_vcmpgefp): New.
10280         (vec_vcfux): New.
10281         (vec_vcfsx): New.
10282         (vec_vctsxs): New.
10283         (vec_vctuxs): New.
10284         (vec_vexptefp): New.
10285         (vec_vrfim): New.
10286         (vec_lvx): New.
10287         (vec_lvebx): New.
10288         (vec_lvehx): New.
10289         (vec_lde): Add vector float variant.
10290         (vec_lvewx): New.
10291         (vec_lvxl): New.
10292         (vec_vlogefp): New.
10293         (vec_vmaddfp): New.
10294         (vec_vmhaddshs): New.
10295         (vec_vmaxub): New.
10296         (vec_vmaxsb): New.
10297         (vec_vmaxuh): New.
10298         (vec_vmaxsh): New.
10299         (vec_vmaxuw): New.
10300         (vec_vmaxsw): New.
10301         (vec_vmaxsw): New.
10302         (vec_vmaxfp): New.
10303         (vec_vmrghb): New.
10304         (vec_vmrghh): New.
10305         (vec_vmrghw): New.
10306         (vec_vmrglb): New.
10307         (vec_vmrglh): New.
10308         (vec_vmrglw): New.
10309         (vec_vminub): New.
10310         (vec_vminsb): New.
10311         (vec_vminuh): New.
10312         (vec_vminsh): New.
10313         (vec_vminuw): New.
10314         (vec_vminsw): New.
10315         (vec_vminfp): New.
10316         (vec_vmladduhm): New.
10317         (vec_vmhraddshs): New.
10318         (vec_msumubm): New.
10319         (vec_vmsummbm): New.
10320         (vec_vmsumuhm): New.
10321         (vec_vmsumshm): New.
10322         (vec_vmsumuhs): New.
10323         (vec_vmsumshs): New.
10324         (vec_vmuleub): New.
10325         (vec_vmulesb): New.
10326         (vec_vmuleuh): New.
10327         (vec_vmulesh): New.
10328         (vec_vmuloub): New.
10329         (vec_mulosb): New.
10330         (vec_vmulouh): New.
10331         (vec_vmulosh): New.
10332         (vec_vnmsubfp): New.
10333         (vec_vnor): New.
10334         (vec_vor): New.
10335         (vec_vpkuhum): New.
10336         (vec_vpkuwum): New.
10337         (vec_vpkpx): New.
10338         (vec_vpkuhus): New.
10339         (vec_vpkshss): New.
10340         (vec_vpkuwus): New.
10341         (vec_vpkswss): New.
10342         (vec_vpkshus): New.
10343         (vec_vpkswus): New.
10344         (vec_vperm): New.
10345         (vec_vrefp): New.
10346         (vec_vrlb): New.
10347         (vec_vrlh): New.
10348         (vec_vrlw): New.
10349         (vec_vrfin): New.
10350         (vec_vrsqrtefp): New.
10351         (vec_vsel): New.
10352         (vec_vslb): New.
10353         (vec_vslh): New.
10354         (vec_vslw): New.
10355         (vec_vsldoi): New.
10356         (vec_vsl): New.
10357         (vec_vslo): New.
10358         (vec_vspltb): New.
10359         (vec_vsplth): New.
10360         (vec_vspltw): New.
10361         (vec_vspltisb): New.
10362         (vec_vspltish): New.
10363         (vec_vspltisw): New.
10364         (vec_vsrb): New.
10365         (vec_vsrh): New.
10366         (vec_vsrw): New.
10367         (vec_vsrab): New.
10368         (vec_vsrah): New.
10369         (vec_vsraw): New.
10370         (vec_vsr): New.
10371         (vec_vsro): New.
10372         (vec_stvx): New.
10373         (vec_stvebx): New.
10374         (vec_stvehx): New.
10375         (vec_stvewx): New.
10376         (vec_stvxl): New.
10377         (vec_vsububm): New.
10378         (vec_vsubuhm): New.
10379         (vec_vsubuwm): New.
10380         (vec_vsubfp): New.
10381         (vec_vsubcuw): New.
10382         (vec_vsububs): New.
10383         (vec_vsubsbs): New.
10384         (vec_vsubuhs): New.
10385         (vec_vsubshs): New.
10386         (vec_vsubuws): New.
10387         (vec_vsubsws): New.
10388         (vec_vsum4ubs): New.
10389         (vec_vsum4sbs): New.
10390         (vec_vsum4shs): New.
10391         (vec_vsum2sws): New.
10392         (vec_vsumsws): New.
10393         (vec_vrfiz): New.
10394         (vec_vupkhsb): New.
10395         (vec_vupkhpx): New.
10396         (vec_vupkhsh): New.
10397         (vec_vupklsb): New.
10398         (vec_vupklpx): New.
10399         (vec_vupklsh): New.
10400         (vec_vxor): New.
10401
10402 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
10403
10404         PR c/5430
10405         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
10406         added literals from substracted literals.
10407         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
10408         (fold) [associate]: Preserve MINUS_EXPR if needed.
10409
10410 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
10411
10412         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
10413         are obsoleted.
10414
10415 2002-04-23  Tom Tromey  <tromey@redhat.com>
10416
10417         * gcc.c: Added --resource.  For PR java/6314.
10418
10419 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
10420
10421         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
10422         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
10423         these libraries.
10424
10425 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
10426
10427         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
10428
10429 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
10430
10431         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
10432         workaround.
10433         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
10434         (ix86_expand_clrstr): Fix typo.
10435         * loop.c (gen_load_of_final_value): New.
10436         (loop_givs_rescan, strength_reduce, check_dbra_loop):
10437         Use it.
10438
10439 2002-04-23  Roger Sayle  <roger@eyesopen.com>
10440
10441         * builtins.c (builtin_memset_gen_str): New function.
10442         (expand_builtin_memset): Optimize the case of constant length, but
10443         unknown value.
10444
10445 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
10446
10447         * config/rs6000/altivec.h (vec_step): Remove extraneous
10448         parentheses.
10449         (vec_ctu): Cast return.
10450
10451 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
10452
10453         PR target/6413
10454         * function.h: (struct function): Add profile_label_no field.
10455         (current_function_profile_label_no): Define.
10456         * function.c: (profile_label_no): New static var.
10457         (expand_function_start): Increment it, and copy to
10458         current_function_profile_label_no.
10459         * output.h (profile_label_no): Delete.
10460         * final.c (profile_label_no): Delete.
10461         (profile_function): Use current_function_profile_label_no.
10462         (final_end_function): Don't increment profile_label_no here.
10463         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
10464         profile_label_no with current_function_profile_label_no.
10465         * config/pa/pa.c (current_function_number): Delete.
10466         (pa_output_function_prologue): Don't output profile label here.
10467         (hppa_profile_hook): Use label_no param rather than
10468         current_function_number.
10469         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
10470         * config/pa/pa.h: .. here.
10471         (FUNCTION_PROFILER): Output profile label here.
10472
10473 2002-04-22  Eric Christopher  <echristo@redhat.com>
10474
10475         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
10476         patch of 2002-04-09 due to binutils issues.
10477         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
10478
10479 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
10480
10481         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
10482         constraint to 'o' for m=r and r=m alternatives.
10483         ("*movv8hi_internal1"): Same.
10484         ("*movv16qi_internal1"): Same.
10485         ("*movv4sf_internal1"): Same.
10486
10487 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
10488
10489         * rtl.h (RTX_FLAG): New macro.
10490         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
10491         * final.c (alter_subreg): Use macro to access rtx flag.
10492         * integrate.c (copy_rtx_and_substitute): Use new access macro.
10493         * print-rtl.c (print_rtx): Use new access macro.
10494
10495         * cse.c (insert): Check rtx code before accessing flag.
10496
10497         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
10498         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
10499         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
10500         convert_const_symbol_ref, make_canonical, make_alternative_compare,
10501         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
10502         simplify_test_exp, optimize_attrs, simplify_by_exploding,
10503         find_and_mark_used_attributes, unmark_used_attributes,
10504         add_values_to_cover, simplify_with_current_value,
10505         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
10506         copy_rtx_unchanging, main): Use new access macros.
10507
10508 2002-04-22  Tom Rix  <trix@redhat.com>
10509
10510         * expmed.c (init_expmed): Generate shifted constant once.
10511
10512 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
10513
10514         * c-lex.c (lex_charconst): Call convert to get constant in
10515         proper type; don't just smash the type field.
10516         Fixes PR c/6300.
10517
10518         * config.gcc: Add list of obsolete configurations.  Disallow
10519         building these without --enable-obsolete.
10520         * doc/install.texi: Document --enable-obsolete and obsoletion
10521         policy.  Mention obsoletion of individual targets in
10522         appropriate places.
10523
10524 2002-04-22  Richard Henderson  <rth@redhat.com>
10525
10526         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
10527
10528 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
10529
10530         PR f/6138.
10531         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
10532         (walk_fixup_memory_subreg): Likewise.
10533         (fixup_var_refs_insn): Adjust accordingly.
10534         (fixup_var_refs_1): Likewise.
10535
10536 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
10537
10538         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
10539         LIBPATH_ARCH64_SPEC): Define.
10540         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
10541         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
10542         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
10543         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
10544
10545 2002-04-22      Joel Sherrill <joel@OARcorp.com>
10546
10547         * gthr-rtems.h: Correct prototypes to remove warnings.
10548
10549 2002-04-22  Richard Henderson  <rth@redhat.com>
10550
10551         PR c/6344
10552         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
10553
10554         * gcse.c (free_insn_expr_list_list): New.
10555         (clear_modify_mem_tables): Use it.  Fix bit set usage.
10556         (canon_list_insert): Use EXPR_LISTs for expressions.
10557         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
10558
10559 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10560
10561         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
10562         file change and include code to _cpp_pop_buffer.
10563         * cpphash.h (struct pending_option): Predeclare.
10564         (struct cpp_reader): New member next_include_file.
10565         (_cpp_pop_file_buffer): Update.
10566         (_cpp_push_next_buffer): Update, rename.
10567         * cppinit.c (cpp_destroy): Free include chain and pending here.
10568         (cpp_finish_options): Simplify.
10569         (_cpp_push_next_buffer): Rename and clean up.
10570         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
10571         Clarify.
10572         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
10573
10574 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
10575
10576         * config/rs6000/altivec.h (vec_xor): Add variant for both args
10577         being vector signed int.
10578         (vec_andc): Same.
10579         (vec_xor): Add variant for both args being vector signed char.
10580         Remove redundant variant.
10581         (vec_andc): Same.
10582
10583 2002-04-21  David S. Miller  <davem@redhat.com>
10584
10585         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
10586         compare mode in output RTL.
10587
10588 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
10589
10590         * config/rs6000/rs6000.c (rs6000_override_options): Correct
10591         style and formatting of previous patch.
10592
10593 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
10594
10595         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
10596         flag_pic for ABI_AIX.
10597
10598 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
10599
10600         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
10601         * cppfiles.c (read_include_file): Similarly.
10602         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
10603         uxstrdup ustrchr, ufputs): Similarly.
10604         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
10605         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
10606         cpp_ideq, parse_identifier, parse_number): Similarly.
10607         * cpplib.c (struct directive, dequote_string, D, run_directive,
10608         cpp_push_buffer): Similarly.
10609         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
10610         _cpp_create_definition, check_trad_stringification,
10611         cpp_macro_definition): Similarly.
10612
10613 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
10614
10615         * cppmacro.c (funlike_invocation_p): Don't step back
10616         over CPP_EOF.
10617
10618 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
10619
10620         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
10621         labelno.
10622
10623 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
10624
10625         * doc/invoke.texi: Remove Chill references.
10626         * doc/gcc.texi: Update last modified date.
10627
10628 2002-04-20  Kazu Hirata  <kazu@hxi.com>
10629
10630         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
10631         push and pop.  Replace add.l with add.w.
10632
10633 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
10634
10635         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
10636         multiply instructions for H8/300H case.
10637
10638 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
10639
10640         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
10641         Bum three instructions from each routine.
10642
10643 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10644
10645         * Makefile.in: Update.
10646         * decl.c (push_c_function_context, pop_c_function_context,
10647         mark_c_function_context): Rename for consistency.
10648         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
10649         * c-tree.h (push_c_function_context, pop_c_function_context,
10650         mark_c_function_context): Rename for consistency.
10651         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10652         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
10653         * function.c (init_lang_status, save_lang_status,
10654         restore_lang_status, mark_lang_status, free_lang_status):
10655         Move to langhooks.h.
10656         (push_function_context_to, pop_function_context_from,
10657         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
10658         Update.
10659         * function.h (init_lang_status, save_lang_status,
10660         restore_lang_status, mark_lang_status, free_lang_status):
10661         Move to langhooks.h.
10662         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
10663         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
10664         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
10665         LANG_HOOKS_FUNCTION_INITIALIZER): New.
10666         (LANG_HOOKS_INITIALIZER): Update.
10667         (lhd_do_nothing_f): New.
10668         * langhooks.h (struct lang_hooks_for_functions): New.
10669         (struct lang_hooks): New hooks.
10670         * langhooks.c (lhd_do_nothing_f): New.
10671 objc:
10672         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10673         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
10674
10675 2002-04-19  David S. Miller  <davem@redhat.com>
10676
10677         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
10678         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
10679
10680 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
10681
10682         PR optimization/3756
10683         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
10684         x = ((int) y < 0) ? cst1 : cst2.
10685
10686 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
10687
10688         PR c/6358
10689         * function.c: Reapply patch for c/6358.
10690         (expand_function_end): Copy decl_rtl's mode, not
10691         current_function_return_rtx mode.
10692
10693 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
10694
10695         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
10696         targets.
10697
10698 2002-04-19  Tom Tromey  <tromey@redhat.com>
10699
10700         * doc/install.texi (Specific): Update status of Solaris 2.8.
10701         For PR libgcj/6158.
10702
10703 2002-04-19  Andreas Schwab  <schwab@suse.de>
10704
10705         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
10706         (PUT_REAL): Restore old definition.
10707
10708 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
10709             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10710
10711         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
10712         binutils 2.11.2 and higher generate smaller binaries than Sun's
10713         native tools.
10714
10715 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
10716
10717         PR c++/6352
10718         * toplev.c (rest_of_compilation): Do not defer functions for which
10719         TREE_SYMBOL_REFERENCED has already been set.
10720
10721 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
10722
10723         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
10724         alternative.
10725
10726 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10727
10728         * builtins.c: Include langhooks.h.
10729         (lang_type_promotes_to): Remove.
10730         (expand_builtin_va_arg): Use new hook.
10731         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
10732         (simple_type_promotes_to): Move to c-typeck.c.
10733         * c-common.h (simple_type_promotes_to): Remove.
10734         * c-decl.c (duplicate_decls, grokdeclarator): Update.
10735         * c-format.c: Include langhooks.h.
10736         (check_format_types): Update.
10737         * c-tree.h (c_type_promotes_to): New.
10738         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
10739         (type_lists_compatible_p): Update.
10740         * langhooks-def.h (lhd_type_promotes_to): New.
10741         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
10742         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
10743         * langhooks.c (lhd_type_promotes_to): New.
10744         * langhooks.h (struct lang_hooks_for_types): New hook.
10745         * tree.h (lang_type_promotes_to): Remove.
10746 objc:
10747         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
10748
10749 2002-04-18  Richard Henderson  <rth@redhat.com>
10750
10751         * function.c: Revert patch for c/6358.
10752
10753 2002-04-18  Richard Henderson  <rth@redhat.com>
10754
10755         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
10756         blocks.  Handle multiple references to the TRAP block.  Handle
10757         non-adjacent THEN and OTHER blocks.
10758
10759 2002-04-18  Richard Henderson  <rth@redhat.com>
10760
10761         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
10762         crash with no type for by-mode libcalls.
10763
10764         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
10765
10766 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
10767
10768         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
10769         __xtensa_nonlocal_goto): Use a syscall instructions to flush
10770         the register windows.
10771
10772 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
10773
10774         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
10775         appropriate.  Document need for extended precision even when
10776         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
10777         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
10778         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
10779         instead of relying on later syntax error when REAL_WIDTH > 5.
10780         * real.c: Define NE based only on whether or not we have a
10781         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
10782         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
10783         define GET_REAL and PUT_REAL as simple memcpy operations; no
10784         need to byteswap or round.
10785         Use #error instead of #ifdef-ing out the entire file, for
10786         prompt error detection.
10787
10788         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
10789
10790 2002-04-18  David S. Miller  <davem@redhat.com>
10791
10792         * config/sparc/sparc.h (BRANCH_COST): Define.
10793
10794         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
10795         does it.
10796
10797 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
10798
10799         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
10800         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
10801         propagate_block calls after relaxation loop using new variable
10802         stabilized_prop_flags.
10803
10804 2002-04-18  Richard Henderson  <rth@redhat.com>
10805
10806         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
10807         (ia64_va_arg): Expect variable sized types by reference.
10808         * config/ia64/ia64-protos.h: Update.
10809         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
10810         ia64_function_arg_pass_by_reference.
10811
10812 2002-04-18  Richard Henderson  <rth@redhat.com>
10813
10814         * ifcvt.c: Include except.h.
10815         (block_has_only_trap): Break out from find_cond_trap.
10816         (find_cond_trap): Use it.  Always delete the trap block.
10817         (merge_if_block): Allow then block null.  Be less simplistic about
10818         what insns can end a block.
10819         * Makefile.in (ifcvt.o): Depend on except.h.
10820
10821         * config/ia64/ia64.md (trap, conditional_trap): New.
10822
10823 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
10824
10825         PR c/6358
10826         * function.c (assign_parms): Assign hard current_function_return_rtx
10827         register here...
10828         (expand_function_end): ...not here.
10829
10830 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
10831
10832         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
10833         * c-tree.h (c_incomplete_type_error): New.
10834         * c-typeck.c (require_complete_type, build_component_ref): Update.
10835         (incomplete_type_error): Rename.
10836         * langhooks-def.h (lhd_incomplete_type_error): New.
10837         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
10838         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
10839         * langhooks.c (lhd_incomplete_type_error): New.
10840         * langhooks.h (struct lang_hooks_for_types): New hook.
10841         * tree.c (size_in_bytes): Use new hook.
10842         * tree.h (incomplete_type_error): Remove.
10843 objc:
10844         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
10845
10846 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
10847
10848         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
10849         TARGET_FLOAT_FORMAT blocks.
10850
10851 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10852
10853         * doc/install.texi (Downloading the source): Do not mention Chill
10854         any longer, but mention Ada.
10855         (Configuration): Do not mention Chill any longer.
10856
10857 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
10858
10859         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
10860
10861 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
10862
10863         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
10864         in last patch.
10865
10866 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
10867
10868         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
10869         instead of unsigned_type.
10870
10871 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
10872
10873         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
10874         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
10875         later.
10876
10877 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
10878
10879         * attribs.c (vector_type_node_list): New static variable.
10880         (handle_vector_size_attribute): Use it to avoid generating a
10881         new type node each time we are called.
10882
10883         * combine.c (subst): Avoid trying to make a vector mode subreg of
10884         an integer constant.
10885         (gen_lowpart_for_combine): Likewise.
10886
10887 2002-04-18  Roger Sayle  <roger@eyesopen.com>
10888             Jakub Jelinek  <jakub@redhat.com>
10889
10890         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
10891         for integer constant c (if x has unsigned type or sign bit is not
10892         set in c).  This folds the zero/sign extension into the bit-wise and
10893         operation.
10894
10895 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
10896
10897         PR middle-end/6205
10898         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
10899         otherwise xorps.
10900
10901 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
10902
10903         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
10904
10905 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
10906
10907         * gcc.c (read_specs): Detect and fail if an attempt is made to
10908         rename a spec string to an already existing string.
10909
10910 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
10911
10912         * config/s390/s390.c (legitimize_pic_address): Do not generate
10913         illegal address constant without CONST.
10914
10915 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10916
10917         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
10918         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
10919
10920 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
10921
10922         PR optimization/6305
10923         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
10924         to make sure previous reloads are taken into account.  Generate
10925         better code if one operand is an in-range immediate constant.
10926
10927 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
10928
10929         * doc/install.texi (Building): libgcj requires GNU make.
10930
10931 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
10932
10933         PR bootstrap/6315
10934         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
10935         even if hard quad and register is not floating.
10936         (movtf reg<-mem split): Disallow splitting if hard quad and
10937         register is floating.
10938         (movtf mem<-reg split): Likewise.
10939         * config/sparc/sparc.c (fp_register_operand): New predicate.
10940         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
10941
10942 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
10943
10944         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
10945         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
10946         (unprotoize.o): Ditto.  Build from protoize.c.  Define
10947         UNPROTOIZE on command line.
10948         * protoize.c: Include cppdefault.h.  Delete include_defaults.
10949         (in_system_include_dir): Use cpp_include_defaults (defined in
10950         cppdefault.o).
10951         * unprotoize.c: Delete file.
10952
10953 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
10954
10955         * config/rs6000/altivec.h (vec_ld): Add array variants.
10956         (vec_lde): Same.
10957         (vec_ldl): Same.
10958
10959 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
10960             Aldy Hernandez <aldyh@redhat.com>
10961
10962         * config/rs6000/altivec.h: Define __ALTIVEC__.
10963         (bool): New.
10964         (__pixel): New.
10965         (pixel): New.
10966         (vec_cfux): New.
10967         (vec_vmaddfp): New.
10968         (vec_vsldoi): New.
10969         Add parentheses to all macro arguments.
10970
10971 2002-04-16  Richard Henderson  <rth@redhat.com>
10972
10973         PR c++/6320
10974         * except.c (remove_eh_handler): Insert inner regions at beginning
10975         of sibling chain.  Refactor expressions.
10976
10977 2002-04-16  Richard Henderson  <rth@redhat.com>
10978
10979         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
10980         * config/sparc/sol2-gas-bi.h: New file.
10981         * config.gcc (sparc*-solaris): Add it as needed.
10982         * configure.in (AS_SPARC64_FLAG): Remove check.
10983         * config.in, configure: Regenerate.
10984
10985         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
10986
10987 2002-04-16  Richard Henderson  <rth@redhat.com>
10988
10989         * config/mips/mips.c (override_options): Don't override N32 for
10990         a 64-bit ISA.
10991
10992         PR 6202
10993         * config/mips/mips.md (can_delay): Split out of existing define_delays.
10994         (HILO_delay): Set can_delay false.
10995
10996 2002-04-16  Dale Johannesen <dalej@apple.com>
10997
10998         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
10999         instruction addresses.
11000         (rs6000_output_function_epilogue): Likewise.
11001
11002 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
11003
11004         * c-parse.in (poplevel, compstmt_start,
11005         compstmt_primary_start): Add ending ';', in accordance
11006         with POSIX.
11007
11008 2002-04-16  Richard Henderson  <rth@redhat.com>
11009
11010         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
11011         Adjust tm_file order to get TARGET_DEFAULT set properly.
11012         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
11013         * doc/install.texi (sparc-solaris): Update.
11014
11015 2002-04-16  Dale Johannesen <dalej@apple.com>
11016
11017         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
11018         comparison operands do not match each other or if modes of
11019         conditions do not match result.
11020
11021 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
11022
11023         PR target/6305
11024         * config/s390/s390.md (mulsidi3): Set both subregs of the
11025         multiword register.
11026
11027 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
11028
11029         * config/rs6000/altivec.h (vec_addc): Type check.
11030
11031 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
11032
11033         PR middle-end/6279
11034         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
11035
11036         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
11037
11038 2002-04-15  Richard Henderson  <rth@redhat.com>
11039
11040         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
11041         call_really_used_regs too.
11042
11043 2002-04-15  Richard Henderson  <rth@redhat.com>
11044
11045         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
11046
11047 2002-04-15  David S. Miller  <davem@redhat.com>
11048
11049         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
11050         as being CLOBBERed.
11051
11052 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
11053
11054         PR c/6290
11055         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
11056         CONST_VECTOR is { 0, ... 0 }.
11057
11058 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
11059
11060         * doc/install.texi (Installing GCC: Configuration): Clarify
11061         the only supported ways to configure gcc.
11062
11063 2002-04-15  Roland McGrath  <roland@frob.com>
11064
11065         * config.gcc (alpha*-*-gnu*): New target configuration.
11066         * config/alpha/gnu.h: New file for it.
11067         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
11068
11069 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
11070
11071         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
11072         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
11073         * tree.h (expand_start_stmt_expr): Update prototype.
11074         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
11075         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
11076         on the STMT_EXPR created for the inline function.
11077
11078 2002-04-15  Richard Henderson  <rth@redhat.com>
11079
11080         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
11081         config/i386/linux-aout.h, config/i386/linux-oldld.h,
11082         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
11083         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
11084         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
11085         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
11086         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
11087         Define __gnu_linux__, not gnu_linux.
11088         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
11089
11090 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
11091
11092         Remove Chill front end.
11093         * gcc.c (default_compilers): Remove Chill entries.
11094         * ch: Remove directory.
11095         * doc/frontends.texi: Remove information about Chill.
11096         * doc/sourcebuild.texi: Likewise.
11097         * doc/standards.texi: Likewise.
11098
11099 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
11100
11101         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
11102         (LONGLONG_STANDALONE): Define.
11103
11104 2002-04-15  David S. Miller  <davem@redhat.com>
11105
11106         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
11107         Call emit_library_call with LCT_NORMAL.
11108         (sparc_initialize_trampoline): Use LCT_foo instead of
11109         magic constant in emit_library_call invocations.
11110         (sparc64_initialize_trampoline): Likewise.
11111         (sparc_profile_hook): Likewise.
11112         * config/sparc/sparc.md: Likewise.
11113
11114         * config/sparc/sparc.c (sparc_extra_constraint_check):
11115         Fix type of argument 'c'.
11116         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
11117         Likewise.
11118
11119 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
11120
11121         * diagnostic.h (output_buffer_state): Redefine.
11122         (output_format_decoder): New macro.
11123         (output_prefixing_rule): Likewise.
11124         (output_line_cutoff): Likewise.
11125         (diagnostic_format_decoder): Adjust.
11126         (diagnostic_prefixing_rule): Likewise.
11127         (diagnostic_line_cutoff): Likewise.
11128         (diagnostic_state): Likewise.
11129         (diagnostic_kind_count): Likewise.
11130         (diagnostic_buffer): Now a macro.
11131
11132         * diagnostic.c (diagnostic_buffer): Remove definition.
11133         (output_is_line_wrapping): Adjust.
11134         (set_real_maximum_length): Likewise.
11135         (output_set_maximum_length): Likewise.
11136         (init_output_buffer): Likewise.
11137         (lhd_print_error_function): Likewise.
11138         (output_do_verbatim): Likewise.
11139
11140 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
11141
11142         * cpperror.c (print_location): Don't print include chain
11143         if line == 0.
11144         (cpp_begin_message): Update to use DL_ macros.
11145         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
11146         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
11147         cpp_notice, cpp_notice_from_errno): Remove.
11148         (cpp_error, cpp_error_with_line): Update to take a diagnostic
11149         level.
11150         (cpp_errno): New.
11151         * cppexp.c (CPP_ICE): Remove.
11152         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
11153         lex, integer_overflow, _cpp_parse_expr): Update.
11154         * cppfiles.c (read_include_file, find_include_file,
11155         handle_missing_header, _cpp_read_file, remap_filename): Update.
11156         * cpphash.h (enum error_type): Remove.
11157         (_cpp_begin_message): Update.
11158         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
11159         cpp_handle_option, cpp_post_options): Update.
11160         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
11161         skip_whitespace, parse_identifier, parse_slow, parse_string,
11162         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
11163         cpp_interpret_charconst): Update.
11164         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
11165         lex_macro_node, do_undef, glue_header_name, parse_include,
11166         do_include_common, read_flag, do_line, do_linemarker, do_ident,
11167         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
11168         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
11169         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
11170         _cpp_pop_buffer, do_diagnostic): Update.
11171         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
11172         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
11173         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
11174         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
11175         cpp_notice, cpp_notice_from_errno): Remove.
11176         (cpp_error, cpp_error_with_line): Update to take a diagnostic
11177         level.
11178         (cpp_errno): New.
11179         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
11180         collect_args, enter_macro_context, save_parameter, parse_params,
11181         _cpp_create_definition, check_trad_stringification,
11182         cpp_macro_definition): Update.
11183         * cppmain.c (cpp_preprocess_file): Update.
11184         * fix-header.c (read_scan_file): Update.
11185
11186 2002-04-14  Andreas Schwab  <schwab@suse.de>
11187
11188         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
11189
11190 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
11191
11192         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
11193
11194 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
11195
11196         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
11197         not gnu_hurd.
11198
11199 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
11200
11201         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
11202
11203 2002-04-13      Joel Sherrill <joel@OARcorp.com>
11204
11205         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
11206         sparc-elf and sparc-rtems targets.
11207
11208 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
11209
11210         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
11211         defined, and __gnu_hurd__ wherever __GNU__ is defined.
11212         * arm/linux-elf.h: Likewise.
11213         * cris/aout.h: Likewise.
11214         * cris/linux.h: Likewise.
11215         * i370/linux.h: Likewise.
11216         * i386/gnu.h: Likewise.
11217         * i386/linux-aout.h: Likewise.
11218         * i386/linux-oldld.h: Likewise.
11219         * i386/linux.h: Likewise.
11220         * i386/linux64.h: Likewise.
11221         * ia64/linux.h: Likewise.
11222         * m68k/linux-aout.h: Likewise.
11223         * m68k/linux.h: Likewise.
11224         * mips/linux.h: Likewise.
11225         * pa/pa-linux.h: Likewise.
11226         * pj/linux.h: Likewise.
11227         * rs6000/sysv4.h: Likewise.
11228         * s390/linux.h: Likewise.
11229         * sh/linux.h: Likewise.
11230         * sparc/linux-aout.h: Likewise.
11231         * sparc/linux.h: Likewise.
11232         * sparc/linux64.h: Likewise.
11233         * xtensa/linux.h: Likewise.
11234
11235 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
11236
11237         * stmt.c (check_unique_operand_names): Expect operand names to
11238         be strings rather than identifiers.  Use simple_cst_equal to
11239         compare them.
11240         (resolve_operand_name_1): Make same identifier to string change here.
11241         * c-parse.in (asm_operand): Convert a named operand into a string.
11242         * cp/parse.y (asm_operand): Likewise.
11243
11244 2002-04-13  Andreas Schwab  <schwab@suse.de>
11245
11246         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
11247
11248 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
11249
11250         Revert these changes:
11251
11252         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
11253
11254         PR c++/5571
11255         * stor-layout.c (layout_decl): Reset the RTL for the decl.
11256
11257 2002-04-12  Richard Henderson  <rth@redhat.com>
11258
11259         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
11260         (sparc*-*-solaris): Clean up header files.
11261         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
11262         and plan on generating 64-bit code.
11263         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
11264         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
11265         * config/sparc/sol2-sld-64.h: Rename ...
11266         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
11267         for AS_SPARC64_FLAG not defined.
11268         * config/sparc/sol2-gld-bi.h: New.
11269         * config/sparc/sol2-sld.h: Remove.
11270         * config/sparc/sol26-sld.h: New.
11271         * config/sparc/sol2.h: Tidy comments.
11272         * doc/install.texi: Document sparc-solaris configury changes.
11273
11274 2002-04-12  Richard Henderson  <rth@redhat.com>
11275
11276         * recog.c (offsettable_address_p): Match the logic in adjust_address.
11277
11278         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
11279         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
11280
11281 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11282
11283         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
11284
11285 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
11286
11287         * pa.c (pa_can_combine_p): Call extract_insn before calling
11288         constrain_operands.
11289
11290 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
11291
11292         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
11293         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
11294         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
11295         (CPP_PREDEFINES): Handle __declspec.
11296         * config/i386/t-interix (USER_H): Remove.
11297
11298 2002-04-12  DJ Delorie  <dj@redhat.com>
11299
11300         * integrate.c (compare_blocks): Make comparisons safe for when
11301         sizeof(int) < sizeof(char *).
11302         (find_block): Likewise.
11303
11304 2002-04-12  Jan Hubicka  <jh@suse.cz>
11305             David Edelsohn  <edelsohn@gnu.org>
11306
11307         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
11308         registers.
11309         (symbol_ref_operand): New.
11310         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
11311         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
11312
11313 2002-04-12  Andreas Schwab  <schwab@suse.de>
11314
11315         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
11316         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
11317         overrides the definition in config/svr4.h.
11318
11319 2002-04-12      Eric Norum <eric.norum@usask.ca>
11320
11321         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
11322         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
11323         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
11324         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
11325         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
11326         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
11327         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
11328         definitions to config/rtems.h and make the targets more similar.
11329
11330 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11331
11332         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
11333         POINTERS_EXTEND_UNSIGNED.
11334         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
11335         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
11336
11337         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
11338         not specified.
11339
11340 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
11341
11342         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
11343         depends on TARGET_SHMEDIA, not TARGET_SH5.
11344
11345 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
11346
11347         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
11348         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
11349
11350 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
11351
11352         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
11353         no r0 clobber.
11354
11355 2002-04-12  Andreas Schwab  <schwab@suse.de>
11356
11357         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
11358
11359 2002-04-12  Richard Henderson  <rth@redhat.com>
11360
11361         PR bootstrap/4191
11362         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
11363
11364         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
11365         modes spanning multiple hard regs.
11366
11367         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
11368
11369 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11370
11371         * pa.c (pa_output_function_prologue): Don't accumulate the total
11372         number of code bytes when using TARGET_64BIT, or gas, SOM and not
11373         the portable runtime.
11374         (output_deferred_plabels): Handle 64bit plabels.
11375         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
11376         generating pic code using the GAS assembler for object formats that
11377         are not SOM (ie., ELF32 and ELF64).
11378         (output_millicode_call): Check attribute type if attribute length is 28.
11379         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
11380         dbr_sequence_length once.
11381         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
11382         dbr_sequence_length once.
11383         * pa.h (TARGET_SOM): Define if not defined.
11384         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
11385         with GAS and not SOM.
11386         (jump, call_internal_reg, call_value_internal_reg): Likewise.
11387         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
11388
11389 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
11390
11391         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
11392         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
11393         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
11394         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
11395         elfos.h and dbxelf.h values are fine now.
11396         * config/i386/freebsd.h, config/alpha/freebsd.h
11397         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
11398
11399 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
11400
11401         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
11402         or set Acpu or Amachine.  Reformat.
11403         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
11404         define.
11405         (LINK_SPEC): Do not need to undef.
11406         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
11407         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
11408         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
11409         define.
11410         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
11411         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
11412         (LINK_SPEC): Do not need to undef.
11413         (DONT_USE_BUILTIN_SETJMP): Do not define.
11414         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
11415         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
11416         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
11417         Remove trailing spaces.
11418         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
11419         __ELF__, or set Acpu or Amachine.  Reformat.
11420         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
11421         define.
11422
11423 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
11424
11425         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
11426         all other *-*-freebsd* targets.
11427
11428 2002-04-11  Richard Henderson  <rth@redhat.com>
11429
11430         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
11431
11432 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
11433
11434         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
11435         Include {cpu}/{cpu}.h thru tm_file.
11436         (alpha*-*-linux*ecoff): Remove target.
11437         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
11438         (LINK_SPEC): Remove, is not OS independent.
11439         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
11440         (LINK_SPEC): Do not need to #undef any longer.
11441         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
11442         any longer.
11443         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
11444         __ELF__.
11445         (LINK_SPEC): Moved here from alpha/elf.h.
11446         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
11447         SUB_CPP_PREDEFINES.
11448         * config/alpha/linux-ecoff.h: Remove.
11449         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
11450         (CPP_SPEC): Define _POSIX_SOURCE as needed.
11451         (CPP_SUBTARGET_SPEC): Do not define.
11452         (LINK_SPEC): Do not need to #undef any longer.
11453         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
11454         * config/alpha/vms.h: Likewise.
11455
11456 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
11457
11458         * doc/extend.texi: Remove old claim that typedefs cannot have
11459         an alignment attribute.
11460
11461 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
11462
11463         PR optimization/6177
11464         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
11465         bitpos is 0 and bitsize CONCAT size.
11466
11467 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
11468
11469         PR c/6223
11470         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
11471
11472 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
11473
11474         * config/alpha/freebsd.h: Minor reformatting.
11475         (CPP_SPEC): Define ELF and add cpp_subtarget.
11476         (ASM_SPEC): No longer needed.
11477
11478 2002-04-11  Richard Henderson  <rth@redhat.com>
11479
11480         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
11481         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
11482         (dimode mem/zero splitter): New.
11483
11484 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
11485
11486         * config/cris/cris.c (cris_override_options): Tweak error message
11487         for PIC not implemented.
11488
11489         * config/cris/cris.h: Tweak comments related to parameter-passing.
11490
11491         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
11492
11493 2002-04-10  Richard Henderson  <rth@redhat.com>
11494
11495         * except.c (add_ehl_entry): Allow duplicates after landing pad
11496         creation.
11497
11498 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
11499
11500         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
11501
11502 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
11503
11504         * c-decl.c (c_init_decl_processing): Move generation of
11505         decls for g77_integer_type_node and friends from here ...
11506         * c-common.c (c_common_nodes_and_builtins): ... to here.
11507
11508 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
11509
11510         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
11511         is only used as frame pointer when frame_pointer_needed is true.
11512
11513 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
11514
11515         PR target/817
11516         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
11517         for the fact that the pool entry uses two words.
11518         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
11519         1k bytes.
11520         (movdf_soft_insn): Similarly.
11521         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
11522         for the fact that the pool entry uses three words.
11523
11524 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
11525
11526         * config/mips/mips.c (mips_va_arg): When using the struct version
11527         of the EABI va_list, allow arguments in the register save area to
11528         take up less room than a stack argument.
11529
11530 2002-04-10  Richard Henderson  <rth@redhat.com>
11531
11532         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
11533         if EXPAND_INITIALIZER.
11534
11535 2002-04-09  Richard Henderson  <rth@redhat.com>
11536
11537         * config/alpha/alpha.md (movdi_er_maybe_g): New.
11538         * config/alpha/alpha.c (alpha_expand_mov): Use it.
11539
11540 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
11541
11542         PR optimization/6233
11543         * rtlanal.c (pure_call_p): New function.
11544         * rtl.h (pure_call_p): Declare.
11545         * loop.c (prescan_loop): Use it to set has_nonconst_call.
11546         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
11547
11548 2002-04-09  Eric Christopher  <echristo@redhat.com>
11549
11550         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
11551         information to .comm directive.
11552
11553 2002-04-09  Richard Henderson  <rth@redhat.com>
11554
11555         PR c/5078
11556         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
11557
11558 2002-04-09  Richard Henderson  <rth@redhat.com>
11559
11560         * basic-block.h (flow_delete_block_noexpunge): Declare.
11561         (expunge_block_nocompact): Declare.
11562         * cfg.c (expunge_block_nocompact): Split out from ...
11563         (expunge_block): ... here.
11564         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
11565         (flow_delete_block_noexpunge): Split out from ...
11566         (flow_delete_block): ... here.
11567         * cfgcleanup.c (delete_unreachable_blocks): Compact while
11568         removing dead blocks.
11569         * except.c (exception_handler_labels): Remove.
11570         (exception_handler_label_map): New.
11571         (struct eh_region): Add aka member.
11572         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
11573         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
11574         (for_each_eh_label, for_each_eh_label_1): New.
11575         (init_eh): Register exception_handler_label_map.
11576         (free_eh_status): Use free_region.
11577         (find_exception_handler_labels): Use the map, not the list.
11578         (remove_exception_handler_label): Likewise.
11579         (maybe_remove_eh_handler): Likewise.
11580         (remove_eh_handler): Use the region aka bitmap.
11581         * except.h (exception_handler_labels): Remove.
11582         (for_each_eh_label): Declare.
11583         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
11584         * loop.c (invalidate_loops_containing_label): New.
11585         (find_and_verify_loops): Use it.  Use for_each_eh_label.
11586         * sched-rgn.c (is_cfg_nonregular): Use
11587         current_function_has_exception_handlers.
11588
11589 2002-04-09  Richard Henderson  <rth@redhat.com>
11590
11591         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
11592         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
11593         Do not return changed status.
11594         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
11595         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
11596         New functions that do return changed status.
11597         * sbitmap.h: Update decls.
11598         * gcse.c, lcm.c: Use _cg functions as needed.
11599
11600 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
11601
11602         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
11603         (sh64-*-elf*, sh-*-rtemself*): Likewise.
11604         * config/sh/embed_bb.c: New file.
11605         * config/sh/embed-elf.h: New file.
11606         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
11607         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
11608         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
11609         __PTRDIFF_TYPE__ .
11610         (SUBTARGET_CPP_PTR_SPEC): Don't define.
11611         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
11612         Add subtarget_asm_endian_spec.
11613         (ASM_SPEC): Use subtarget_asm_endian_spec.
11614         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
11615         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
11616         (WCHAR_UNSIGNED): Define.
11617         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
11618         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
11619         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
11620         Fix value.
11621         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
11622         (sh_adjust_cost): Likewise.
11623         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
11624         __PTRDIFF_TYPE__ .
11625         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
11626         (WCHAR_TYPE_SIZE): Likewise.
11627         (ASM_SPEC): Use subtarget_asm_endian_spec.
11628         (SH_ELF_WCHAR_TYPE): #undef/ #define.
11629         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
11630         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
11631         (MAX_WCHAR_TYPE_SIZE): Don't #define .
11632         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
11633         (USER_LABEL_PREFIX): Don't #undef /#define .
11634         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
11635         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
11636         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
11637         (ASM_SPEC): Likewise.
11638         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
11639         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
11640         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
11641         (LIB2FUNCS_EXTRA): Define.
11642         * t-sh64 (LIB2FUNCS_EXTRA): Define.
11643         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
11644         (LIB1ASMFUNCS_CACHE): Define.
11645         (LIB2FUNCS_EXTRA): Redefine empty.
11646
11647 2002-04-08  Richard Henderson  <rth@redhat.com>
11648
11649         * reorg.c (get_branch_condition): Use reversed_comparison_code.
11650
11651 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11652
11653         * config/m68hc11/larith.asm (__map_data_section): Fix condition
11654         and optimize for size.
11655         (__do_global_ctors): Fix pointer comparison.
11656         (__do_global_dtors): Likewise.
11657
11658 2002-04-09  David S. Miller  <davem@redhat.com>
11659
11660         * config/sparc/sparc.c (sparc_extra_constraint_check): New
11661         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
11662         allow reloading pseudos.
11663         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
11664         * config/sparc/sparc-protos.h: Declare it.
11665
11666         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
11667         unsigned comparison warning.
11668         (output_restore_regs): Mark leaf_function as unused.
11669
11670 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11671
11672         * expr.c (is_aligning_offset): New function.
11673         (expand_expr, case COMPONENT_EXPR): Call it.
11674
11675 2002-04-08  David S. Miller  <davem@redhat.com>
11676
11677         PR target/6082
11678         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
11679
11680         Make init_priority work on Sparc when using GNU ld.
11681         * config/sparc/linux.h, config/sparc/linux64.h,
11682         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
11683         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
11684         * config/sparc/sol2-gld.h: New file to do the same.
11685         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
11686         sparc/sol2-gld.h to tm_file.
11687
11688         PR optimization/4328
11689         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
11690         * doc/md.texi: Document it.
11691         * config/sparc/sparc.md (movdi_insn_sp64_novis,
11692         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
11693         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
11694         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
11695         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
11696
11697 2002-04-08  Andreas Jaeger  <aj@suse.de>
11698
11699         * stmt.c (expand_asm_operands): Revert last patch from Richard
11700         Henderson.
11701
11702 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11703
11704         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
11705         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
11706
11707 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11708
11709         * doc/contrib.texi (Contributors): Add David O'Brien.
11710
11711 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
11712
11713         * configure.in (auto-build.h): Use target_alias and build_alias
11714         when running configure.
11715         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
11716         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
11717         * configure: Regenerate.
11718
11719 2002-04-07  David S. Miller  <davem@redhat.com>
11720
11721         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
11722
11723 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11724
11725         PR 5933
11726         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
11727         generating 32-bit pic code.
11728
11729 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
11730
11731         * cppinit.c (cpp_create_reader): Initialize
11732         discard_comments_in_macro_exp.
11733         (COMMAND_LINE_OPTIONS): Add "-CC" option.
11734         (cpp_handle_option): Handle "-CC" option.
11735         * cpplex.c (save_comment): If saving a C++ comment in
11736         a directive, convert it to a C comment.
11737         (_cpp_lex_direct): Pass second comment start character to
11738         save_comment to indicate comment type.
11739         * cpplib.c (_cpp_handle_directive): If processing
11740         a "#define" directive and discard_comments_in_macro_exp
11741         is false,  re-enable saving of comments.
11742         (lex_macro_node): If discard_comments_in_macro_exp is false,
11743         discard any comments before the macro identifier.
11744         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
11745         member.
11746         * cppmacro.c (cpp_get_token): If expanding a macro while
11747         processing a directive, discard any comments we might encounter.
11748         (parse_params): If discard_comments_in_macro_exp is false,
11749         ignore comments in the macro parameter list.
11750         * gcc.c (cpp_unique_options): Add "-CC" option.
11751         (option_map): Map "--comments-in-macros" to "-CC".
11752         * doc/cppopts.texi: Document "-CC" option.
11753         * f/lang-specs.h: Add "-CC" option.
11754         * testsuite/gcc.dg/cpp/maccom1.c: New test.
11755         * testsuite/gcc.dg/cpp/maccom2.c: New test.
11756         * testsuite/gcc.dg/cpp/maccom3.c: New test.
11757         * testsuite/gcc.dg/cpp/maccom4.c: New test.
11758         * testsuite/gcc.dg/cpp/maccom5.c: New test.
11759         * testsuite/gcc.dg/cpp/maccom6.c: New test.
11760
11761 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11762
11763         PR middle-end/6180
11764         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
11765
11766 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
11767
11768         PR c++/5571
11769         * stor-layout.c (layout_decl): Reset the RTL for the decl.
11770
11771         PR opt/5120
11772         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
11773         RTX_UNCHANGING_P for the functions arguments when a tail call
11774         is made.
11775
11776 2002-04-06  Jason Merrill  <jason@redhat.com>
11777
11778         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
11779         (parse_options_and_default_flags): Set them appropriately.
11780         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
11781
11782 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
11783
11784         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
11785         here.
11786
11787         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
11788         semicolon.
11789
11790         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
11791         types come in by-reference.  Fix typo in comment.
11792
11793 2002-04-05  David S. Miller  <davem@redhat.com>
11794
11795         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
11796         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
11797         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
11798         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
11799
11800 2002-04-05  David S. Miller  <davem@redhat.com>
11801
11802         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
11803         are not going to emit return instructions, emit at least a nop
11804         for the sake of sane backtraces.
11805
11806 2002-04-05  Richard Henderson  <rth@redhat.com>
11807
11808         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
11809
11810 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
11811
11812         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
11813
11814 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
11815
11816         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
11817         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
11818         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
11819
11820 2002-04-05  Andreas Schwab  <schwab@suse.de>
11821
11822         * c-convert.c: Include c-common.h.
11823         * Makefile.in (c-convert.o): Updated.
11824
11825 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
11826
11827         * mklibgcc.in: Use separate libgcc.map for each multilib.
11828         * Makefile.in (distclean): Don't remove libgcc.map here.
11829
11830 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
11831
11832         * Makefile.in (s-mlib): Handle --disable-multilib by separate
11833         genmultilib invocation.
11834
11835 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
11836
11837         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
11838         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
11839         to num_gprs for symmetry.
11840         * config/mips/mips.c: Adjust accordingly.
11841
11842 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
11843
11844         * c-common.c (truthvalue_conversion): Rename, update.
11845         * c-common.h (c_common_truthvalue_conversion): New.
11846         * c-convert.c (convert): Update.
11847         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
11848         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
11849         * c-typeck.c (build_binary_op, build_unary_op,
11850         build_conditional_expr): Update.
11851         * fold-const.c (constant_boolean_node, fold): Use langhook.
11852         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
11853         * langhooks.h (struct lang_hooks): New hook.
11854         * stmt.c (expand_decl_cleanup): Use langhook.
11855         * tree.h (truthvalue_conversion): Remove.
11856 objc:
11857         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
11858
11859 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
11860
11861         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
11862         Add rules to make null object file.
11863
11864 2002-04-04  Jim Blandy  <jimb@redhat.com>
11865
11866         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
11867         macro formal parameter names.
11868
11869 2002-04-04  David S. Miller  <davem@redhat.com>
11870
11871         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
11872
11873 2002-04-04  Richard Henderson  <rth@redhat.com>
11874
11875         PR middle-end/5099
11876         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
11877         Support copies into and out of memory.  Don't accept allows_reg
11878         and allows_mem as gospel.
11879
11880 2002-04-04  Richard Henderson  <rth@redhat.com>
11881
11882         PR opt/6165
11883         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
11884         (write_dependence_p): Likewise.
11885
11886 2002-04-04  Richard Henderson  <rth@redhat.com>
11887
11888         * predict.c (estimate_bb_frequencies): Do frequency calculation
11889         with a volatile temporary.
11890
11891 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
11892
11893         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
11894
11895 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
11896
11897         PR c++/6119
11898         * final.c (final_start_function): Don't bump profile_label_no here...
11899         (final_end_function): ...but here.
11900
11901 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
11902
11903         * config/sparc/sparc.md (pic): New attribute.
11904         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
11905         into stack slots.
11906         (split after do_builtin_setjmp_setup): New.
11907
11908 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
11909
11910         PR fortran/6106
11911         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
11912         change.
11913
11914 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
11915
11916         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
11917         UNITS_PER_WORD for zero sized aggregates.
11918
11919 2002-04-03  David S. Miller  <davem@redhat.com>
11920
11921         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
11922         one-character spec for this, just use %(link_gcc_c_sequence).
11923
11924 2002-04-03  David S. Miller  <davem@redhat.com>
11925
11926         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
11927         handling.
11928
11929 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11930
11931         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
11932         (DWARF_FRAME_RETURN_COLUMN): Move.
11933         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11934         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
11935         * pa.c (except.h, predict.h): Include.
11936         (FRP): Delete.
11937         (store_reg_modify, set_reg_plus_d): Revise prototypes.
11938         (output_ascii): Add cast.
11939         (store_reg_modify): Revise to add frame notes.
11940         (set_reg_plus_d): Likewise.
11941         (compute_frame_size): Include space for eh data registers in frame if
11942         the current function calls eh_return.
11943         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
11944         function calls eh_return.  Save eh data registers if the current
11945         function calls eh_return.  Fix code to add frame notes.  Emit
11946         blockage to prevent insns with frame notes being scheduled in the
11947         delay slot of calls.
11948         (hppa_expand_epilogue): Restore eh data registers and do final stack
11949         adjustment if the current function calls eh_return.  Don't add frame
11950         notes.
11951         (output_call): Revise for change in length of call insn.  Don't do
11952         return pointer adjustment for an unconditional jump in the delay slot
11953         of a call when using frame notes.
11954         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
11955         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
11956         (ARG_POINTER_CFA_OFFSET): Define.
11957         * pa.md (return_external_pic): New pattern.
11958         (prologue): Correct formatting.  Use return_external_pic if current
11959         function calls eh_return.
11960         (call_internal_symref, call_value_internal_symref,
11961         sibcall_internal_symref, sibcall_value_internal_symref): Change default
11962         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
11963         respectively.
11964         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
11965
11966         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
11967         list of targets to check using "nop" insn.
11968         * configure: Rebuilt.
11969
11970 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
11971
11972         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
11973
11974 2002-04-03  David S. Miller  <davem@redhat.com>
11975
11976         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
11977         library sequence passed to the linker.
11978         (LINK_COMMAND_SPEC): Use it.
11979         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
11980         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
11981         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11982
11983 2002-04-03  Jason Merrill  <jason@redhat.com>
11984
11985         * except.c (struct eh_status): Remove protect_list.
11986         (begin_protect_partials, end_protect_partials): Remove.
11987         (add_partial_entry): Remove.
11988         * except.h: Remove prototypes.
11989
11990         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
11991         expand_decl_cleanup_eh.
11992
11993         PR c++/5636
11994         * tree.h (CLEANUP_EH_ONLY): New macro.
11995         * stmt.c (expand_decl_cleanup_eh): New fn.
11996         (expand_cleanups): Check CLEANUP_EH_ONLY.
11997         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
11998         Use expand_decl_cleanup_eh.
11999         (expand_stmt): Adjust.
12000         * c-common.h: Adjust prototype.
12001
12002 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
12003
12004         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
12005         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
12006         (cris_target_asm_function_epilogue): Ditto.
12007         (cris_initial_frame_pointer_offset): Ditto.
12008         (cris_simple_epilogue): Ditto.
12009         (cris_expand_builtin_va_arg): Variable-size types come in
12010         by-reference.
12011
12012 2002-04-03  David S. Miller  <davem@redhat.com>
12013
12014         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
12015         little-endian.
12016         (set_fast_math): Correct 'fsr' type.
12017
12018 2002-04-03  Richard Henderson  <rth@redhat.com>
12019
12020         PR opt/3569
12021         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
12022         * toplev.c (check_global_declarations): Use it.
12023         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
12024         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
12025         (LANG_HOOKS_DECLS): Add it.
12026         * langhooks.c (lhd_warn_unused_global_decl): New.
12027         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
12028         * c-objc-common.c (c_warn_unused_global_decl): New.
12029         * c-tree.h (c_warn_unused_global_decl): Declare.
12030         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
12031
12032 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12033
12034         * langhooks-def.h (lhd_set_decl_assembler_name,
12035         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
12036         (LANG_HOOKS_INITIALIZER): Update.
12037         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
12038         * langhooks.h (struct lang_hooks): New hook.
12039         * tree.c (set_decl_assembler_name): Move to langhooks.c.
12040         (lang_set_decl_assembler_name): Remove.
12041         (init_obstacks): Don't set hook.
12042         (decl_assembler_name): New function.
12043         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
12044         (decl_assembler_name): New.
12045         (lang_set_decl_assembler_name): Remove.
12046
12047 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
12048
12049         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
12050         works properly with .hidden symbols.
12051         * configure: Rebuilt.
12052         * config.in: Rebuilt.
12053         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
12054         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
12055         properly with .hidden symbols.
12056
12057 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR middle-end/6102
12060         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
12061         USE argument.
12062
12063 2002-04-03  Richard Henderson  <rth@redhat.com>
12064
12065         PR opt/4120
12066         * sched-rgn.c (sets_likely_spilled): New.
12067         (sets_likely_spilled_1): New.
12068         (add_branch_dependences): Use it.
12069
12070 2002-04-02  Richard Henderson  <rth@redhat.com>
12071
12072         PR opt/4311
12073         * loop.h (LOOP_FIRST_PASS): New.
12074         * loop.c (strength_reduce): Mind it when deciding to unroll.
12075         * toplev.c (rest_of_compilation): Set it.
12076
12077 2002-04-02  David S. Miller  <davem@redhat.com>
12078
12079         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
12080         mems_ok_for_ldd_peep when the order of the loads being examined
12081         is reversed.
12082         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
12083         existing comment to increase comprehension of this situation.
12084
12085 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
12086
12087         * config/sh/sh.md: Don't use union real_extract.
12088
12089 2002-04-02  Richard Henderson  <rth@redhat.com>
12090
12091         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
12092
12093 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
12094
12095         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
12096         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
12097         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
12098         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
12099         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
12100         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
12101         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
12102         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
12103         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
12104         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
12105         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
12106         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
12107         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
12108         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
12109         Include as many configury headers via tm_file as possible.  This
12110         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
12111         * config/openbsd-oldgas.h: New file.
12112         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
12113         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
12114         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
12115         config/i386/i386-coff.h, config/i386/i386-interix.h,
12116         config/i386/iscdbx.h, config/i386/linux-aout.h,
12117         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
12118         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
12119         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
12120         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
12121         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
12122         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
12123         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
12124         config/i386/vxi386.h: Do not directly include configury headers.
12125         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
12126         Directly include configury headers that are no longer automatically
12127         included by the above headers.
12128         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
12129         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
12130         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
12131         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
12132         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
12133         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
12134         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
12135         (TARGET_VERSION): Define.
12136         * config/i386/beos-elf.h, config/i386/freebsd.h,
12137         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
12138         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
12139         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
12140         config/i386/sco5.h, config/i386/sysv4.h
12141         (TARGET_VERSION): Do not need to protect.
12142         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
12143         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
12144         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
12145         config/i386/i386-interix.h, config/i386/linux-aout.h,
12146         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
12147         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
12148         (YES_UNDERSCORES): Do not define - not needed.
12149         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
12150         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
12151         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
12152         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
12153         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
12154         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
12155         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
12156         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
12157
12158 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
12159             Richard Henderson  <rth@redhat.com>
12160
12161         PR c/5484
12162         * function.c (assign_temp): Accept either type or decl argument.
12163         Detect variables whose size is too large to fit into an integer.
12164         * stmt.c (expand_decl): Pass the decl, not the type.
12165
12166 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
12167
12168         * protoize.c: Match include directory usage with cppdefault.c.
12169
12170 2002-04-03  Jeffrey A Law  (law@redhat.com)
12171             Hans-Peter Nilsson  <hp@bitrange.com>
12172
12173         * combine.c (simplify_comparison): Avoid narrowing a comparison
12174         with a paradoxical subreg when doing so would drop signficant bits.
12175
12176 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
12177
12178         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
12179         if POINTERS_EXTEND_UNSIGNED is defined.
12180
12181 2002-04-02  Richard Henderson  <rth@redhat.com>
12182
12183         PR opt/3967
12184         * local-alloc.c (contains_replace_regs): LO_SUM may contain
12185         replace regs.
12186
12187 2002-04-02  Richard Henderson  <rth@redhat.com>
12188
12189         * doc/standards.texi: Document required freestanding libc entry points.
12190
12191 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
12192
12193         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
12194         associated splitter.  Remove MQ constraint.
12195         (ctrdi_internal4): Correct CCmode clobber.
12196
12197 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12198
12199         * milli64.S ($$dyncall): New function.
12200         * t-linux (LIB1ASMFUNCS): Revise module list.
12201         (LIB1ASMSRC): Use pa/milli64.S.
12202
12203 2002-04-02  Richard Henderson  <rth@redhat.com>
12204
12205         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
12206         rename solaris_sys_varargs_h.
12207
12208 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12209
12210         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
12211         the same mode as its component.
12212
12213 2002-04-02  Richard Henderson  <rth@redhat.com>
12214
12215         PR opt/190
12216         * final.c (this_is_asm_operands): Export.
12217         * output.h (this_is_asm_operands): Declare.
12218         * config/i386/i386.c (print_operand): Error odd asm operands.
12219
12220 2002-04-02  Richard Henderson  <rth@redhat.com>
12221
12222         PR opt/420
12223         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
12224
12225 2002-04-01  Richard Henderson  <rth@redhat.com>
12226
12227         PR target/1538
12228         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
12229         * fixinc/fixincl.x: Rebuild.
12230
12231 2002-04-01  Richard Henderson  <rth@redhat.com>
12232
12233         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
12234         (atomic_alloc, atomic_free): New.
12235         (SIZE, MASK_FOR, PTR_IN): New.
12236         (emergency_reg_state, emergency_reg_state_free): New.
12237         (emergency_labeled_state, emergency_labeled_state_free): New.
12238         (reg_state_alloced, labeled_state_alloced): New.
12239         (alloc_reg_state, free_reg_state): New.
12240         (alloc_label_state, free_label_state, free_label_states): New.
12241         (push, pop, dup_state_stack, free_state_stack): Use them.
12242         (desc_label_state): Likewise.
12243         (uw_frame_state_for): Free label states and state stack.
12244         (uw_update_reg_address): Eliminate warnings.
12245
12246 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
12247
12248         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
12249         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
12250
12251 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
12252
12253         * c-decl.c (grokdeclarator): Update.
12254         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
12255         * c-tree.h (c_mark_addressable): New.
12256         * c-typeck.c (default_function_array_conversion, build_unary_op,
12257         build_array_ref, convert_for_assignment): Update.
12258         (mark_addressable): Rename.
12259         * calls.c (try_to_integrate, expand_call): Use langhook.
12260         * expr.c (expand_expr): Use langhook.
12261         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
12262         * langhooks.h (struct lang_hooks): New hook.
12263         * stmt.c (expand_asm_operands): Use langhook.
12264         * tree.h (mark_addressable): Remove.
12265 objc:
12266         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
12267
12268 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
12269
12270         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
12271         in previous change.
12272
12273 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
12274
12275         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
12276         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
12277
12278 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
12279
12280         * c-common.c (unsigned_conversion_warning, convert_and_check,
12281         unsigned_type, signed_type, shorten_compare,
12282         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
12283         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
12284         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
12285         New.
12286         * c-decl.c (grokdeclarator): Update.
12287         * c-format.c (check_format_types): Update.
12288         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
12289         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
12290         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
12291         * convert.c (convert_to_integer): Use new hooks.
12292         * expmed.c (make_tree): Use new hooks.
12293         * expr.c (store_expr): Use new hooks.
12294         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
12295         all_ones_mask_p, unextend, fold): Use new hooks.
12296         * langhooks.h (struct lang_hooks_for_types): New hooks.
12297         * tree.h (signed_or_unsigned_type, signed_type,
12298         unsigned_type): Remove.
12299 objc:
12300         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
12301         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
12302
12303 2002-03-31  Richard Henderson  <rth@redhat.com>
12304
12305         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
12306         (desc_frgr_mem): Fix reference to f16-f31.
12307
12308 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12309
12310         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
12311         RTVEC_ELT): Const-ify.
12312         * varray.h (VARRAY_CHECK): Const-ify.
12313         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
12314         ggc_mark_rtvec, ggc_mark): Const-ify.
12315
12316 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
12317
12318         * diagnostic.c: Include langhooks-def.h.
12319         * Makefile.in (diagnostic.o): Update.
12320
12321 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
12322
12323         * c-common.c (c_unsafe_for_reeval): Rename.
12324         * c-common.h (c_unsafe_for_reeval): Rename.
12325         * c-decl.c (finish_incomplete_decl): Rename.
12326         (c_init_decl_processing): Don't set langhook.
12327         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
12328         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
12329         * c-objc-common.c (c_objc_common_init): Don't set langhook.
12330         * c-tree.h (finish_incomplete_decl): Rename.
12331         * langhooks-def.h (lhd_unsafe_for_reeval): New.
12332         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
12333         (LANG_HOOKS_INITIALIZER): Update.
12334         * langhooks.c (lhd_unsafe_For_reeval): New.
12335         * langhooks.h (struct langhooks): New hooks.
12336         * toplev.c (incomplete_decl_finalize_hook): Remove.
12337         (wrapup_global_declarations): Update.
12338         * tree.c (lang_unsafe_for_reeval): Remove.
12339         (unsafe_for_reeval): Update.
12340         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
12341         Remove.
12342 objc:
12343         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
12344         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
12345
12346 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
12347
12348         * diagnostic.c (print_error_function): Remove.
12349         (default_print_error_function): Rename.
12350         (report_error_function): Update.
12351         * diagnostic.h (print_error_function): Remove.
12352         (default_print_error_function): Remove.
12353         * langhooks-def.h (struct diagnostic_context): Predeclare.
12354         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
12355         (LANG_HOOKS_INITIALIZER): Update.
12356         * langhooks.h (struct diagnostic context): Predeclare.
12357         (struct lang_hooks): New hook.
12358
12359 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12360
12361         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
12362         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
12363         !flag_pic.
12364         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
12365         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
12366         of PIC_OFFSET_TABLE_REGNUM thruout.
12367         * config/rs6000/rs6000.md: Likewise.
12368         * config/rs6000/darwin.h: Likewise.
12369
12370 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12371
12372         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
12373         unsigned HOST_WIDE_INT, not unsigned int.
12374
12375 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
12376
12377         PR middle-end/6096, middle-end/6098, middle-end/6099
12378         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
12379         CODE_LABELs.
12380         (fill_slots_from_thread): Likewise.
12381
12382 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
12383
12384         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
12385         floating fields in float regs.
12386         (function_arg_record_value_2): Likewise.
12387
12388 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
12389
12390         * config/mmix/mmix.md (define_constants): Remove misleading
12391         FIXME.  Add MMIX_fp_rO_OFFSET.
12392         ("nonlocal_goto_receiver"): Don't have stack-frame address of
12393         saved rO as part of the pattern.  Remove FIXME.
12394         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
12395         here, at output-time.
12396
12397 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
12398
12399         PR middle-end/6100
12400         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
12401         REG_BR_PRED.
12402         (output_v9branch): Likewise.
12403
12404 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
12405
12406         * gcc.c: Revert previous patch for now.
12407         * config/i386/djgpp.h: Likewise.
12408
12409 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
12410
12411         * config/mmix/crti.asm (_init): Register _fini with atexit.
12412         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
12413
12414 2002-03-31  Richard Henderson  <rth@redhat.com>
12415
12416         PR target/3997
12417         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
12418         (ASM_OUTPUT_DEF_FROM_DECLS): New.
12419
12420 2002-03-31  Richard Henderson  <rth@redhat.com>
12421
12422         * libgcc2.c (__bb_exit_func): Make static.
12423
12424         * config/alpha/alpha.md (trap): New.
12425
12426 2002-03-31  Richard Henderson  <rth@redhat.com>
12427
12428         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
12429         promoted argument types; build trap.
12430         (expand_builtin_trap): New.
12431         (expand_builtin): Use it.
12432         * stmt.c (expand_nl_goto_receivers): Likewise.
12433         * expr.h (expand_builtin_trap): Declare.
12434         * libfuncs.h (LTI_abort, abort_libfunc): New.
12435         * optabs.c (init_optabs): Init abort_libfunc.
12436
12437 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
12438
12439         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
12440         (LINK_COMMAND_SPEC): ... from here.
12441         (init_gcc_specs): Duplicate it here too, omitting
12442         shared_name in the second copy.
12443         (init_spec): Test for duplicate
12444         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
12445
12446 2002-03-30  David S. Miller  <davem@redhat.com>
12447
12448         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
12449         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
12450
12451 2002-03-30  Roger Sayle <roger@eyesopen.com>
12452             Richard Henderson  <rth@redhat.com>
12453
12454         * regmove.c (combine_stack_adjustments_for_block): Avoid
12455         emitting a stack adjustment of zero bytes.  Let delete_insn
12456         update bb->head.
12457
12458 2002-03-30  Richard Henderson  <rth@redhat.com>
12459
12460         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
12461         (sparc_emitting_epilogue): New.
12462         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
12463         * config/sparc/sparc-protos.h: Update.
12464         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
12465         (TARGET_SWITCHES): Update.
12466         * config/sparc/sparc.md (return): Remove.
12467         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
12468         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
12469         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
12470         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
12471         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
12472         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
12473         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
12474         Remove MASK_EPILOGUE.
12475         * doc/invoke.texi: Update.
12476
12477 2002-03-30  Daniel Berlin  <dan@dberlin.org>
12478
12479         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
12480         CPP will start the file for us.
12481
12482 2002-03-30  Richard Henderson  <rth@redhat.com>
12483
12484         PR target/5446
12485         * config/ia64/ia64.c (group_barrier_needed_p): Special case
12486         prologue_allocate_stack.
12487         (ia64_single_set): Use insn codes for recognition of special
12488         cases, not rtl matching.
12489         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
12490
12491 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
12492
12493         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
12494
12495 2002-03-30  Richard Henderson  <rth@redhat.com>
12496
12497         PR target/6032
12498         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
12499         or -fomit-frame-pointer with profiling.
12500         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12501         (FUNCTION_PROFILER): Do nothing.
12502         (PROFILE_HOOK): New.
12503         * config/sparc/sparc.c (sparc_override_options): Don't check
12504         code models for profiling.
12505         (sparc_function_profiler): Remove.
12506         (sparc_profile_hook): New.
12507         * config/sparc/sparc-protos.h: Update.
12508
12509 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
12510
12511         PR optimization/6086
12512         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
12513         of SUBREG of volatile MEM or because the MEM was mode dependent,
12514         return CLOBBER instead of unmodified SUBREG.
12515
12516 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
12517
12518         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
12519         when not optimizing.
12520
12521         * toplev.c (rest_of_compilation): Cann mark_constant_function
12522         only when optimizing.
12523
12524         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
12525         are NULL.
12526
12527         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
12528         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
12529         (try_optimize_cfg): clear all AUX fields.
12530
12531         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
12532         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
12533         (ix86_address_cost): Be prepared for SUBREGed registers.
12534         (legitimate_address_p): Accept SUBREGed registers.
12535
12536 2002-03-29  Richard Henderson  <rth@redhat.com>
12537
12538         PR target/5672
12539         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
12540
12541 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12542
12543         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
12544         for aggregate and TFmode types.
12545
12546 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
12547
12548         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
12549
12550 2002-03-29  Richard Henderson  <rth@redhat.com>
12551
12552         PR target/5886
12553         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
12554         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
12555
12556 2002-03-29  Richard Henderson  <rth@redhat.com>
12557
12558         PR target/6041
12559         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
12560         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
12561         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
12562         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
12563         conditional.
12564         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
12565
12566 2002-03-29  Dale Johannesen <dalej@apple.com>
12567
12568         * loop.c (combine_movables): Do allow combination of pseudos.
12569
12570 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
12571
12572         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
12573         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
12574         No functional change except ...
12575         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
12576         * doc/install.texi (*-*-freebsd*): Document port configuration.
12577
12578 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12579
12580         * Makefile.in (convert.o, calls.o, expmed.o): Update.
12581         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
12582         Use new hooks.
12583         * builtin-types.def (BT_PTRMODE): Update.
12584         * c-common.c (type_for_size): Rename c_common_type_for_size.
12585         (type_for_mode): Similarly.
12586         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
12587         Use new hook.
12588         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
12589         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
12590         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
12591         Redefine.
12592         * c-typeck.c (common_type, comptypes, default_conversion):
12593         Use new hooks.
12594         * calls.c: Include langhooks.h.
12595         (emit_library_call_value_1): Use new hooks.  Avoid redundant
12596         calls.
12597         * convert.c: Include langhooks.h
12598         (convert_to_pointer, convert_to_integer): Use new hooks.
12599         * except.c (init_eh): Similarly.
12600         * expmed.c: Include langhooks.h.
12601         (expand_mult_add): Use new hooks.
12602         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
12603         try_casesi): Similarly.
12604         * fold-const.c (optimize_bit_field_compare, make_range,
12605         decode_field_reference, fold_truthop, fold): Similarly.
12606         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
12607         put_var_into_stack): Similarly.
12608         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
12609         LANG_HOOKS_TYPE_FOR_SIZE): New.
12610         (LANG_HOOKS_TYPES_INITIALIZER): Update.
12611         * langhooks.h (lang_hooks_for_types): New hooks.
12612         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
12613         * tree.c (get_unwidened, get_narrower): Similarly.
12614         * tree.h (type_for_mode, type_for_size): Remove.
12615         * varasm.c (force_const_mem): Use new hooks.
12616         * utils2.c (nonbinary_modular_operation): Update.
12617 objc:
12618         * objc-act.c (handle_impent): Update.
12619         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
12620         Redefine.
12621
12622 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
12623
12624         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
12625         * config/ia64/ia64.c (basereg_operand): New.
12626         * config/ia64/ia64-protos.h (basereg_operand): Declare.
12627         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
12628
12629 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
12630
12631         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
12632         unwind information when frame_pointer_needed.
12633         (mmix_assemble_integer): Tweak wording in comment.
12634
12635 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12636
12637         * Makefile.in (except.o): Update.
12638         * except.c: Include langhooks.h.
12639         (init_eh): Use langhook.
12640         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
12641         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
12642         (LANG_HOOKS_INITIALIZER): Update.
12643         * langhooks.h (lang_hooks_for_types): New.
12644         (struct lang_hooks): Add it.
12645         * tree.c (make_lang_type_fn, make_lang_type): Remove.
12646         * tree.h (make_lang_type_fn, make_lang_type): Remove.
12647 config:
12648         * alpha/alpha.c: Include langhooks.h.
12649         (alpha_build_va_list): Use langhook.
12650         * d30v/d30v.c: Include langhooks.h.
12651         (d30v_build_va_list): Use langhook.
12652         * i386/i386.c: Include langhooks.h.
12653         (ix86_build_va_list): Use langhook.
12654         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
12655         * s390/s390.c: Include langhooks.h.
12656         (s390_build_va_list): Use langhook.
12657         * stormy16/stormy16.c: Include langhooks.h.
12658         (stormy16_build_va_list): Use langhook.
12659
12660 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
12661
12662         PR c++/5964
12663         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
12664         attributes.
12665         (length): Compute variable length for branches/calls/jumps here.
12666         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
12667         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
12668         define branch_type attribute.
12669         (divsi3_sp32): Maximum length is 6 not 7.
12670         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
12671         call_address_untyped_struct_value_sp32,
12672         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
12673         * config/sparc/sparc.c (empty_delay_slot): New function.
12674         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
12675         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
12676
12677 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
12678
12679         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
12680         nonzero_bits if not needed.
12681         (nonzero_bits) [XOR]: Likewise.
12682         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
12683         reg_last_set_mode and mode are both MODE_INT, but not equal.
12684         (record_value_for_reg): Compute reg_last_set_nonzero_bits
12685         in nonzero_bits_mode for MODE_INT modes.
12686
12687 2002-03-28  Richard Henderson  <rth@redhat.com>
12688
12689         PR target/5715
12690         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
12691         to GAS.  Correct drift between alternatives.
12692
12693 2002-03-28  Richard Henderson  <rth@redhat.com>
12694
12695         PR target/6087
12696         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
12697
12698 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
12699
12700         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
12701         emulation to the linker.
12702
12703 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
12704
12705         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
12706         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
12707
12708 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
12709
12710         * combine.c (simplify_and_const_int): Make sure to apply mask
12711         when force_to_mode returns a constant integer.  PR3311.
12712
12713 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12714
12715         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
12716
12717 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12718
12719         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
12720         and Objective-C Dialect Options.
12721
12722 2002-03-28  Richard Henderson  <rth@redhat.com>
12723
12724         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
12725         comparison should be done vs !=0 not >0 return code.  Tidy cases.
12726
12727 2002-03-28  Richard Henderson  <rth@redhat.com>
12728
12729         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
12730         on to c_expand_body.
12731         * c-tree.h (finish_function): Update decl.
12732         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
12733
12734 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
12735
12736         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
12737
12738 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
12739
12740         * rtlanal.c: Include flags.h
12741         (may_trap_p): Do not mark FP operations if trapping
12742         if !flag_trapping_math
12743         * Makefile.in (rtlanal.o): Add dependency on flag.h
12744         * ifcvt.c (noce_operand_ok): Avoid the lameness.
12745
12746 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
12747
12748         * mips.md: Use dconst1, not 1.0, as first argument of
12749         REAL_VALUE_LDEXP.  Don't use union real_extract.
12750
12751 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
12752
12753         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
12754         rather than $target.  Heed program_prefix and
12755         program_transform_name.  Search for gas in cross-compiler case too.
12756         "test -x" rather than "test -f".
12757         (gcc_cv_ld): Likewise.
12758         (gcc_cv_nm): Heed program_prefix and program_transform_name.
12759         (gcc_cv_objdump): Likewise.
12760         * configure: Regenerate.
12761
12762 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12763
12764         * Makefile.in (attribs.o): Update.
12765         * attribs.c: Include langhooks.h.
12766         (decl_attributes): Use langhook.
12767         * c-decl.c (insert_default_attributes): Rename.
12768         * c-tree.h (c_insert_default_attributes): New.
12769         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
12770         (LANG_HOOKS_INITIALIZER): Update.
12771         * langhooks.h (struct lang_hooks): New hook.
12772         * tree.h (insert_default_attributes): Remove.
12773 objc:
12774         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
12775
12776 2002-03-27  Andreas Schwab  <schwab@suse.de>
12777
12778         * config/i386/i386.c (classify_argument): Also check for
12779         QUAL_UNION_TYPE.
12780
12781 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12782
12783         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
12784         any more.
12785
12786 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
12787
12788         * i960.md (ret): Set PC.
12789         (nonlocal_goto): Fix expander.
12790         * builtins.c (epxand_builin_longjmp): Check that we've emitted
12791         some jump or call.
12792
12793 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
12794
12795         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
12796         of libcall regions.
12797
12798 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12799
12800         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
12801         assigning to BLOCK_FOR_INSN directly.
12802
12803 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
12804
12805         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
12806
12807 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12808
12809         * c-common.c (c_expand_expr): Fix prototype.
12810         * c-common.h (c_expand_expr): Always declare, update.
12811         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
12812         * c-objc-common.c (c_objc_common_init): No global hook.
12813         * expr.c (expand_expr): Use langhook.
12814         * expr.h (enum expand_modifier): Conditionally declare.
12815         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
12816         (LANG_HOOKS_INITIALIZER): Update.
12817         * langhooks.c (lhd_expand_expr): New.
12818         * langhooks.h (struct lang_hooks): New hook.
12819         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
12820         (lang_independent_init): Don't default hook.
12821 objc:
12822         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
12823
12824 2002-03-27  Richard Henderson  <rth@redhat.com>
12825
12826         PR target/6054
12827         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
12828         TARGET_CONST_GP.  Simplify conditions.
12829
12830 2002-03-27  Richard Henderson  <rth@redhat.com>
12831
12832         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
12833         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
12834         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
12835
12836 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
12837
12838         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
12839         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
12840         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
12841         Remove unnecessary masks.
12842         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
12843         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
12844         -mwindows, -mdll switches and their negations.
12845
12846 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12847
12848         * gcc-common.c (lang_mark_false_label_stack): Remove.
12849         * ggc.h (lang_mark_false_label_stack): Similarly.
12850
12851 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
12852
12853         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
12854
12855         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
12856         or __rtems_ is defined.
12857
12858 2002-03-26  Richard Henderson  <rth@redhat.com>
12859
12860         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
12861         if a non-trivial load was emitted.
12862         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
12863         in high+extra+low case.
12864
12865 2002-03-26  Richard Henderson  <rth@redhat.com>
12866
12867         * config.gcc (sparc*-solaris): Use float_format=sparc.
12868
12869 2002-03-26  Richard Henderson  <rth@redhat.com>
12870
12871         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
12872         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
12873         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
12874         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
12875         (WINT_TYPE_SIZE): Fix at 32.
12876
12877 2002-03-26  Richard Henderson  <rth@redhat.com>
12878
12879         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
12880         until after eh landing pad generation.
12881         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
12882         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
12883
12884 2002-03-26  Richard Henderson  <rth@redhat.com>
12885
12886         * expr.h (ADD_PARM_SIZE): One more convert for INC.
12887
12888 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
12889
12890         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
12891         and warning switches.
12892         (cc1_options):  Likewise.
12893
12894 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
12895
12896         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
12897         Restore more of the signal context.  Set no_reg_stack_frame.
12898         * config/ia64/unwind-ia64.c (unw_state_record):
12899         Add no_reg_stack_frame, comments.
12900         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
12901         (uw_update_context): Adjust bsp when unwinding from leaf,
12902         but not signal frame.
12903
12904 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
12905
12906         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
12907
12908 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
12909
12910         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
12911
12912 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
12913
12914         PR target/5621
12915         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
12916         "Add a pool_range attribute", which was lost during the ARM/Thumb
12917         merge.
12918
12919 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
12920
12921         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
12922         a register into the MAC16 accumulator.
12923
12924 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
12925
12926         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
12927         (Warning Options): Document -Wswitch-enum.
12928         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
12929         -Wswitch.
12930         (warn_switch_enum): Define variables.
12931         * flags.h (warn_switch_enum): Declare variables.
12932         * stmt.c (expand_end_case_type): When warn_switch_enum /
12933         -Wswitch-enum, perform switch checks.
12934         Fix PR c/5044.
12935
12936 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
12937
12938         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
12939         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
12940         (reload_muladdsi_compare0_scratch): Delete.
12941
12942 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
12943
12944         * doc/install.texi (*-*-freebsd*): Update.
12945
12946 2002-03-26  Richard Henderson  <rth@redhat.com>
12947
12948         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
12949         (SUB_PARM_SIZE): Cast DEC to ssizetype.
12950
12951         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
12952         types from the normal argument frame.
12953
12954         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
12955         variable sized objects by reference.
12956         (sparc_va_arg): Receive them by reference too.
12957
12958 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
12959
12960         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
12961         code to not restoring global registers.
12962
12963 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
12964
12965         * Makefile.in (ggc-common.o): Update.
12966         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
12967         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
12968         * c-tree.h (c_mark_tree): New.
12969         * ggc-common.c: Include langhooks.h.
12970         (gcc_mark_trees): Use new langhook.
12971         * ggc-callbacks.c: Delete file.
12972         * ggc.h (lang_mark_tree): Remove.
12973         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
12974         (LANG_HOOKS_INITIALIZER): Update.
12975         * langhooks.h (struct lang_hooks): New hook.
12976 objc:
12977         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
12978
12979 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
12980
12981         * doc/cpp.texi: Exclude entire Top node from printed manual.
12982         Move option index after directive index.  Insert page breaks
12983         before GFDL and concept index.  Index environment variables
12984         with command line options.
12985         * doc/cppenv.texi: Use @vtable for environment variable list.
12986         Add paragraph explaining semantics of empty elements in path
12987         variables.  Exclude a cross-reference to Fishkill from the
12988         manpage.  Remove an unnecessary cross-reference of the entry
12989         right above the referer.  Don't use @anchor in text that goes
12990         into manpage.
12991         * doc/cppopts.texi: Cross-reference the environment variables
12992         section, not the specific environment variable, for consistency.
12993
12994 2002-03-25  Richard Henderson  <rth@redhat.com>
12995
12996         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
12997         anywhere in the block.  Don't refer to insns that have been
12998         removed from the chain.  Iterate backward through the new insns.
12999         Don't refer to edges that have been removed.
13000
13001 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
13002
13003         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
13004         test for overflow of constant.
13005
13006 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
13007
13008         PR target/2623
13009         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
13010         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
13011         these patterns on arm_archv4.
13012
13013 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
13014
13015         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
13016         int".
13017
13018 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
13019
13020         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
13021         float_handled, float_handler, float_signal, set_float_handler,
13022         and do_float_handler.  Set handler for SIGFPE to crash_signal.
13023         * toplev.h: Don't prototype do_float_handler.
13024
13025         * c-lex.c: Fold parse_float into lex_number.  Make warning
13026         about portability of hex float constants more informative, and
13027         don't issue it on top of a syntax error.
13028         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
13029         their callers.
13030         * real.h: Define REAL_VALUE_ABS here...
13031         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
13032         simplify_unary_real, simplify_binary_real, and
13033         simplify_binary_is2orm1 into their callers.
13034         * tree.c: Fold build_real_from_int_cst_1 into caller.
13035
13036         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
13037
13038         * tsystem.h: Include float.h here...
13039         * libgcc2.c: ... not here.
13040
13041 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
13042
13043         Fixes for: PR bootstrap/3591, target/5676
13044         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
13045         defined.  Do not disable exceptions or rtti.
13046         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
13047         mcore.h.  Disable exceptions and rtti, since they are not
13048         supported by EPOC.
13049
13050 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
13051
13052         * c-decl.c (maybe_build_cleanup): Remove.
13053         * expr.c (expand_expr): Use langhook.
13054         * langhooks-def.h (lhd_return_null_tree,
13055         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
13056         (LANGHOOKS_INITIALIZER): Update.
13057         * langhooks.c (lhd_return_null_tree): New.
13058         * langhooks.h (struct lang_hooks): New hook.
13059         * tree-inline.c (initialize_inlined_parameters): Use langhook.
13060         * tree.h (maybe_build_cleanup): Remove.
13061
13062 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
13063
13064         * regrename.c (build_def_use): Move recog_memoized
13065         before extract_insn.
13066
13067 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
13068
13069         PR target/6043
13070         * expr.c (emit_group_store): Handle storing into CONCAT.
13071
13072 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
13073
13074         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
13075         corresponding MATCH_DUP.
13076
13077 2002-03-24  Richard Henderson  <rth@redhat.com>
13078
13079         * unroll.c (unroll_loop): Zero label_map.
13080
13081         * gcse.c: Include except.h.
13082         * Makefile.in (gcse.o): Update.
13083
13084 2002-03-24  Richard Henderson  <rth@redhat.com>
13085
13086         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
13087         Do resolve_unique_section before shared data clause.
13088
13089 2002-03-24  Richard Henderson  <rth@redhat.com>
13090
13091         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
13092
13093 2002-03-24  Richard Henderson  <rth@redhat.com>
13094
13095         * recog.c (peephole2_optimize): Split blocks when EH insns are
13096         generated in the middle of a block.  Do global life update if
13097         zapped EH edges.
13098
13099 2002-03-24  Richard Henderson  <rth@redhat.com>
13100
13101         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
13102
13103 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
13104
13105         preprocessor/3951
13106         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
13107         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
13108         (init_dependency_output): Don't make no_output decision here.
13109
13110 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
13111
13112         * stmt.c (check_for_full_enumeration_handling): Remove tests of
13113         warn_switch.  Update description.
13114         (expand_end_case_type): Call check_for_full_enumeration_handling
13115         when warn_switch.
13116
13117 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13118
13119         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
13120         (m68hc11_split_move): Call it to see if the source and destination
13121         operands use the same direction auto inc/dec mode, otherwise make the
13122         source an offsetable memory operand and generate an add.
13123
13124 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13125
13126         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
13127         register for operand 2.
13128         ("*subsi3_zero_extendqi"): Likewise.
13129         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
13130         bits so that it is compatible with a pop.
13131         ("*andhi3_gen"): Likewise.
13132         ("xorhi3"): Likewise.
13133
13134 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
13135
13136         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
13137         -pedantic here...
13138         (cpp_post_options): ... not here.
13139
13140 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
13141             Aldy Hernandez  <aldyh@redhat.com>
13142
13143         Removal of separate preprocessor cpp0.
13144
13145         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
13146         cpp0, install-common): Update.
13147         * c-common.c (flag_preprocess_only): New.
13148         (c_common_init): Preprocess for -E.
13149         * c-common.h (flag_preprocess_only): New.
13150         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
13151         * c-objc-common.c (c_init_decl_processing): Exit quickly
13152         for NULL return from c_common_init.
13153         * cpplib.h (cpp_preprocess_file): New.
13154         * cppmain.c (main, general_init, pfile, progname): Remove.
13155         (do_preprocessing): Rename cpp_preprocess_file, don't call
13156         cpp_finish.  Don't close stdout here.
13157         (setup_callbacks): Update prototype.
13158         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
13159         Update.
13160         * tradcpp.c (main): Ignore -quiet.
13161 objc:
13162         * lang-specs.h (default_compilers): Preprocess with cc1obj.
13163
13164 2002-03-24  Richard Henderson  <rth@redhat.com>
13165
13166         PR optimization/5742
13167         * machmode.def: Add inner mode field to complex modes.
13168         * config/mips/mips.c (mips_function_value): Always define.  Add
13169         new argument to handle libcalls.
13170         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
13171         (FUNCTION_VALUE): Likewise.
13172         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
13173         * config/mips/mips-protos.h: Update.
13174
13175 2002-03-23  Richard Henderson  <rth@redhat.com>
13176
13177         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
13178         * config/sparc/sparc-protos.h: Update.
13179         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
13180
13181 2002-03-23  Richard Henderson  <rth@redhat.com>
13182
13183         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
13184         _start or _init begins the text segment.
13185
13186 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
13187
13188         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
13189         not HOST_WIDEST_INT.
13190         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
13191
13192 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
13193
13194         PR java/5489
13195         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
13196         operand argument to output_return_instruction.
13197         * arm.c (arm_print_operand, case 'd'): If the operand is
13198         const_true_rtx then just return.
13199         (arm_print_operand, case 'D'): If the operand is const_true_rtx
13200         then abort.
13201
13202 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
13203
13204         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
13205         (Warning Options): Document -Wswitch-default.
13206         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
13207         -Wswitch.
13208         (warn_switch_default): Define variable.
13209         (warn_switch): Update comment.
13210         * flags.h (warn_switch_default): Declare variable.
13211         (warn_switch): Update comment.
13212         * stmt.c (expand_end_case): Check for and, when
13213         warn_switch_no_default, warn of a missing default case.
13214
13215 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
13216
13217         * real.h (N): Special case 128 bit doubles.
13218
13219         * combine.c (simplify_comparison): When widening modes, ignore
13220         sign extension on CONST_INTs.
13221
13222 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
13223
13224         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
13225         passed to adjust_address.  Fix comment formatting.
13226
13227
13228 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
13229
13230         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
13231         Always make REAL_VALUE_TYPE a struct containing an array of
13232         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
13233         big it is.  Don't declare or use union real_extract.
13234
13235         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
13236         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
13237         (print_operand), config/arm/arm.c (output_move_double),
13238         config/arm/arm.md (consttable_4, consttable_8),
13239         config/romp/romp.c (output_fpops), config/s390/s390.h
13240         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
13241         (xtensa_output_literal): Don't use union real_extract.
13242
13243         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
13244         (sfmode_constant_to_ulong), config/ns32k/merlin.h
13245         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
13246         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
13247         (PRINT_OPERAND): Don't use local version of union
13248         real_extract.
13249
13250         * config/convex/convex.c (check_float_value), config/vax/vax.c
13251         (vax_float_literal), config/m88k/m88k.md (divdf3),
13252         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
13253         config/pdp11/pdp11.c (output_move_quad): Don't do host
13254         arithmetic on target floating point quantities.
13255
13256         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
13257         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
13258
13259         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
13260         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
13261
13262         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
13263         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
13264         INFINITY.
13265         * print-rtl.c (print_rtx): Disable code which needs
13266         floating-point emulator.
13267         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
13268         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
13269         depending on HOST_FLOAT_FORMAT to be defined properly.
13270
13271         * config/1750a/1750a.c (get_double, float_label): Delete.
13272         (print_operand): Delete huge commented-out chunk.  Use
13273         REAL_VALUE_TO_DECIMAL.
13274         * config/1750a/1750a-protos.h: Delete prototypes of deleted
13275         functions.
13276         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
13277         IEEE_FLOAT_FORMAT.
13278         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
13279         Use REAL_VALUE_TO_DECIMAL as ELF version does.
13280         * config/m88k/m88k.c (real_power_of_2_operand,
13281         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
13282         real_extract out of the union; run the input through
13283         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
13284         from that into the union.
13285         * config/pdp11/pdp11.c (output_move_double): Rearrange
13286         parentheses to make automatic indenter happy.
13287
13288         * doc/tm.texi (Cross-compilation): Rename node to "Floating
13289         Point" and rewrite to describe current situation.  Also adjust
13290         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
13291         match code.
13292         * doc/rtl.texi: Adjust cross reference.
13293
13294 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
13295
13296         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
13297         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
13298         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
13299         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
13300         prevent use of sp as a reload register.
13301         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
13302         non_acc_reg_operand.
13303         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
13304         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
13305         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
13306         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
13307
13308 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
13309
13310         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
13311         * cpplex.c (unterminated): Delete.
13312         (parse_string): No string literal may extend over multiple
13313         lines.  Suppress the error when preprocessing assembly.
13314         * cppmain.c (scan_translation_unit): Strings are single-line.
13315
13316         * doc/cpp.texi: Update to match.
13317
13318 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
13319
13320         PR optimization/5854
13321         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
13322         Shut up warnings.
13323         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
13324         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
13325         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
13326         const0 if scratch register was not allocated.
13327         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
13328         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
13329         with GEN_INT (...).
13330         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
13331         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
13332         with GEN_INT (...) everywhere.  Remove constraints in define_split
13333         patterns.
13334         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
13335         require scratch register for setting 0 into regs/non-pushable memory.
13336
13337 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
13338
13339         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
13340         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
13341
13342 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
13343
13344         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
13345         * cppinit.c (cpp_create_reader):  On by default.
13346         (cpp_handle_option):  Handle -W[no-]endif-labels.
13347         (cpp_post_options):  Also enable if -pedantic.
13348         * cpplib.c (do_else):  Use it.
13349         (do_endif):  Likewise.
13350         * doc/cppopts.texi:  Document new option.
13351         * doc/invoke.texi:  Document new option.
13352
13353 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
13354
13355         * config/i386/i386.c, config/i386/i386.md: Change all occurences
13356         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
13357
13358 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
13359
13360         * flow.c (calculate_global_regs_live): Clear aux fields of
13361         ENTRY and EXIT.
13362
13363 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
13364
13365         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
13366         REG or MEM subregs, pass rtx * instead of rtx to it.
13367         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
13368         rtx * instead of rtx to alter_subreg.
13369         * config/m32r/m32r.c (gen_split_move_double): Likewise.
13370         * config/pj/pj.c (pj_output_rval): Likewise.
13371
13372 2002-03-22  Richard Henderson  <rth@redhat.com>
13373
13374         PR target/3177
13375         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
13376         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
13377         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
13378         (ia64_expand_prologue): Look at int_regs, not words, for number
13379         of incomming int regs.
13380
13381 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
13382
13383         * expr.c (expand_expr): A RESULT_DECL is part of a call.
13384
13385 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
13386
13387         * toplev.c (flag_loop_optimize, flag_crossjumping):
13388         New static variables.
13389         (rest_of_compilation): Conditionalize crossjumping and
13390         loop optimizer.
13391         (parse_options_and_default_flags): Default loop_optimize and
13392         crossjumping.
13393         (lang_independent_options): Add -fcrossjumping and -floop-optimize
13394         * invoke.texi (crossjumping, loop-optimize): Document.
13395
13396 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
13397
13398         * real.c (eiisneg): Move outside #ifdef NANS.
13399
13400 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
13401
13402         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
13403         frequencies match; avoid match on different loop depths.
13404         (try_crossjump_to_bb): Kill tests that no longer brings time
13405         savings.
13406         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
13407         updating code.
13408         (split_edge): Likewise.
13409
13410         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
13411         variable.
13412
13413         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
13414         * cfgrtl.c: Include insn-config.h
13415         (split_block) Dirtify block in presence of conditional execution
13416
13417 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
13418
13419         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
13420         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
13421         (function_arg): Constify CUMULATIVE_ARGS.
13422         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
13423         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
13424         (UNITS_PER_DOUBLE): New macro.
13425         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
13426         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
13427         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
13428         fp_regs and stack_words.
13429         (EABI_FLOAT_VARARGS_P): New macro.
13430         * config/mips/mips.c (struct mips_arg_info): New.
13431         (mips_arg_info): New function.
13432         (function_arg_advance): Use it.  Add adjustment instructions here
13433         rather than in function_arg.
13434         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
13435         for VOIDmode at the beginning of the function.
13436         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
13437         (function_arg_pass_by_reference): Likewise.
13438         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
13439         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
13440         (mips_va_start): Likewise.  Use the new stack_words field of
13441         CUMULATIVE_ARGS to set up overflow area.  Reformat.
13442         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
13443         doubles and other types, aligning the overflow pointer for non-doubles
13444         too.  Remove some code duplication.  Replace hard-coded constants.
13445
13446 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
13447
13448         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
13449         (CLASS_UNITS): Undefine.
13450         (CLASS_MAX_NREGS): Use FP_INC.
13451         * config/mips/mips.c (compute_frame_size): Likewise.
13452         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
13453
13454 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
13455
13456         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
13457         prototype, and handle lexing numbers and identifiers.
13458         (parse_identifier): Update to new form of parse_slow.
13459         (parse_number): Fast path only, use parse_slow otherwise.
13460         (_cpp_lex_direct): Update calls to parse_number.
13461
13462 2002-03-21  DJ Delorie  <dj@redhat.com>
13463
13464         * bb-reorder.c (make_reorder_chain_1): Protect against
13465         when redundant edges are omitted.
13466         * predict.c (dump_prediction): Likewise.
13467
13468 2002-03-21  Richard Henderson  <rth@redhat.com>
13469
13470         PR target/5996
13471         * fixinc/inclhack.def (solaris_stdio_tag): New.
13472         * fixinc/fixincl.x: Regenerate.
13473
13474 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
13475
13476         PR c/5597
13477         * c-typeck.c (process_init_element): Flag non-static
13478         initialization of a flexible array member as illegal.
13479
13480 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
13481
13482         * config/rs6000/t-linux64: New.
13483         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
13484         t-ppccomm.  Use t-rs6000 and t-linux64.
13485         (powerpc64-*-gnu* <tmake_file>): Likewise.
13486         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
13487         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
13488         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
13489
13490 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
13491
13492         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
13493         flag_really_no_inline instead of optimize == 0.
13494
13495         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
13496
13497         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
13498
13499         * flags.h (flag_really_no_inline): New.
13500
13501         * c-common.c (c_common_post_options): Initialize
13502         flag_really_no_inline.
13503
13504         * toplev.c (flag_really_no_inline): New.
13505
13506 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
13507
13508         * config/avr/avr.md (length): Fix length computation for
13509         conditional branches.
13510
13511 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
13512
13513         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
13514         sdbout.o, profile.o): Update.
13515         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
13516         langhook.
13517         * c-common.h (gettags): Move here from tree.h.
13518         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
13519         insert_block, getdecls, kept_level_p, global_bindings_p): New.
13520         * dbxout.c (dbxout_init): Use getdecls langhook.
13521         * expr.c (expand_expr): Use insert_block langhook.
13522         * fold-const.c: Include langhooks.h.
13523         (fold_range_test, fold_binary_op_with_conditional_arg,
13524         fold): Use global_bindings_p langhook.
13525         * integrate.c (expand_inline_function): Use insert_block langhook.
13526         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
13527         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
13528         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
13529         LANG_HOOKS_GETDECLS): New.
13530         (LANG_HOOKS_INITIALIZER): Update.
13531         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
13532         langhook.
13533         * langhooks.h (struct lang_hooks_for_decls): New.
13534         (struct lang_hooks): Update.
13535         * profile.c: Include langhooks.h.
13536         (output_func_start_profiler): Use new langhooks.
13537         * sdbout.c: Include langhooks.h.
13538         (sdbout_init, sdbout_finish): Use getdecls langhook.
13539         * stmt.c: Include langhooks.h.
13540         (expand_fixup, fixup_gotos): Use new langhooks.
13541         * stor-layout.c: Include langhooks.h.
13542         (variable_size): Use global_bindings_p langhook.
13543         * toplev.c (compile_file): Use getdecls langhook.
13544         * tree-inline.c (remap_block): Use insert_block langhook.
13545         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
13546         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
13547
13548 2002-03-21  Richard Henderson  <rth@redhat.com>
13549
13550         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
13551         constants in .data when -fpic.
13552
13553 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13554
13555         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
13556         where appropriate.
13557
13558 2002-03-21  Tom Tromey  <tromey@redhat.com>
13559
13560         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
13561
13562 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13563
13564         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
13565
13566         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
13567
13568 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
13569             Richard Henderson  <rth@redhat.com>
13570
13571         PR c/5354
13572         * c-common.c (c_expand_expr): Preserve result of a statement
13573         expression if needed.
13574
13575 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
13576
13577         PR bootstrap/4195
13578         * genrecog.c (maybe_both_true_mode): Remove.
13579         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
13580         * machmode.def (Pmode): Likewise.
13581
13582 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
13583
13584         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
13585         (nonlocal_mentioned_p_1): New function.
13586         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
13587         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
13588         (mark_constant_function): Recognize pure functions.
13589         * rtl.h (global_reg_mentioned_p): New prototype.
13590         * rtlanal.c (global_reg_mentioned_p,
13591         global_reg_mentioned_p_1): New function.
13592
13593 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13594
13595         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
13596         UNIX assert.h.
13597         * fixinc/fixincl.x: Regenerate.
13598
13599 2002-03-20  Jason Merrill  <jason@redhat.com>
13600
13601         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
13602
13603 2002-03-20  Michael Meissner  <meissner@redhat.com>
13604
13605         * doc/invoke.texi (Optimize Options): Document that -O2 sets
13606         -fstrict-aliasing.
13607
13608 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
13609
13610         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
13611         ".literal_position" directive before the constant pool.
13612
13613 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13614
13615         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
13616         Add Craig Rodrigues.
13617         Add Brad Lucier to testers.
13618
13619 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
13620
13621         PR target/4792
13622         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
13623         to if_then_else.
13624         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
13625         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
13626         instead of insn_extract.
13627
13628 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
13629
13630         PR bootstrap/4192
13631         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
13632
13633         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
13634         stmt if some case has been output.
13635
13636 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
13637
13638         PR c/5972
13639         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
13640         movsfcc_1, movdfcc_1): Add %O2.
13641         * config/i386/i386.c (print_operand): Handle %ON.
13642         Print . before float condition codes in Sun as cmov syntax.
13643         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
13644         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
13645         no longer true.
13646
13647 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
13648
13649         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
13650         return instruction if PC was popped.
13651
13652 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
13653
13654         * config/xtensa/xtensa.md: Remove unused type attributes.
13655         (adddi_carry, subddi_carry): Change type attribute to "multi".
13656
13657 2002-03-19  Dale Johannesen  <dalej@apple.com>
13658
13659         PR optimization/5999, middle-end/5731
13660         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
13661         multiplications by reciprocals.
13662
13663 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
13664
13665         * Makefile.in: Update.
13666         * c-common.c: Include langhooks.h.
13667         (inline_forbidden_p): Use new hook.
13668         * diagnostic.c: Include langhooks.h.
13669         (format_with_decl, announce_function,
13670         default_print_error_function): Use new hook.
13671         * dwarf2out.c (dwarf2_name): Use new hook.
13672         * function.c: Include langhooks.h.
13673         (init_function_start): Use new hook.
13674         * langhooks-def.h (lhd_decl_printable_name): New.
13675         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
13676         (LANGHOOKS_INITIALIZER): Update.
13677         * langhooks.c (lhd_decl_printable_name): New.
13678         * langhooks.h (struct lang_hooks): New hook.
13679         * toplev.c (decl_name, decl_printable_name): Remove.
13680         (open_dump_file): Use new hook.
13681         (process_options): Remove old hook.
13682         * tree.h (decl_printable_name): Remove.
13683 objc:
13684         * objc-act.c (objc_init): Remove old hook.
13685         (objc_printable_name): Export.
13686         * objc-act.h (objc_printable_name): New.
13687         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
13688
13689 2002-03-19  Jim Blandy  <jimb@redhat.com>
13690
13691         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
13692         the start_source_file debug hook, not the current line number.
13693
13694 2002-03-19  Richard Henderson  <rth@redhat.com>
13695
13696         * flow.c (EH_USES): Provide default.
13697         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
13698         * doc/tm.texi (EH_USES): New.
13699
13700         * config/ia64/ia64.c (ia64_eh_uses): New.
13701         * config/ia64/ia64-protos.h: Update.
13702         * config/ia64/ia64.h (EH_USES): New.
13703
13704 2002-03-19  Richard Henderson  <rth@redhat.com>
13705
13706         * varasm.c (output_constant_def): Fix stupid typo.
13707
13708 2002-03-19  Richard Henderson  <rth@redhat.com>
13709
13710         PR 5879
13711         * except.c (current_function_has_exception_handlers): New.
13712         * except.h: Declare it.
13713         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
13714         Combine tests that disable all sibcalls for the function.
13715
13716 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
13717
13718         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
13719         for INTEGER_CST.
13720
13721 2002-03-19  Richard Henderson  <rth@redhat.com>
13722
13723         PR 5977, 5991
13724         * config/ia64/ia64.c: Revert 2002-03-01 patch.
13725         * config/ia64/ia64.h (INIT_EXPANDERS): New.
13726
13727 2002-03-19  Jim Blandy  <jimb@redhat.com>
13728
13729         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
13730         name, even if the replacement list contains no tokens, as required
13731         by Dwarf.
13732
13733 2002-03-19  Jason Merrill  <jason@redhat.com>
13734
13735         * varasm.c (globalize_decl): Get the name from the RTL, not
13736         DECL_ASSEMBLER_NAME.
13737
13738         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
13739
13740 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
13741
13742         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
13743         subdi_carry): Define.
13744
13745 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
13746
13747         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
13748         about -fpic/-fPIC if extra_warnings set.
13749
13750 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
13751
13752         * expr.c (expand_expr): Sign-extend CONST_INT generated from
13753         TREE_STRING_POINTER.
13754         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
13755
13756 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13757
13758         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
13759         in favor of SP if FRAME_POINTER_REQUIRED is false.
13760
13761 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
13762
13763         * emit-rtl.c (gen_int_mode): New function.
13764         * rtl.h: Prototype for it.
13765         * combine.c (make_extraction, simplify_comparison), expmed.c
13766         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
13767         (convert_modes, store_field), optabs.c (expand_fix),
13768         simplify-rtx.c (neg_const_int, simplify_unary_real),
13769
13770         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
13771         Use it instead of GEN_INT (trunc_int_for_mode (...)).
13772
13773 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
13774
13775         PR c/5656
13776         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
13777         convert_parm_for_inlining.
13778         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
13779         Define.
13780         * langhooks-def.h: Likewise.
13781         * objc/objc-lang.c: Likewise.
13782         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
13783         function.
13784         * tree-inline.c (initialize_inlined_parameters):
13785         Call convert_parm_for_inlining lang hook if needed.
13786         * c-typeck.c (c_convert_parm_for_inlining): New function.
13787         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
13788
13789 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
13790
13791         * calls.c (precompute_arguments): Do not assume that temporaries
13792         can be destroyed after expanding the argument.
13793         (expand_call): Likewise.
13794
13795 2002-03-15  Eric Christopher  <echristo@redhat.com>
13796
13797         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
13798         Fix register preference on last change.
13799         * config/mips/mips.c (mips_return_in_memory): New function.
13800         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
13801         * config/mips/mips-protos.h: Declare.
13802         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
13803         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
13804
13805 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
13806
13807         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
13808         a register too.
13809         (anddi3, iorsi3): Likewise.
13810
13811         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
13812         use %gprel for symbols that are going to be placed in linkonce
13813         sections.
13814
13815         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
13816         RETURN_ADDRESS_POINTER_REGNUM to $ra.
13817         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
13818         not needed.  Disregard leaf_function_p().
13819         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
13820         mips16 frame pointer.
13821         * config/mips/mips.md (store ra): Only to small SP offsets.
13822         2001-08-22  Graham Stott  <grahams@redhat.com>
13823         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
13824         return a REG rtx for the return address register.
13825
13826 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
13827
13828         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
13829         constant-pool addresses as "mode-dependent".
13830         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
13831
13832 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
13833
13834         PR target/5740
13835         * expr.c (emit_group_load): Use extract_bit_field if
13836         needed for CONCAT arguments.
13837
13838 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
13839
13840         PR target/4863
13841         * arm.md (tablejump): Make this a define_expand.  For PIC add the
13842         offset to the base of the table.
13843         (thumb_tablejump): Matcher for Thumb tablejump insn.
13844         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
13845         as the difference of two labels.
13846         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
13847         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
13848         tables in the code.
13849         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
13850         * arm.c (get_jump_table_size): If the table is not in the text
13851         section, return zero.
13852
13853 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
13854
13855         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
13856         of gen_rtx_SUBREG.
13857         (arm_reload_out_hi): Use gen_lowpart instead of
13858         gen_rtx_SUBREG to access QImode components.
13859         * config/arm/arm.md: Disable zero_extend split for QImode
13860         subregs in BIG_ENDIAN mode.
13861         (storehi_bigend): Match use of least significant byte.
13862         (storeinthi): Remove extraneous SUBREG.
13863         Add missing construction of operands[2].
13864         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
13865         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
13866         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
13867
13868 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
13869
13870         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
13871         any_operand.
13872
13873 2002-03-17  Richard Henderson  <rth@redhat.com>
13874
13875         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
13876         explicitly.
13877
13878 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
13879
13880         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
13881         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
13882
13883 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13884
13885         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
13886
13887         * predict.c (estimate_bb_frequencies): Delete unused variables.
13888
13889 2002-03-17  Richard Henderson  <rth@redhat.com>
13890
13891         * config/ia64/ia64.c (ia64_attribute_table): Move before
13892         targetm definition.  Make static.
13893
13894 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
13895
13896         * c-common.h (yyparse, c_common_parse_file): New.
13897         * c-lang.c: Include c-common.h.
13898         (LANG_HOOKS_PARSE_FILE): Redefine.
13899         * c-lex.c: Include c-common.h.
13900         (yyparse): Rename c_common_parse_file.  Call yyparse.
13901         * c-parse.in (yyparse): Remove macro.
13902         * c-tree.h (yyparse_1): Remove.
13903         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
13904         (LANG_HOOKS_INITIALIZER): Update.
13905         * langhooks.h (struct lang_hoooks): New hook parse_file.
13906         * toplev.c (compile_file): Use parse_file hook.
13907         * tree.h (yyparse): Remove.
13908         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
13909
13910 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
13911
13912         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
13913         float_truncate, not fix.
13914         ("*truncdfsf2_real"): Ditto.
13915         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
13916
13917         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
13918
13919 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
13920
13921         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
13922         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
13923         where appropriate.  Make the second reference to
13924         leaf_function_p a function call, as intended.  Reindented.
13925
13926         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
13927         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
13928
13929         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
13930         add register to non-constant into sp.
13931
13932         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
13933         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
13934         (mips16_gp_pseudo_rtx): Lose.
13935         (INIT_EXPANDERS): Deleted.
13936         * config/mips/mips.c (mips_init_machine_status): New.
13937         (mips_free_machine_status): New.
13938         (mips_mark_machine_status): New.
13939         (override_options): Set them.
13940         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
13941         (struct machine_function): ... new.  Replaced all references.
13942         (mips_add_gc_roots): Don't mark them.
13943         (embedded_pic_fnaddr_reg): New, extracted from...
13944         (embedded_pic_offset): ... here.
13945         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
13946         (movsi): Likewise.
13947
13948 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
13949
13950         * cppinit.c: Revert -MD removal.
13951
13952 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13953
13954         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
13955         soft registers by default for 68HC12.
13956         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
13957         when compiling with -fomit-frame-pointer.
13958         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
13959         (expand_epilogue): Likewise.
13960         (m68hc11_gen_rotate): Use exg when rotating by 8.
13961
13962 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13963
13964         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
13965         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
13966         (splits): Remove unused add splits.
13967         ("*addhi3_68hc12"): Tune constraints.
13968         ("addhi_sp"): Try to use X instead of Y in all cases and if the
13969         constant fits in 8-bits and D is dead use abx/aby instructions.
13970         ("*addhi3"): Remove extern declaration of ix_reg.
13971         ("*subsi3"): Optimize and provide new split.
13972         ("subhi3"): Cleanup.
13973         ("*subhi3_sp"): Avoid saving X if we know it is dead.
13974         (arith splits): For 68hc12 save the address register on the stack
13975         and do the arithmetic operation with a pop.
13976
13977 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13978
13979         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
13980         allocating QImode in address registers.
13981         ("*movqi_m68hc11"): Likewise.
13982
13983 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
13984
13985         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
13986
13987 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
13988
13989         * cppinit.c (print_help): Display -MD and -MMD.
13990         Don't display usage string.  Update assertion syntax and
13991         typo.
13992         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
13993         (cpp_handle_option): Update.
13994
13995 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
13996
13997         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
13998         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
13999         and define it so that regardless of target CPU size,
14000         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
14001         of "int" rather than "long."
14002
14003 2002-03-15  Richard Henderson  <rth@redhat.com>
14004
14005         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
14006         size as a tree.
14007
14008 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14009
14010         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
14011         ("tstqi" split): Avoid using memory for tstqi on address register.
14012         (splits): Remove constraints.
14013         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
14014         ("cmpdf", "cmpsf"): Remove since not used.
14015         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
14016         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
14017
14018 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14019
14020         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
14021         ("neghi2"): Tighten constraints.
14022         ("one_cmplsi2"): Optimize and simplify split.
14023         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
14024
14025 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14026
14027         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
14028         and split of AND operation to clear the upper bits.
14029         ("*logicalsi3_zextqi"): Likewise.
14030         ("*logicallhi3_zexthi_ashift8"): Likewise.
14031         ("*logicalsi3_silshr16"): Likewise.
14032         ("logicalsi3_silshl16"): Likewise.
14033         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
14034
14035 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14036
14037         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
14038         (m68hc11_indirect_p): New function.
14039         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
14040         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
14041         TARGET_M6812.
14042         (asm_print_register): Likewise.
14043         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
14044         (m68hc11_indirect_p): Declare.
14045         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
14046         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
14047         (TARGET_SWITCHES): New option -mrelax.
14048         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
14049         destination.
14050         ("iorsi3", "xorsi3"): Likewise.
14051         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
14052         ("*andhi3_mem"): New to handle destination in memory with bclr
14053         and a scratch register.
14054         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
14055         ("*andhi3_const"): New when operand2 is constant.
14056         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
14057         ("*andhi3_gen"): Cleanup of the old "andhi3".
14058         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
14059         ("xorqi3"): Update constraints.
14060
14061 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14062
14063         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
14064         for reg_equiv_memory_loc when the operand is a register that does
14065         not get a hard register (stack location).
14066         (tst_operand): After reload, accept all memory operand.
14067         (symbolic_memory_operand): Fix detection of symbolic references.
14068         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
14069         accept symbols and any constant.
14070
14071 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14072
14073         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
14074         note on the insn that sets the soft frame register.
14075         (must_parenthesize): ix and iy are also reserved names.
14076         (print_operand_address): One more place where parenthesis are required
14077         to avoid confusion with register names.
14078         (m68hc11_gen_movhi): Allow push of stack pointer.
14079         (m68hc11_check_z_replacement): Fix handling of parallel with a
14080         clobber.
14081         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
14082         the replacement register is.
14083         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
14084         and D8_REGS classes.
14085         (MODES_TIEABLE_P): All modes are tieable except QImode.
14086
14087 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14088
14089         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
14090         (___subdi3): Likewise.
14091         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
14092         (__map_data_section): Optimize 68hc11 case.
14093
14094 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
14095
14096         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
14097         than a shift to avoid adding a register with itself.
14098         (m68hc11_memory_move_cost): Take into account NO_REGS.
14099         (m68hc11_register_move_cost): Update and use memory move cost
14100         for soft registers.
14101         (m68hc11_address_cost): Make cost of valid offset not 0 so that
14102         it gives more opportunities to cse to optimize.
14103         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
14104         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
14105
14106 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
14107
14108         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
14109         * c-common.def (CLEANUP_STMT): New tree node.
14110         * c-common.h (CLEANUP_DECL): New macro.
14111         (CLEANUP_EXPR): Likewise.
14112         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
14113         * expr.c (expand_expr): Tidy.
14114         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
14115         * tree-inline.c (initialize_inlined_parameters): Clean up
14116         new local variables.
14117
14118 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
14119
14120         PR bootstrap/4128
14121         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
14122         before movrXX only, use reg_overlap_mentioned_p.
14123         Only special case NE if just one insn can be generated.
14124
14125 2002-03-15  Jason Merrill  <jason@redhat.com>
14126
14127         * varasm.c (assemble_variable): Call resolve_unique_section before
14128         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
14129         of error_mark_node.
14130
14131 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
14132
14133         PR target/5170
14134         * arm.md (split pattern for thumb shiftable immediates): Add comment
14135         explaining non-obvious test.
14136
14137 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
14138
14139         PR target/5712
14140         * arm.md (movaddr, movaddr_insn): Delete.
14141
14142 2002-03-15  Jason Merrill  <jason@redhat.com>
14143
14144         * toplev.c (wrapup_global_declarations): Clarify variable handling.
14145         -fkeep-static-consts doesn't apply to comdats.
14146
14147 2002-03-14  Richard Henderson  <rth@redhat.com>
14148
14149         * c-decl.c: Include c-pragma.h.
14150         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
14151         (finish_function): Tidy.
14152         * c-pragma.c: Include c-common.h.
14153         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
14154         (handle_pragma_weak): Use them.
14155         (init_pragma): Register pending_weaks.
14156         * c-pragma.h (maybe_apply_pragma_weak): Declare.
14157         * print-tree.c (print_node): Print DECL_WEAK.
14158         * varasm.c (mark_weak_decls): Remove.
14159         (remove_from_pending_weak_list): Remove.
14160         (add_weak): Remove.
14161         (asm_emit_uninitialised): Call globalize_decl for weak commons.
14162         (weak_decls): Make a tree_list.
14163         (declare_weak): Cons weak_decls directly.
14164         (globalize_decl): Remove weak_decls elements directly.
14165         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
14166         symbols.  Don't pretend to handle aliases.
14167         (init_varasm_once): Update weak_decls registry.
14168         * Makefile.in: Update dependencies.
14169
14170 2002-03-14  Richard Henderson  <rth@redhat.com>
14171
14172         PR target/5312
14173         * config/ia64/ia64.c: Include tm_p.h last.
14174         (gen_nop_type): Remove duplicate definition.
14175         (cycle_end_fill_slots): Set sched_data for second L slot.
14176         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
14177         (nop_cycles_until): Fix typos.
14178
14179 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
14180
14181         PR optimization/5891
14182         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
14183
14184 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
14185
14186         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
14187           descriptors correctly.
14188
14189 2002-03-14  Michael Meissner  <meissner@redhat.com>
14190
14191         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
14192         100, allowing MAX_UNROLLED_INSNS to be overridden.
14193
14194         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
14195         --param.
14196
14197         * unroll.c (params.h): Include.
14198         (MAX_UNROLLED_INSNS): Delete, now in params.h.
14199
14200         * doc/invoke.texi (--param max-unroll-insns): Document.
14201
14202         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
14203
14204 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
14205
14206         * arm.md: Fix warnings about constraints in peepholes and splits.
14207
14208 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
14209
14210         * cpphash.h (struct lexer_state): Remove line_extension member.
14211         * cpplib.c (dequote_string, do_linemarker): New functions.
14212         (linemarker_dir): New data object.
14213         (DIRECTIVE_TABLE): No longer need to interpret #line in
14214         preprocessed source.  Delete obsolete comment about return
14215         values of handlers.
14216         (end_directive, directive_diagnostics, _cpp_handle_directive):
14217         Don't muck with line_extension.
14218         (directive_diagnostics): No need to issue warnings for
14219         linemarkers here.
14220         (_cpp_handle_directive): Issue warnings for linemarkers here,
14221         when appropriate.  Dispatch linemarkers to do_linemarker, not
14222         do_line.
14223         (do_line): Code to handle linemarkers split out to do_linemarker.
14224         Convert escape sequences in filename argument, both places.
14225
14226         * cppmacro.c (quote_string): Rename cpp_quote_string and
14227         export.  All callers changed.
14228         * cpplib.h (cpp_quote_string): Prototype.
14229         * cppmain.c (print_line): Call cpp_quote_string on to_file
14230         before printing it.
14231
14232         * doc/cpp.texi: Document that escapes are now interpreted in
14233         #line and in linemarkers, and that non-printing characters are
14234         converted to octal escapes when linemarkers are generated.
14235
14236 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
14237
14238         * emit-rtl.c (try_split): Use delete_insns.
14239         * recog.c (split_all_insns): Fix terminating condition.
14240
14241 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
14242             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
14243
14244         PR target/5828
14245         * arm.c (arm_output_epilogue): Fix floating-point register save
14246         adjustment when using a frame pointer.
14247
14248 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
14249
14250         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
14251         * config/mips/mips.c (compute_frame_size): Retrofit them here.
14252         (save_restore_insns, mips_expand_epilogue): And here.
14253         (build_mips16_call_stub): And here.
14254         (mips_function_value): Use the new macros to decide whether a single
14255         or complex float can be returned in floating-point registers.  Return
14256         a parallel rtx in the complex case.
14257
14258 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
14259
14260         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
14261         call after liveness analysis.
14262
14263         * recog.c (split_insn): Use delete_insn_and_edges.
14264
14265         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
14266         instructions to have branch prediction notes.
14267         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
14268
14269 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
14270
14271         * configure.in: Don't pass -Wno-long-long to a ADA compiler
14272         that doesn't support it.
14273         * configure: Regenerate.
14274
14275 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
14276
14277         PR target/5626
14278         * config/sparc/sparc.md (normal_branch, inverted_branch,
14279         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
14280         inverted_fp_branch): Adjust calls to output_cbranch.
14281         Set length attribute.
14282         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
14283         output_v9branch.  Set length attribute.
14284         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
14285         predicates.
14286         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
14287         (output_cbranch): Likewise.  Handle far branches.
14288         (output_v9branch): Handle far branches.
14289         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
14290         Adjust prototypes.
14291         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
14292         noov_compare64_op predicates.
14293
14294 2002-03-13  Jason Merrill  <jason@redhat.com>
14295
14296         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
14297         into the function and constify it.
14298         * gthr-dce.h, gthr-solaris.h: Likewise.
14299
14300 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
14301
14302         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
14303         * config/rs6000/rs6000.c (rs6000_va_arg): Use
14304         std_expand_builtin_va_arg if not ABI_V4.
14305
14306 2002-03-13  Jason Merrill  <jason@redhat.com>
14307
14308         * varasm.c (globalize_decl): New fn.
14309         (assemble_start_function): Use it.
14310         (asm_emit_uninitialized): Use it.
14311         (assemble_alias): Use it.
14312         (assemble_variable): Use it.
14313
14314 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
14315
14316         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
14317         2002-03-12 internal visibility change.
14318         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
14319         visibility into SYMBOL_REF_FLAG.
14320
14321 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
14322
14323         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
14324         VOIDmode operand.  Add compile-time optimization for constant results.
14325
14326 2002-03-12  Jason Merrill  <jason@redhat.com>
14327
14328         * c-typeck.c (convert_for_assignment): Don't allow conversions
14329         between pointers and references.  Only allow lvalues to convert to
14330         reference.
14331
14332 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
14333
14334         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
14335         before prologue, to avoid scheduling problems.
14336
14337 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
14338
14339         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
14340         (ELIMINABLE_REGS): Add sfp->sp.
14341         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
14342
14343 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
14344
14345         PR optimization/5892
14346         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
14347
14348 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
14349
14350         * loop.c (basic_induction_var): Don't call convert_modes if mode
14351         classes are different.
14352
14353 2002-03-12  Richard Henderson  <rth@redhat.com>
14354
14355         PR optimization/5901
14356         * function.c (reposition_prologue_and_epilogue_notes): Position
14357         the markers after/before the last/first insn not deleted.
14358
14359 2002-03-12  Richard Henderson  <rth@redhat.com>
14360
14361         PR optimization/5878
14362         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
14363         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
14364         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
14365
14366         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
14367         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
14368         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
14369
14370         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
14371         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
14372         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
14373         also.  Don't set it if not flag_pic.
14374         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
14375         to be INVALID_REGNUM when not used.
14376
14377 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
14378
14379         * expmed.c (store_bit_field): Reset alias set for memory.
14380         (extract_bit_field): Same.
14381
14382 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14383
14384         * c-common.c (c_tree_code_type, c_tree_code_length,
14385         c_tree_code_name, add_c_tree_codes): Delete.
14386         * c-common.h (add_c_tree_codes): Delete.
14387         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
14388         Define.
14389         * c-objc-common.c (c_objc_common_init): Don't call
14390         add_c_tree_codes, instead set lang_unsafe_for_reeval.
14391         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
14392         objc_tree_code_name, add_objc_tree_codes): Delete.
14393         (objc_init): Don't call add_objc_tree_codes.
14394         * objc/objc-lang.c (tree_code_type, tree_code_length,
14395         tree_code_name): Define.
14396         * toplev.c (lang_independent_init): Don't set
14397         tree_code_length[IDENTIFIER_NODE].
14398         * tree.c (tree_code_type, tree_code_length, tree_code_name):
14399         Delete definitions, moved to language front-ends.
14400         * tree.def (IDENTIFIER_NODE): Hardwire the length.
14401         * tree.h (tree_code_type, tree_code_length, tree_code_name):
14402         Const-ify.
14403         (tree_code_length): Change type to unsigned char.
14404
14405 2002-03-12  Richard Henderson  <rth@redhat.com>
14406
14407         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
14408         internal visibility change.
14409
14410 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
14411
14412         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
14413         validize_mem() instead of change_address to avoid clobbering
14414         memory attributes.
14415
14416 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
14417
14418         * c-lex.h (position_after_whitespace): Remove.
14419
14420 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
14421
14422         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
14423         (lex_string): Use unsigned char pointers.
14424
14425 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
14426
14427         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
14428         is not a valid memory_operand.
14429
14430 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
14431
14432         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
14433         * config/xtensa/lib1funcs.asm: Fix copyright to include
14434         special case for libgcc files.
14435         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
14436         (__divsi3): Likewise.
14437         (__umodsi3): Likewise.
14438         (__modsi3): Likewise.
14439         * config/xtensa/lib2funcs.S: Fix copyright to include
14440         special case for libgcc files.
14441
14442 2002-03-12  Tom Rix  <trix@redhat.com>
14443
14444         * collect2.c (resolve_lib_name): Move outside of
14445         OBJECT_FORMAT_COFF ifdef.
14446         (ignore_library): Same.
14447
14448 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
14449
14450         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
14451
14452 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
14453
14454         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
14455         to function_section before writing out the constant pool.
14456
14457 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
14458
14459         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
14460         zero_constant.
14461         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
14462
14463 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
14464
14465         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
14466         (adddi3): Likewise.
14467         (movdf): Likewise.
14468         (movdi): Likewise.
14469         (cmpsi splitter): Likewise.
14470         (modsi3): Fail if <= 0.
14471         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
14472         redundant test when HOST_BITS_PER_WIDE_INT != 32.
14473         (reg_or_sub_cint64_operand): Likewise.
14474         (num_insns_constant_wide): Optimize sign extension.
14475         (rs6000_legitimize_address): Likewise.
14476
14477 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
14478
14479         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
14480         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
14481
14482 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
14483
14484         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
14485         address calculation.
14486
14487 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
14488
14489         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
14490         scratch register to DImode / TImode.
14491         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
14492         register used does not overlap the target.
14493
14494 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14495
14496         * Makefile.in (debug.o): Depend on debug.h.
14497         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
14498         * debug.c (do_nothing_debug_hooks): Likewise.
14499         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
14500         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
14501         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
14502         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
14503         * dwarfout.c (dwarf_debug_hooks): Likewise.
14504         * integrate.c (output_inline_function): Likewise.
14505         * objc/objc-act.c (synth_module_prologue): Likewise.
14506         * sdbout.c (sdb_debug_hooks): Likewise.
14507         * toplev.c (debug_hooks): Likewise.
14508         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14509
14510 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14511
14512         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
14513         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
14514         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
14515         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
14516         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
14517         * defaults.h (POINTER_SIZE): Define.
14518         * doc/tm.texi (POINTER_SIZE): Document default.
14519
14520 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14521
14522         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
14523
14524 2002-03-11  Richard Henderson  <rth@redhat.com>
14525
14526         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
14527         if rebuild_label_notes_after_reload.
14528
14529 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
14530
14531         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
14532         emit pic register load if "internal" visibility.
14533         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
14534         (cris_expand_builtin_va_arg): Do all computations on trees.
14535
14536 2002-03-11  Richard Henderson  <rth@redhat.com>
14537
14538         * rtlanal.c: Include recog.h.
14539         (keep_with_call_p): Fix thinko.
14540         * Makefile.in (rtlanal.o): Update dependencies.
14541
14542 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
14543
14544         * genflags.c (gen_insn): Use IS_VSPACE.
14545         * genoutput.c (output_insn_data): Likewise.
14546         (process_template): Likewise.
14547
14548 2002-03-11  Richard Henderson  <rth@redhat.com>
14549
14550         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
14551
14552 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
14553
14554         * Makefile.in: Update.
14555         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
14556         Update documentation.
14557         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
14558         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
14559
14560 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
14561
14562         * Makefile.in: Give texi2pod its input file as a command line
14563         argument, not on stdin.
14564
14565 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
14566             Daniel Berlin  <dan@dberlin.org>
14567
14568         C++ alias analysis improvement.
14569         * alias.c (record_component_aliases): Record aliases for base
14570         classes too.
14571
14572 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
14573
14574         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
14575
14576 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
14577
14578         * toplev.c (vms_fopen): Remove, not needed.
14579
14580         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
14581
14582         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
14583
14584         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
14585         for FP, already done later.
14586
14587         * toplev.c (debug_args): Add entry for VMS_DEBUG.
14588         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
14589
14590 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
14591
14592         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
14593         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
14594         LARGEST_EXPONENT_IS_NORMAL for the given mode.
14595         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
14596         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
14597         (ediv, emul, eldexp, esqrt): Likewise.
14598         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
14599         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
14600         (saturate): New function.
14601         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
14602         (make_nan): Use a saturation value instead of a NaN if
14603         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
14604         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
14605         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
14606         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
14607         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
14608         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
14609         !ROUND_TOWARDS_ZERO.
14610         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
14611         (ROUND_TOWARDS_ZERO): Document.
14612
14613 2002-03-11  Andreas Jaeger  <aj@suse.de>
14614
14615         * cfg.c (dump_flow_info): Remove unused variable.
14616
14617 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
14618
14619         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
14620         computations on trees.
14621
14622 2002-03-10  Richard Henderson  <rth@redhat.com>
14623
14624         PR 5693:
14625         * reload.c (copy_replacements_1): New.
14626         (copy_replacements): Use it to recurse through the rtx.
14627
14628 2002-03-10  Richard Henderson  <rth@redhat.com>
14629
14630         * loop.c (strength_reduce): Compute number of iterations as
14631         unsigned HOST_WIDE_INT.
14632
14633 2002-03-10  Richard Henderson  <rth@redhat.com>
14634
14635         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
14636         to move away from the end of the block.
14637
14638 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
14639
14640         PR preprocessor/5899
14641         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
14642
14643 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14644
14645         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
14646
14647         * attribs.c (decl_attributes): Fix signed/unsigned warning.
14648
14649 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
14650
14651         * config/mmix/mmix.c: Improve comments.
14652         (mmix_target_asm_function_prologue): Drop variable
14653         empty_stack_frame.  Don't allocate unused slot above fp.
14654         (mmix_target_asm_function_epilogue): Mirror prologue changes.
14655         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
14656         brace in first column.
14657         (enum reg_class): Ditto.
14658         (FIRST_PARM_OFFSET): Now 0.
14659         (USER_LABEL_PREFIX): Remove #if 0:d definition.
14660
14661 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14662
14663         * combine.c (make_extraction): Fix error in last change.
14664
14665 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14666
14667         * c4x.c (c4x_fp_reglist): Const-ify.
14668         * cris.c (cris_print_operand): Likewise.
14669         * i386.c (ix86_va_arg): Likewise.
14670         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
14671         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
14672         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
14673         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
14674         * mcore.h (regno_reg_class): Likewise.
14675         * mips.c (gen_int_relational): Likewise.
14676         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
14677         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
14678         * pdp11.c (move_costs): Likewise.
14679         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
14680         * s390.c (s390_branch_condition_mnemonic, regclass_map):
14681         Likewise.
14682         * s390.h (regclass_map): Likewise.
14683         * sh.c (shift_amounts): Likewise.
14684         * sh.md (rotlsi3): Likewise.
14685
14686 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
14687
14688         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
14689         (ne0+5): Use new clobber to generate proper shift pattern.
14690         Patch by Michael Matz <matz@kde.org>.
14691
14692 2002-03-09  Andreas Schwab  <schwab@suse.de>
14693
14694         * gcc.c (validate_all_switches): Also handle `%W{...}'.
14695
14696 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
14697
14698         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
14699
14700 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
14701
14702         PR middle-end/5877
14703         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
14704         even for non-representable constants.
14705
14706 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14707
14708         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
14709         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
14710         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
14711         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
14712         (pop_function_context): Compute MAY_SHARE parameter for
14713         fixup_var_refs.
14714         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
14715         (gen_mem_addressof): Call fixup_var_refs with new parm.
14716
14717         * combine.c (make_extraction): Don't make extension of CONST_INT.
14718
14719 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
14720
14721         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
14722         in o32 and o64 ABIs.
14723         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
14724         but getting fixed-size structs passed in registers regardless of
14725         padding in o32 and o64 ABIs.
14726
14727         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
14728         offset before loading address of argument passed by transparent
14729         reference.
14730
14731 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14732
14733         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
14734
14735 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
14736
14737         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
14738         marker such that registers after it are saved.
14739
14740 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14741
14742         * sparc.c (arith_4096_operand): Fix error in last change.
14743
14744 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
14745
14746         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
14747         defaults for MEABI.
14748
14749 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
14750
14751         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
14752         vectors.
14753
14754 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
14755
14756         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
14757
14758 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
14759
14760         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
14761         removed; fix return value.
14762         * combine.c (combine_instructions): Dirtify blocks where we failed to
14763         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
14764         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
14765
14766 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14767
14768         * gcse.c (insert_insn_end_bb): Fix typo in last change.
14769
14770 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
14771
14772         * recog.c (peephole2_optimize): Re-distribute EH edges.
14773
14774 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
14775
14776         * expr.c (expand_expr): Use unsave lang hook.
14777         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
14778         (LANG_HOOKS_INITIALIZER): Update.
14779         * langhooks.h (struct lang_hooks): New hook unsave.
14780         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
14781         (unsave_expr_1): Remove unused lang_unsave_expr_now.
14782         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
14783         (unsave_expr_now): Remove.
14784         * tree.h (unsave_expr_now, lang_unsave,
14785         lang_unsave_expr_now): Remove.
14786         (lhd_unsave): New.
14787
14788 2002-03-08  Andreas Jaeger  <aj@suse.de>
14789
14790         * flow.c (propagate_block_delete_insn): Remove unused variable.
14791
14792 2002-03-08  Kazu Hirata  <kazu@hxi.com>
14793
14794         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
14795         insn length for memory load/store.
14796
14797 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14798
14799         * doc/install.texi (--with-libiconv-prefix): Document.
14800
14801 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
14802
14803         * doc/sourcebuild.texi: Fix typo.
14804
14805 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
14806
14807         PR c/3711
14808         * builtins.c (std_expand_builtin_va_arg): Do all computations on
14809         trees.
14810
14811 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14812
14813         * rtl.c (copy_most_rtx): Move from here ...
14814         * emit-rtl.c (copy_most_rtx): ... to here.
14815
14816 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
14817
14818         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
14819         SUBTARGET_CPP_SIZE_SPEC.
14820         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
14821
14822         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
14823
14824 2002-03-07  Matt Hiller  <hiller@redhat.com>
14825
14826         * gensupport.c (first_dir_md_include): Renamed from include;
14827         change all references.
14828         (last_dir_md_include): Renamed from last_include; change all
14829         references.
14830         (init_md_reader): Unconditionally initialize base_dir whether or
14831         not filename is a relative path.
14832
14833 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
14834
14835         * config/fp-bit.c (_unord_f2): Compile it in even if
14836         US_SOFTWARE_GOFAST is enabled.
14837
14838         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
14839         NULL_RTX.  Set all HFmode operations as NULL_RTX.
14840         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
14841         NULL_RTX, try reversing the comparison and the operands.
14842
14843 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
14844
14845         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
14846         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
14847         and MATCH_OP_DUP.
14848
14849 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
14850
14851         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
14852
14853 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
14854
14855         * basic-block.h (fixup_abnormal_edges): Declare.
14856         * reload1.c (fixup_abnormal_edges): New function.
14857         * reg-stack.c (convert_regs): Use it.
14858
14859         * gcse.c (insert_insn_end_bb): Handle trapping insns.
14860
14861         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
14862
14863 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
14864
14865         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
14866         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
14867         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
14868         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
14869         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
14870         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
14871         unless x and y could be infinite.
14872         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
14873         Check that the common type of both arguments is a real, even for
14874         targets without unordered comparisons.  Allow an integer argument
14875         to be compared against a real.
14876         (expand_tree_builtin): Use expand_unordered_cmp.
14877         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
14878         * cse.c (fold_rtx): Likewise.  Fix indentation.
14879         * fold-const.c (fold_real_zero_addition_p): New.
14880         (fold): Use it, and the new HONOR_... macros.
14881         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
14882         * jump.c (reversed_comparison_code_parts): After searching for
14883         the true comparison mode, use HONOR_NANS to decide whether it
14884         can be safely reversed.
14885         (reverse_condition_maybe_unordered): Remove IEEE check.
14886         * simplify-rtx.c (simplify_binary_operation): Use the new macros
14887         to decide which simplifications are valid.  Allow the following
14888         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
14889         and (a - -b) to (a + b).
14890         (simplify_relational_operation): Use HONOR_NANS.
14891         * doc/tm.texi: Document the MODE_HAS_... macros.
14892
14893 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
14894
14895         * combine.c (simplify_comparison): If simplifying a logical shift
14896         right and compare with constant, force the comparison to unsigned.
14897
14898 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
14899
14900         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
14901
14902         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
14903         -mabi=no-altivec
14904         (alt_reg_names): Remove % for vrsave.
14905
14906 2002-03-06  Richard Henderson  <rth@redhat.com>
14907
14908         PR optimization/5844
14909         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
14910         if used indicates we've already emitted one copy of an operand.
14911         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
14912         (gen_split): Supply a non-null used.
14913
14914 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
14915
14916         * reload1.c (reload): Unshare all rtl after reload is done.
14917
14918         * simplify-rtx.c (simplify_plus_minus): Do not abort,
14919         but simply fail if the expression is too complex to simplify.
14920         (simplify_gen_binary): Handle simplify_plus_minus failures.
14921
14922 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
14923
14924         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
14925         consistently call delete_trivially_dead_insns after CSE and GCSE;
14926         fix DFI_life dumping; do jump threading after liveness; do crossjumping
14927         after liveness2; update comment in last crossjumping.
14928         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
14929
14930 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
14931
14932         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
14933         after completing fast dead code elimination.
14934
14935         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
14936         COMPARE operator.
14937
14938 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
14939
14940         * version.c:  Fix misplaced leading blanks on first line.
14941
14942 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
14943
14944         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
14945
14946 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
14947
14948         * cfgcleanup.c (mentions_nonequal_regs): New function.
14949         (thread_jump): Use it.
14950         * toplev.c (rest_of_compilation): Run jump threading after
14951         liveness.
14952
14953 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
14954
14955         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
14956         patch.
14957
14958 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14959
14960         * predict.c (estimate_bb_frequencies): Do not reload the
14961         frequencies from notes.
14962
14963 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
14964
14965         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
14966         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
14967
14968         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
14969         delete_noop_moves): Return indeger.
14970         * flow.c (ndead): New variable.
14971         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
14972         BB argument; update callers.
14973         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
14974         (life_analysis): Do not call purge_all_dead_edges.
14975         (update_life_info): Return number of deleted insns; print statistics.
14976         (update_life_info_in_dirty_blocks): likewise.
14977         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
14978         return number of insns deleted.
14979
14980         * cse.c: Include timevar.h
14981         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
14982         iterate until stabilizes; print statistics; return number of killed
14983         insns.
14984         * Makefile.in: (cse.o): Add timevar.h dependency
14985         * rtl.h (delete_trivially_dead_insns): New.
14986         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
14987         * toplev.c (rest_of_compilation): Update callers.
14988
14989         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
14990         (try_optimize_cfg): Do not update liveness.
14991         (cleanup-cfg): Loop until try_optimize_cfg and dead code
14992         removal stabilizes; use delete_trivially_dead_insns.
14993
14994         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
14995
14996 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
14997
14998         * cppmain.c (setup_callbacks): Disable #pragma and #ident
14999         callbacks when processing assembly language.
15000
15001 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15002
15003         * pa.h (ASM_FILE_END): Define.
15004         * som.h (ASM_FILE_END): Delete.
15005
15006         * pa.c (function_arg): Don't pass floats in general registers in
15007         indirect calls if TARGET_ELF32.
15008
15009 2002-03-05  Richard Henderson  <rth@redhat.com>
15010
15011         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
15012
15013 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
15014
15015         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
15016
15017 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
15018
15019         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
15020         -r command line.  Don't hide any symbols if not building
15021         shared libgcc.
15022
15023 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
15024
15025         * cfg.c (dump_flow_info): Warn about profile mismatches.
15026         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
15027         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
15028
15029 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
15030
15031         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
15032         wide volatile memory by parts.
15033
15034 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
15035
15036         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
15037         is NULL.
15038
15039 2002-03-05  Richard Henderson  <rth@redhat.com>
15040
15041         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
15042
15043 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
15044
15045         * toplev.c (documented_lang_options): Document more
15046         language-specific options.
15047         * doc/invoke.texi (Warning Options): Correct documentation for
15048         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
15049         * c-decl.c (c_decode_option): Use a table to handle warning options.
15050
15051 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
15052
15053         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
15054         parameter to mmix_encode_section_info.
15055         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
15056         relocatably.  Always produce ELF, not mmo if linking relocatably.
15057         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
15058         first is non-zero, don't add symbol prefix.
15059         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
15060         prototype accordingly.
15061
15062 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
15063
15064         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
15065
15066 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
15067
15068         * configure.in: Increase required makeinfo version to 4.1.
15069         * configure: Regenerate.
15070
15071 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
15072
15073         * .cvsignore: Remove *.info* and genrtl*; these files are generated
15074         elsewhere now.
15075
15076 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
15077
15078         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
15079         * doc/invoke.texi: Fix @math uses.
15080
15081 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15082
15083         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
15084         removal
15085
15086 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
15087
15088         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
15089         (powerpc-*-eabisimaltivec*): Same.
15090
15091         * config/rs6000/t-ppcendian: New.
15092
15093 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15094
15095         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
15096         nonimmediate_src_operand and nonimmediate_lsrc_operand to
15097         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
15098
15099 2002-03-03  Richard Henderson  <rth@redhat.com>
15100
15101         * toplev.c (rest_of_decl_compilation): Revert last two changes.
15102
15103 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
15104
15105         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
15106         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
15107         tree.c, config/m68k/m68k.c:
15108         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
15109         REAL_ARITHMETIC blocks unconditional.  Delete some further
15110         #ifdef blocks predicated on REAL_ARITHMETIC.
15111         * flags.h, toplev.c: Delete remaining references to
15112         flag_pretend_float.
15113
15114         * doc/invoke.texi: Remove documentation of -fpretend-float.
15115         * doc/tm.texi: Describe the various REAL_* macros as provided by
15116         real.h, not by the target configuration files.
15117
15118         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
15119         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
15120         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
15121         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
15122         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
15123         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
15124         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
15125         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
15126         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
15127         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
15128         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
15129         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
15130         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
15131         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
15132         config/xtensa/xtensa.h:
15133         Do not define, undefine, or mention in comments any of
15134         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
15135         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
15136         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
15137         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
15138         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
15139         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
15140         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
15141         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
15142         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
15143
15144 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15145
15146         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
15147         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
15148         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
15149         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
15150         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
15151         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
15152         Delete.
15153         * defaults.h (BITS_PER_WORD): Define.
15154         * doc/tm.texi (BITS_PER_WORD): Document default value.
15155
15156         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
15157         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
15158         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
15159
15160 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15161
15162         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
15163         lieu of explicit sizeof/sizeof.
15164         * i386.c (override_options, ix86_init_mmx_sse_builtins,
15165         ix86_expand_builtin): Likewise.
15166         * mips.c (mips_add_gc_roots): Likewise.
15167         * mmix.c (mmix_output_condition): Likewise.
15168         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
15169         altivec_init_builtins): Likewise.
15170         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
15171         * cppexp.c (Nsuff, parse_number): Likewise.
15172         * cppinit.c (builtin_array_end): Likewise.
15173         * gcc.c (n_default_compilers, process_command): Likewise.
15174         * genpreds.c (output_predicate_decls): Likewise.
15175         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
15176         * lcm.c (N_ENTITIES): Likewise.
15177         * stor-layout.c (set_sizetype): Likewise.
15178
15179 2002-03-03  Richard Henderson  <rth@redhat.com>
15180
15181         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
15182         for types or labels.
15183
15184 2002-03-03  Richard Henderson  <rth@redhat.com>
15185
15186         * c-decl.c (start_decl): Initialized variables are not common.
15187
15188 2002-03-02  Per Bothner  <per@bothner.com>
15189
15190         * gcc.c (option_map):  Suport new --bootclasspath option.
15191         --CLASSPATH is now just an alias for --classpath.
15192
15193 2002-03-02  Richard Henderson  <rth@redhat.com>
15194
15195         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
15196         load if "internal" visibility.
15197         * doc/extend.texi: Document visibility meanings.
15198
15199 2002-03-02  Richard Henderson  <rth@redhat.com>
15200
15201         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
15202         to functions as well.
15203
15204 2002-03-02  Richard Henderson  <rth@redhat.com>
15205
15206         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
15207         (handle_visibility_attribute): Don't call assemble_visibility.
15208         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
15209         without asmspec.  Invoke assemble_alias when needed.
15210         * varasm.c (maybe_assemble_visibility): New.
15211         (assemble_start_function, assemble_variable, assemble_alias): Use it.
15212
15213 2002-03-02  Richard Henderson  <rth@redhat.com>
15214
15215         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
15216         invoke ENCODE_SECTION_INFO with first call flag.
15217
15218         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
15219         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
15220         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
15221         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
15222         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
15223         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
15224         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
15225         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
15226         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
15227         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
15228         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
15229         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
15230         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
15231         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
15232         config/mcore/mcore-protos.h, config/mcore/mcore.c,
15233         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
15234         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
15235         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
15236         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
15237         config/sh/sh.h, config/sparc/sparc.h,
15238         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
15239         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
15240         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
15241         FIRST argument.  As needed, examine it and do nothing.
15242
15243         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
15244         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
15245         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
15246
15247         * config/arm/t-pe (pe.o): Add dependencies.
15248
15249 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15250
15251         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
15252         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
15253         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
15254         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
15255         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
15256         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
15257         * defaults.h (BITS_PER_UNIT): Define.
15258         * doc/tm.texi (BITS_PER_UNIT): Document default value.
15259
15260 2002-03-02  Kazu Hirata  <kazu@hxi.com>
15261
15262         * config/h8300/h8300-protos.h: Add a prototype for
15263         compute_a_shift_length.
15264         * config/h8300/h8300.c (h8300_asm_insn_count): New.
15265         (compute_a_shift_length): Likewise.
15266         (h8300_adjust_insn_length): Do not adjust insn length of shift
15267         insns.
15268         * config/h8300/h8300.md (anonymous shift patterns): Use
15269         compute_a_shift_length.
15270
15271 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15272
15273         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
15274         trunc_int_for_mode.
15275
15276         * emit-rtl.c (offset_address): Call update_temp_slot_address.
15277
15278 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15279
15280         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
15281         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
15282         * flags.h (flag_zero_initialized_in_bss): Declare.
15283         * toplev.c (flag_zero_initialized_in_bss): New flag.
15284         (lang_independent_options): Add flag_zero_initialized_in_bss.
15285         * tree.c (initializer_zerop): New function.
15286         * tree.h (initializer_zerop): Declare.
15287         * varasm.c (assemble_variable): If we can emit bss, put zero
15288         initializers in the bss section.
15289
15290 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
15291
15292         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
15293         like more than one symbol per .weak directive.
15294
15295 2002-03-01  Richard Henderson  <rth@redhat.com>
15296
15297         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
15298         adjust argument_pointer by pretend_args_size.
15299         (ia64_va_start): Adjust va_start address by -pretend_args_size.
15300
15301 2002-03-01  Kazu Hirata  <kazu@hxi.com>
15302
15303         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
15304
15305 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
15306
15307         * toplev.c (rest_of_compilation): Delete dead jumptables before
15308         loop.
15309         * flow.c (delete_dead_jumptables): Make global.
15310         * rtl.h (delete_dead_jumptables): Declare.
15311
15312 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
15313
15314         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
15315         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
15316         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
15317
15318 2002-03-01  Kazu Hirata  <kazu@hxi.com>
15319
15320         * config/h8300/h8300-protos.h: Fix formatting.
15321         * config/h8300/h8300.c: Likewise.
15322         * config/h8300/h8300.h: Likewise.
15323
15324 2002-03-01  Kazu Hirata  <kazu@hxi.com>
15325
15326         * config/h8300/h8300.c (print_operand): Support 16-bit
15327         constant addresses.
15328         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
15329
15330 2002-02-28  Richard Henderson  <rth@redhat.com>
15331
15332         * expmed.c (store_bit_field): Prevent generation of CONCATs;
15333         pun complex values as integers; use gen_lowpart instead of
15334         gen_rtx_SUBREG.
15335         (extract_bit_field): Likewise.
15336
15337 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
15338             David Edelsohn  <edelsohn@gnu.org>
15339
15340         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
15341         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
15342         (SUPPORTS_WEAK): Likewise.
15343         * output.h (add_weak): Add tree param.
15344         * varasm.c (add_weak): Likewise.  Save decl.
15345         (struct weak_syms): Add decl field.
15346         (mark_weak_decls): New function.
15347         (init_varasm_once): ggc_add_root mark_weak_decls.
15348         (assemble_start_function): Use ASM_WEAKEN_DECL.
15349         (assemble_variable): Likewise.
15350         (assemble_alias): Likewise.
15351         (declare_weak): Pass decl to add_weak.
15352         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
15353         (remove_from_pending_weak_list): Declare and define for
15354         ASM_WEAKEN_DECL.
15355         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
15356         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
15357         * defaults.h (SUPPORTS_WEAK): Likewise.
15358         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
15359         .weak for code sym.  Do emit .size for descriptor sym.
15360         (ASM_DECLARE_FUNCTION_SIZE): Define.
15361         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
15362         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
15363         .lglobl unless TARGET_XCOFF.  Formatting fixes.
15364         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
15365         .weak for code sym.
15366         (HANDLE_PRAGMA_WEAK): Remove.
15367         (ASM_WEAKEN_LABEL): Remove.
15368         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
15369
15370 2002-03-01  Jason Merrill  <jason@redhat.com>
15371
15372         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
15373         (TARGET_EXPR_CLEANUP): New macro.
15374
15375 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
15376
15377         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
15378         to take ptr_extend into account as third type of extension.
15379         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
15380         fields used by SUBREG_PROMOTED_UNSIGNED_P.
15381         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
15382         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
15383         * calls.c (precompute_arguments): Use new macro.
15384         (expand_call): Ditto.
15385         * combine.c (nonzero_bits): Ditto.
15386         (record_promoted_value): Ditto.
15387         * expr.c (store_expr): Ditto.
15388         (expand_expr): Ditto.
15389         * function.c (assign_parms): Ditto.
15390
15391 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
15392
15393         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
15394         override -shared and -shared-libgcc.
15395
15396 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
15397
15398         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
15399         of "ultrasparc".
15400         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
15401         to be broken.
15402
15403 2002-02-28  Richard Henderson  <rth@redhat.com>
15404
15405         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
15406         4 cycle latency from MM producers.
15407         (ia64_internal_sched_reorder): Likewise with pipeline flush.
15408
15409 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
15410
15411         * mklibgcc.in: Don't use GNU make extension.
15412
15413 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
15414
15415         * c-parse.in (STATIC): New terminal.
15416         (scspec): New non-terminal.  Update productions accordingly.
15417         (program): Remove bogus ifc / end ifc.
15418         (array_declarator): Simplify production using STATIC.
15419
15420 2002-02-28  Jim Meyering  <meyering@lucent.com>
15421
15422         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
15423         \a still means TARGET_BELL.
15424
15425 2002-02-28  Richard Henderson  <rth@redhat.com>
15426
15427         * haifa-sched.c (sched_emit_insn): New.
15428         (schedule_block): Use last_scheduled_insn to track last insn.
15429         * sched-int.h (sched_emit_insn): Prototype.
15430         * config/ia64/ia64.c (last_issued): Remove.
15431         (ia64_variable_issue): Don't set it.
15432         (nop_cycles_until): Use sched_emit_insn.
15433
15434 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
15435
15436         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
15437         extended constants.
15438
15439 2002-02-28  Kazu Hirata  <kazu@hxi.com>
15440
15441         * config/h8300/h8300.c: Fix formatting.
15442         * config/h8300/h8300.h: Likewise.
15443
15444 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15445
15446         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
15447         which may overwrite the high byte of the frame pointer.
15448
15449 2002-02-28  Bo Thorsen  <bo@suse.de>
15450
15451         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
15452         (STARTFILE_SPEC): Add 64 bit files.
15453         (ENDFILE_SPEC): Likewise.
15454
15455 2002-02-28  Jason Merrill  <jason@redhat.com>
15456
15457         * c-decl.c (finish_function): Only warn about missing return
15458         statement with -Wreturn-type.
15459
15460 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
15461
15462         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
15463
15464         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
15465         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
15466
15467 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
15468
15469         * basic-block.h (BB_REACHABLE): Renumber.
15470         (BB_DIRTY, BB_NEW): New flags.
15471         (clear_bb_flags): Declare.
15472         (update_life_info_in_dirty_blocks): Declare.
15473         * cfg.c (clear_bb_flags): New function.
15474         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
15475         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
15476         reorder_insns, emit_insn_after): Mark block as dirty.
15477         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
15478         (update_life_info_in_dirty_blocks): New function.
15479         * recog.c (apply_change_group): Dirtify block.
15480
15481         * cse.c (cse_insn): Reorder emitting of jump insn to keep
15482         cfg consistent.
15483         * gcse.c (delete_null_pointer_checks): Likewise.
15484
15485         * toplev.c (dump_file_index): Move cse2 after bp,
15486         add DFI_null
15487         (dump_file_info): Similary.
15488         (rest_of_compilation): Avoid most of CFG rebuilds;
15489         do first if converision after null pointer checks, do cse2
15490         after branch prediction; avoid full liveness rebuild after
15491         initializing subregs.
15492         * invoke.texi (-d options): Document -du, renumber.
15493
15494         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
15495         (notice_new_block): Do not set BB_UPDATE_LIFE.
15496         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
15497          merge_blocks_move_successor_nojumps, merge_blocks,
15498          try_crossjump_to_edge): Likewise.
15499         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
15500         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
15501         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
15502         (merge_of_block): Do not use life_data_ok.
15503         (find_if_case_1): Do not use SET_UPDATE_LIFE.
15504         (if_convert): Use BB_DIRTY mechanizm to update life.
15505         * lcm.c (optimize_mode_switching): Update
15506         update_life_info_in_dirty_blocks
15507
15508 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
15509
15510         * Makefile.in (integrate.o): Update.
15511         * c-decl.c (copy_lang_decl): Rename.
15512         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
15513         * integrate.c: Include langhooks.h.
15514         (copy_decl_for_inlining): Update to use langhook.
15515         * langhooks-def.h (lhd_do_nothing_t,
15516         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
15517         (LANG_HOOKS_INITIALIZER): Update.
15518         * langhooks.c (lhd_do_nothing_t): New.
15519         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
15520         * tree.h (copy_lang_decl): Remove.
15521 objc:
15522         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
15523
15524 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
15525
15526         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
15527         POST_DEC, and POST_MODIFY.
15528
15529 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
15530
15531         * c-typeck.c (digest_init): Remove unused parameter; all
15532         callers changed.
15533
15534 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
15535
15536         * expmed.c (expand_shift): Correctly test for low part of a
15537         subreg.
15538
15539 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
15540
15541         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
15542         insn UIDs with insn addresses.
15543
15544 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
15545
15546         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
15547         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
15548         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
15549         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
15550         gcc.c, toplev.c: Delete code implementing -traditional mode.
15551
15552         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
15553         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
15554         Document removal of -traditional mode for compilation, and
15555         remove documentation only relevant to that mode.
15556
15557         * config/nextstep.h, config/ptx4.h, config/svr4.h,
15558         config/convex/convex.h, config/d30v/d30v.h,
15559         config/i386/dgux.h, config/i386/osf1elf.h,
15560         config/i386/osfelf.h, config/i386/osfrose.h,
15561         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
15562         config/m68k/hp310.h, config/m88k/dgux.h,
15563         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
15564         config/m88k/m88k.h, config/m88k/openbsd.h,
15565         config/mips/abi64.h, config/mips/osfrose.h,
15566         config/mips/svr4-5.h, config/mips/svr4-t.h,
15567         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
15568         config/stormy16/stormy16.h: Remove all references to
15569         -traditional from target specs.  Delete all mention of the
15570         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
15571         delete a couple of commented-out definitions of
15572         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
15573         to -traditional.
15574
15575         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
15576         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
15577
15578 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
15579
15580         * mklibgcc.in: Don't use \n in a line subject to
15581         interpretation by echo.
15582
15583 2002-02-27  Graham Stott  <grahams@redhat.com>
15584
15585         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
15586         Constify NAME.
15587
15588         * loop.c (prescan_loop): Handle PARALLEL.
15589
15590         * unroll.c (loop_iterations): Return 0 if the add_val for
15591         a BIV is REG.
15592
15593         * final.c (output_operand_lossage): Constify PFX_STR.
15594
15595         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
15596
15597 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
15598
15599         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
15600         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
15601
15602 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
15603
15604         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
15605
15606 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
15607
15608         * cpplex.c (_cpp_lex_token): Handle directives in macro
15609         arguments.
15610         * cpplib.c (_cpp_handle_directive): Save and restore state
15611         if parsing macro args when entering a directive.
15612         * cppmacro.c (collect_args): No need to handle directives
15613         in macro arguments.
15614         (enter_macro_context, replace_args): Use the original macro
15615         definition in case it was redefined whilst collecting arguments.
15616 doc:
15617         * cpp.texi: Update.
15618
15619 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
15620
15621         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
15622         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
15623         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
15624         method on AIX.
15625         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
15626         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
15627         (load_toc_v4_PIC_2): Same.
15628
15629 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
15630
15631         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
15632
15633 2002-02-26  Richard Henderson  <rth@redhat.com>
15634
15635         * config/alpha/alpha.md (ashldi_se): Re-enable.
15636
15637 2002-02-26  Richard Henderson  <rth@redhat.com>
15638
15639         * config/alpha/alpha.c (alpha_encode_section_info): Examine
15640         MODULE_LOCAL_P; improve commentary.
15641
15642 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
15643
15644         * doc/cpp.texi: Clarify documentation of relationship between
15645         #line and #include.
15646
15647 2002-02-26  Kazu Hirata  <kazu@hxi.com>
15648
15649         * config/h8300/h8300-protos.h: Update the prototype for
15650         compute_logical_op_length.  Add the prototype for
15651         compute_logical_op_cc.
15652         * config/h8300/h8300.c (compute_logical_op_length): Figure out
15653         code from operands.
15654         (compute_logical_op_cc): New.
15655         * config/h8300/h8300.md: Combine all the logical op patterns
15656         in HImode and SImode.  Use compute_logical_op_cc.
15657
15658 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
15659
15660         * config/i386/i386.c (print_operand): Don't append ATT-style
15661         length suffixs to x87 opcodes when in Intel mode.
15662
15663 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
15664
15665         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
15666         (init_emit_once): Update calls.
15667         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
15668         (init_syntax_once): Prototype.
15669
15670 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15671
15672         * pa-linux.h (LIB_SPEC): Update definition.
15673         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
15674
15675 2002-02-26  Richard Henderson  <rth@redhat.com>
15676
15677         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
15678         if we emitted a stop bit.
15679
15680 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
15681
15682         * configure.in (libgcc_visibility): Substitute.
15683         * configure: Rebuilt.
15684         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
15685         defined symbols .hidden.
15686
15687 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
15688
15689         * attribs.c (c_common_attribute_table): Add visibility.
15690         (handle_visibility_attribute): New function.
15691         * varasm.c (assemble_visibility): New function.
15692         * output.h (assemble_visibility): Add prototype.
15693         * tree.h (MODULE_LOCAL_P): Define.
15694         * crtstuff.c (__dso_handle): Use visibility attribute.
15695         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
15696         for MODULE_LOCAL_P symbols too.
15697         * config/ia64/ia64.c (ia64_encode_section_info): Handle
15698         MODULE_LOCAL_P symbols the same way as local symbols.
15699         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
15700         into .sdata/.sbss by the user.
15701         * doc/extend.texi (Function Attributes): Document visibility
15702         attribute.
15703
15704 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
15705
15706         PR debug/5770
15707         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
15708         STRING_CST initializer spanning the whole variable without
15709         embedded zeros.
15710         If expand_expr returned MEM, don't use it.
15711
15712 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
15713
15714         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
15715         generate a die for the lexical block.
15716
15717 2002-02-26  Kazu Hirata  <kazu@hxi.com>
15718
15719         * config/h8300/h8300-protos.h: Add a prototype for
15720         compute_logical_op_length.
15721         * config/h8300/h8300.c (compute_logical_op_length): New.
15722         * config/h8300/h8300.md (anonymous logical patterns): Use
15723         compute_logical_op_length for length.
15724
15725 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
15726
15727         * dwarf2out.c (modified_type_die): Do not call type_main_variant
15728         for vectors.
15729         (gen_type_die): Same.
15730
15731         * attribs.c (handle_vector_size_attribute): Set debug information.
15732
15733 2002-02-26  Daniel Egger  <degger@fhm.edu>
15734
15735         * config/rs6000/rs6000.md: Swap define_insn attributes to
15736         fix incorrect generation of merge high instructions instead
15737         of merge low.
15738
15739 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
15740
15741         * c-typeck.c (really_start_incremental_init): Use
15742         bitsize_zero_node for vectors.
15743
15744 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
15745
15746         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
15747         ("*set_vrsave_internal"): Same.
15748
15749 2002-02-25  Richard Henderson  <rth@redhat.com>
15750
15751         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
15752         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
15753
15754 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
15755
15756         PR target/5755
15757         * config/i386/i386.c (ix86_return_pops_args): Only pop
15758         fake structure return argument if it was passed on the stack.
15759
15760 2002-02-25  Jason Merrill  <jason@redhat.com>
15761
15762         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
15763         RESULT_DECL.
15764
15765 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
15766
15767         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
15768         link with shared_name only.
15769         * doc/invoke.texi (Link Options): Document new behavior.
15770
15771 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
15772
15773         * c-typeck.c (push_init_level): Handle vectors.
15774
15775 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
15776
15777         * config/sparc/sparc.c (const64_high_operand): Zero-extend
15778         operands of SPARC_SETHI_P.
15779         (input_operand): Likewise.
15780         (sparc_emit_set_const32): Likewise.
15781         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
15782         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
15783         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
15784         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
15785         (movdi_insn_sp64_vis): Likewise.
15786         (movdi split, movdf split): Use SETHI32.
15787         * doc/md.texi: Document SPARC constraints L, M and N.
15788
15789 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
15790
15791         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
15792         ("*set_vrsave_internal"): use mfspr for Darwin.
15793
15794         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
15795         gen_get_vrsave_internal.
15796
15797 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15798
15799         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
15800
15801 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
15802
15803         * cpplex.c (cpp_interpret_charconst): Get signedness or
15804         otherwise of wide character constants correct.
15805         * cppexp.c (lex): Get signedness of wide charconsts correct.
15806
15807 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15808
15809         * optabs.c (widen_operand): Only call convert_modes for
15810         promoted SUBREG if signedness matches.
15811         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
15812
15813 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
15814
15815         * cpplib.c (glue_header_name): Use local buffer to build up
15816         header name.
15817
15818 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
15819
15820         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
15821
15822 2002-02-23  Kazu Hirata  <kazu@hxi.com>
15823
15824         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
15825         H8/300[HS] separately.
15826         * config/h8300/h8300.md: Remove the early clobber constraint
15827         from bit field patterns.
15828
15829 2002-02-23  Kazu Hirata  <kazu@hxi.com>
15830
15831         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
15832         register_operand.
15833         (mulhisi3): Likewise.
15834         (umulqisi3): Likewise.
15835         (umulhisi3): Likewise.
15836
15837 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
15838
15839         * cppinit.c (output_deps): Correct test for stdout output.
15840         (init_dependency_output): Cure warning.
15841
15842 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15843
15844         * expr.c (store_expr): When converting expression to promoted
15845         equivalent type, allow using SUBREG_REG of TARGET as the target
15846         of the expansion of EXP.
15847         * loop.c (basic_induction_var, case SUBREG): Always look inside.
15848         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
15849         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
15850         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
15851         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
15852
15853 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
15854
15855         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
15856         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
15857         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
15858
15859 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
15860
15861         PR optimization/5747
15862         * loop.c (scan_loop): Update reg info if move_movables created new
15863         pseudos.
15864
15865 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
15866
15867         * gcc.c (init_gcc_spec): Revert last change.
15868
15869 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
15870
15871         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
15872         gpc_reg_operand constraint.
15873
15874 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
15875
15876         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
15877         Simplify comparison of `low'.
15878         (add_operand): Fix formatting.
15879         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
15880         (mask_operand): Disallow mask to wrap in 64-bit mode.
15881         (rs6000_stack_info): Remove redundant test setting push_p.
15882         (output_toc): Fix formatting.
15883         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
15884         cc_reg_not_cr0_operand constraint.
15885         (booldi3, boolcdi3 splitters): Same.
15886
15887 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
15888
15889         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
15890
15891 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
15892
15893         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
15894         gcc invoked with -shared-libgcc.
15895
15896 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
15897
15898         PR c++/5748
15899         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
15900         decl if any of elements was TREE_USED.
15901
15902 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
15903
15904         * config/sparc/sol2.h: Don't include sys/mman.h.
15905         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
15906         (arith_4096_operand): Don't throw high bits away.
15907         (const64_operand): Take sign extension of CONST_INTs into account.
15908         (const64_high_operand, sparc_emit_set_const32): Likewise.
15909         (GEN_HIGHINT64): Likewise.
15910         (sparc_emit_set_const64_quick1): Likewise.
15911         (const64_is_2insns): Likewise.
15912         (print_operand): Use trunc_int_for_mode for sign extension.
15913         * config/sparc/sparc.h (SMALL_INT32): Likewise.
15914         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
15915         chars.  Assume CONST_INT is already properly sign-extended.
15916         (movdi split): Sign-extend each SImode part.
15917         (andsi3 split): Don't mask high bits off, so that result
15918         remains properly sign-extend.
15919         (iorsi3 split): Likewise.
15920         (xorsi3 split): Likewise.
15921
15922 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
15923
15924         * fold-const.c (fold): Fix typo in comments.
15925
15926 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
15927
15928         * Makefile.in (langhooks.o): Update dependencies.
15929
15930 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
15931
15932         * langhooks.c: Include flags.h.
15933
15934 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
15935
15936         * testsuite/gcc.dg/attr-alwaysinline.c: New.
15937
15938         * c-common.c (c_common_post_options): Set inline trees by
15939         default.
15940
15941         * doc/extend.texi (Function Attributes): Document always_inline
15942         attribute.
15943         Update documentation about inlining when not optimizing.
15944
15945         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
15946
15947         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
15948         unless DECL_ALWAYS_INLINE.
15949
15950         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
15951         unless DECL_ALWAYS_INLINE.
15952         (c_disregard_inline_limits): Disregard if always_inline set.
15953
15954         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
15955         Disregard if always_inline set.
15956         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
15957         unless DECL_ALWAYS_INLINE.
15958
15959         * attribs.c (handle_always_inline_attribute): New.
15960         (c_common_attribute_table): Add always_inline.
15961
15962         * config/rs6000/altivec.h: Add prototypes for builtins
15963         requiring the always_inline attribute.
15964
15965 2002-02-21  Eric Christopher  <echristo@redhat.com>
15966
15967         * expmed.c (store_bit_field): Try to simplify the subreg
15968         before generating a new one when when the mode size of
15969         value is less than maxmode.
15970
15971 2002-02-21  Richard Henderson  <rth@redhat.com>
15972
15973         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
15974         than gen_rtx_PLUS to form the sum.
15975         * explow.c (force_reg): Rearrange to not allocate new pseudo
15976         when force_operand returns a register.
15977         * expr.c (expand_assignment): Allow offset_rtx expansion to
15978         return a sum.  Do not force addresses into registers.
15979         (expand_expr): Likewise.
15980         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
15981         to canonicalize arithmetic that didn't simpify.
15982         (simplify_plus_minus): New argument force; update
15983         all callers.  Don't split CONST unless we can do something with it,
15984         and wouldn't lose the constness of the operands.
15985
15986         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
15987         that we generated earlier.
15988
15989 2002-02-21  Tom Tromey  <tromey@redhat.com>
15990
15991         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
15992         (output_line_info): Use constant `1', with a long explanatory
15993         comment.
15994         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
15995
15996 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
15997
15998         * jump.c (redirect_jump): If old label has no UID, don't try to
15999         delete it.
16000
16001 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
16002
16003         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
16004         If input is constant, do shifts at compile time.
16005
16006 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
16007
16008         * doc/extend.texi: Fix some more overfull hboxes.
16009
16010 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
16011
16012         PR optimization/4994
16013         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
16014         register moves.
16015
16016 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
16017
16018         PR c++/4574
16019         * expr.h (expand_and): Add mode argument.
16020         * expmed.c (expand_and): Add mode argument.
16021         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
16022         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
16023         * except.c (expand_builtin_extract_return_addr): Likewise.
16024         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
16025         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
16026         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
16027         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
16028         * config/c4x/c4x.md: Use GEN_INT (x) instead of
16029         gen_rtx (CONST_INT, VOIDmode, x).
16030
16031 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
16032
16033         PR c/4697:
16034         * stmt.c (warn_if_unused_value): Move side effects test once more.
16035
16036 2002-02-20  Torbjorn Granlund  <tege@swox.com>
16037
16038         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
16039         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
16040
16041 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
16042
16043         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
16044         SUBREG or ZERO_EXTEND.
16045
16046 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
16047
16048         * sh.h (current_function_anonymous_args): Remove.
16049         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
16050         of current_function_varargs and current_function_stdarg is set.
16051         * sh.c (sh_expand_prologue): Check current_function_varargs /
16052         current_function_stdarg / TARGET_SH5 instead of
16053         current_function_anonymous_args.
16054
16055         * sh64.h (TARGET_VERSION): Define.
16056
16057 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
16058
16059         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
16060         VRSAVE_REGNO on TARGET_ALTIVEC.
16061
16062 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
16063
16064         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
16065         bits of SImode const_int.
16066         (includes_rshift_p): Likewise.
16067         (print_operand): Call mask_operand and mask64_operand with correct
16068         mode.
16069         (rs6000_output_function_epilogue): Pad traceback table to word.
16070         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
16071         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
16072         mask64_operand with correct mode.
16073         (FUNCTION_ARG_REGNO_P): Correct parentheses.
16074
16075 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
16076
16077         PR debug/4461
16078         * varasm.c (get_pool_constant_mark): New.
16079         * rtl.h (get_pool_constant_mark): Add prototype.
16080         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
16081         be represented if it has not been output.
16082
16083 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
16084
16085         * combine.c (do_SUBST): Sanity check substitutions of
16086         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
16087         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
16088         CONST_INT into its operand.
16089         (known_cond): Likewise, for ZERO_EXTEND.
16090         * simplify-rtx.c (simplify_unary_operation): Fix condition to
16091         allow for simplification of wide modes.  Reject CONST_INTs in
16092         ZERO_EXTEND when their actual mode is not given.
16093
16094 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
16095
16096         * c-decl.c (pushdecl): If no global declaration is found for an
16097         extern declaration in block scope, try a limbo one.
16098
16099 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
16100
16101         PR c++/4401
16102         * c-common.c (pointer_int_sum): Moved from...
16103         * c-typeck.c (pointer_int_sum): ...here.
16104         * c-common.h (pointer_int_sum): Add prototype.
16105
16106 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
16107
16108         PR c++/5713
16109         * c-decl.c (duplicate_decls): Return 0 if issued error about
16110         redeclaration.
16111
16112 2002-02-20  Roger Sayle  <roger@eyesopen.com>
16113             Jakub Jelinek  <jakub@redhat.com>
16114
16115         PR c/4389
16116         * tree.c (host_integerp): Ensure that the constant integer is
16117         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
16118         when pos is zero or non-zero respectively.  Clarify comment.
16119         * c-format.c (check_format_info_recurse): Fix host_integerp
16120         usage; the pos argument should be zero when assigning to a
16121         signed HOST_WIDE_INT.
16122
16123 2002-02-20  Richard Henderson  <rth@redhat.com>
16124
16125         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
16126         of the operand, rather than assuming TImode.
16127         (ix86_expand_binop_builtin): Cope with commutative patterns
16128         using nonimmediate_operand for both operands.
16129         (ix86_expand_timode_binop_builtin): Likewise.
16130         (ix86_expand_store_builtin): Validate operand 1.
16131         (ix86_expand_unop1_builtin): Likewise.
16132
16133 2002-02-20  Philip Blundell  <philb@gnu.org>
16134
16135         PR 5705
16136         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
16137
16138 2002-02-20  Richard Henderson  <rth@redhat.com>
16139
16140         PR c/5615
16141         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
16142
16143 2002-02-20  Tom Tromey  <tromey@redhat.com>
16144
16145         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
16146         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
16147         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
16148         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
16149         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
16150         unconditionally.
16151
16152 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
16153
16154         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
16155           for (const_int 0) in X not just INTVAL.
16156
16157 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
16158
16159         * doc/extend.texi: Avoid or reduce overfull hboxes.
16160
16161 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
16162
16163         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
16164         operations if the field does not start at a mode boundary.
16165
16166 2001-02-20      Joel Sherrill <joel@OARcorp.com>
16167
16168         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
16169         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
16170         Also done for -Acpu and -Amachine.
16171
16172 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
16173
16174         * cppinit.c (init_dependency_output): Take deps output file
16175         from -o if none given with -MF.  Suppress normal output.
16176         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
16177         * doc/cpp.texi, doc/invoke.texi: Update.
16178
16179 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
16180
16181         * toplev.c (output_quoted_string): Write unprintable
16182         characters with octal escapes.
16183
16184 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
16185
16186         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
16187         really_call_used[VRSAVE_REGNO] if not Altivec.
16188
16189 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
16190
16191         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
16192         MODE_MASK.
16193         (constant_pool_expr_1): Fix formatting.
16194         (rs6000_legitimize_reload_address): Likewise.
16195
16196 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16197
16198         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
16199         now that we have one.
16200
16201 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
16202
16203         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
16204         end of first block of bitfields (which was only seven bits);
16205         rename dummy to unused_1; remove comment which is no longer true.
16206
16207 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
16208
16209         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
16210
16211 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
16212
16213         PR 5399
16214         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
16215         if generating PIC.
16216
16217         PR 5054
16218         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
16219         arm_is_longcall_p rather than inspecting call-type cookie
16220         directly.
16221         (call_value_insn) [TARGET_THUMB]: Likewise.
16222
16223 2002-02-19  Graham Stott  <grahams@redhat.com>
16224
16225         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
16226
16227 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
16228
16229         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
16230         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
16231         (FP_SAVE_INLINE): Delete.
16232
16233         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
16234         * config/rs6000/eabi.asm: Remove ABI save restore routines.
16235         * config/rs6000/t-ppccomm: Build crtsavres.o.
16236         * config/rs6000/crtsavres.asm: New file.
16237
16238 2002-02-19  Philip Blundell  <philb@gnu.org>
16239
16240         * config/arm/arm.c (use_return_insn): Don't reject interrupt
16241         functions.
16242         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
16243         (output_return_instruction): Allow interrupt functions to return with
16244         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
16245         (arm_expand_prologue): Subtract 4 before stacking LR in an
16246         interrupt function.
16247
16248 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
16249
16250         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
16251         decl, not just FUNCTION_DECL.
16252         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
16253         (arm_assemble_integer): Likewise.
16254         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
16255         marked local.
16256
16257 2002-02-19  matthew green  <mrg@eterna.com.au>
16258
16259         * config.gcc (sparc-*-netbsdelf*): Enable target.
16260         (sparc64-*-netbsd*): New target.
16261         * config/sparc/netbsd-elf.h: New file.
16262         * config/sparc/t-netbsd64: New file.
16263
16264 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
16265
16266         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
16267
16268 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
16269
16270         * doc/invoke.texi: explicitly list the style guidelines that
16271         -Weffc++ checks for.
16272
16273 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
16274
16275         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
16276
16277 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
16278
16279         PR other/5718
16280         * gcc.c (cpp_unique_options): Treat -o as indicating object file
16281         only if not -E.  If -E, pass -o through to the preprocessor.
16282
16283 2002-02-19  Kazu Hirata  <kazu@hxi.com>
16284
16285         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
16286         register number with an appropriate macro.
16287
16288 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
16289
16290         * doc/rtl.texi (Constants): Close @code tag.
16291
16292 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
16293
16294         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
16295         ("mmx_uavgv4hi3"): Same.
16296         ("pmulhrwv4hi3"): Same.
16297
16298         * tree-inline.c (walk_tree): Handle vectors.
16299
16300         * c-common.c (constant_expression_warning): Handle vectors.
16301         (overflow_warning): Same.
16302
16303         * sched-deps.c (sched_analyze_2): Handle vectors.
16304
16305         * rtlanal.c (rtx_unstable_p): Handle vectors.
16306         (rtx_varies_p): Same.
16307         (count_occurrences): Same.
16308         (regs_set_between_p): Same.
16309         (modified_between_p): Same.
16310         (modified_in_p): Same.
16311         (volatile_insn_p): Same.
16312         (volatile_refs_p): Same.
16313         (side_effects_p): Same.
16314         (may_trap_p): Same.
16315         (inequality_comparisons_p): Same.
16316         (replace_regs): Same.
16317         (computed_jump_p_1): Same.
16318
16319         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
16320         argument.
16321         (inner_mode_array): New.
16322         (copy_rtx): Handle vectors.
16323         (copy_most_rtx): Same.
16324         (rtx_equal_p): Same.
16325         (get_mode_alignment): Adjust for vectors.
16326
16327         * resource.c (mark_referenced_resources): Handle vectors.
16328         (mark_set_resources): Same.
16329
16330         * reload1.c (eliminate_regs): Handle vectors.
16331         (elimination_effects): Same.
16332         (scan_paradoxical_subregs): Same.
16333
16334         * reload.c (subst_reg_equivs): Handle vectors.
16335
16336         * regrename.c (scan_rtx): Handle vectors.
16337
16338         * regclass.c (reg_scan_mark_refs): Handle vectors.
16339
16340         * recog.c (find_single_use_1): Handle vectors.
16341
16342         * local-alloc.c (equiv_init_varies_p): Handle vectors.
16343         (contains_replace_regs): Same.
16344         (memref_referenced_p): Same.
16345
16346         * integrate.c (copy_rtx_and_substitute): Handle vectors.
16347         (subst_constants): Same.
16348
16349         * genattrtab.c (attr_copy_rtx): Handle vectors.
16350         (encode_units_mask): Same.
16351         (clear_struct_flag): Same.
16352         (count_sub_rtxs): Same.
16353
16354         * gcse.c (want_to_gcse_p): Handle vectors.
16355         (oprs_unchanged_p): Same.
16356         (hash_expr_1): Same.
16357         (oprs_not_set_p): Same.
16358         (expr_killed_p): Same.
16359         (compute_transp): Same.
16360         (store_ops_ok): Same.
16361
16362         * function.c (purge_addressof_1): Do not allow paradoxical subregs
16363         of vectors.
16364         (fixup_var_refs_1): Same.
16365         (instantiate_virtual_regs_1): Same.
16366
16367         * fold-const.c (operand_equal_p): Handle vectors.
16368         (fold): Same.
16369         (rtl_expr_nonnegative_p): Same.
16370
16371         * flow.c (mark_used_regs): Handle vectors.
16372
16373         * df.c (df_uses_record): Handle vectors.
16374
16375         * cselib.c (cselib_subst_to_values): Handle vectors.
16376         (cselib_mem_conflict_p): Same.
16377         (hash_rtx): Same.
16378
16379         * cse.c (canon_reg): Handle vectors.
16380         (fold_rt): Same.
16381         (cse_process_notes): Same.
16382         (count_reg_usage): Same.
16383         (canon_hash): Same.
16384
16385         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
16386
16387         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
16388
16389         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
16390         (gen_rtx): Handle CONST_VECTOR.
16391         (gen_const_vector_0): New.
16392         (copy_rtx_if_shared): CONST_VECTORs can be shared.
16393         (reset_used_flags): Same.
16394         (copy_insn_1): Same.
16395         (initializer_constant_valid_p): Handle VECTOR_CST.
16396
16397         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
16398
16399         * doc/rtl.texi (Constants): Document const_vector.
16400         (CONST0_RTX): Update for vectors.
16401         (RTL sharing): Same.
16402
16403         * print-tree.c (print_node): Add case for VECTOR_CST.
16404
16405         * tree.h (TREE_VECTOR_CST_ELTS): New.
16406         (struct tree_vector): New.
16407         (union tree_node): Add vector node.
16408         (build_vector): Add prototype.
16409
16410         * tree.def (VECTOR_CST): New.
16411
16412         * tree.c (build_vector): New.
16413
16414         * expmed.c (make_tree): Handle CONST_VECTOR.
16415
16416         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
16417         (CONST_VECTOR_ELT): New.
16418         (CONST_VECTOR_NUNITS): New.
16419
16420         * machmode.h (GET_MODE_INNER): New.
16421         (DEF_MACHMODE): Accept 8th arg.
16422
16423         * machmode.def: Add 8th argument for vector inner mode.
16424         Add inner vector modes for vectors.
16425
16426         * rtl.def (VEC_CONST): Remove.
16427         (CONST_VECTOR): New.
16428
16429         * expr.c (clear_storage): Allow vectors.
16430         (is_zeros_p): Handle VECTOR_CST.
16431
16432         * varasm.c (output_constant_pool): Handle vectors.
16433         (rtx_const): Add veclo and vechi fields.
16434         (kind): Add RTX_VECTOR.
16435         (decode_rtx_const): Add case for vector.
16436
16437         * config/rs6000/rs6000-protos.h: Add zero_constant.
16438
16439         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
16440         constants.  Force easy vector constants into memory.
16441         (easy_vector_constant): New.
16442         (emit_easy_vector_constant): New.
16443         (rs6000_legitimize_reload_address): Do not generate bad reloads on
16444         darwin.
16445
16446         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
16447         instruction does.
16448         ("altivec_lvxl"): Same.
16449         (altivec_lvebx): Same.
16450         (altivec_lvehx): Same.
16451         (altivec_lvewx): Same.
16452         ("*movv4si_const0"): New.
16453         ("*movv4sf_const0"): New.
16454         ("*movv8hi_const0"): New.
16455         ("*movv16qi_const0"): New.
16456
16457 2002-02-18  Kazu Hirata  <kazu@hxi.com>
16458
16459         * config/h8300/h8300.c (notice_update_cc): Use
16460         cc_status.value2.
16461
16462 2002-02-18  Kazu Hirata  <kazu@hxi.com>
16463
16464         * config/h8300/h8300.md (divmod patterns): Change the
16465         constraints for operands[1] to register_operand.
16466
16467 2002-02-18  Kazu Hirata  <kazu@hxi.com>
16468
16469         * config/h8300/h8300-protos.h: Remove the prototype for
16470         p_operand.
16471         * config/h8300/h8300.c (p_operand): Remove.
16472         * config/h8300/h8300.md: Replace p_operand with
16473         const_int_operand.
16474
16475 2002-02-18 Philip Blundell <pb@nexus.co.uk>
16476
16477         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
16478         comment.
16479         (output_return_instruction): Allow use of LDR to unstack
16480         return addresss even for interrupt handlers or when
16481         interworking.  If compiling for ARMv5, use interworking-safe
16482         return instructions by default.  Remove duplicated code and
16483         lengthy "strcat" sequences.
16484
16485 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16486
16487         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
16488         (LINK_EH_SPEC): Define.
16489         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
16490
16491 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
16492
16493         * config/s390/s390.c (s390_emit_prologue): Do not set the
16494         frame_related flag for call-clobbered registers.
16495
16496 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
16497
16498         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
16499         (construct_container): Fix handling of SSE operands.
16500         (ix86_expand_builtin): Fix handling of 64bit pointers.
16501         (mmx_maskmovq_rex): New pattern.
16502
16503 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
16504
16505         * regrename.c (kill_set_value): Handle subregs properly.
16506
16507 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
16508
16509         * objc/objc-act.c (handle_impent): Remove leading '*'
16510         from objc_class_name.
16511
16512 2002-02-17  Richard Henderson  <rth@redhat.com>
16513
16514         * config/alpha/alpha.c (some_small_symbolic_operand,
16515         some_small_symbolic_operand_1, split_small_symbolic_operand,
16516         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
16517         Handle small SYMBOL_REFs anywhere, not just inside memories.
16518         * config/alpha/alpha-protos.h: Update.
16519         * config/alpha/alpha.h (PREDICATE_CODES): Update.
16520         * config/alpha/alpha.md (small symbolic operand splitter): Update.
16521
16522 2002-02-17  Roland McGrath  <roland@frob.com>
16523
16524         * config.gcc (powerpc-*-gnu-gnualtivec*,
16525         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
16526         * config/rs6000/gnu.h: New file.
16527         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
16528         Grok "gnu" in rs6000_abi_name.
16529         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
16530         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
16531         Grok -mcall-gnu analogous to -mcall-linux et al.
16532         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
16533         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
16534         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
16535
16536 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
16537
16538         PR c/3444:
16539         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
16540         shortening.
16541
16542 2002-02-17  Philipp Thomas  <pthomas@suse.de>
16543
16544         * config/cris/cris.h: Undefine STARTFILE_SPEC and
16545         ENDFILE_SPEC before (re)defining them.
16546
16547 2002-02-17  Kazu Hirata  <kazu@hxi.com>
16548
16549         * config/h8300/h8300.c: Fix formatting.
16550         * config/h8300/h8300.h: Likewise.
16551
16552 2002-02-17  Philipp Thomas  <pthomas@suse.de>
16553
16554         * doc/tm.texi: Explain why empty strings should not be
16555         marked for translation.
16556
16557 2002-02-17  Philipp Thomas  <pthomas@suse.de>
16558
16559         * final.c (output_operand_lossage): Changed to accept
16560         printf style arguments. Change calls where necessary.
16561         * output.h (output_operand_lossage): Change declaration
16562         accordingly. Update copyright.
16563         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
16564         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
16565         Update copyright date where necessary.
16566
16567         * config/i386/i386.c (print_operand): Likewise. Remove use of
16568         sprintf.
16569
16570         * config/cris/cris.c (cris_operand_lossage): Likewise.
16571         Rename parameter so that exgettext recognizes it as
16572         translatable message.
16573         (LOSE_AND_RETURN): Rename parameter to msgid.
16574
16575 2002-02-17  Kazu Hirata  <kazu@hxi.com>
16576
16577         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
16578         hard coded register number with an appropriate macro.
16579         (HARD_REGNO_MODE_OK): Likewise.
16580         (ARG_POINTER_REGNUM): Likewise.
16581         (STATIC_CHAIN_REGNUM): Likewise.
16582         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
16583         * config/h8300/h8300.md (define_constants): Define more
16584         register numbers.
16585
16586 2002-02-17  Philipp Thomas  <pthomas@suse.de>
16587
16588         * config/i386/i386.h: Don't mark empty strings for translation.
16589
16590 2002-02-16  H.J. Lu <hjl@gnu.org>
16591
16592         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
16593
16594 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
16595
16596         * cppinit.c (merge_include_chains): Check for brack being
16597         NULL before attempting to merge it with qtail.
16598
16599 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
16600
16601         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
16602         DBX_DEBUG.
16603
16604 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16605
16606         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
16607
16608 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16609
16610         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
16611         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
16612         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
16613
16614 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16615
16616         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
16617         now only if !TARGET_FIX.
16618         (*movsi_nt_vms_fix): New pattern.
16619
16620 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
16621
16622         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
16623         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
16624         (alpha_sa_mask, alpha_sa_size): Reflect above change.
16625         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
16626         (alpha_start_function, alpha_expand_epilogue): Likewise.
16627         (unicosmk_gen_dsib): Likewise.
16628
16629 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16630
16631         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
16632
16633 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
16634
16635         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
16636         check_and_change_labels, s390_final_chunkify): Delete.
16637         (s390_split_branches, s390_chunkify_pool): New functions.
16638         (s390_function_prologue): Call them.
16639
16640         * config/s390/s390.h (S390_REL_MAX): Delete.
16641         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
16642
16643         * config/s390/s390.md (cjump, icjump, jump): Fix length
16644         attribute calculation.
16645
16646
16647 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
16648
16649         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
16650         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
16651
16652 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16653
16654         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
16655         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
16656         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
16657
16658 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
16659
16660         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
16661
16662 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
16663
16664         * reload.c (find_dummy_reload): Check that an output register
16665         is valid for its mode.
16666
16667 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
16668
16669         * combine.c (known_cond): After replacing the REG of a SUBREG, try
16670         to simplify it.
16671
16672         * function.c (assign_parms): Demote promoted argument passed by
16673         transparent reference.
16674
16675 2001-02-14      Joel Sherrill <joel@OARcorp.com>
16676
16677         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
16678         -Acpu() and -Amachine() to eliminate warnings.
16679
16680 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
16681
16682         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
16683
16684 2002-02-14  Kazu Hirata  <kazu@hxi.com>
16685
16686         * config/h8300/h8300-protos.h: Update the prototype for
16687         const_costs.
16688         * config/h8300/h8300.c (const_costs): Treat SET as a little
16689         more expensive operation.
16690         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
16691         reference to const_costs.
16692
16693 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
16694
16695         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
16696
16697 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
16698
16699         PR c/5503:
16700         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
16701         use arguments from newtype.
16702
16703 2002-02-13  Eric Christopher  <echristo@redhat.com>
16704
16705         * config/mips/mips.c (override_options): Add check for march/mipsX
16706         on the same command line. Fix error message in cpu processing.
16707         Remove architecture and ISA checks.
16708
16709 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
16710
16711         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
16712
16713         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
16714
16715 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
16716
16717         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
16718         alternatives.
16719         ("*movv8hi_internal1"): Same.
16720         ("*movv16qi_internal1"): Same.
16721         ("*movv4sf_internal1"): Same.
16722
16723         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
16724         not push_reload for altivec modes.
16725
16726 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
16727
16728         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
16729         all RTEMS targets including removal of #includes from config/*/rtems*.h
16730         file and adding them to tm_file setting. Added xm_defines=POSIX to
16731         many targets.
16732         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
16733         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
16734         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
16735         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
16736         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
16737         config/m68k/rtemself.h: Ditto.
16738         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
16739         config/mips/rtems64.h: Ditto.
16740         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
16741         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
16742         Ditto.
16743         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
16744         config/sparc/rtemself.h: Ditto.
16745         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
16746         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
16747         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
16748         more like arm-elf.
16749         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
16750         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
16751         target made more similar to i386-elf.
16752         * config/i386/t-rtems-i386: Added soft float support and multilibs.
16753         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
16754         be similar to config/m68k/t-m68kelf.
16755         * gthr-rtems.h: Encapsulate with extern "C" for C++.
16756
16757 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
16758
16759         * regmove.c (kill_value): Handle subregs.
16760
16761 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
16762
16763         * i386.md (mul patterns): Allow memory operand to be first;
16764         add expanders where needed; fix constraints.
16765         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
16766         Allow memory operand to be the first.
16767
16768         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
16769         operands.
16770
16771 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
16772
16773         PR c/5681:
16774         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
16775         GET_MODE (x).
16776
16777 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
16778
16779         PR optimization/5547:
16780         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
16781         all valid IA-32 address modes involving non-scaled %ebx and
16782         GOT/GOTOFF as displacement.
16783
16784 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
16785
16786         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
16787         after emitting ltorg insns.
16788
16789         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
16790         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
16791         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
16792         *abssf2): Fix "op_type" attribute.
16793
16794 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
16795
16796         * mkconfig.sh: Avoid using a subshell redirect.
16797         ($output.T): Change to $(output)T.
16798         (ENABLE_NLS): Remove unneeded undef.
16799
16800         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
16801         * config/alpha/x-vms (libsubdir): Define.
16802
16803         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
16804         register frame procedures. Optimize retrieving context.
16805
16806         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
16807         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
16808         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
16809
16810 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16811
16812         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
16813         Make same change as for find_base_value.
16814
16815 2002-02-13  Kazu Hirata  <kazu@hxi.com>
16816
16817         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
16818         of QImode and SImode.
16819
16820 2002-02-13  Kazu Hirata  <kazu@hxi.com>
16821
16822         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
16823         length computation of movsi.
16824         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
16825
16826 2002-02-13  Kazu Hirata  <kazu@hxi.com>
16827
16828         * config/h8300/h8300.md (subqi3): Tighten the predicate for
16829         operands[2] to register_operand.
16830
16831 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
16832
16833         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
16834
16835 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
16836
16837         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
16838         for altivec_lvx* and altivec_stvx*.
16839         ("*movv4si_internal"): Add constraint for loading from GPRs.
16840         ("*movv8hi_internal1"): Same.
16841         ("*movv16qi_internal1"): Same.
16842         ("*movv4sf_internal1"): Same.
16843
16844         * config/rs6000/rs6000.c (altivec_register_operand): New.
16845
16846         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
16847         altivec_register_operand.
16848
16849 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
16850
16851         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
16852         handle SYMBOL_REF.
16853
16854 2002-02-13  Stan Shebs  <shebs@apple.com>
16855
16856         * c-typeck.c (digest_init): Handle vectors.
16857         (really_start_incremental_init): Same.
16858         (pop_init_level): Same.
16859         (process_init_element): Same.
16860
16861         * varasm.c (output_constant): Same.
16862
16863         * expr.c (clear_storage): Same.
16864         (store_constructor): Same.
16865
16866 2002-02-12  Eric Christopher  <echristo@redhat.com>
16867
16868         * explow.c (hard_function_value): Add comment explaining
16869         signed/unsigned comparison.
16870
16871 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
16872
16873         * jump.c (never_reached_warning): Add finish argument.
16874         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
16875         real insn after end.
16876         * rtl.h (never_reached_warning): Adjust prototype.
16877         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
16878         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
16879         never_reached_warning.
16880
16881 2002-02-12  Graham Stott  <grahams@redhat.com>
16882
16883         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
16884
16885 2002-02-12  Kazu Hirata  <kazu@hxi.com>
16886
16887         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
16888         logical shifts on H8/300.
16889         (shift_alg_si): Improve several shifts on H8/300.
16890         (get_shift_alg): Likewise.
16891
16892 2002-02-12  Graham Stott  <grahams@redhat.com>
16893
16894         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
16895
16896 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16897
16898         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
16899         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
16900
16901 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
16902
16903         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
16904         non-CONST_INT through default_assemble_integer.
16905         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
16906         <case 8>: Abort for CONST_DOUBLE.
16907
16908 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16909
16910         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
16911         is specified.
16912         * config/pa/pa-linux.h (LIB_SPEC): Delete.
16913         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
16914
16915 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
16916
16917         * config/stormy16/stormy16.md (zero_extendqihi2): New.
16918
16919 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
16920
16921         * regrename.c (regrename_optimize): Don't accept a
16922         part-clobbered register if the replaced register is not part
16923         clobbered.
16924
16925         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
16926         take padding into account when computing the argument value.
16927
16928         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
16929
16930         * combine.c (try_combine): Apply substitutions in
16931         CALL_INSN_FUNCTION_USAGE too.
16932
16933 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
16934
16935         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
16936         __builtin_altivec_abs*.
16937         (bdesc_abs): New.
16938
16939         * config/rs6000/rs6000.h (rs6000_builtins): Add
16940         ALTIVEC_BUILTIN_ABS*.
16941
16942         * config/rs6000/altivec.h: Use const char for builtins expecting
16943         literals.
16944         (vec_abs): New versions for C and C++.
16945         (vec_abss): Same.
16946
16947 2002-02-10  Kazu Hirata  <kazu@hxi.com>
16948
16949         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
16950         using Pmode.
16951
16952 2002-02-10  Kazu Hirata  <kazu@hxi.com>
16953
16954         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
16955         constant definition from h8300.md.
16956         (FRAME_POINTER_REGNUM): Likewise.
16957         * config/h8300/h8300.md (define_constants): Add FP_REG.
16958
16959 2002-02-10  Kazu Hirata  <kazu@hxi.com>
16960
16961         * config/h8300/h8300.c (print_operand): Remove redundant code.
16962
16963 2002-02-10  Kazu Hirata  <kazu@hxi.com>
16964
16965         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
16966         * config/h8300/h8300.c (byte_reg): Make it static.
16967
16968 2002-02-10  Richard Henderson  <rth@redhat.com>
16969
16970         PR c/5623
16971         * c-typeck.c (incomplete_type_error): Handle flexible array members.
16972
16973 2002-02-10  Richard Henderson  <rth@redhat.com>
16974
16975         PR c++/5624
16976         * tree.c (append_random_chars): Don't abort if main_input_filename
16977         does not exist.
16978
16979 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
16980
16981         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
16982
16983 2002-02-10  Kazu Hirata  <kazu@hxi.com>
16984
16985         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
16986         (pushhi1): Likewise.
16987
16988 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16989
16990         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
16991         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
16992
16993 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
16994
16995         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
16996         remove MASK_VIS.
16997         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
16998
16999 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17000
17001         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
17002         a half of an SImode register on H8/300.
17003
17004 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
17005
17006         * i386.md (movdi_2): Add missing '!'.
17007
17008 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17009
17010         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
17011         definitions.
17012
17013 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17014
17015         * config/h8300/h8300.md (length): Correct the distance valid
17016         for the short branch.
17017
17018 2002-02-09  Kazu Hirata  <kazu@hxi.com>
17019
17020         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
17021
17022 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
17023
17024         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
17025         registers in SImode.
17026         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
17027         part-clobbered.
17028
17029         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
17030         patch.
17031
17032         Contribute sh64-elf.
17033         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
17034         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
17035         (sh_cannot_modify_jumps_p): New function.
17036         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
17037         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
17038         (sh_ms_bitfield_layout_p): New function.
17039         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
17040                     Zack Weinberg  <zack@codesourcery.com>
17041         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
17042         expand_simple_binop instead of expand_binop.
17043         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
17044         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
17045         use of .quad and .uaquad.
17046         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
17047         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
17048         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17049         * config/sh/sh.md (movdi_const, movdi_const_32bit,
17050         movdi_const_16bit): Make sure all CONSTs have modes.
17051         (sym2PIC): Ditto, but by adjusting all callers.
17052         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
17053         if the prologue calls the SHmedia argument decoder or register
17054         saver.
17055         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17056         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
17057         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
17058         (sh_expand_epilogue): Don't emit USE of return target register.
17059         (prepare_move_operands): Legitimize DImode PIC addresses.
17060         (sh_media_register_for_return): Skip tr0, used to initialize the
17061         PIC register.
17062         (sh_expand_prologue): Remove explicit USE of return register.
17063         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
17064         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
17065         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
17066         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
17067         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
17068         EXTRA_CONSTRAINT_T.
17069         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
17070         (MOVI_SHORI_BASE_OPERAND_P): New.
17071         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
17072         (EXTRA_CONSTRAINT_T): Define in terms of them.
17073         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
17074         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
17075         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
17076         alternatives supporting TARGET_REGS.
17077         (UNSPEC_GOTPLT): New constant.
17078         (movdi split): Move incrementing of LABEL_NUSES...
17079         (movdi_const, movdi_const_32bit): Here.  Use
17080         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
17081         (movdi_const_16bit): New.
17082         (call, call_value) [flag_pic]: Use GOTPLT.
17083         (call_pop, call_value_pop): New expands.
17084         (call_pop_compact, call_pop_rettramp): New insns.
17085         (call_value_pop_compact, call_value_pop_rettramp): New insns.
17086         (sibcall) [flag_pic]: Use GOT.
17087         (builtint_setjmp_receiver): Remove bogus, unused expand.
17088         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
17089         (*pt, *ptb, ptrel): New insns.
17090         (sym2GOT): Handle DImode GOT.
17091         (sym2GOTPLT, symGOTPLT2reg): New expands.
17092         (sym2PIC): New expand.
17093         (shcompact_return_tramp): Use GOTPLT to return trampoline.
17094         (shcompact_return_tramp_i): Use return register explicitly.
17095         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
17096         disable flag_reorder_blocks.
17097         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
17098         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
17099         clobbers, for clarity.
17100         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
17101         restoring of r0 in macl as MAYBE_DEAD.
17102         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
17103         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
17104         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
17105         alter_subreg all over.
17106         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
17107         reload, instead of emitting instructions that would require
17108         reloading.
17109         (casesi_load_media): Add missing modes.
17110         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
17111         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
17112         as used if the argument decoder is called.
17113         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
17114         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
17115         Pmode, then extend it to DImode if necessary.
17116         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
17117         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
17118         constants in FPU-enabled SHmedia, let them be loaded from memory.
17119         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
17120         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
17121         Adjust whitespace in assembly output templates.
17122         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
17123         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
17124         mode of if_then_else.
17125         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
17126         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
17127         sh.h.
17128         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
17129                     Joern Rennecke <amylaar@redhat.com>
17130         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
17131         (SUBTARGET_CPP_PTR_SPEC): New.
17132         (SUBTARGET_CPP_SPEC): Remove.
17133         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
17134         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
17135         Fix typo in previous checkin.
17136         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
17137         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
17138         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
17139                     Alexandre Oliva  <aoliva@redhat.com>
17140         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
17141         what single FP register can hold for SHmedia target.
17142         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
17143                     Alexandre Oliva  <aoliva@redhat.com>
17144         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
17145         Do not split into SUBREG.
17146         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
17147         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
17148         and added new functions as specified in SH5 ABI r9.
17149         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
17150         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
17151         8-byte boundary.
17152         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
17153         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
17154         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
17155         and consttable_window_ends.
17156         2001-06-03  Graham Stott  <grahams@redhat,com>
17157         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
17158         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
17159         * config/sh/sh.c (print_operand): Handle floating-point pair,
17160         vector and matrix registers.
17161         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
17162         vector modes into account.
17163         * config/sh/sh.md (movv2sf): Split move between registers into
17164         movdf.
17165         (movv4sf, movv16sf): Introduce insns that get split only after
17166         reload.
17167         * config/sh/shmedia.h: Fix Copyright dates.
17168         * config/sh/ushmedia.h: Likewise.  Move loop counter
17169         declarations into conditionals that uses them.
17170         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
17171         loop boundary.
17172         * config/sh/sshmedia.h: Fix Copyright dates.
17173         (sh_media_PUTCFG): Fix constraints.
17174         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
17175         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
17176         ptrmemfunc_vbit_in_delta for SH5.
17177         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
17178         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
17179         * invoke.texi: Likewise.
17180         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
17181         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
17182         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
17183         GCC_pop_shmedia_regs_nofpu): New global symbols.
17184         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
17185         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
17186         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
17187         compact function with nonlocal labels.
17188         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
17189         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
17190         (initial_elimination_offset): Account for their stack space.
17191         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
17192         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
17193         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
17194         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
17195         least one of the operands to be a register.
17196         (movv2sf): Likewise.  Renamed to movv2sf_i.
17197         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
17198         prepare_move_operands() before emitting SHmedia insns.
17199         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
17200         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
17201         Don't save nor initialize r12.  Don't mis-align the stack.
17202         Pad the code with a nop.
17203         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
17204         stack.
17205         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
17206         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
17207         [__SHMEDIA__]: Implement.
17208         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
17209         * config/sh/sh.md: Set latency of `pt' closer to reality.
17210         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
17211         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
17212         Set move, load and store type attributes.
17213         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
17214         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
17215         profiling.
17216         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
17217         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
17218         * config/sh/sh.c (sh_media_register_for_return): New function.
17219         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
17220         branch-target register.
17221         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
17222         * config/sh/sh.md (return_media_i): Use any call-clobbered
17223         branch-target register.
17224         (return_media): If r18 wasn't copied in the prologue, copy it
17225         here.
17226         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
17227         Clear class FP0_REGS.
17228         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
17229         from elf.h.
17230         2001-03-08  DJ Delorie  <dj@redhat.com>
17231         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
17232         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
17233         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
17234         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
17235         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
17236         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
17237         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
17238         return value correctly for call_cookie.
17239         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
17240         * config/sh/crt1.asm (start): Modified so as to call
17241         ___setup_argv_and_call_main.
17242         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
17243         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
17244         SHmedia mode.
17245         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
17246         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
17247         (STRIP_NAME_ENCODING): Use it.
17248         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
17249         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
17250         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
17251         prepare_scc_operands().
17252         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
17253         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
17254         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
17255         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
17256         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
17257         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
17258         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
17259         used in shcompact_incoming_args.
17260         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
17261         change.
17262         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
17263         mode.
17264         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
17265         Adjust accordingly.
17266         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
17267         Simplify.  Adjust.  Add sanity check.
17268         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
17269         FPU_SINGLE_BIT.
17270         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
17271         TARGET_SHCOMPACT.
17272         (udivsi3, divsi3): Use them.
17273         (force_mode_for_call): New insn.
17274         (call, call_value, sibcall_value): Emit it before SHcompact
17275         calls.
17276         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
17277         * config/sh/sh.md (call, call_value, sibcall): Make sure the
17278         call cookie is non-NULL before taking its value.
17279         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
17280         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
17281         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
17282         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
17283         block.
17284         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
17285         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
17286         temporary for stack adjusts.  Use MACL and MACH to pass
17287         arguments to shcompact_incoming_args.
17288         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
17289         clobber r1.
17290         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
17291         (nested_trampoline): Load static chain address into r1.
17292         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
17293         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
17294         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
17295         fp_arith_reg_operand().
17296         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
17297         * config/sh/sh.md (casesi): Sign-extend the first two operands,
17298         and use signed compares for them.
17299         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
17300         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
17301         ones properly aligned.
17302         (find_barrier): Account for extra alignment needed for 8-byte wide
17303         constants.
17304         (machine_dependent_reorg): Require a label for the second 4-byte
17305         constant after an 8-byte one.
17306         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
17307         change.
17308         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
17309         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
17310         last_float when switching float modes.
17311         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
17312         auto-increment for general-purpose registers.
17313         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
17314         result.
17315         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
17316         for stack adjust.
17317         * config/sh/sh.c (sh_builtin_saveregs): Support using all
17318         registers for varargs.
17319         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
17320         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
17321         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
17322         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
17323         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
17324         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
17325         call_cookie accordingly.
17326         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
17327         (SHCOMPACT_BYREF): Likewise.
17328         (SHCOMPACT_FORCE_ON_STACK): New macro.
17329         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
17330         (sh_builtin_saveregs): Likewise.
17331         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
17332         shcompact_incoming_args): Use new shift values.  Support
17333         sequences of consecutive and non-consecutive pushes/pops.
17334         * config/sh/sh.md (return): Don't explicitly use PR_REG.
17335         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
17336         * config/sh/sh.h (TEXT_SECTION): Define.
17337         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
17338         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
17339         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
17340         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
17341         return values on FPU-enabled SHmedia.
17342         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
17343         FPU-enabled SHmedia.
17344         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
17345         value is returned in a non-FP reg and is not returned by
17346         reference.
17347         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
17348         jump_ind.
17349         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
17350         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
17351         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
17352         quad-aligned to be passed by callee-copy reference.
17353         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
17354         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
17355         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
17356         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
17357         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
17358         copying low-numbered FP regs to r7 and r8.
17359         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
17360         FP regs to general-purpose regs only if the copy was passed on the
17361         stack.
17362         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
17363         copying FP reg to r9.
17364         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
17365         copy FP regs to general-purpose regs only in outgoing calls.
17366         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
17367         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
17368         HOST_WIDE_INT.
17369         * config/sh/sh.h (struct sh_args): Document all fields.
17370         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
17371         passed partially on the stack should not consider making
17372         sibcalls.
17373         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
17374         stack_regs only for incoming calls.  When passing FP args,
17375         make sure there are FP regs available before modifying
17376         call_cookie.
17377         (SHCOMPACT_BYREF): Pass double args in general-purpose
17378         registers by reference.
17379         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
17380         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
17381         attempt to generate sibcalls if the caller got any arguments
17382         by reference.
17383         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
17384         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
17385         to 8-byte boundaries.
17386         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
17387         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
17388         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
17389         stored in the stack.
17390         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
17391         for the offsets to have the ISA bit set.
17392         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
17393         invocation.  Use beq instead of bgt to mark end of sequence of
17394         loads.
17395         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
17396         bgt to mark end of sequence of stores.
17397         * config/sh/sh.c (arith_operand): Don't check whether
17398         CONST_OK_FOR_J for now.
17399         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
17400         instead of long for conversion.
17401         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
17402         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
17403         before passing it to fprintf.
17404         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
17405         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
17406         Call set_fpscr before reading/writing SR.
17407         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
17408         Call set_fpscr.
17409         * config/sh/lib1funcs.asm: Add `.align 2' directives before
17410         SHmedia code.
17411         (FMOVD_WORKS): Define on SH5 with FPU.
17412         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
17413         setting.
17414         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
17415         _fpscr_values.
17416         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
17417         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
17418         address.
17419         (ia_main_table): Ditto.
17420         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
17421         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
17422         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
17423         the definitions from sh.h.
17424         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
17425         TARGET_SH5.
17426         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
17427         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
17428         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
17429         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
17430         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
17431         Increment LABEL_NUSES.
17432
17433         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
17434         TARGET_SH5.
17435         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
17436         defined.
17437         * config/sh/elf.h (SIZE_TYPE): Likewise.
17438         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
17439         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
17440         shcompact_incoming_args): Load switch table addresses using
17441         datalabel.
17442         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
17443         (NO_BUILTIN_SIZE_TYPE): Define.
17444         (SIZE_TYPE): Don't define.
17445         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
17446         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
17447         definition of __SH5__=32 for -m5-compact-nofpu.
17448         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
17449         ADDR_DIFF_VEC.
17450         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
17451         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
17452         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
17453         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
17454         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
17455         (INSN_LENGTH_ALIGNMENT): Likewise.
17456         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
17457         * config/sh/sh.md (call, call_value, sibcall): Simplify
17458         copying of non-branch-target register.
17459         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
17460         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
17461         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
17462         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
17463         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
17464         floating-point values as structs.
17465         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
17466         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
17467         general-purpose register.
17468         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
17469         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
17470         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
17471         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
17472         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
17473         (ENCODE_SECTION_INFO): Enclose variables and constants in
17474         DATALABEL unspecs.
17475         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
17476         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
17477         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
17478         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
17479         only for LABEL_REFs.  For SYMBOL_REFs, prepend
17480         SH_DATALABEL_ENCODING to the symbol name.
17481         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
17482         convert_mode().
17483         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
17484         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
17485         UNSPEC_DATALABEL.
17486         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
17487         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
17488         (DATALABEL_REF_P): Don't require CONST.
17489         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
17490         REL label.
17491         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
17492         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
17493         right.
17494         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
17495         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
17496         Use shallow_copy_rtx and PUT_MODE to change the mode of
17497         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
17498         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
17499         on SHmedia using GENERAL_REGs.
17500         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
17501         bltu_media_i): Fix reversion of conditions.
17502         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
17503         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
17504         * config/sh/sh.c (output_far_jump): Save r13 in macl.
17505         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
17506         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
17507         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
17508         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
17509         (GCC_nested_trampoline): Likewise.
17510         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
17511         * config/sh/sh.c (gen_datalabel_ref): Define.
17512         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
17513         (INITIALIZE_TRAMPOLINE): Likewise.
17514         (TRAMPOLINE_ADJUST_ADDRESS): Define.
17515         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
17516         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
17517         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
17518         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
17519         (ic_invalidate): Adjust for SH5.
17520         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
17521         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
17522         _nested_trampoline.
17523         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
17524         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
17525         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
17526         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
17527         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
17528         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
17529         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
17530         * config/sh/sh.c (target_reg_operand): Match only target-branch
17531         registers and pseudos that aren't virtual registers.
17532         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
17533         Copy operands that don't match target_reg_operand to pseudos.
17534         (call_media, call_value_media, sibcall_media): Use
17535         target_reg_operand instead of target_operand.
17536         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
17537         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
17538         * config/sh/sh.c (target_reg_operand): Match hardware registers
17539         other than branch-target registers.
17540         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
17541         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
17542         (fpscr_values) [SH5 == 32]: Define.
17543         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
17544         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
17545         Handle function addresses coming in SUBREGs.
17546         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
17547         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
17548         shcompact_return_trampoline): Use datalabel where appropriate.
17549         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
17550         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
17551         general-purpose register to copy one branch-target register to
17552         another.
17553         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
17554         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
17555         SYMBOL_REFs with VOIDmode.
17556         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
17557         bltu_media_i): New insns.
17558         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
17559         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
17560         (INIT_CUMULATIVE_ARGS): Likewise.
17561         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
17562         * machmode.def (V16SFmode): New mode.
17563         * c-common.c (type_for_mode): Support V2SF and V16SF.
17564         * tree.c (build_common_tree_nodes_2): Likewise.
17565         * tree.h (tree_index): Likewise.
17566         * calls.c (emit_call_1): Take args_so_far.  Adjust all
17567         callers.  Introduce CALL_POPS_ARGS.
17568         * tm.texi (CALL_POPS_ARGS): Document.
17569         * config/sh/crt1.asm: Implement in SHmedia mode.
17570         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
17571         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
17572         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
17573         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
17574         Implement divsi and udivsi in SHmedia mode.  Introduce
17575         SHcompact trampolines.
17576         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
17577         only in SHmedia64.
17578         (regno_reg_class): Rewrite.
17579         (fp_reg_names): Remove.
17580         (sh_register_names, sh_additional_register_names): New.
17581         (print_operand): Added `u'.  Support SUBREGs in addresses.
17582         Add parentheses around shifted CONSTs.
17583         (output_file_start): Output .mode and .abi directives.
17584         (shiftcosts, addsubcosts, multcosts): Adjust.
17585         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
17586         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
17587         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
17588         bytes, not registers.  Take into account the need for the
17589         SHcompact incoming args trampoline.  Adjust all callers.
17590         (sh_expand_prologue): Take stack_regs into account.  Call
17591         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
17592         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
17593         stack aligned as per SH5 ABI.
17594         (sh_builtin_saveregs): Support SH5 ABI.
17595         (sh_build_va_list, sh_va_start): Likewise.
17596         (initial_elimination_offset): Take alignment into account.
17597         Compute location of PR according to the SH5 stack frame.
17598         (arith_reg_operand): Reject branch-target registers.
17599         (shmedia_6bit_operand): New.
17600         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
17601         (target_reg_operand): Match DImode only.  Accept SUBREGs.
17602         (target_operand): New.
17603         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
17604         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
17605         SIBCALL_REGS for SHmedia.
17606         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
17607         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
17608         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
17609         (TARGET_SWITCHES): New SH5 flags.
17610         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
17611         VALID_REGISTER_P to disable unsupported registers.
17612         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
17613         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
17614         (FUNCTION_ARG_PADDING): Define.
17615         (FASTEST_ALIGNMENT): Adjust.
17616         (SH_REGISTER_NAMES_INITIALIZER): New.
17617         (sh_register_names): Declare.
17618         (DEBUG_REGISTER_NAMES): Define.
17619         (REGISTER_NAMES): Define based on sh_register_names.
17620         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
17621         (sh_additional_register_names): Declare.
17622         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
17623         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
17624         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
17625         (REGISTER_NATURAL_MODE): Define.
17626         (FIRST_PSEUDO_REGISTER): Adjust.
17627         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
17628         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
17629         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
17630         (VECTOR_MODE_SUPPORTED_P): Define.
17631         (REG_CLASS_CONTENTS): Adjust.
17632         (SMALL_REGISTER_CLASSES): Adjust.
17633         (REG_ALLOC_ORDER): Adjust.
17634         (INDEX_REG_CLASS): Adjust.
17635         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
17636         (CONST_OK_FOR_LETTER_P): Adjust.
17637         (PREFERRED_RELOAD_CLASS): Adjust.
17638         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
17639         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
17640         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
17641         (FIRST_FP_PARM_REG): Adjust.
17642         (CALL_POPS_ARGS): Define.
17643         (FUNCTION_ARG_REGNO_P): Adjust.
17644         (struct sh_args): New fields.
17645         (GET_SH_ARG_CLASS): Adjust.
17646         (INIT_CUMULATIVE_ARGS): Adjust.
17647         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
17648         (FUNCTION_ARG_ADVANCE): Adjust.
17649         (FUNCTION_ARG): Adjust.
17650         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
17651         (FUNCTION_ARG_CALLEE_COPIES): Define.
17652         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
17653         (STRICT_ARGUMENT_NAMING): Define.
17654         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
17655         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
17656         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
17657         (SETUP_INCOMING_VARARGS): Adjust.
17658         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
17659         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
17660         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
17661         (SUBREG_OK_FOR_INDEX_P): Adjust.
17662         (EXTRA_CONSTRAINT_S): Update.
17663         (EXTRA_CONSTRAINT_T): New.
17664         (EXTRA_CONSTRAINT): Adjust.
17665         (GO_IF_LEGITIMATE_INDEX): Adjust.
17666         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
17667         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
17668         (MOVE_MAX): Adjust.
17669         (MAX_MOVE_MAX): Define.
17670         (Pmode): Adjust.
17671         (CONST_COSTS): Adjust.
17672         (REGISTER_MOVE_COST): Adjust.
17673         (BRANCH_COST): Adjust.
17674         (TEXT_SECTION_ASM_OP): Adjust.
17675         (DBX_REGISTER_NUMBER): Adjust.
17676         (ASM_OUTPUT_DOUBLE_INT): New.
17677         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
17678         (PREDICATE_CODES): Adjust.
17679         (PROMOTE_MODE): Adjust.
17680         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
17681         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
17682         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
17683         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
17684         (DR0_REG, DR2_REG, DR4_REG): Renumber.
17685         (TR0_REG, TR1_REG, TR2_REG): New.
17686         (XD0_REG): Renumber.
17687         (UNSPEC_COMPACT_ARGS): New.
17688         (type): Added pt and ptabs.
17689         (length): Default to 4 on SHmedia.  Default pt length to 12
17690         and     20 on SHmedia32 and SHmedia64, respectively.
17691         (pt): New function unit.
17692         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
17693         Add whitespace between operands of SHmedia instructions.
17694         (movdicc): Fix.
17695         (adddi3_media, addsi3_media): Adjust constraints.
17696         (subsi3) [SHmedia]: Force operand 1 into a register.
17697         (udivsi3_i1_media, udivsi3_i4_media): New.
17698         (udivsi3): Support SHmedia.
17699         (divsi3_i1_media, divsi3_i4_media): New.
17700         (divsi3): Support SHmedia.
17701         (anddi3, iordi3, xordi3): Adjust constraints.
17702         (zero_extendhidi2, zero_extendqidi2): New.
17703         (extendsidi2, extendhidi2, extendqidi2): New.
17704         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
17705         (pop_e, pop_fpul, pop_4): Likewise.
17706         (movsi_media): Support FP and BT registers.
17707         (movsi_media_nofpu): New.  Adjust splits to DImode.
17708         (lduw, ldub): Renamed to zero_extend* above.
17709         (movqi_media): Fix typo.
17710         (movdi_media): Support FP and BT registers.
17711         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
17712         (movdi_const_32bit): New.
17713         (shori_media): Require immediate operand.  Use `u' for output.
17714         (movdf_media, movsf_media): Simplified.
17715         (movdf_media_nofpu, movsf_media_nofpu): New.
17716         (movdf, movsf): Adjust
17717         (movv2sf, movv2sf, movv16sf): New.
17718         (beq_media, beq_media_i): Adjust constraints.  Don't use
17719         scratch BT register.
17720         (bne_media, bne_media_i): Likewise.
17721         (bgt_media, bgt_media_i): Likewise.
17722         (bge_media, bge_media_i): Likewise.
17723         (bgtu_media, bgtu_media_i): Likewise.
17724         (bgeu_media, bgeu_media_i): Likewise.
17725         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
17726         bunordered): Emit jump insn.  Force operands to registers when
17727         needed.
17728         (jump_media, jump): Simplify.
17729         (call_compact, call_compact_rettramp): New.
17730         (call_value_compact, call_value_compact_rettramp): New.
17731         (call_media, call_value_media): Simplify.
17732         (sibcall_compact, sibcall_media): New.
17733         (call, call_value): Adjust for SHmedia and SHcompact.
17734         (sibcall, sibcall_value, untyped_call): Likewise.
17735         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
17736         (indirect_jump): Adjust for SHmedia.
17737         (casesi_jump_media): New.
17738         (nop): Re-enable for SHmedia.
17739         (call_site): Restrict to SH1.
17740         (casesi): Adjust for SHmedia.
17741         (casesi_shift_media, casesi_load_media): New.
17742         (return): Explicitly use PR register.  Call return trampoline
17743         on SHcompact.
17744         (return_i): Explicitly use PR register.
17745         (shcompact_return_tramp, shcompact_return_tramp_i): New.
17746         (return_media): Adjust.
17747         (shcompact_incoming_args): New.
17748         (epilogue): Adjust.
17749         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
17750         (movstrsi): Disable on SH5.
17751         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
17752         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
17753         (subsf3, subsf3_media): Likewise.
17754         (mulsf3, mulsf3_media, mac_media): Likewise.
17755         (divsf3, divsf3_media): Likewise.
17756         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
17757         (floatsisf2, fux_truncsfsi2): Likewise.
17758         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
17759         constraints.
17760         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
17761         (cmpunsf_media, cmpsf): Likewise.
17762         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
17763         (abssf2, abssf2_media): Likewise.
17764         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
17765         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
17766         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
17767         (floatsidf2, fix_truncdfsi2): Likewise.
17768         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
17769         constraints.
17770         (cmpeqdf_media, cmpgtdf_media): Likewise.
17771         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
17772         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
17773         (absdf2, absdf2_media): Likewise.
17774         (extendsfdf2, extendsfdf2_media): Likewise.
17775         (truncsfdf2, truncsfdf2_media): Likewise.
17776         * config/sh/sh64.h: New file.
17777         * config/sh/t-sh64: New file.
17778         * config/sh/shmedia.h: New file.
17779         * config/sh/ushmedia.h: New file.
17780         * config/sh/sshmedia.h: New file.
17781         * configure.in: Added sh64-*-elf.
17782         * configure: Rebuilt.
17783         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
17784         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
17785         (reg_class_from_letter): Use `b' for TARGET_REGS.
17786         (print_operand): Support `%M', `%m', `AND' and
17787         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
17788         (andcosts): Adjust for SHmedia.
17789         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
17790         Likewise.
17791         (target_reg_operand): New function.
17792         * config/sh/sh-protos.h (target_reg_operand): Declare.
17793         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
17794         FP registers on SH5.
17795         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
17796         on SH4.
17797         (TARGET_REGISTER_P): New macro.
17798         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
17799         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
17800         (EXTRA_CONSTRAINT_S): New macro.
17801         (EXTRA_CONSTRAINT): Adjust.
17802         (FLOAT_TYPE_SIZE): Define to 32.
17803         (Pmode): DImode on SHmedia.
17804         (CONST_COSTS): Adjust for SHmedia literals.
17805         (PREDICATE_CODES): Added target_reg_operand.
17806         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
17807         * config/sh/sh.md: Remove all attrs from SHmedia insns.
17808         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
17809         (cmpdi): Accept SHmedia.
17810         (movdicc_false, movdicc_true): New insns.
17811         (movdicc): New expand.
17812         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
17813         no_new_pseudos.
17814         (addsi3_media): Match `S' constraint.
17815         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
17816         (negdi2): Expand for SHmedia.
17817         (one_cmpldi2): New expand.
17818         (zero_extendsidi2): Change from expand to insn.
17819         (extendsidi2): Add constraints.
17820         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
17821         LD/ST address.  Fix SI immediate loading split.
17822         (movhi_media, movqi_media, lduw, ldub): New insns.
17823         (movhi, movqi): Accept SHmedia.
17824         (shori_media, movdi_media): Relax input constraints.  Split
17825         symbolic constants.
17826         (movdf_media, movsf_media): New insn.  New split to movdi.
17827         (movdf, movsf): Match on SHmedia.
17828         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
17829         bgeu_media): New insns and splits.  New insns with `_i' suffix.
17830         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
17831         (bunordered): New expand.
17832         (jump_compact): Renamed from `jump'.
17833         (jump_media): New insn.
17834         (jump): New expand.
17835         (call_media, call_value_media): New insns.
17836         (call, call_value): Adjust.
17837         (indirect_jump_compact): Renamed from `indirect_jump'.
17838         (indirect_jump_media): New insn.
17839         (indirect_jump): New expand.
17840         (untyped_call, return): Accept SHmedia.
17841         (return_media): New insn.
17842         (prologue, epilogue, blockage): Accept SHmedia.
17843         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
17844         (sunordered): New expand.
17845         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
17846         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
17847         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
17848         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
17849         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
17850         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
17851         abssf2_media): New insns.
17852         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
17853         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
17854         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
17855         floatdidf2, floatsidf2_media, fix_truncdfdi2,
17856         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
17857         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
17858         absdf2_media): New insns.
17859         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
17860         (extendsfdf2_media, truncdfsf2_media): New insns.
17861         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
17862         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
17863         * config/sh/sh.h (CONST_OK_FOR_J): Document.
17864         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
17865         * config/sh/sh.md (adddi3): New expand.
17866         (adddi3_media, adddi3z_media): New insns.
17867         (adddi3_compact): Renamed from adddi3.
17868         (addsi3_media): Use add.l r63 to add constant zero.
17869         (subdi3): New expand.
17870         (subdi3_media): New insn.
17871         (subdi3_compact): Renamed from subdi3.
17872         (mulsidi3): New expand.
17873         (mulsidi3_media): New insn.
17874         (mulsidi3_compact): Renamed from mulsidi3.
17875         (umulsidi3): New expand.
17876         (umulsidi3_media): New insn.
17877         (umulsidi3_compact): Renamed from umulsidi3.
17878         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
17879         (ashlsi3, ashrsi3, lshrsi3): Use them.
17880         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
17881         (ashldi3, ashrdi3, lshrdi3): Use them.
17882         (zero_extendsidi2): New expand.
17883         (extendsidi2): New insn.
17884         (movsi_media): New insn.  Split to movdi to load constants.
17885         (movsi): Enable for shmedia.
17886         (movdi_media): New insn.  Use shori_media to load wide constants.
17887         (short_media): New insn.
17888         (movdi): Enable for shmedia.
17889         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
17890         * config/sh/sh.h (CPP_SPEC): Added `m5'.
17891         (SUBTARGET_CPP_SPEC): Added `!m5'.
17892         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
17893         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
17894         to all other SH variants.
17895         (TARGET_DEFAULT): Set to SH1_BIT.
17896         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
17897         (BITS_PER_WORD): Raise to 64 on shmedia.
17898         (MAX_BITS_PER_WORD): Change to 64.
17899         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
17900         (INT_TYPE_SIZE): Keep as 32.
17901         (UNITS_PER_WORD): Raise to 8 on shmedia.
17902         (MIN_UNITS_PER_WORD): Keep as 4.
17903         (POINTER_SIZE): Raise to 64 on shmedia.
17904         (CONST_OK_FOR_J): New macro.
17905         (CONST_OK_FOR_LETTER_P): Use it.
17906         (processor_type): Add PROCESSOR_SH5.
17907         * config/sh/sh.md: Conditionalize all expands, insns and
17908         splits to TARGET_SH1.
17909         (cpu): Added sh5.
17910         (addsi3_compact): Renamed from...
17911         (addsi3): Now an expand.
17912         (addsi3_media, subsi3_media): New insns.
17913         (subsi3): Don't negate constants with SHmedia.
17914
17915         * hooks.c: New file.
17916         * hooks.h: New file.
17917         * Makefile.in (HOOKS_H): New.
17918         (TARGET_DEF_H): Added $(HOOKS_H).
17919         (OBJS): Added hooks.o.
17920         (cfgcleanup.o, bb-reorder.o): Added target.h.
17921         (hooks.o): Added dependencies.
17922         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
17923         (TARGET_INITIALIZER): this.
17924         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
17925         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
17926         * bb-reorder.c: Include target.h.
17927         (reorder_basic_blocks): Skip if cannot modify jumps.
17928         * cfgcleanup.c: Include target.h.
17929         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
17930
17931 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
17932
17933         * config/mips/mips.md (casesi_internal, casesi_internal_di):
17934         Protect jump delay slot instructions with .set noreorder and
17935         .set nomacro.
17936
17937 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
17938
17939         * config/mips/mips.md (casesi_internal_di): Calculate
17940         the index into the target offset table correctly.
17941
17942 2002-02-08  Richard Henderson  <rth@redhat.com>
17943
17944         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
17945         * final.c (output_addr_const): Accept and discard SUBREG.
17946         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
17947         mark them unknown instead.
17948         (simplify_subtraction): Handle RTX_UNKNOWN.
17949         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
17950
17951 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
17952
17953         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
17954
17955 2002-02-08  Richard Henderson  <rth@redhat.com>
17956
17957         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
17958
17959 2002-02-08  Andreas Jaeger  <aj@suse.de>
17960
17961         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
17962         * config/i386/t-linux64: New file.
17963
17964 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
17965
17966         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
17967         * c-parse.in (compstmt): Clear last_expr_type.
17968
17969 2002-02-07  Richard Henderson  <rth@redhat.com>
17970
17971         * loop.c (strength_reduce): Sink final_value when not
17972         eliminating a biv.
17973
17974 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
17975
17976         * config/sparc/freebsd.h: Fix mismatched spec {.
17977
17978 2002-02-07  Richard Henderson  <rth@redhat.com>
17979
17980         * cfgrtl.c: Include recog.h and insn-config.h.
17981         (keep_with_call_p): Fix general_operand invocation.
17982         * Makefile.in (cfgrtl.o): Update dependencies.
17983
17984 2002-02-07  Kazu Hirata  <kazu@hxi.com>
17985
17986         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
17987         comment.  Accept HImode only if TARGET_H8300.
17988
17989 2002-02-07  Eric Christopher  <echristo@redhat.com>
17990
17991         * config/mips/crtn.asm: Cleanup #ifdefs.
17992
17993 2002-02-07  Eric Christopher  <echristo@redhat.com>
17994
17995         * config/mips/crti.asm: Add changes for mips16. mips16 uses
17996         register 7 as RA instead of $31.
17997         * config/mips/crtn.asm: Ditto.
17998         * config/mips/mips.c (mips_move_2words): Add case for
17999         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
18000         (compute_frame_size): Fix typo.
18001         (save_restore_insns): Ditto.  Make documentation about using
18002         register $7 as return register more precise.
18003         (mips_expand_epilogue): Fix comment. Add code to work around not
18004         being able to add to the stack pointer directly.
18005         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
18006         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
18007         epilogue.
18008
18009 2002-02-07  Tom Rix  <trix@redhat.com>
18010
18011         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
18012         immediates in ldu and stdu DS opcode field.
18013         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
18014         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
18015         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
18016
18017 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
18018
18019         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
18020         offset for stack bias.
18021
18022 2002-02-07  H.J. Lu <hjl@gnu.org>
18023
18024         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
18025
18026 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
18027
18028         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
18029
18030 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
18031
18032         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
18033         * i386.c (x86_order_regs_for_local_alloc): New global function.
18034         * i386.h (REG_ALLOC_ORDER): CLeanup.
18035         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
18036
18037 2002-02-07  Richard Henderson  <rth@redhat.com>
18038
18039         PR optimization/2463
18040         * alias.c (find_base_value): Recall base values for fixed hard regs.
18041         * loop.c (loop_regs_update): Don't use single_set on non-insns.
18042
18043 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
18044
18045         * config/mips/mips.md (define_delay) [mips16]: Adjust required
18046         length.
18047
18048 2002-02-06  Richard Henderson  <rth@redhat.com>
18049
18050         PR c/5609
18051         * stmt.c (resolve_operand_name_1): Take more care with mixed
18052         named and unnamed operands.
18053
18054 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
18055             Jan Hubicka  <jh@suse.cz>
18056
18057         * loop.c (remove_constant_addition): Avoid clobbering a shared
18058         CONST expression.
18059
18060 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
18061
18062         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
18063         * config/s390/t-linux64: New file.
18064         * config/s390/libgcc-glibc.ver: New file.
18065
18066 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
18067
18068         * config/s390/linux64.h: Delete file.
18069         * config/s390/s390x.h: New file.
18070         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
18071         as target header file.
18072         * config/s390/linux.h (TARGET_VERSION): Define depending on
18073         DEFAULT_TARGET_64BIT.
18074         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
18075         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
18076         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
18077         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
18078         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
18079         (EXTRA_SPEC): New define.
18080         * config/s390/s390.h (TARGET_VERSION): Define depending on
18081         DEFAULT_TARGET_64BIT.
18082         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
18083
18084 2002-02-06  Jason Merrill  <jason@redhat.com>
18085
18086         * c-decl.c (finish_function): Warn about a non-void function with
18087         no return statement and no abnormal exit.
18088         (current_function_returns_abnormally): New variable.
18089         (start_function): Clear it.
18090         (struct c_language_function): Add returns_abnormally.
18091         (push_c_function_context): Save it.
18092         (pop_c_function_context): Restore it.
18093         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
18094         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
18095         an explicit return type.
18096         * c-tree.h: Declare current_function_returns_abnormally.
18097         (C_FUNCTION_IMPLICIT_INT): New macro.
18098         * c-typeck.c (build_function_call): Set it.
18099         (c_expand_return): Set current_function_returns_value even if the
18100         value is erroneous.
18101
18102 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
18103
18104         PR c/5420:
18105         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
18106         unsafe for reevaluation.
18107
18108 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
18109
18110         PR c/5482:
18111         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
18112         EXPR_STMT, but COMPOUND_STMT, recurse into it.
18113
18114 2002-02-06  Richard Henderson  <rth@redhat.com>
18115
18116         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
18117         be a general_operand.  Dest for function value must be a pseudo.
18118
18119 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
18120
18121         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
18122         as SYMBOL_REFs from the constant pool.
18123
18124 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
18125
18126         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
18127         passed by invisible reference.
18128
18129 2002-02-05  Richard Henderson  <rth@redhat.com>
18130
18131         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
18132
18133 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
18134
18135         Implement using "base addresses" in insn operands as default.
18136         * config/mmix/mmix.c (mmix_conditional_register_usage): if
18137         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
18138         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
18139         used to read the rtx value.
18140         (mmix_target_asm_function_epilogue): Fix spacing.
18141         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
18142         (mmix_legitimate_address): Ditto.
18143         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
18144         should be loaded with a GETA insn.  Don't allocate needless extra
18145         char for nul termination and fix misleading comment.
18146         (mmix_print_operand_address): Handle constants if
18147         TARGET_BASE_ADDRESSES.
18148         (mmix_output_register_setting): Use base addressing if
18149         TARGET_BASE_ADDRESSES and the number of insns is 3.
18150         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
18151         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
18152         to use R as constraint, add LDA to match s.
18153         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
18154         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
18155         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
18156         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
18157         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
18158         order with other fixed registers.
18159         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
18160         other parameter/call-clobbered registers.
18161         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
18162         -mbase-addresses, -mno-base-addresses.
18163         (MMIX Options): Ditto.
18164
18165 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18166
18167         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
18168
18169 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
18170
18171         * config/rs6000/altivec.h: Change elem to _S_elem.
18172
18173 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
18174
18175         * config/netbsd.h (WCHAR_TYPE): Define.
18176         (WCHAR_TYPE_SIZE): Ditto.
18177         (WINT_TYPE): Ditto.
18178         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
18179         (WCHAR_UNSIGNED): Ditto.
18180         (WCHAR_TYPE_SIZE): Ditto.
18181         (WINT_TYPE): Ditto.
18182         * config/arm/netbsd.h: Likewise.
18183         * config/i386/netbsd-elf.h: Likewise.
18184         * config/i386/netbsd.h: Likewise.
18185         * config/m68k/netbsd-elf.h: Likewise.
18186         * config/m68k/netbsd.h: Likewise.
18187         * config/ns32k/netbsd.h: Likewise.
18188         * config/sparc/netbsd.h: Likewise.
18189         * config/vax/netbsd.: Likewise.
18190
18191 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
18192
18193         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
18194         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
18195         (TARGET_INITIALIZER): this.
18196         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
18197         (BITFIELD_NBYTES_LIMITED): Markup fix.
18198         * tree.h (default_ms_bitfield_layout_p): Declare.
18199         (record_layout_info): Added prev_field.
18200         * tree.c (default_ms_bitfield_layout_p): New fn.
18201         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
18202         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
18203         * stor-layout.c: Include target.h.
18204         (start_record_layout): Initialize prev_field.
18205         (place_field): Handle MS bit-field layout, and disregard
18206         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
18207         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
18208         * Makefile.in (stor-layout.o): Adjust dependencies.
18209
18210 2002-02-05  Jason Merrill  <jason@redhat.com>
18211
18212         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
18213
18214 2002-02-05  Andreas Jaeger  <aj@suse.de>
18215
18216         * crtstuff.c: Fix comments.
18217
18218 2002-02-05  Richard Henderson  <rth@redhat.com>
18219
18220         PR fortran/3393
18221         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
18222         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
18223
18224         PR fortran/3392
18225         * config/mips/mips.c (function_arg): Handle TImode.
18226         (function_arg_advance): Likewise.
18227
18228 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
18229
18230         * config/rs6000/altivec.h (vec_step_help): Rename to
18231         __vec_step_help.
18232
18233 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
18234
18235         * config/rs6000/altivec.h: Fix typos.
18236
18237 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
18238
18239         * config/arm/netbsd.h: Correct a comment.
18240
18241 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
18242
18243         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
18244         building void typed builtins.
18245
18246         * config/rs6000/altivec.h (vec_ld*): Fix typos.
18247         (vec_step): Implement for C++.
18248
18249 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18250
18251         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
18252
18253 2002-02-04  Richard Henderson  <rth@redhat.com>
18254
18255         * combine.c (nonzero_bits): Re-introduce special case for
18256         sp/fp/ap wrt REGNO_POINTER_ALIGN.
18257
18258 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
18259
18260         * doc/extend.texi: Warn about unsupported usage of altivec
18261         builtins.
18262
18263         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
18264         (altivec_predicate_*): New.
18265
18266         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
18267         Add C++ version of vec_*() functions.
18268
18269         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
18270         (bdesc_2arg): Remove altivec predicates.
18271         (altivec_expand_builtin): Handle predicates.
18272         (altivec_init_builtins): Handle predicates.
18273         (altivec_expand_predicate_builtin): New.
18274
18275 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18276
18277         * pa.c (DO_FRAME_NOTES): Move forward.
18278         (store_reg): Revise handling of frame notes.
18279         (load_reg): Likewise.
18280         (set_reg_plus_d): Likewise.
18281         (hppa_expand_prologue): Likewise.
18282         (hppa_expand_epilogue): Likewise.
18283
18284 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18285
18286         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
18287
18288 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
18289
18290         PR c/4475, c++/3780:
18291         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
18292         * c-common.h (SWITCH_TYPE): Define.
18293         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
18294         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
18295         Rename spareness variable to sparseness.
18296         (expand_end_case_type): Renamed from expand_end_case, use orig_type
18297         if non-NULL instead of TREE_TYPE (orig_index).
18298         * tree.h (expand_end_case_type): Renamed from expand_end_case.
18299         (expand_end_case): Define using expand_end_case_type.
18300         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
18301         to expand_end_case_type.
18302         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
18303
18304 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18305
18306         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
18307         (BIGGEST_ALIGNMENT): Change to 128.
18308
18309 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18310
18311         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
18312
18313 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18314
18315         * pa.md (call_internal_reg_64bit): Remove unused variable.
18316
18317 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
18318
18319         * config/arm/arm.h (machine_function): Add uses_anonymous_args
18320         field.
18321         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
18322         * config/arm/arm.c (current_function_anonymous_args): Delete,
18323         replace uses with cfun->machine->uses_anonymous_args.
18324         (arm_reorg): Do not reset uses_anonymous_args.
18325
18326         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
18327         any geenral register.
18328
18329 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
18330
18331         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
18332         the entry block.
18333
18334 2002-02-04  Richard Henderson  <rth@redhat.com>
18335
18336         * combine.c (force_to_mode): Remove STACK_BIAS code.
18337         (nonzero_bits): Likewise.  Replace sp/fp special case with
18338         REGNO_POINTER_ALIGN.
18339
18340         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
18341         (HARD_FRAME_POINTER_REGNUM): New.
18342         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
18343         (FIXED_REGS, CALL_USED_REGS): Update.
18344         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
18345         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
18346         (HARD_REGNO_NREGS): Update for SFP.
18347         (STACK_POINTER_OFFSET): Include bias here ...
18348         (FIRST_PARM_OFFSET): ... not here.
18349         (STACK_BIAS): Remove.
18350         (INIT_EXPANDERS): New.
18351         (STARTING_FRAME_OFFSET): Do not include bias.
18352         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
18353         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
18354         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
18355         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
18356         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
18357         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
18358         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
18359         (MUST_SAVE_REGISTER): Likewise.
18360         (sparc_flat_function_prologue): Likewise.
18361         (sparc_flat_function_epilogue): Likewise.
18362         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
18363         (sparc_init_modes): SFP is GENERAL_REGS.
18364         (sparc_builtin_saveregs): SFP does not have bias applied.
18365
18366 2002-02-04  Richard Henderson  <rth@redhat.com>
18367
18368         * config/alpha/alpha.c (current_function_is_thunk): Don't check
18369         current_function_is_thunk.
18370         (alpha_sa_mask): Distinguish between current_function_is_thunk
18371         called from ASM_OUTPUT_MI_THUNK and not.
18372         (alpha_does_function_need_gp): Thunks always need gp.
18373         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18374         (alpha_output_mi_thunk_osf): New.
18375         * config/alpha/alpha-protos.h: Update.
18376         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
18377
18378 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
18379
18380         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
18381         function types, not when they're taken away.
18382
18383 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
18384
18385         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
18386         CODE_LABEL and jump table when replacing a table jump with a
18387         simple jump.
18388
18389 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
18390
18391         * config/s390/s390-protos.h (legitimize_la_operand,
18392         s390_secondary_input_reload_class, s390_plus_operand,
18393         s390_expand_plus_operand): Add prototypes.
18394
18395         config/s390/s390.c (s390_secondary_input_reload_class,
18396         s390_plus_operand, s390_expand_plus_operand): New functions.
18397
18398         (struct s390_address): New member 'pointer'.
18399         (s390_decompose_address): Compute it.
18400         (legitimate_la_operand_p): Use it.
18401         (legitimize_la_operand): New function.
18402         (movti, movdi, movdf splitters): Call it.
18403
18404         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
18405         (PREDICATE_CODES): Add s390_plus_operand.
18406
18407         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
18408         (la_ccclobber): Allow GENERAL_REGS as output operand.
18409
18410         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
18411         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
18412         (*la_64, *la_31, reload_indi, reload_insi): ... these.
18413
18414 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
18415
18416         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
18417         register names for regular asm () construct.
18418
18419 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
18420
18421         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
18422         registers.
18423
18424 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
18425
18426         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
18427         pat for recog.
18428
18429 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
18430
18431         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
18432         constant pool to be identical by string address and index.
18433
18434 2002-02-04  Anthony Green  <green@redhat.com>
18435
18436         * output.h (SECTION_OVERRIDE): Define.
18437         * varasm.c (named_section): Obey SECTION_OVERRIDE.
18438
18439 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
18440
18441         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
18442         by existing arm*-*-netbsd* (a.out) target.
18443         (ns32k-*-netbsdelf*): Likewise.
18444         (sparc-*-netbsdelf*): Likewise.
18445         (vax-*-netbsdelf*): Likewise.
18446
18447 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
18448
18449         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
18450         headers and libobjc headers.
18451
18452 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
18453
18454         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
18455         (_mingw.h): Remove duplicate include.
18456
18457 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
18458
18459         * config.gcc: Set cpu_type to m68k for 68010, as well.
18460         (m68010-*-netbsdelf*): New...
18461         (m68k*-*-netbsdelf*): ...targets.
18462         * config/m68k/netbsd-elf.h: New file.
18463
18464 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18465
18466         * config/h8300/h8300.c (hand_list): Move inside function_arg.
18467
18468 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18469
18470         * config/h8300/h8300.c (h8_push_ops): Move inside
18471         h8300_init_once.
18472         (h8_pop_ops): Likewise.
18473         (h8_move_ops): Likewise.
18474
18475 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18476
18477         * config/h8300/h8300.c (os_task): Make it static.
18478         (monitor): Likewise.
18479         (pragma_saveall): Likewise.
18480
18481 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
18482
18483         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
18484         constant is a valid sign-extension for Pmode.
18485
18486 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18487
18488         * config/h8300/h8300.c: Fix formatting.
18489
18490 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18491
18492         * config/h8300/h8300.md: Fix formatting.
18493
18494 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18495
18496         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
18497         predicates of operands[1].  Split the patterns for each
18498         processor variant.
18499
18500 2002-02-02  Kazu Hirata  <kazu@hxi.com>
18501
18502         * config/h8300/h8300.md (xor patterns): Tighten the predicates
18503         of operands[1] to register_operand.
18504
18505 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
18506
18507         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
18508         * cpphash.c (_cpp_init_hashtable): Similarly.
18509         * cppinit.c (cpp_create_reader): Default the signed_char flag.
18510         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
18511         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
18512         (cpp_handle_option): Handle the new options.
18513         * cpplex.c (cpp_interpret_charconst): Use new flag.
18514         * cpplib.h (struct cpp_options): New member signed_char.
18515         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
18516         (cpp_options): Handle -fsigned-char and -funsigned-char.
18517         (static_specs): Remove signed_char_spec.
18518         (do_spec1): Don't handle %c.
18519         * system.h: Poison SIGNED_CHAR_SPEC.
18520         * tradcif.y (yylex): Use flag_signed_char.
18521         * tradcpp.h (flag_signed_char): New.
18522         * tradcpp.c (flag_signed_char): New.
18523         (main): Handle new command-line options.
18524         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
18525 config:
18526         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
18527         * avr/avr.h: Remove old comments.
18528         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
18529         (CC1_SPEC): Pass -fsigned-char if -mic*.
18530         (SIGNED_CHAR_SPEC): Remove.
18531 doc:
18532         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
18533
18534 2002-02-01  Eric Christopher  <echristo@redhat.com>
18535
18536         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
18537         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
18538         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
18539         (ASM_OUTPUT_REG_POP): Ditto.
18540
18541 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
18542
18543         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
18544         patch.
18545
18546 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
18547
18548         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
18549
18550 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
18551
18552         PR c/5304:
18553         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
18554         unconditionally.
18555
18556 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
18557
18558         * cfganal.c: Include tm_p.h.
18559         (keep_with_call_p): Fix the test that determines if a register holds
18560         the return value of a call.
18561
18562 2002-02-01  DJ Delorie  <dj@redhat.com>
18563
18564         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
18565         we are given conflicting registers, switch to the other one we
18566         had allocated for us.
18567         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
18568         as TImode so we know when the "other" register is available.
18569
18570 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
18571
18572         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
18573         sparc/sparc_bi.h.
18574
18575 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
18576
18577         * cfganal.c (keep_with_call_p): New function.
18578         (flow_call_edges_add): Prevent splitting a block between a call and
18579         a single-set instruction that should be kept in the same block.
18580
18581 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18582
18583         * doc/install.texi (avr): Update outdated URL.
18584
18585 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
18586
18587         * config/stormy16/stormy16.md (pushqi): New.
18588         (popqi): New.
18589         (pushhi): New.
18590         (pophi): New.
18591         (movhi): Remove stack operands.
18592         (movqi): Likewise.
18593         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
18594         nonimmediate_nonstack_operand.
18595         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
18596         New.
18597         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
18598         New.
18599
18600 2002-01-31  Jason Merrill  <jason@redhat.com>
18601
18602         * Makefile.in (c-parse.c): Handle .output file.
18603         * objc/Make-lang.in (objc-parse.c): Likewise.
18604
18605 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
18606
18607         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
18608         the -me[lb] option is given.  Don't output the default flag
18609         twice.
18610
18611 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
18612
18613         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
18614         the primary source file; this has not been done yet.
18615         * c-decl.c (c_expand_body): Reset input_filename from
18616         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
18617
18618 2002-01-31  Kazu Hirata  <kazu@hxi.com>
18619
18620         * rtlanal.c (subreg_regno_offset): Do not use
18621         SUBREG_REGNO_OFFSET.
18622         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
18623         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
18624
18625 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
18626
18627         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
18628         version rather than GNATS version in --version output.
18629
18630 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
18631
18632         * ifcvt.c (noce_process_if_block): Make a copy of the destination
18633         when copying back from a temporary.
18634
18635 2002-01-30  Richard Henderson  <rth@redhat.com>
18636
18637         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
18638         and new_dest are the same.
18639
18640 2002-01-30  Richard Henderson  <rth@redhat.com>
18641
18642         PR opt/5076
18643         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
18644         * rtl.c (note_insn_name): Update.
18645         * emit-rtl.c (remove_unnecessary_notes): Kill it.
18646         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
18647         to perform loop rotation.
18648         (expand_exit_loop_top_cond): New.
18649         * tree.h (expand_exit_loop_top_cond): Declare it.
18650         * c-semantics.c (genrtl_while_stmt): Use it.
18651         (genrtl_for_stmt): Likewise.
18652
18653 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
18654
18655         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
18656         arguments to 64-bit boundaries on 64-bit ABIs.
18657
18658 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
18659
18660         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
18661
18662 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
18663
18664         * c-decl.c (grokdeclarator): Handle type being a typedef for an
18665         invalid type.
18666
18667 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
18668
18669         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
18670         * config/sparc/sparc_bi.h: Remove file.
18671         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
18672
18673 2002-01-30  Richard Henderson  <rth@redhat.com>
18674
18675         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
18676
18677 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
18678
18679         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
18680
18681 2002-01-30  Jason Merrill  <jason@redhat.com>
18682
18683         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
18684         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
18685         (reg_save): Use DW_CFA_offset_extended_sf instead.
18686
18687         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
18688
18689 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
18690
18691         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
18692         in cselib_lookup.
18693
18694 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
18695
18696         * rs6000.md ("*call_value_local32"): Remove constraints.
18697         ("*call_value_local64"): Same.
18698         ("*call_value_indirect_nonlocal_aix32"): Same.
18699         ("*call_value_nonlocal_aix32"): Same.
18700         ("*call_value_indirect_nonlocal_aix64"): Same.
18701         ("*call_value_nonlocal_aix64"): Same.
18702         ("*call_value_nonlocal_sysv"): Same.
18703
18704 2002-01-29  Richard Henderson  <rth@redhat.com>
18705
18706         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
18707
18708 2002-01-29  Richard Henderson  <rth@redhat.com>
18709
18710         * expr.c (force_operand): Ignore flag_pic for detecting pic
18711         address loads.
18712         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
18713         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
18714         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
18715         instead of open-coded loop.
18716         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
18717         be fixed when in use.
18718
18719 2002-01-29  Richard Henderson  <rth@redhat.com>
18720
18721         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
18722         * sched-rgn.c (propagate_deps): Update them.
18723         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
18724         clobbers list when either gets too long.
18725
18726 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
18727
18728         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
18729         and INDEX_REGS the same as GENERAL_REGS.
18730         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
18731
18732 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
18733
18734         * tree.c (build_nonstandard_integer_type): Correct prototype.
18735
18736 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
18737
18738         * config/s390/s390.md (movstrsico, movstrdix_64,
18739         movstrsix_31): Remove, replace by ...
18740         (movstrdi_short, movstrsi_short, movstrdi_long,
18741         movstrsi_long): ... these.  New.
18742         (movstrdi, movstrsi): Adapt.
18743
18744         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
18745         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
18746         Remove unnecessary CC clobber.
18747         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
18748         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
18749
18750         (divmoddi4): Don't partially initialize TImode register.
18751
18752 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
18753
18754         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
18755
18756 2002-01-29  Richard Henderson  <rth@redhat.com>
18757
18758         * flow.c (print_rtl_and_abort): Remove.
18759         (print_rtl_and_abort_fcn): Remove.
18760         (verify_local_live_at_start): Use dump_bb instead.
18761         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
18762         (verify_wide_reg_1): Return 2 on mode test failure.
18763
18764 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
18765
18766         PR c/3325, c/3326, c/2511, c/3347
18767         * c-decl.c (enum_decl_context): Remove BITFIELD.
18768         (grokdeclarator): Take bitfield width as an input.
18769         Ensure bitfields are given the correct type.  Perform
18770         bitfield width validation with build_bitfield_integer_type
18771         rather than waiting for finish_struct.
18772         (grok_typename, grok_typename_in_parm_context, start_decl,
18773         push_parmdecl, grokfield, start_function): Update calls to
18774         grokdeclarator.
18775         (build_bitfield_integer_type): New function.
18776         (finish_struct): Move bitfield validation to grokdeclarator
18777         and build_bitfield_integer_type.
18778         * tree.c (build_nonstandard_integer_type): New function.
18779         * tree.h (build_nonstandard_integer_type): New prototype.
18780 objc:
18781         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
18782
18783 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
18784
18785         PR other/1502:
18786         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
18787         don't ignore unrecognized -W* options.
18788         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
18789         * cpplib.h (cpp_handle_option): Adjust prototype.
18790         * c-decl.c (c_decode_options): Pass 0 as last argument to
18791         cpp_handle_option.
18792
18793         PR c/2896:
18794         * gcc.c (cpp_unique_options): Split from cpp_options.
18795         (cpp_options): Source cpp_unique_options.
18796         (default_compilers): Use cpp_unique_options instead of cpp_options
18797         when used together with cc1_options.
18798         (static_specs): Add cpp_unique_options.
18799         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
18800         when used together with cc1_options.
18801
18802 2002-01-29  Kazu Hirata  <kazu@hxi.com>
18803
18804         * config/h8300/h8300-protos.h: Update the prototype of
18805         output_a_shift.
18806         * config/h8300/h8300.c (output_a_shift): Remove an unused
18807         argument 'insn'.  Remove redundant code.
18808         * config/h8300/h8300.md: Adust to the new prototype of
18809         output_a_shift.
18810
18811 2002-01-29  Kazu Hirata  <kazu@hxi.com>
18812
18813         * config/h8300/h8300-protos.h: Update the prototypes of
18814         emit_a_rotate and expand_a_rotate.
18815         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
18816         first argument to 'enum rtx_code'.
18817         (expand_a_rotate): Likewise.
18818
18819 2002-01-28  Kazu Hirata  <kazu@hxi.com>
18820
18821         * config/h8300/h8300-protos.h: Update the prototype of
18822         output_simode_bld.
18823         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
18824         'log2'.
18825         * config/h8300/h8300.md: Adjust to the new prototype.
18826
18827 2002-01-28  Kazu Hirata  <kazu@hxi.com>
18828
18829         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
18830         redundant code.
18831
18832 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18833
18834         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
18835         is a fixed register before returning pic_offset_table_rtx.
18836         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
18837         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
18838
18839 2002-01-28  Jason Merrill  <jason@redhat.com>
18840
18841         * dwarf2.h: Sync with src version.
18842
18843 2002-01-28  Paul Koning  <pkoning@equallogic.com>
18844
18845         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
18846         BT_FN_VOID_PTR_VAR.
18847         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
18848         * doc/extend.texi (__builtin_prefetch): Update documentation:
18849         first argument is now const void ptr.
18850
18851 2002-01-28  Kazu Hirata  <kazu@hxi.com>
18852
18853         * config/h8300/h8300-protos.h: Remove an unused prototype.
18854
18855 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
18856
18857         * toplev.c (lang_independent_init): Round up identifier size.
18858
18859 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
18860
18861         * config.gcc: Revert previous change.
18862
18863 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
18864
18865         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
18866
18867 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
18868
18869         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
18870         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
18871         other non-elf netbsd config frags.
18872         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
18873         collect2 will does that.
18874         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
18875         shared-lib frobbing will work.
18876
18877 2002-01-28  Kazu Hirata  <kazu@hxi.com>
18878
18879         * config/h8300/h8300.h: Fix formatting.
18880         * config/h8300/h8300.md: Likewise.
18881
18882 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
18883
18884         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
18885         the old, removed AAA_standards fix.
18886         * fixinc/fixincl.x: Rebuilt.
18887
18888 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
18889
18890         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
18891         atexit call in crtbegin, hooked in after call to frame_dummy;
18892         register EH before registering __fini__start.
18893
18894 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
18895
18896         * config/rs6000/altivec.h: Remove spurious semicolons.
18897
18898 2002-01-27  Kazu Hirata  <kazu@hxi.com>
18899
18900         * config/h8300/h8300.md: Replace dead bit extraction patterns
18901         with ones that work.
18902
18903 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18904
18905         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
18906         if not STRICT_ALIGNMENT.
18907         * rtl.h (MEM_ALIGN): Likewise.
18908
18909 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18910
18911         * doc/invoke.texi (-fdump-translation-unit): Revert this
18912         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18913
18914 2002-01-27  Kazu Hirata  <kazu@hxi.com>
18915
18916         * config/h8300/h8300.md (define_constants): New.
18917         (anonymous patterns) Use defined constants appropriately.
18918
18919 2002-01-27  Kazu Hirata  <kazu@hxi.com>
18920
18921         * config/h8300/h8300.c (function_arg): Remove redundant code.
18922
18923 2002-01-26  Richard Henderson  <rth@redhat.com>
18924
18925         * sched-deps.c (reg_pending_uses_head): New.
18926         (reg_pending_barrier): Rename from reg_pending_sets_all.
18927         (find_insn_list): Don't mark inline.
18928         (find_insn_mem_list): Remove.
18929         (add_dependence_list, add_dependence_list_and_free): New.
18930         (flush_pending_lists): Replace only_write param with separate
18931         for_read and for_write parameters.  Update all callers.  Use
18932         add_dependence_list_and_free.
18933         (sched_analyze_1): Do not add reg dependencies here; just set
18934         the pending bits.  Use add_dependence_list.
18935         (sched_analyze_2): Likewise.
18936         (sched_analyze_insn): Replace schedule_barrier_found with
18937         reg_pending_barrier.  Add all dependencies for pending reg
18938         uses, sets, and clobbers.
18939         (sched_analyze): Don't add reg dependencies for calls, just
18940         set pending bits.  Use regs_invalidated_by_call.  Treat
18941         sched_before_next_call as a normal list, not a fake insn.
18942         (init_deps): No funny init for sched_before_next_call.
18943         (free_deps): Free pending mems lists.  Don't zero reg_last.
18944         (init_deps_global): Init reg_pending_uses.
18945         (finish_deps_global): Free it.
18946         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
18947         (find_insn_mem_list): Remove.
18948         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
18949         (propagate_deps): Use them.  Zero temp mem lists.
18950
18951 2002-01-26  Richard Henderson  <rth@redhat.com>
18952
18953         * Makefile.in (CRTSTUFF_CFLAGS): New.
18954         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
18955         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
18956         crtstuff.c instead of alpha assembly version.
18957         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
18958         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
18959         not FORCE_{INIT,FINI}_SECTION_ALIGN.
18960         (__do_global_dtors_aux): Mark used.
18961         (frame_dummy, __do_global_ctors_aux): Mark used.
18962         (fini_dummy, init_dummy): Remove.
18963
18964         * config/alpha/crtbegin.asm: Remove file.
18965         * config/alpha/crtend.asm: Remove file.
18966         * config/alpha/t-crtbe: Remove file.
18967         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
18968         (LINK_EH_SPEC): New.
18969
18970         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
18971         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
18972         calling constructors.
18973         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
18974
18975         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
18976         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
18977         CRT_END_INIT_DUMMY hack.
18978         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
18979         FORCE_{INIT,FINI}_SECTION_ALIGN.
18980
18981         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
18982         FORCE_{INIT,FINI}_SECTION_ALIGN.
18983
18984         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
18985         invocation sequence.
18986         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
18987
18988         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
18989         (FORCE_CODE_SECTION_ALIGN): New.
18990
18991 2002-01-26  Richard Henderson  <rth@redhat.com>
18992
18993         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
18994
18995 2002-01-26  Richard Henderson  <rth@redhat.com>
18996
18997         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
18998         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
18999
19000 2002-01-26  Kazu Hirata  <kazu@hxi.com>
19001
19002         * config/h8300/h8300.md: Remove bit extraction patterns that
19003         cannot be triggered.
19004         Restrict each bit extraction pattern to a variant on which the
19005         pattern is tested.
19006
19007 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
19008
19009         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
19010
19011 2002-01-26  Kazu Hirata  <kazu@hxi.com>
19012
19013         * config/h8300/h8300.md: Remove bit test patterns that cannot
19014         be triggered.
19015         Restrict each bit test pattern to a variant on which the
19016         pattern is tested.
19017
19018 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19019
19020         * builtins.c (expand_builtin_strncat): Remove redundant check for
19021         INTEGER_CST.
19022
19023 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
19024
19025         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
19026         default setting.
19027         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
19028         existing setting.
19029
19030 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
19031
19032         * dbxout.c (dbxout_init): Use assemble_name rather than just
19033         stripping off the first character.
19034         (dbxout_source_file): Likewise.
19035
19036 2002-01-25  DJ Delorie  <dj@redhat.com>
19037
19038         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
19039         using rtx_equal_p, not by comparing pointers.
19040
19041 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
19042
19043         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
19044         for PIC_OFFSET_TABLE_REGNUM.
19045         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
19046
19047 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
19048
19049         * config.gcc (x86_64-*-freebsd*): New target.
19050         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
19051         value.
19052         (i[34567]86-*-freebsd*): Don't include svr4.h.
19053         * config/i386/freebsd64.h: New file.
19054
19055 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
19056
19057         * config/alpha/x-vms (version): Make static.
19058
19059         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
19060         in previous checkin.
19061
19062         * Makefile.in (install-headers-cp): New target.
19063         * config.gcc (alpha-dec-*vms*): Install headers with
19064         install-headers-cp
19065
19066 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
19067
19068         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
19069         avoid it's copies.
19070
19071 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19072
19073         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
19074         of compare_tree_int.
19075         (expand_builtin_strncat): Likewise.
19076         * c-decl.c (finish_struct): Use tree_low_cst.
19077         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
19078         * tree.c (compare_tree_int): Likewise.
19079
19080 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
19081
19082         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
19083         adjustments even if they are implemented by more than two insns.
19084
19085 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
19086
19087         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
19088         * df.h (struct ref): Kill B.
19089         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
19090
19091         * basic-block.h (PROP_EQUAL_NOTES): New flag.
19092         * flow.c (propagate_one_insn): Use it.
19093         (mark_used_regs): Handle NIL.
19094
19095 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
19096
19097         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
19098         to help folding.
19099
19100 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
19101
19102         * rs6000.md (prefetch): Make address V4SI mode so that the address
19103         is restricted to legitimate form for instruction.
19104
19105 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
19106
19107         * doc/install.texi (xtensa-*-elf): New target.
19108         (xtensa-*-linux*): New target.
19109         * doc/contrib.texi: Add myself.
19110
19111 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
19112
19113         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
19114         purpose register to hold an SImode (or smaller) value.
19115
19116 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
19117
19118         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
19119         registry only.
19120         * crtstuff.c: Likewise.
19121
19122 2002-01-25  Kazu Hirata  <kazu@hxi.com>
19123
19124         * config/h8300/h8300.md (negation patterns): Tighten
19125         predicates to register_operand.
19126
19127 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
19128
19129         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
19130         mode, not Pmode.
19131
19132         * builtins.c (expand_builtin_prefetch): Same.
19133
19134 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
19135
19136         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
19137         modes.
19138
19139 2002-01-24  Kazu Hirata  <kazu@hxi.com>
19140
19141         * config/h8300/h8300.c (print_operand): Remove support for
19142         operand character 'A'.
19143         * config/h8300/h8300.md (three anonymous patterns): Replace
19144         operand character 'A' with either 'T' or 'S'.
19145
19146 2002-01-24  Kazu Hirata  <kazu@hxi.com>
19147
19148         * config/h8300/h8300.c (print_operand): Remove support for
19149         operand character 'U'.
19150
19151 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
19152
19153         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
19154
19155 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
19156
19157         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
19158         values to be assigned to the stack pointer.
19159
19160 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19161
19162         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
19163         to const_double needs to be done right for big-endian systems.
19164
19165 2002-01-24  Jason Merrill  <jason@redhat.com>
19166
19167         PR c++/2432
19168         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
19169         to can_throw_internal.
19170
19171 2002-01-23  Richard Henderson  <rth@redhat.com>
19172
19173         * fold-const.c (fold): Change UINT_MAX test to check vs precision
19174         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
19175
19176 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
19177
19178         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
19179         (symGOT2reg): Use them, then set as GOT value as unchanging.
19180         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
19181         as a temporary, if possible.
19182         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
19183         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
19184
19185 2002-01-23  Kazu Hirata  <kazu@hxi.com>
19186
19187         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
19188         accept to accept 0x80 as operands[2].
19189
19190 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
19191
19192         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
19193
19194 2002-01-23  Richard Henderson  <rth@redhat.com>
19195
19196         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
19197
19198 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
19199
19200         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
19201         (parmlist_or_identifiers_1): Verify that only a parmlist follows
19202         an attribute.
19203
19204 2002-01-23  Richard Henderson  <rth@redhat.com>
19205
19206         * expr.c (move_by_pieces_1): Extend size before negation.
19207
19208         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
19209         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
19210         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
19211         * config/m68k/t-m68kelf: Likewise.
19212
19213 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
19214
19215         * config/xtensa/elf.h: New file.
19216         * config/xtensa/lib1funcs.asm: New file.
19217         * config/xtensa/lib2funcs.S: New file.
19218         * config/xtensa/linux.h: New file.
19219         * config/xtensa/t-xtensa: New file.
19220         * config/xtensa/xtensa-config.h: New file.
19221         * config/xtensa/xtensa-protos.h: New file.
19222         * config/xtensa/xtensa.c: New file.
19223         * config/xtensa/xtensa.h: New file.
19224         * config/xtensa/xtensa.md: New file.
19225         * config.gcc (xtensa-*-elf*): New target.
19226         (xtensa-*-linux*): New target.
19227         * cse.c (canon_hash): Compare rtx pointers instead of register
19228         numbers.  This is required for the Xtensa port.
19229         * integrate.c (copy_insn_list): Handle case where the static
19230         chain is in memory and the memory address has to be copied to
19231         a register.
19232         * doc/invoke.texi (Option Summary): Add Xtensa options.
19233         (Xtensa Options): New node.
19234         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
19235
19236 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
19237
19238         * diagnostic.c (internal_error): Do ICE suppression only
19239         when ENABLE_CHECKING is not defined.
19240
19241         * c-typeck.c (require_complete_type): Return error_mark_node
19242         if type is error_mark_node.
19243
19244 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
19245
19246         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
19247         -Os and issue a warning.
19248
19249 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
19250
19251         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
19252         current (lack of) need for host configuration by hand.
19253
19254         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
19255         references.  Documentation of some target macros moved from
19256         hostconfig.texi to tm.texi.
19257
19258 2002-01-23  Will Cohen  <wcohen@redhat.com>
19259
19260         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
19261         defined.
19262
19263 2002-01-23  Kazu Hirata  <kazu@hxi.com>
19264
19265         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
19266         operand[3].
19267
19268 2002-01-23  Jason Merrill  <jason@redhat.com>
19269
19270         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
19271
19272         * function.c (assign_parms): Don't put args of inline functions
19273         into registers when not optimizing.
19274
19275 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
19276
19277         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
19278         (prologue_use): New pattern.
19279         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
19280         preference to gen_rtx_USE.
19281         (thumb_expand_prologue): Use gen_prologue_use in preference to
19282         gen_rtx_USE.
19283         (thumb_expand_epilogue): Use gen_prologue_use in preference to
19284         gen_rtx_USE.
19285
19286 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
19287
19288         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
19289
19290 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
19291
19292         PR c/3504
19293         * doc/extend.texi: Correct documentation of __alignof__.
19294
19295 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
19296
19297         * params.h: Rename arguments of DEFPARAM so that it will be
19298         recognized as a translation keyword.
19299
19300 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
19301
19302         * extend.texi: Document altivec functions.
19303         Fix N-bit adjectives in X86 builtin documentation.
19304
19305 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
19306
19307         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
19308         auto_inc_dec values.
19309
19310 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
19311
19312         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
19313         after backslash.
19314         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
19315
19316 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
19317
19318         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
19319
19320 2002-01-22  Richard Henderson  <rth@redhat.com>
19321
19322         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
19323         copy_insn not copy_rtx.
19324
19325 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
19326
19327         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
19328         "nonzero" as that might add "1" bits.  Ensure "constop" is
19329         properly sign extened.
19330         (force_to_mode): Tweak for sign extended constop.
19331
19332 2002-01-22  Richard Henderson  <rth@redhat.com>
19333
19334         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
19335         for_each_rtx instead of assuming we're already looking at the MEM.
19336         (split_small_symbolic_mem_operand): Likewise.
19337         * config/alpha/alpha.h (PREDICATE_CODES): Update.
19338         * config/alpha/alpha.md (small symbolic memory splitters): Update.
19339
19340 2002-01-22  Richard Henderson  <rth@redhat.com>
19341
19342         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
19343         sequence number for the literal.
19344         (divmoddi_internal_er): Likewise.
19345
19346 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19347
19348         PR java/4972
19349         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
19350         in LIBICONV variable.
19351         * configure: Regenerated.
19352
19353 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
19354
19355         * dependence.c (build_def_use): Remove array_idx.
19356
19357         * dwarfout.c (last_filename): Remove.
19358         (output_compile_unit_die): Remove last_filename.
19359
19360 2002-01-22  Roger Sayle  <roger@eyesopen.com>
19361             Richard Henderson  <rth@redhat.com>
19362
19363         PR opt/3640
19364         * fold-const.c (fold): Optimize unsigned comparisons against
19365         UINT_MAX (and similar unsigned constants).
19366
19367 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
19368
19369         * Makefile.in (loop.o): Depend on OPTABS_H.
19370         * loop.c (emit_prefetch_instructions): Check the prefetch operand
19371         against the predicate.
19372
19373         PR target/5379
19374         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
19375         for the address operand.
19376
19377 2002-01-22  Richard Henderson  <rth@redhat.com>
19378
19379         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
19380
19381 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19382
19383         PR other/5450
19384         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
19385         preprocessor flags.
19386
19387 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
19388
19389         * config.gcc (x86_64-*-netbsd*): New target.
19390         * config/i386/netbsd64.h: New file.
19391
19392 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
19393
19394         * regrename.c (kill_value): Fix typo.
19395
19396 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
19397
19398         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
19399
19400         * config/rs6000/rs6000.h: Same.
19401
19402         * function.c (instantiate_virtual_regs): Remove
19403         STARTING_FRAME_PHASE.
19404         (assign_stack_local_1): Same.
19405         Calculate frame phase.
19406
19407 2002-01-22  Nick Clifton  <nickc@redhat.com>
19408
19409         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
19410         variable declaration to outer scope in order to simplify
19411         future extensions.
19412         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
19413         arm_hard_regno_mode_ok.
19414         * config/arm/arm-protos.h: Add a prototype for
19415         arm_hard_regno_mode_ok.
19416         * config/arm/arm.c (soft_df_operand): Remove now redundant
19417         check for DImode values using IP_REGNUM.
19418         (nonimmediate_soft_df_operand): Remove now redundant check for
19419         DImode values using IP_REGNUM.
19420         (arm_hard_regno_mode_ok): New function. New check: make sure
19421         that DImode values are not stored in IP_REGNUM.
19422
19423         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
19424         note with a USE.
19425         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
19426
19427 2002-01-22  Jason Merrill  <jason@redhat.com>
19428
19429         * c-semantics.c (genrtl_compound_stmt): Only check nesting
19430         consistency if this COMPOUND_STMT is scoped.
19431
19432 2002-01-22  Kazu Hirata  <kazu@hxi.com>
19433
19434         * predict.c: Fix formatting.
19435         * print-tree.c: Likewise.
19436         * protoize.c: Likewise.
19437         * real.h: Likewise.
19438         * rtl.h: Likewise.
19439         * sbitmap.h: Likewise.
19440         * scan.c: Likewise.
19441         * sched-deps.c: Likewise.
19442         * sched-vis.c: Likewise.
19443         * sdbout.c: Likewise.
19444         * sibcall.c: Likewise.
19445         * ssa.c: Likewise.
19446         * ssa-ccp.c: Likewise.
19447         * ssa-dce.c: Likewise.
19448         * stmt.c: Likewise.
19449         * stor-layout.c: Likewise.
19450         * system.h: Likewise.
19451
19452 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19453
19454         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
19455         if fits in bounds of base type.
19456
19457         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
19458         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
19459         (add_bound_info, default): If can't find a context, make a
19460         SAVE_EXPR.
19461         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
19462
19463 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
19464
19465         * c-typeck.c (parser_build_binary_op): If result from
19466         build_binary_op is ERROR_MARK just return error_mark_node without
19467         further processing.
19468
19469 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
19470
19471         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
19472         Split a.out-specific bits into...
19473         * config/netbsd-aout.h: ...this.
19474         * config/netbsd-elf.h: New file.
19475         * config/alpha/netbsd-elf.h: Remove.
19476         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
19477         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
19478         (STARTFILE_SPEC): Remove redundant definition.
19479         (ENDFILE_SPEC): Likewise.
19480         (LINK_SPEC): Likewise.
19481         (CPP_SPEC): Likewise.
19482         (ASM_SPEC): Likewise.
19483         (LIB_SPEC): Likewise.
19484         (SWITCH_TAKES_ARG): Likewise.
19485         (TARGET_MEM_FUNCTIONS): Likewise.
19486         (CPP_PREDEFINES): Redefine.
19487         (ASM_FINAL_SPEC): Remove redefinition.
19488         (ASM_COMMENT_START): Redefine.
19489         (FUNCTION_PROFILER): Define.
19490         (TARGET_VERSION): Redefine.
19491         Comment and formatting cleanup.
19492         * config/i386/netbsd.h: Include <netbsd-aout.h>.
19493         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
19494         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
19495         big- or little-endian.
19496         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
19497         * config.gcc (*-*-netbsd*): Add definitions common to all
19498         NetBSD configs.
19499         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
19500         gnu_ld definitions.  Add netbsd-elf.h to and remove
19501         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
19502         tmake_file, and don't lose previous tmake_file contents.
19503         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
19504         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
19505         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
19506         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
19507         (mipsel-*-netbsd*): Rename this to...
19508         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
19509         mips/little.h to tm_file for mips*el-*.
19510         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
19511         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
19512         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
19513
19514 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19515
19516         * pa-protos.h (reg_before_reload_operand): New function prototype.
19517         * pa.c (reg_before_reload_operand): New function implementation.
19518         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
19519         contraints to "*m".
19520
19521 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19522
19523         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
19524
19525 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19526
19527         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
19528         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
19529         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
19530         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
19531         (ENDFILE_SPEC): Undefine.
19532         (STARTFILE_SPEC): Redefine for PA.
19533
19534 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19535
19536         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
19537
19538 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
19539
19540         * config.gcc: Add entries to supported PowerPC --with-cpu
19541         types.
19542
19543 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
19544
19545         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
19546         true for 64-bit mode only SSE registers in 32-bit mode.
19547
19548 2002-01-21  Kazu Hirata  <kazu@hxi.com>
19549
19550         * unwind-dw2.c: Fix formatting.
19551         * unwind-dw2-fde.c: Likewise.
19552         * unwind-dw2-fde.h: Likewise.
19553         * unwind-pe.h: Likewise.
19554         * varasm.c: Likewise.
19555         * varray.h: Likewise.
19556
19557 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
19558
19559         Remove workaround for register stack overwrite bug in mmix.
19560         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
19561         support for TARGET_REG_STACK_FILL_BUG.
19562         * config/mmix/mmix.h: Remove member has_call_without_parameters.
19563         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
19564         Delete.
19565         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
19566         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
19567         -mno-reg-stack-fill-bug-workaround.
19568         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
19569         machine member has_call_without_parameters.
19570         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
19571         -mreg-stack-fill-bug-workaround and
19572         -mno-reg-stack-fill-bug-workaround.
19573         (MMIX Options): Ditto.
19574
19575 2002-01-21  Kazu Hirata  <kazu@hxi.com>
19576
19577         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
19578         as appropriate.
19579         Remove redundant code.
19580
19581 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
19582
19583         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
19584         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
19585         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
19586         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
19587         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
19588         out target macro definitions and non-target-specific comments
19589         mostly taken from old versions of the manual.
19590
19591 2002-01-20  Kazu Hirata  <kazu@hxi.com>
19592
19593         * config/h8300/h8300.h: Fix comment formatting.
19594         * config/ia64/aix.h: Likewise.
19595         * config/ia64/ia64-protos.h: Likewise.
19596         * config/ia64/ia64.c: Likewise.
19597         * config/ia64/ia64.h: Likewise.
19598         * config/ia64/ia64intrin.h: Likewise.
19599         * config/ia64/linux.h: Likewise.
19600         * config/ia64/unwind-aix.c: Likewise.
19601         * config/ia64/unwind-ia64.c: Likewise.
19602
19603 2002-01-20  Kazu Hirata  <kazu@hxi.com>
19604
19605         * config/h8300/h8300.c: Revise comments about shift code.
19606
19607 2002-01-20  Kazu Hirata  <kazu@hxi.com>
19608
19609         * config/h8300/h8300.c (function_arg): Update a comment.
19610
19611 2002-01-20  Kazu Hirata  <kazu@hxi.com>
19612
19613         * config/h8300/h8300.md: Update the comments at the beginning
19614         of the file.
19615
19616 2002-01-20  Kazu Hirata  <kazu@hxi.com>
19617
19618         * config/i370/i370.c: Fix comment formatting.
19619         * config/i370/i370.h: Likewise.
19620         * config/i370/i370.md: Likewise.
19621         * config/i370/linux.h: Likewise.
19622
19623 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19624
19625         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
19626
19627         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
19628         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
19629         in incomplete case.
19630
19631 2002-01-20  Graham Stott  <grahams@redhat.com>
19632
19633         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
19634
19635 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19636
19637         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
19638
19639 2002-01-19  Tom Rix  <trix@redhat.com>
19640
19641         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
19642
19643 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
19644
19645         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
19646
19647         * function.c (assign_stack_local_1): Adjust x_frame_offset with
19648         STARTING_FRAME_PHASE.
19649         (STARTING_FRAME_PHASE): New.
19650         (instantiate_virtual_regs): Check saneness of
19651         STARTING_FRAME_PHASE.
19652
19653         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
19654
19655 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
19656
19657         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
19658
19659 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19660
19661         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
19662         be used for bootstrapping GCC 3.0.
19663
19664 2002-01-18  Kazu Hirata  <kazu@hxi.com>
19665
19666         * config/h8300/h8300.md: Fix an insn length.
19667
19668 2002-01-18  Kazu Hirata  <kazu@hxi.com>
19669
19670         * bitmap.h: Fix comment formatting.
19671         * combine.c: Likewise.
19672         * cppfiles.c: Likewise.
19673         * c-pragma.h: Likewise.
19674         * c-typeck.c: Likewise.
19675         * df.c: Likewise.
19676         * dwarf2out.c: Likewise.
19677         * function.c: Likewise.
19678         * gcc.c: Likewise.
19679         * genattrtab.c: Likewise.
19680         * gthr-win32.h: Likewise.
19681         * haifa-sched.c: Likewise.
19682         * predict.c: Likewise.
19683         * rtlanal.c: Likewise.
19684         * rtl.h: Likewise.
19685         * unwind-dw2-fde.h: Likewise.
19686         * unwind-pe.h: Likewise.
19687         * vmsdbgout.c: Likewise.
19688
19689 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19690
19691         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
19692         if type_required and passed decl.
19693
19694 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
19695
19696         * config.gcc (cpu_type): Include altivec.h in powerpc
19697         extra_headers.
19698         Same for darwin.
19699
19700         * config/rs6000/altivec.h: New.
19701
19702 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
19703
19704         * doc/install.texi (*-ibm-aix*): Update assembler and exception
19705         handling information.
19706         * doc/trouble.texi (Interoperation): Add libstdc++ information
19707         for AIX.
19708         (Misunderstandings): Add template instantiation and static template
19709         member information for AIX.
19710
19711 2002-01-17  Jason Merrill  <jason@redhat.com>
19712
19713         * dbxout.c (dbxout_type): Support const and volatile.
19714
19715         * except.c (add_partial_entry): Remove backwards compatibility code.
19716         (end_protect_partials): Likewise.
19717
19718 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
19719
19720         * config/ia64/ia64.md (prologue_use): New.
19721         * config/ia64/ia64.c (ia64_expand_prologue): Use
19722         gen_prologue_use instead of gen_rtx_USE.
19723         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
19724         as CODE_FOR_pred_rel_mutex.
19725         (ia64_sched_reorder2): Likewise.
19726
19727 2002-01-16  Eric Christopher  <echristo@redhat.com>
19728
19729         * config/mips/r3900.h: Reformat.
19730         (SUBTARGET_CPP_SIZE_SPEC): Remove.
19731         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
19732         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
19733         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
19734         * config/mips/t-elf: Remove mips3 multilib.
19735
19736 2002-01-16  H.J. Lu <hjl@gnu.org>
19737
19738         * config/mips/linux.h: Include "mips/abi64.h".
19739
19740 2002-01-16  H.J. Lu <hjl@gnu.org>
19741
19742         * config/mips/t-linux: New.
19743
19744         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
19745
19746         * config/mips/linux.h: Don't include "gofast.h".
19747         (INIT_SUBTARGET_OPTABS): Removed.
19748
19749 2002-01-16  Kazu Hirata  <kazu@hxi.com>
19750
19751         * config/h8300/h8300-protos.h: Replace emit_a_shift with
19752         output_a_shift.
19753         * config/h8300/h8300.c: Likewise.
19754         * config/h8300/h8300.md: Likewise.
19755
19756 2002-01-16  Kazu Hirata  <kazu@hxi.com>
19757
19758         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
19759         spaces after an opcode name.
19760         (pushqi1_h8300hs): Likewise.
19761         (pushhi1_h8300hs): Likewise.
19762
19763 2002-01-16  Kazu Hirata  <kazu@hxi.com>
19764
19765         * doc/extend.texi: Replace "option" with "attribute"
19766         appropriately.
19767
19768 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
19769
19770         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
19771         (and:DI () (const_int -8)).
19772         (split_small_symbolic_mem_operand): Split
19773         (mem (and:DI () (const_int -8)).
19774
19775 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
19776
19777         PR target/5309:
19778         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
19779         same way as TYPE_IMUL.
19780         (ultrasparc_sched_reorder): Likewise.
19781         * config/sparc/sparc.md (type): Add comment to update
19782         ultrasparc_sched_reorder when making changes.
19783
19784 2002-01-16  Kazu Hirata  <kazu@hxi.com>
19785
19786         * doc/invoke.texi: Change the dump file name of block
19787         reordering pass from 28.bbro to 29.bbro.
19788         Mention -dk option.
19789
19790 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
19791
19792         * i386.md (minsf splitter): Fix pasto.
19793
19794 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
19795
19796         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
19797         to frame pointer initialisation instruction.
19798         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
19799         initialisation instruction.
19800         (soft_df_operand): Do not accept the IP register.
19801         (nonimmediate_soft_df_operand): Do not accept the IP register.
19802
19803 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
19804
19805         PR target/5357:
19806         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
19807         MASK_V8 being both set.
19808
19809 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
19810
19811         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
19812         insn for GOT register; add REG_MAYBE_DEAD notes instead.
19813         config/s390/s390.md (call, call_value): Add GOT register to
19814         CALL_INSN_FUNCTION_USAGE where needed.
19815         (call_exp, call_value_exp): New.
19816
19817 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
19818
19819         * config/arm/arm.c: General formatting tidy up.
19820
19821 2002-01-16  Graham Stott  <grahams@redhat.com>
19822
19823         * calls.c (try_to_integrate): Use "(size_t)" intermediate
19824         cast and when casting an integer literal to "rtx" pointer.
19825         (expand_call): Likewise.
19826         * flow.c (try_pre_increment): Likewise.
19827         (find_use_as_address): Likewise.
19828         * integrate.c (expand_iline_function): Likewise.
19829         * regmove.c (try_auto_increment): Likewise.
19830
19831 2002-01-16  Graham Stott  <grahams@redhat.com>
19832
19833         * sched-rgn.c (passed): Use sbitmap_free.
19834         (header): Likewise.
19835         (inner): Likewise.
19836         (in_queue): Likewise.
19837         (in_stack): Likewise.
19838
19839 2002-01-15  Eric Christopher  <echristo@redhat.com>
19840
19841         * flow.c (propagate_one_insn): Change to use fatal_insn.
19842
19843 2002-01-15  Kazu Hirata  <kazu@hxi.com>
19844
19845         * expmed.c (extract_fixed_bit_field): Remove unused code.
19846         * system.h: Poison SLOW_ZERO_EXTEND.
19847         * doc/tm.texi: Remove.
19848         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
19849         * config/arm/arm.h: Likewise.
19850         * config/avr/avr.h: Likewise.
19851         * config/clipper/clipper.h: Likewise.
19852         * config/convex/convex.h: Likewise.
19853         * config/d30v/d30v.h: Likewise.
19854         * config/dsp16xx/dsp16xx.h: Likewise.
19855         * config/elxsi/elxsi.h: Likewise.
19856         * config/fr30/fr30.h: Likewise.
19857         * config/h8300/h8300.h: Likewise.
19858         * config/i370/i370.h: Likewise.
19859         * config/i386/i386.h: Likewise.
19860         * config/m68k/m68k.h: Likewise.
19861         * config/mips/mips.h: Likewise.
19862         * config/ns32k/ns32k.h: Likewise.
19863         * config/pdp11/pdp11.h: Likewise.
19864         * config/pj/pj.h: Likewise.
19865         * config/s390/s390.h: Likewise.
19866         * config/sh/sh.h: Likewise.
19867         * config/stormy16/stormy16.h: Likewise.
19868         * config/v850/v850.h: Likewise.
19869         * config/vax/vax.h: Likewise.
19870         * config/we32k/we32k.h: Likewise.
19871
19872 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
19873
19874         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
19875         (altivec_lvsl): Change constraint to b.
19876         (altivec_lvsr): Same.
19877         (altivec_lvebx): Same.
19878         (altivec_lvehx): Same.
19879         (altivec_lvewx): Same.
19880         (altivec_lvxl): Same.
19881         (altivec_lvx): Same.
19882         (altivec_stvx): Add parallel.
19883         (altivec_stvxl): Same.
19884         (altivec_stvehx): Same.
19885         (altivec_stvebx): Same.
19886         (altivec_stvebx): Same.
19887
19888 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
19889
19890         * config.gcc: Change altivec.h to altivec-defs.h.
19891
19892         * config/rs6000/altivec.h: Delete.
19893
19894         * config/rs6000/altivec-defs.h: Add.
19895
19896 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19897
19898         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
19899         and UMOD modes.
19900
19901         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
19902         less than or equal to eight bytes.
19903
19904         * vax.md (andsi3): Remove constraints and change SET destination
19905         operand type to nonimmediate_operand.
19906         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
19907         when it is a CONST_INT.
19908
19909 2002-01-15  Jason Merrill  <jason@redhat.com>
19910
19911         * c-common.def (FILE_STMT): New code.
19912         * c-common.c (statement_code_p): It's a statement.
19913         * c-common.h (stmt_tree_s): Add x_last_filename.
19914         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
19915         (last_expr_filename): New macro.
19916         * c-semantics.c (begin_stmt_tree): Initialize it.
19917         (add_stmt): If the filename changed, also insert a
19918         FILE_STMT.
19919         (expand_stmt): Handle seeing one.
19920
19921 2002-01-15  Eric Christopher  <echristo@redhat.com>
19922
19923         * flow.c (propagate_one_insn): Add error message and print out
19924         insn for debugging.
19925
19926 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
19927
19928         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
19929         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
19930         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
19931         TRAMPOLINE_ALIGNMENT.
19932         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
19933         to be in bits.
19934         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
19935         PCC_BITFIELD_TYPE_MATTERS.
19936         * config/interix.h (STDC_VALUE): Remove.  Use
19937         STDC_0_IN_SYSTEM_HEADERS.
19938         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
19939         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
19940         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
19941
19942 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19943
19944         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
19945         not work on this platform currently.
19946
19947 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
19948
19949         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
19950         readonly_warning in _().
19951
19952 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
19953
19954         * gcc.c (delete_if_ordinary): Backout previous change.
19955
19956 2002-01-15  Kazu Hirata  <kazu@hxi.com>
19957
19958         * config/h8300/h8300.c (print_operand): Remove support for
19959         unused operand characters.
19960
19961         * read-rtl.c: Fix formatting.
19962         * real.c: Likewise.
19963         * recog.c: Likewise.
19964         * regclass.c: Likewise.
19965         * regmove.c: Likewise.
19966         * reg-stack.c: Likewise.
19967         * reload1.c: Likewise.
19968         * rtlanal.c: Likewise.
19969
19970 2002-01-15  Kazu Hirata  <kazu@hxi.com>
19971
19972         * config/i386/i386.c: Fix formatting.
19973
19974 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
19975
19976         * c-typeck.c (process_init_element): Don't save_expr
19977         COMPOUND_LITERAL_EXPR if just its initializer will be used.
19978
19979 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
19980
19981         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
19982         emit optional traceback table if optimize_size or TARGET_ELF.
19983         * config/rs6000/rs6000.md (prefetch): New.
19984
19985 2002-01-15  Andreas Jaeger  <aj@suse.de>
19986
19987         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
19988
19989 2002-01-15  Kazu Hirata  <kazu@hxi.com>
19990
19991         * mips-tfile.c: Fix formatting.
19992
19993 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
19994
19995         * unroll.c (final_reg_note_copy): Fix previous commit.
19996
19997 2002-01-14  Kazu Hirata  <kazu@hxi.com>
19998
19999         * config/h8300/h8300-protos.h: Remove the prototype for
20000         eq_operator.
20001         * config/h8300/h8300.c (eq_operator): Remove.
20002
20003 2002-01-14  Richard Henderson  <rth@redhat.com>
20004
20005         * config/i386/i386.md (prefetch): Tidy.
20006         (prefetch_3dnow): Fix locality operand.
20007
20008 2002-01-14  Richard Henderson  <rth@redhat.com>
20009
20010         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
20011         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
20012
20013 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
20014
20015         * reload1.c (reload_combine): Pass reg_sum replacement through
20016         copy_rtx in loop performing multiple changes.
20017
20018 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
20019
20020         * except.c (remove_unreachable_regions): New.
20021         (free_eh_status): Clear exception_handler_labels.
20022         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
20023         (find_exception_handler_labels): Don't add the same label more than
20024         once.
20025         (remove_exception_handler_label): Don't die if
20026         find_exception_handler_labels hasn't been called for the current
20027         function yet.
20028
20029 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
20030
20031         * toplev.c (rest_of_compilation): Rebuild jump labels after
20032         gcse.
20033
20034 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
20035
20036         * doc/extend.texi: Move documentation of X86 built-in functions
20037         here.
20038         * doc/invoke.texi: From here.
20039         * doc/sourcebuild.texi: Document location of documentation for
20040         machine built-in functions.
20041
20042 2002-01-13  Christopher Faylor  <cgf@redhat.com>
20043
20044         * cppfiles.c (TEST_THRESHOLD): New macro.
20045         (SHOULD_MMAP): Ditto.
20046         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
20047         be used.
20048
20049 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
20050
20051         * unroll.c (final_reg_note_copy): Properly handle
20052         REG_LABEL
20053         (unroll_loops): Fix LOOP_CONDITION heuristics.
20054
20055 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
20056
20057         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
20058         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
20059
20060 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
20061
20062         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
20063         threaded loop.
20064
20065 2002-01-14  Tom Rix  <trix@redhat.com>
20066
20067         * config/rs6000/rs6000.md: Fix typo with sradi.
20068
20069 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
20070
20071         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
20072         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
20073         (clrstrdi, clrstrsi): Adapt callers.
20074
20075         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
20076
20077         (movti splitter): Never use register 0 as base register.
20078
20079 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
20080
20081         * combine.c (simplify_shift_const): Always generate new rtx
20082         for shift expression instead of reusing given expression.
20083
20084 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20085
20086         * config/alpha/alpha.c (alpha_expand_mov): Don't call
20087         alpha_legitimize_address unless mode is Pmode.
20088
20089 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
20090
20091         * doc/md.texi (Modifiers): Document the '*' constraint for the
20092         user.
20093
20094         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
20095         * doc/extend.texi (Function Attributes): 'interrupt' is valid
20096         for xstormy16 too.
20097
20098 2002-01-13  Richard Henderson  <rth@redhat.com>
20099
20100         * reload.c (find_reloads): Use a hard reg destination as reload reg
20101         for an input reload of the source.
20102
20103 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20104
20105         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
20106         more generic.
20107
20108 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
20109
20110         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
20111         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
20112
20113         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
20114
20115 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20116
20117         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
20118
20119 2002-01-12  Tom Rix  <trix@redhat.com>
20120
20121         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
20122         TARGET_POWERPC64.
20123
20124 2002-01-12  Richard Henderson  <rth@redhat.com>
20125
20126         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
20127
20128         * doc/invoke.texi: Update Alpha options.
20129
20130         * doc/invoke.texi: Update i386 built-in function lists.
20131
20132 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
20133
20134         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
20135         referencing outside.
20136
20137 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20138
20139         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
20140         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
20141         offsets, and change line folding.
20142         * optabs.c (expand_binop): Remove warnings.
20143         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
20144
20145 2002-01-12  Graham Stott <grahams@redhat.com>
20146
20147         * attribs.c (handle_deprecated_attribute): constify WHAT.
20148         * diagnostic.c (warn_deprecated_use): Add braces, fixes
20149         dangling else warning and constify WHAT.
20150         * except.h (struct function, struct inline_remap): Move
20151         struct tag forward defs before all prototypes.
20152         (duplicate_eh_regions): Whitespace.
20153
20154 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
20155
20156         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
20157         MODE_BASE_REG_CLASS.
20158         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
20159
20160 2002-01-12  Richard Henderson  <rth@redhat.com>
20161
20162         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
20163         (ix86_expand_vector_move): New.
20164         (bdesc_2arg): Remove andps, andnps, orps, xorps.
20165         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
20166         Remove old prefetch builtins.  Special case the logicals removed above.
20167         (ix86_expand_builtin): Likewise.
20168         (safe_vector_operand): Use V4SFmode, not TImode.
20169         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
20170         (ix86_expand_timode_binop_builtin): New.
20171         * config/i386/i386-protos.h: Update.
20172         * config/i386/i386.h (enum ix86_builtins): Update.
20173         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
20174         Use ix86_expand_vector_move in vector move expanders.
20175         (movti_internal, movti_rex64): Add xorps alternative.
20176         (sse_clrv4sf): Rename and adjust from sse_clrti.
20177         (prefetch): Don't work so hard.
20178         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
20179         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
20180         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
20181
20182 2002-01-11  Richard Henderson  <rth@redhat.com>
20183
20184         * config/i386/mmintrin.h: New file.
20185         * config/i386/xmmintrin.h: New file.
20186         * config.gcc (i?86-*-*): Add extra_headers.
20187         * simplify-rtx.c (simplify_unary_operation): Handle saturating
20188         truncation codes.
20189         (simplify_binary_operation): Handle saturating arithmetic codes.
20190         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
20191         not the lowpart subreg.
20192         (ix86_expand_builtin): Return a TImode dummy register instead of 0
20193         on error.
20194         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
20195
20196 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20197
20198         * conflict.c (conflict_graph_compute): Free regsets when finished.
20199         * ssa.c (compute_coalesced_reg_partition): Likewise.
20200
20201 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
20202
20203         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
20204         every where we allocate a register.
20205
20206 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20207
20208         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
20209         * lcm.c (compute_earliest, compute_farthest): Likewise.
20210
20211 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
20212
20213         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
20214
20215 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
20216
20217         * doc/rtl.texi (Insns): Fix 2 typos.
20218
20219 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
20220
20221         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
20222         options.  Use @table @gcctabopt for MMIX options.  Add index
20223         entries for MMIX options.  Start new paragraph with first
20224         heading of the machine-dependent options.
20225
20226 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20227
20228         PR other/5299
20229         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
20230         * combine.c (force_to_mode): Same.
20231         * reload1.c (clear_reload_reg_in_use): Same.
20232
20233 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
20234
20235         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
20236         and 'subtargets'.
20237
20238 2002-01-11  Andreas Jaeger  <aj@suse.de>,
20239             Brad Lucier <lucier@math.purdue.edu>
20240
20241         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
20242         mcpu.
20243
20244 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
20245
20246         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
20247         Protect with IN_LIBGCC.
20248         (LINK_EH_SPEC): Add required trailing space.
20249
20250 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
20251
20252         * c-tree.h: Move function declarations so that they are listed
20253         under the filename which contains them.
20254         (check_identifier, finish_decl_top_level,
20255         lookup_name_current_level_global, shadow_record_fields): Remove.
20256
20257 2002-01-11  Andreas Jaeger  <aj@suse.de>
20258
20259         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
20260         march.
20261
20262 2002-01-10  Richard Henderson  <rth@redhat.com>
20263
20264         * config/alpha/alpha.c (print_operand): Add 'J'.
20265         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
20266         new operand with the sequence number for the lituse.  When splitting
20267         the insns, use gen_movdi_er_high_g and generate a sequence number.
20268         (gen_movdi_er_high_g): Print the sequence number if non-zero.
20269
20270 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
20271
20272         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
20273         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
20274         stvxl.
20275         (altivec_expand_builtin): Same.
20276         (altivec_expand_stv_builtin): New.
20277
20278         * config/rs6000/rs6000.h (rs6000_builtins): Same.
20279
20280         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
20281         ("altivec_lvehx"): New.
20282         ("altivec_lvewx"): New.
20283         ("altivec_lvxl"): New.
20284         ("altivec_lvx"): New.
20285         ("altivec_stvx"): New.
20286         ("altivec_stvebx"): New.
20287         ("altivec_stvehx"): New.
20288         ("altivec_stvewx"): New.
20289         ("altivec_stvxl"): New.
20290
20291 2002-01-10  Richard Henderson  <rth@redhat.com>
20292
20293         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
20294         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
20295         care not to delete instructions twice.
20296
20297 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
20298
20299         * toplev.c: Don't declare environ (it's not used anywhere).
20300         * configure.in: Don't check for declaration of environ.
20301         * config/i386/xm-mingw32.h: Don't #define environ.
20302         * config.in, configure: Regenerate.
20303
20304 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
20305
20306         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
20307         * configure: Regenerate.
20308
20309         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
20310         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
20311         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
20312         alpha/xm-vms.h.
20313         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
20314         LIMITS_H_TEST here, not in m68k/x-next.
20315         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
20316         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
20317
20318         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
20319         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
20320         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
20321
20322         * config/i386/x-djgpp: Renamed i386/t-djgpp.
20323         * config/m88k/x-dolph: Renamed m88k/t-dolph.
20324         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
20325         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
20326         replacement of quadlib.asm with quadlib.c.
20327
20328         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
20329         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
20330         config/rs6000/xm-beos.h: Delete file.
20331
20332         * config.gcc: Update to match above changes.
20333
20334 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20335
20336         * config/h8300/h8300.h: Fix comment typos.
20337         * config/h8300/h8300.md: Likewise.
20338         * config/h8300/lib1funcs.asm: Likewise.
20339
20340 2002-01-10  Dale Johannesen  <dalej@apple.com>
20341
20342         PR optimization/5269
20343         * unroll.c (precondition_loop_p): Make *increment be the correct
20344         sign when n_iterations known, to avoid confusing caller.
20345
20346 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20347
20348         * doc/extend.texi (deprecated): Fix a typo.
20349
20350 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
20351
20352         * basic-block.h (update_br_prob_note): Declare.
20353         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
20354         (try_forward_edges): Care negative frequencies and update note.
20355         (outgoing_edges_match): Tweek conditional merging heuristics.
20356         (try_crossjump_to_edge): use update_br_prob_note.
20357         * cfglayout.c (fixup_reorder_chain): Likewise.
20358         * cfrtl.c (update_br_prob_note): New.
20359         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
20360
20361         * i386.c (ix86_decompose_address): Return -1 if address contains
20362         shift.
20363         (legitimate_address_p): Require ix86_decompose_address to return 1.
20364
20365         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
20366         (cprop_insn): Likewise.
20367
20368 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20369
20370         * toplev.c: Fix formatting.
20371         * tree.c: Likewise.
20372         * tree-dump.c: Likewise.
20373         * unroll.c: Likewise.
20374         * unwind-dw2.c: Likewise.
20375         * unwind-dw2-fde.c: Likewise.
20376         * unwind-dw2-fde-glibc.c: Likewise.
20377         * unwind-sjlj.c: Likewise.
20378
20379 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
20380
20381         * doc/invoke.texi: Document PDP-11 options.
20382
20383 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20384
20385         * config/h8300/h8300.h: Fix formatting.
20386
20387 2002-01-10  Ira Ruben   <ira@apple.com>
20388
20389         Add __attribute__ ((deprecated)).
20390         * extend.texi: Document __attribute__ ((deprecated)).
20391         * invoke.texi: Document -Wno-deprecated-declarations.
20392         * testsuite/g++.dg/other/deprecated.C: New C++ test.
20393         * testsuite/gcc.dg/deprecated.c: New C test.
20394         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
20395         (c_common_attribute_table): Add "deprecated" entry.
20396         (handle_deprecated_attribute): New function.
20397         * c-decl.c (deprecated_states): New enum.
20398         deprecated_state: State of "deprecated" handling.
20399         (start_decl): Set deprecated_state based on attributes.
20400         (grokdeclarator): Test for deprecated uses, propagate attribute.
20401         * c-typeck.c (build_component_ref): Test for deprecated fields.
20402         (build_external_ref): Test for deprecated primaries.
20403         * diagnostic.c (warn_deprecated_use) New function to issue
20404         warnings about __attribute__ ((depricated)) references.
20405         * flags.h (warn_deprecated_decl): Extern declared for
20406         -W[no-]deprecated-declarations option.
20407         * print-tree.c (print_node): Show deprecated flag status.
20408         * toplev.c (warn_deprecated_decl): Defined.
20409         (W_options): Added "deprecated-declaration".
20410         * toplev.h (warn_deprecated_use): Extern declared.
20411         * tree.h (struct tree_common): Define deprecated_flag.
20412         (TREE_DEPRECATED): New macro to access flag.
20413         * cp/call.c (build_call): Test for deprecated calls.
20414         * cp/class.c (add_implicitly_declared_members): Set global
20415         flag to tell grokdeclarator to not issue deprecated warnings.
20416         * cp/cp-tree.h: Add extern for adding_implicit_members.
20417         * cp/decl.c (deprecated_states): New enum.
20418         (start_decl): Set deprecated_state based on attributes.
20419         (grokdeclarator): Test for deprecated uses, propagate attribute.
20420         * cp/lex.c (do_identifier): Test for deprecated primaries.
20421         * cp/typeck.c (build_component_ref): Test for deprecated fields.
20422
20423 2002-01-10  Ira Ruben   <ira@apple.com>
20424
20425         Fix to assign attributes to inline member functions.
20426         * cp/decl.c (start_method): Handle attrlist.
20427
20428 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20429
20430         * combine.c (expand_field_assignment): Use subreg_lsb().
20431
20432 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
20433
20434         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
20435         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
20436         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
20437         Recurse for any operand of AND as long as constant is non-zero.
20438
20439 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20440
20441         * config/h8300/h8300.md: Remove constraints from expanders.
20442
20443 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20444
20445         * varasm.c: Fix formatting.
20446         * varray.c: Likewise.
20447         * vmsdbgout.c: Likewise.
20448         * xcoffout.c: Likewise.
20449
20450 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
20451
20452         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
20453         update edge probabilities to match.
20454
20455 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
20456
20457         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
20458         dependencies.
20459         * doc/languages.texi, doc/sourcebuild.texi: New files.
20460         * doc/configfiles.texi: Make a subsubsection.  Update.
20461         * doc/configterms.texi: Add @node.  Remove warning that this isn't
20462         instructions for building GCC.
20463         * doc/makefile.texi: Make a subsection.
20464         * doc/gccint.texi: Update.
20465
20466 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
20467
20468         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
20469
20470 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
20471
20472         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
20473
20474 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
20475
20476         * optabs.c (expand_fix): Look for wider integer modes first.
20477
20478         * i386.md (mov?f): Avoid the fake const double trick for medium
20479         memory model.
20480         (min?f*/max?f*): Prohibit memory operands for i387 variant.
20481         (fop_df_4): Disable for SSE compilation.
20482
20483 2002-01-10  Graham Stott  <grahams@redhat.com>
20484
20485         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
20486         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
20487
20488 2002-01-10  Richard Henderson  <rth@redhat.com>
20489
20490         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
20491
20492 2002-01-10  Richard Henderson  <rth@redhat.com>
20493
20494         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
20495         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
20496
20497 2002-01-10  Kazu Hirata  <kazu@hxi.com>
20498
20499         * combine.c (can_combine_p): Fix a comment typo.
20500
20501 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
20502
20503         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
20504         empty list correctly.  Change loop index $t to $f for
20505         consistency with rest of Makefile.
20506
20507 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
20508
20509         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
20510         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
20511
20512         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
20513         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
20514         (altivec_init_builtins): Same.
20515         (altivec_expand_unop_builtin): Return NULL_RTX on error.
20516         (altivec_expand_binop_builtin): Same.
20517         (altivec_expand_ternop_builtin): Same.
20518         (bdesc_dst): New.
20519
20520         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
20521         ("altivec_vctuxs"): Fix typo.
20522         ("altivec_vnmsubfp"): Same.
20523         ("altivec_dssall"): New.
20524         ("altivec_mfvscr"): New.
20525         ("altivec_dss"): New.
20526         ("altivec_lvsl"): New.
20527         ("altivec_lvsr"): New.
20528         ("altivec_dstt"): New.
20529         ("altivec_dstst"): New.
20530         ("altivec_dststt"): New.
20531         ("altivec_dst"): New.
20532
20533         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
20534         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
20535
20536 2002-01-09  Richard Henderson  <rth@redhat.com>
20537
20538         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
20539
20540 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
20541
20542         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
20543         function.
20544         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
20545         prototype.
20546         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
20547
20548 2002-01-09  Kazu Hirata  <kazu@hxi.com>
20549
20550         * read-rtl.c: Fix formatting.
20551         * real.c: Likewise.
20552         * regclass.c: Likewise.
20553         * regrename.c: Likewise.
20554         * reg-stack.c: Likewise.
20555         * reload1.c: Likewise.
20556         * reload.c: Likewise.
20557         * rtl.c: Likewise.
20558
20559 2002-01-09  Kazu Hirata  <kazu@hxi.com>
20560
20561         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
20562         to extract items in the expr_list chain.
20563
20564 2002-01-09  Richard Henderson  <rth@redhat.com>
20565
20566         * config/vax/vax.c (vax_rtx_cost): Never abort.
20567
20568         * config/vax/vax.h (REAL_ARITHMETIC): Define.
20569
20570 2002-01-09  Jan Hubicka  <jh@suse.cz>
20571
20572         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
20573
20574 2002-01-09  Richard Henderson  <rth@redhat.com>
20575
20576         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
20577         Unify code from various alternatives.
20578
20579 2002-01-09  Richard Henderson  <rth@redhat.com>
20580
20581         * regrename.c (copy_value): Ignore the copy if the source register
20582         is present in the value chain with a narrower mode.
20583
20584 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
20585
20586         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
20587         for the c4x target. Also improve layout.
20588
20589 2002-01-09  Richard Henderson  <rth@redhat.com>
20590
20591         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
20592         * config/m32r/m32r.md (and ior xor splitters): Swap operands
20593         to match insn patterns.
20594
20595 2002-01-09  Richard Henderson  <rth@redhat.com>
20596
20597         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
20598         (copyprop_hardreg_forward_1): Likewise.
20599
20600 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20601
20602         * pa.md (decrement_and_branch_until_zero): Change predicate for
20603         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
20604
20605 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
20606
20607         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
20608         gets undefined. For Darwin.
20609
20610 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
20611
20612         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
20613
20614 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20615
20616         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
20617
20618 2002-01-08  Richard Henderson  <rth@redhat.com>
20619
20620         * regrename.c (copy_value): Ignore overlapping copies.
20621
20622 2002-01-08  Richard Henderson  <rth@redhat.com>
20623
20624         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
20625         as needed to avoid shared structure.
20626
20627 2002-01-08  Kazu Hirata  <kazu@hxi.com>
20628
20629         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
20630         H8/300H and H8/S.
20631
20632 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
20633
20634         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
20635         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
20636         documentation of obsolete macros.
20637         * system.h: Poison these macros.
20638         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
20639         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
20640         config/c4x/c4x.h, config/clipper/clipper.h,
20641         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
20642         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
20643         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
20644         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
20645         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
20646         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
20647         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
20648         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
20649         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
20650         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
20651         config/sparc/sparc.h, config/stormy16/stormy16.h,
20652         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
20653         definitions and commented out definitions of obsolete macros.
20654         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
20655         of MAX_INT_TYPE_SIZE.
20656
20657 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
20658
20659         * config/s390/s390.c (s390_preferred_reload_class): Never
20660         return ADDR_REGS if it isn't a subset of the given class.
20661         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
20662         FP_REGS, but all superclasses as well.
20663
20664         * config/s390/s390.c (s390_function_profiler): Fix thinko.
20665
20666         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
20667         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
20668         must not be a const_int.
20669
20670 2002-01-08  Richard Henderson  <rth@redhat.com>
20671
20672         * Makefile.in (toplev.o): Depend on options.h.
20673         (gcc.o): Depend on specs.h.
20674
20675 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
20676
20677         * expr.c (store_expr): Convert VOIDmode constants back to target's
20678         mode.
20679
20680 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
20681
20682         * doc/invoke.texi: Markup gcc as @command.  Refer to
20683         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
20684         of http://gcc.gnu.org/thanks.html.
20685
20686 2002-01-08  Dale Johannesen  <dalej@apple.com>
20687
20688         * config/rs6000/rs6000.md: Add missing int register
20689         target case to movdf_low.
20690
20691 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
20692
20693         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
20694         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
20695         (cppinit.o): Depend on except.h.
20696         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
20697         s-specs): New rules.
20698
20699         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
20700         Don't create specs.h/options.h/gencheck.h here.  Remove
20701         unnecessary variable settings from last argument of AC_OUTPUT.
20702         * config.in, configure: Regenerate.
20703         * intl.c: Hardcode package name as "gcc".
20704
20705         * cppinit.c: Include except.h.
20706         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
20707         appropriate.
20708         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
20709         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
20710         (!)USING_SJLJ_EXCEPTIONS.
20711         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
20712
20713 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
20714
20715         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
20716         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
20717         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
20718         documentation of obsolete macros.
20719         * system.h: Poison these macros.
20720         * config/d30v/d30v.h, config/ns32k/encore.h,
20721         config/stormy16/stormy16.h: Remove definitions and commented out
20722         definitions of obsolete macros.
20723
20724 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
20725
20726         * objc/objc-act.c (handle_class_ref): Mark the declaration of
20727         %sobjc_class_ref_%s as used - to prevent unwanted compiler
20728         warnings.
20729
20730 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
20731
20732         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
20733         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
20734         to insn adjusting stack/frame pointer.
20735         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
20736         accept operands that cause the insn to be non-splittable.
20737
20738 2002-01-08  Graham Stott  <grahams@redhat.com>
20739
20740         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
20741         (C_TYPE_FIELDS_VOLATILE): Likewise.
20742         (C_TYPE_BEING_DEFINED): Likewise.
20743         (C_IS_RESERVED_WORD): Likewise.
20744         (C_TYPE_VARIABLE_SIZE): Likewise.
20745         (C_DECL_VARIABLE_SIZE): Likewise.
20746         (C_MISSING_PROTOTYPE_WARNED): Likewise.
20747         (C_SET_EXP_ORIGINAL_CODE): Likewise.
20748         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
20749         parenthesis.
20750         (C_DECL_ANTICIPATED): Likewise.
20751         (c_build_type_variant): Add parenthesis.
20752
20753 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
20754
20755         * gcc.c (option_map): Remove --version.
20756         (process_command): Handle -fversion following the GNU Coding
20757         Standards.  Partially addresses PR other/704.
20758
20759 2002-01-08  Graham Stott  <grahams@redhat.com>
20760
20761         * combine.c (combine_instructions): Fix typo.
20762
20763 2002-01-08  Graham Stott  <grahams@redhat.com>
20764
20765         * debug.h: Use "tree" and "rtx" throughout.
20766
20767         * debug.c: Likewise.
20768
20769 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
20770
20771         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
20772         constant pool, use the pool's version of the symbol instead.
20773
20774 2002-01-07  Richard Henderson  <rth@redhat.com>
20775
20776         * regrename.c (find_oldest_value_reg): Ignore the value chain if
20777         the original register was copied in a mode with a fewer number of
20778         hard registers than the desired mode.
20779         (copyprop_hardreg_forward_1): Likewise.
20780         (debug_value_data): Fix loop test.
20781         * toplev.c (parse_options_and_default_flags): Reenable
20782         -fcprop-registers at -O1.
20783
20784 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
20785
20786         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
20787         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
20788
20789         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
20790         predicates.
20791
20792         * config/rs6000/rs6000.md: Add altivec predicate patterns.
20793
20794 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20795
20796         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
20797         (pa_output_function_prologue): Output local label at the beginning of
20798         the prologue when profiling.
20799         (hppa_profile_hook): Use the local label rather than the function label.
20800         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
20801
20802 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
20803
20804         * config/rs6000/rs6000.c (print_operand): Remove extra space.
20805         (altivec_expand_unop_builtin): Fix thinko.
20806         (altivec_expand_binop_builtin): Same.
20807         (altivec_expand_ternop_builtin): Same.
20808         (altivec_expand_builtin): Same.
20809
20810 2002-01-07  Richard Henderson  <rth@redhat.com>
20811
20812         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
20813
20814 2002-01-07  Jason Merrill  <jason@redhat.com>
20815
20816         * unwind-dw2.c (execute_cfa_program): Use < again.
20817
20818 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
20819
20820         * predict.c (combine_predictions_for_insn): Avoid division by zero.
20821
20822 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
20823
20824         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
20825         Don't allow -1 - x -> ~x simplifications in the first pass.
20826
20827 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
20828
20829         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
20830         arguments.
20831         (altivec_expand_binop_builtin): Same.
20832         (altivec_expand_unop_builtin): Same.
20833         (print_operand): Fix typo.
20834         (bdesc_1arg): Add vupk* variants.
20835
20836         * rs6000.h (rs6000_builtins): Add vupk* enums.
20837
20838         * rs6000.md: Add altivec_vupk* variants.
20839
20840 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
20841
20842         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
20843         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
20844         and last update dates.
20845
20846 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
20847
20848         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
20849
20850 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
20851
20852         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
20853         * config/avr/avr.h (CPP_SPEC): Likewise.
20854         (LINK_SPEC): Likewise.
20855         (CRT_BINUTILS_SPECS): Likewise.
20856         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
20857         * doc/invoke.texi (AVR Options): Document them.
20858
20859 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
20860
20861         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
20862         LABEL_NUSES.
20863
20864 2002-01-07  Graham Stott  <grahams@redhat.com>
20865
20866         * config/i386/i386.h: Update copyright date.
20867         (HALF_PIC_PTR): Add parenthesis.
20868         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
20869         (CONSTANT_ALIGNMENT): Add parenthesis.
20870         (DATA_ALIGNMENT): Likewise.
20871         (LOCAL_ALIGNMENT): Likewise.
20872         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
20873         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
20874         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
20875         (HARD_REGNO_NREGS): Add paranethesis.
20876         (VALID_SSE_REG_MODE): Whitespace.
20877         (VALID_MMX_REG_MODE): Whitespace.
20878         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
20879         (ix86_hard_regno_mode_ok): Add parenthesis.
20880         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
20881         (RETURN_IN_MEMORY): Whitespace.
20882         (N_REG_CLASSES): Add parenthesis.
20883         (INTEGER_CLASS_P): Add parenthesis and wrap.
20884         (FLOAT_CLASS_P): Likewise.
20885         (SSE_CLASS_P): Likewise.
20886         (MMX_CLASS_P): Likewise.
20887         (MAYBE_INTEGER_CLASS_P): Likewise.
20888         (MAYBE_FLOAT_CLASS_P): Likewise.
20889         (MAYBE_SSE_CLASS_P): Likewise.
20890         (MAYBE_MMX_CLASS_P): Likewise.
20891         (Q_CLASS_P): Likewise.
20892         (GENERAL_REGNO_P): Uppercase macro parameter.
20893         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
20894         (FP_REGNO_P): Likewise.
20895         (ANY_FP_REGNO_P): Uppercase macro parameter.
20896         (SSE_REGNO_P): Likewise.
20897         (SSE_REGNO): Likewise.
20898         (SSE_REG_P): Likewise.
20899         (SSE_FLOAT_MODE_P): Likewise.
20900         (MMX_REGNO_P): Likewise.
20901         (MMX_REG_P):Likewise.
20902         (STACK_REG_P): Likewise.
20903         (NON_STACK_REG_P): Likewise.
20904         (STACK_TOP_P): Likewise.
20905         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
20906         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
20907         (SECONDARY_MEMORY_NEEDED): Likewise.
20908         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
20909         (MD_ASM_CLOBBERS): Whitespace and wrap.
20910         (MUST_PASS_IN_STACK): Whitespace and wrap.
20911         (RETURN_POPS_ARGS): Add parenthesis.
20912         (INIT_CUMULATIVE_ARGS): Likewise.
20913         (FUNCTION_ARG): Likewise.
20914         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
20915         (SETUP_INCOMING_VARARGS): Likewise.
20916         (BUILD_VA_LIST_TYPE):  Add parenthesis.
20917         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
20918         parenthsis.
20919         (EXPAND_BUILTIN_VA_ARG): Likewise.
20920         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
20921         (INITIALIZE_TRAMPOLINE): Add parenthesis.
20922         (INITIAL_ELIMINATION_OFFSET): Likewise.
20923         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
20924         (REGNO_OK_FOR_BASE_P): Likewise.
20925         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
20926         (REGNO_OK_FOR_DIREG_P): Likewise.
20927         (REG_OK_FOR_INDEX_P): Whitespace.
20928         (REG_OK_FOR_BASE_P): Whitespace.
20929         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
20930         parenthesis.
20931         (FIND_BASE_TERM): Fix typo.
20932         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
20933         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
20934         (SYMBOLIC_CONST; Whitespace.
20935         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
20936         (ENCODE_SECTION_INFO): Whitespace.
20937         (FINALIZE_PIC): Remove do { ... } while (0).
20938         (PROMOTE_MODE): Wrap in do { ... } while (0).
20939         (CONST_COSTS): Whitespace.
20940         (RTX_COSTS): Add paramethesis, whitespace and wrap.
20941         (REGISTER_MOVE_COST): Add parenthesis.
20942         (MEMORY_MOVE_COST): Likewise.
20943         (EXTRA_CC_MODES): Whitespace.
20944         (SELECT_CC_MODE): Add parenthesis and whitespace.
20945         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
20946         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
20947         (ASM_OUTPUT_LABEL): Add paramethesis.
20948         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
20949         (ASM_OUTPUT_REG_POP): Likewise.
20950         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
20951         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
20952
20953         * config/i386/i386.c: Update copyright.
20954         (CHECK_STACK_LIMIT): Add parenthesis.
20955         (AT_BP): Uppercase macro parameter.
20956         (x86_64_int_parameter_registers): Constify.
20957         (x86_64_int_return_registers): Likewise.
20958         (ix86_compare_op0): Use rtx.
20959         (construct_container): Constify INTREG parameter.
20960         (function_arg): Use rtx.
20961
20962         * diagnostic.h: Update copyright date.
20963         (output_buffer_state): Add parenthesis.
20964         (output_buffer_format_args): Likewise.
20965
20966         * combine.c (combine_instructions): Replace XEXP (links, 0)
20967         with link.
20968
20969 2002-01-06  H.J. Lu <hjl@gnu.org>
20970
20971         * cfgcleanup.c (thread_jump): Fix 2 typos.
20972
20973 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
20974
20975         * config.gcc: Add support for --enable-altivec.
20976
20977 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20978
20979         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
20980
20981 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
20982
20983         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
20984         __objc_class_name_*.
20985
20986 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20987
20988         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
20989
20990 2002-01-06  Richard Henderson  <rth@redhat.com>
20991
20992         * reorg.c (emit_delay_sequence): Remove death notes, not merely
20993         nop them out.  Increment label reference count for REG_LABEL.
20994         (fill_slots_from_thread): Frob label reference count around
20995         delete_related_insns.
20996
20997 2002-01-05  Richard Henderson  <rth@redhat.com>
20998
20999         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
21000         jump threading.
21001
21002 2002-01-05  Richard Henderson  <rth@redhat.com>
21003
21004         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
21005         * integrate.c (output_inline_function): Likewise.
21006         * toplev.c (rest_of_compilation): Do it here instead.  Move call
21007         to remove_unnecessary_notes after emitting abstract instance.
21008         Force an emitted nested function to have its parent emited as well.
21009         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
21010         for null.
21011         (rtl_for_decl_location): Do not look at reload data structures
21012         before reload has run.
21013
21014 2002-01-05  Kazu Hirata  <kazu@hxi.com>
21015
21016         * cse.c: Fix formatting.
21017         * dwarf2asm.c: Likewise.
21018         * dwarf2out.c: Likewise.
21019         * explow.c: Likewise.
21020         * expmed.c: Likewise.
21021         * function.c: Likewise.
21022         * gcov.c: Likewise.
21023         * gencheck.c: Likewise.
21024         * genrecog.c: Likewise.
21025         * ggc-common.c: Likewise.
21026         * ggc-page.c: Likewise.
21027         * global.c: Likewise.
21028
21029 2002-01-05  Kazu Hirata  <kazu@hxi.com>
21030
21031         * combine.c: Fix formatting.
21032
21033 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
21034
21035         PR middle-end/1557
21036         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
21037
21038 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
21039
21040         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
21041         as 1 for __powerpc64__ as well.
21042
21043         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
21044
21045         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
21046         return it.
21047
21048 2002-01-05  Daniel Berlin  <dan@dberlin.org>
21049
21050         * lcm.c: Revert change, due to performance regression it causes on
21051         SPEC because it's slightly more conservative (sigh, I hate
21052         edge-based LCM).
21053
21054 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
21055
21056         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
21057
21058 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
21059
21060         * doc/cppinternals.texi: Update.
21061
21062 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
21063
21064         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
21065         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
21066         negatives.
21067         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
21068         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
21069         kludge for pre-october-14th mmix versions to handle new-found bug
21070         with PUSHJ/PUSHGO and the register stack.
21071         * config/mmix/mmix.h (struct machine_function): Rename member
21072         has_call_value_without_parameters to has_call_without_parameters.
21073         All referers changed.
21074         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
21075         TARGET_MASK_BRANCH_PREDICT): New macros.
21076         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
21077         -mno-reg-stack-fill-bug-workaround.
21078         * config/mmix/mmix.md ("call"): Set struct machine member
21079         has_call_without_parameters.
21080
21081 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
21082
21083         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
21084
21085 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
21086
21087         * cfgcleanup.c: Include tm_p.h
21088         (mark_effect): Fix handling of hard register; fix handling of SET
21089
21090 2002-01-04  Kazu Hirata  <kazu@hxi.com>
21091
21092         * config/h8300/h8300.md (anonymous patterns): Check that
21093         operands are registers before using REGNO on them.
21094
21095 2002-01-03  Roland McGrath  <roland@frob.com>
21096
21097         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
21098
21099 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
21100
21101         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
21102         * c-common.h (genrtl_expr_stmt_value): Likewise.
21103         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
21104         (expand_expr_stmt_value): Add maybe_last argument.
21105         Don't warn about statement with no effect if it is the last statement
21106         in expression statement.
21107         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
21108         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
21109         expand_expr_stmt_value.
21110         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
21111         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
21112         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
21113         as maybe_last to expand_expr_stmt_value.
21114
21115 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
21116
21117         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
21118         be passed in, do not build it.
21119         (c_begin_if_stmt): New function.
21120         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
21121         * c-common.h (c_expand_start_cond): Update prototype.
21122         (c_begin_if_stmt): Prototype new function.
21123         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
21124         * c-parse.in (if_prefix): Use c_begin_if_stmt,
21125         c_begin_while_stmt and c_finish_while_stmt_cond.
21126
21127 2002-01-04  William Cohen  <wcohen@redhat.com>
21128
21129         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
21130         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
21131         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
21132         * config/pa/som.h (ASM_FILE_START): Likewise.
21133
21134 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
21135
21136         * lcm.c: Include df.h.
21137         Add available_transfer_function prototype.
21138         (compute_available): Rework to use iterative dataflow framework.
21139         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
21140         with bb_info in df.h
21141         (available_transfer_function): New function.
21142
21143         * Makefile.in (lcm.o): add df.h to dependencies.
21144
21145 2002-01-04  Richard Henderson  <rth@redhat.com>
21146
21147         * config/alpha/alpha.c (some_operand): Accept HIGH.
21148         (input_operand): Likewise; accept simple references to globals.
21149         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
21150         (alpha_const_double_ok_for_letter_p): Likewise.
21151         (alpha_extra_constraint): Likewise.
21152         (alpha_preferred_reload_class): Likewise.  Do not force
21153         symbolic constants to memory.
21154         (alpha_legitimate_address_p): Accept simple references
21155         to small_symbolic_operand.
21156         (alpha_legitimize_address): New arg scratch.  Be prepared to be
21157         called when no_new_pseudos.  Emit simple symbolic references.
21158         Split integers into low, high, and rest.
21159         (alpha_expand_mov): Use alpha_legitimize_address.
21160         (some_small_symbolic_mem_operand): New.
21161         (split_small_symbolic_mem_operand): New.
21162         * config/alpha/alpha-protos.h: Update.
21163         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
21164         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
21165         (EXTRA_CONSTRAINT): Likewise.
21166         (PREFERRED_RELOAD_CLASS): Likewise.
21167         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
21168         (PREDICATE_CODES): Update.
21169         * config/alpha/alpha.md: New post-reload splitters to convert
21170         simplfied symbolic operands to the form that references $29.
21171         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
21172         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
21173
21174 2002-01-03  Richard Henderson  <rth@redhat.com>
21175
21176         * local-alloc.c (function_invariant_p): Update commentary.
21177
21178 2002-01-04  H.J. Lu <hjl@gnu.org>
21179
21180         * toplev.c (rest_of_compilation): Fix a typo when calling
21181         cleanup_cfg.
21182
21183 2002-01-03  Kazu Hirata  <kazu@hxi.com>
21184
21185         * c-common.c: Fix formatting.
21186         * diagnostic.c: Likewise.
21187         * doloop.c: Likewise.
21188         * dwarf2out.c: Likewise.
21189
21190 2002-01-03  Kazu Hirata  <kazu@hxi.com>
21191
21192         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
21193         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
21194
21195 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
21196
21197         * cpperror.c: Update comments and copyright.
21198         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
21199         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
21200
21201 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21202
21203         * collect2.c (main): Use strcmp when testing for "-shared".
21204
21205 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
21206
21207         * cppmacro.c: Don't include intl.h.  Update comments.
21208         (new_number_token): Allocate enough buffer for 64-bit unsigned
21209         integers; update prototype.
21210         * cppmain.c: Update comments.
21211
21212 2002-01-03  William Cohen  <wcohen@redhat.com>
21213
21214         * function.h (struct function): Add profile.
21215         (current_function_profile): New.
21216         doc/extend.texi: Update documentation.
21217         * final.c (final_start_function): Use current_function_profile
21218         instead of profile_flag.
21219         (profile_after_prologue): Likewise.
21220         * function.c (expand_function_start): Likewise.
21221         (expand_function_start): Likewise.
21222         * config/alpha/alpha.c (direct_call_operand):
21223         (alpha_does_function_need_gp): Likewise.
21224         (alpha_expand_prologue): Likewise.
21225         * config/arm/arm.c (arm_expand_prologue): Likewise.
21226         thumb_expand_prologue: Likewise.
21227         * config/d30v/d30v.c (d30v_stack_info): Likewise.
21228         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
21229         (fr30_expand_prologue): Likewise.
21230         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
21231         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
21232         * config/i386/i386.h (FINALIZE_PIC): Likewise.
21233         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
21234         * config/i960/i960.c (i960_output_function_prologue): Likewise.
21235         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
21236         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
21237         (m32r_expand_prologue): Likewise.
21238         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
21239         (m88k_expand_prologue): Likewise.
21240         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
21241         * config/mips/mips.c (compute_frame_size): Likewise.
21242         (mips_expand_prologue): Likewise.
21243         (mips_can_use_return_insn): Likewise.
21244         * config/pa/elf.h (ASM_FILE_START): Likewise.
21245         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
21246         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
21247         * config/pa/som.h (ASM_FILE_START): Likewise.
21248         * config/romp/romp.c (romp_using_r14): Likewise.
21249         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
21250         (rs6000_stack_info): Likewise.
21251         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21252         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
21253         * config/v850/v850.c (compute_register_save_size): Likewise.
21254
21255 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
21256
21257         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
21258         gen_lowpart_common fails, use gen_lowpart_SUBREG.
21259
21260 2002-01-03  Turly O'Connor  <turly@apple.com>
21261
21262         * darwin.c (machopic_output_possible_stub_label): Don't generate
21263         stub routines for pseudo-stubs which we've just defined.
21264
21265 2002-01-03  Kazu Hirata  <kazu@hxi.com>
21266
21267         * builtins.c: Fix formatting.
21268         * c-typeck.c: Likewise.
21269         * combine.c: Likewise.
21270         * expr.c: Likewise.
21271         * loop.c: Likewise.
21272
21273 2002-01-03  Andreas Schwab  <schwab@suse.de>
21274
21275         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
21276         and return true if _cpp_push_next_buffer pushed a new include
21277         file.
21278         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
21279         _cpp_pop_file_buffer did not push a new file.
21280         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
21281
21282 2002-01-02  Eric Christopher  <echristo@redhat.com>
21283
21284         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
21285         FIND_REG_INC_NOTE call. Update copyright.
21286         * loop.c (canonicalize_condition): Ditto.
21287         * reorg.c (delete_scheduled_jump): Ditto.
21288
21289 2002-01-03  Kazu Hirata  <kazu@hxi.com>
21290
21291         * gcse.c: Fix formatting.
21292
21293 2002-01-03  Graham Stott  <grahams@redhat.com>
21294
21295         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
21296         forward defs for struct tags rtx_def, union_tree, rtvec_def
21297         also output corresponding typedefs for rtx, tree, and rtvec.
21298
21299         * system.h: Move forward defs for struct tags rtx_def, union_tree,
21300         rtvec_def along with corresponding typedefs for rtx, tree, and
21301         rtvec to config.h, hconfig.h, tconfig.h.
21302
21303 2002-01-03  Graham Stott  <grahams@redhat.com>
21304
21305         * tree.h: Update copyright date.
21306         (IS_EXPR_CODE_CLASS): Add parenthesis.
21307         (TREE_SET_CODE): Add whitespace.
21308         (TREE_CHECK): Add parenthesis.
21309         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
21310         (CST_OR_CONSTRUCTOR_CHECK):
21311         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
21312         (TREE_SYMBOL_REFERENCED): Whitespace.
21313         (INT_CST_LT): Likewise.
21314         (INT_CST_LT_UNSIGNED): Likewise.
21315         (tree_real_cst): Unwrap comment.
21316         (tree_string): Likewise.
21317         (tree_complex): Likewise.
21318         (IDENTIFIER_POINTER): correct cast.
21319         (SAVE_EXPR_CONTEXT): Whitespace.
21320         (EXPR_WFL_FILENAME_NODE): Likewise.
21321         (EXPR_WFL_FILENAME): Remove parenthesis.
21322         (DECL_ORIGIN): Add parenthesis.
21323         (DECL_FROM_INLINE): Use NULL_TREE.
21324         (build_int_2): Whitespace.
21325         (build_type_variant): Add parenthesis.
21326
21327         * gcc/jcf-parse.c: Update copyright date.
21328         (yyparse): Constify resource_filename.
21329
21330 2002-01-03  Graham Stott  <grahams@redhat.com>
21331
21332         * rtl.h: Update copyright date.
21333         (RTL_CHECK1): Wrap long line.
21334         (RTL_CHECK2): Likewise.
21335         (RTL_CHECKC1): Wrap long line and whitespace.
21336         (RTL_CHECKC2): Likewise.
21337         (XWINT): Whitespace.
21338         (XINT): Likewise.
21339         (XSTR): Likewise.
21340         (XEXP): Likewise.
21341         (XVEC): Likewise.
21342         (XMODE): Likewise.
21343         (XBITMAP): Likewise.
21344         (XTREE): Likewise.
21345         (XBBDEF): Likewise.
21346         (XTMPL): Likewise.
21347         (X0WINT): Likewise.
21348         (X0INT):Likewise.
21349         (X0UINT): Likewise.
21350         (X0STR): Likewise.
21351         (X0EXP): Likewise.
21352         (X0VEC): Likewise.
21353         (X0MODE): Likewise.
21354         (X0BITMAP): Likewise.
21355         (X0TREE): Likewise.
21356         (X0BBDEF): Likewise.
21357         (X0ADVFLAGS): Likewise.
21358         (X0CSELIB): Likewise.
21359         (X0MEMATTR): Likewise.
21360         (XCWINT): Likewise.
21361         (XCINT): Likewise.
21362         (XCUINT): Likewise.
21363         (XCSTR): Likewise.
21364         (XCEXP): Likewise.
21365         (XCVEC): Likewise.
21366         (XCMODE): Likewise.
21367         (XCBITMAP): Likewise.
21368         (XCTREE): Likewise.
21369         (XCBBDEF): Likewise.
21370         (XCADVFLAGS): Likewise.
21371         (XCCSELIB): Likewise.
21372         (XC2EXP): Likewise.
21373         (INSN_UID): Likewise.
21374         (PREV_INSN): Likewise.
21375         (PATTERN): Likewise.
21376         (INSN_CODE): Likewise.
21377         (PUT_REG_NOTE_KIND): Likewise.
21378         (CODE_LABEL_NUMBER): Likewise.
21379         (NOTE_SOURCE_FILE): Likewise.
21380         (NOTE_BLOCK): Likewise.
21381         (NOTE_EH_HANDLER): Likewise.
21382         (NOTE_RANGE_INFO): Likewise.
21383         (NOTE_LIVE_INFO): Likewise.
21384         (NOTE_BASIC_BLOCK): Likewise.
21385         (NOTE_EXPECTED_VALUE): Likewise.
21386         (NOTE_LINE_NUMBER): Likewise.
21387         (LABEL_NAME): Likewise.
21388         (LABEL_NUSES): Likewise.
21389         (LABEL_ALTERNATE_NAME): Likewise.
21390         (ADDRESSOF_DECL): Likewise.
21391         (JUMP_LABEL): Likewise.
21392         (LABEL_NEXTREF): Likewise.
21393         (REGNO): Likewise.
21394         (ORIGINAL_REGNO: Likewise.
21395         (HARD_REGISTER_NUM_P): Add parenthesis.
21396         (SUBREG_REG): Whitespace.
21397         (SUBREG_BYTE): Likewise.
21398         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
21399         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
21400         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
21401         (ASM_OPERANDS_INPUT_VEC): Likewise.
21402         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
21403         (ASM_OPERANDS_INPUT): Likewise.
21404         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
21405         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
21406         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
21407         (ASM_OPERANDS_INPUT_MODE): Likewise.
21408         (ASM_OPERANDS_SOURCE_FILE): Likewise.
21409         (ASM_OPERANDS_SOURCE_LINE): Likewise.
21410         (MEM_SET_IN_STRUCT_P): Minor reformat.
21411         (TRAP_CONDITION): Whitespace.
21412         (TRAP_CODE): Likewise.
21413         (COND_EXEC_TEST): Likewise.
21414         (COND_EXEC_CODE): Likewise.
21415         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
21416         (PHI_NODE_P): Add parenthesis.
21417         (plus_constant): Whitespace and add parenthesis.
21418
21419 2002-01-03  Kazu Hirata  <kazu@hxi.com>
21420
21421         * config/avr/avr.c: Fix comment typos.
21422         * config/c4x/c4x.md: Likewise.
21423         * config/dsp16xx/dsp16xx.h: Likewise.
21424         * config/dsp16xx/dsp16xx.md: Likewise.
21425         * config/i386/i386.md: Likewise.
21426         * config/ia64/ia64.c: Likewise.
21427         * config/m32r/m32r.h: Likewise.
21428         * config/m68hc11/m68hc11.md: Likewise.
21429         * config/mmix/mmix.c: Likewise.
21430         * config/mn10200/mn10200.c: Likewise.
21431         * config/romp/romp.c: Likewise.
21432         * config/sh/sh.c: Likewise.
21433         * config/stormy16/stormy16.c: Likewise.
21434         * config/stormy16/stormy16.h: Likewise.
21435         * config/stormy16/stormy16.md: Likewise.
21436
21437 2002-01-03  Graham Stott  <grahams@redhat.com>
21438
21439         * loop.h: Update copyright date.
21440         (LOOP_MOVABLES): Fix typo.
21441         (LOOP_REGS): Likewise.
21442         (LOOP_IVS): Likewise.
21443
21444 2002-01-03  Graham Stott  <grahams@redhat.com>
21445
21446         * cppinit.c: Update copyright date.
21447         Don't include output.h
21448         * Makefile.in: Update copyright date.
21449         Update dependency.
21450
21451 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
21452
21453         PR c/5226
21454         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
21455         (-pthread) Add to RS/6000 options.
21456
21457 2002-01-02  Kazu Hirata  <kazu@hxi.com>
21458
21459         * except.c: Fix comment typos.
21460         * loop.c: Likewise.
21461         * varasm.c: Likewise.
21462         * doc/tm.texi: Fix a typo.
21463
21464 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
21465
21466         * c-typeck.c (output_init_element): Allow initializing static storage
21467         duration objects with compound literals.
21468
21469 2002-01-02  Richard Henderson  <rth@redhat.com>
21470
21471         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
21472         after abusing it.
21473
21474 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21475
21476         * gcc.c (default_compilers): Const-ify.
21477         * mips-tdump.c (stab_names): Likewise.
21478         * mips-tfile.c (map_coff_types, map_coff_storage,
21479         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
21480         pseudo_ops_t, pseudo_ops): Likewise.
21481         * protoize.c (default_include): Likewise
21482
21483         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
21484         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
21485         Add array size in declaration.
21486         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
21487         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
21488         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
21489         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
21490         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
21491         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
21492         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
21493         emtens, make_nan): Const-ify.
21494         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
21495         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
21496
21497 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
21498
21499         * config.gcc (ia64-*-*): Set extra_headers.
21500         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
21501         * config/alpha/t-osf: Remove.
21502         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
21503
21504 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
21505
21506         * config/rs6000/t-aix43: Revert previous change.
21507
21508 2002-01-02  Jason Merrill  <jason@redhat.com>
21509
21510         * c-decl.c (c_expand_body): Call outlining_inline_function when
21511         emitting an inline function out of line.
21512
21513 2002-01-02  Richard Henderson  <rth@redhat.com>
21514
21515         * dwarf2out.c (limbo_die_node): Add created_for member.
21516         (new_die): New argument created_for.  Update all callers.
21517         (mark_limbo_die_list): New.
21518         (dwarf2out_init): Register limbo_die_list as a root.
21519         (dwarf2out_finish): Force insert limbo dies into their function
21520         context.
21521
21522 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
21523
21524         PR c++/5089
21525         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
21526
21527 2002-01-02  Kazu Hirata  <kazu@hxi.com>
21528
21529         * config/h8300/fixunssfsi.c: Update copyright.
21530         Fix comment typos.
21531         Fix formatting.
21532         * config/h8300/h8300.c: Update copyright.
21533         Eliminate warnings.
21534
21535 2002-01-02  Kazu Hirata  <kazu@hxi.com>
21536
21537         * config/romp/romp.c: Fix comment formatting.
21538         * config/romp/romp.h: Likewise.
21539         * config/romp/romp.md: Likewise.
21540         * config/s390/s390.c: Likewise.
21541         * config/stormy16/stormy16.c: Likewise.
21542         * config/stormy16/stormy16.h: Likewise.
21543
21544 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
21545
21546         * c-common.h (genrtl_expr_stmt_value): Declare.
21547         * c-semantics.c (genrtl_goto_stmt): Redirect to...
21548         (genrtl_goto_stmt_value): ... this new function.  Pass new
21549         argument down to expand_expr_stmt_value, taking
21550         TREE_ADDRESSABLE into account.
21551         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
21552         STMT_EXPR as addressable, i.e., one whose result we want.
21553         * expr.c (expand_expr): Don't save expression statement value
21554         of labeled_blocks or loop_exprs.
21555         * stmt.c (expand_expr_stmt): Redirect to...
21556         (expand_expr_stmt_value): ... this new function.  Use new
21557         argument to tell whether to save expression value.
21558         (expand_end_stmt_expr): Reset last_expr_type and
21559         last_expr_value if we don't have either.
21560         * tree-inline.c (declare_return_variable): Mark its use
21561         statement as addressable.
21562         * tree.h: Document new use of TREE_ADDRESSABLE.
21563         (expand_expr_stmt_value): Declare.
21564
21565 2002-01-01  Tom Rix  <trix@redhat.com>
21566
21567         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
21568         rs6000_emit_allocate_stack.
21569
21570 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
21571
21572         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
21573         ${srcdir}/ginclude/ to every entry in extra_headers.
21574         * configure: Regenerate.
21575         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
21576         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
21577         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
21578         * ginclude/proto.h: Rename to config/convex/proto.h.
21579
21580 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21581
21582         * attribs.c (handle_vector_size_attribute): Use host_integerp
21583         and tree_int_cst; remove warnings.
21584         * caller-save.c (insert_restore): Add cast to get rid of warning.
21585         (insert_save): Likewise.
21586         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
21587         * regmove.c (find_matches): Add temporary var to kill a warning.
21588
21589 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
21590
21591         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
21592         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
21593         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
21594         (vms-dwarf2eh.o): Add Makefile rule.
21595         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
21596         * config/alpha/vms-dwarf2eh.asm: New file.
21597
21598         * gcc.c (delete_if_ordinary): Delete all versions.
21599
21600 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
21601
21602         * config/mmix/mmix.md: Update FIXME to not mention
21603         define_constants.
21604         (MMIX_rJ_REGNUM): New define_constants constant.
21605         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
21606         "*movdicc_real"): Adjust contraints formatting.
21607         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
21608         for branch prediction.
21609         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
21610         output template.
21611         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
21612         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
21613         number.  Delete related FIXMEs.
21614         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
21615         from number to MMIX_rJ_REGNUM.
21616         (TARGET_MASK_BRANCH_PREDICT): New.
21617         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
21618         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
21619         value.  Add -mbranch-predict and -mno-branch-predict.
21620         (TARGET_VERSION): Drop date.
21621         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
21622         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
21623         for finding out global symbols.
21624         (mmix_asm_output_labelref): Revert condition for global symbol.
21625         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
21626         (mmix_print_operand_punct_valid_p): A '+' is valid.
21627
21628 See ChangeLog.6 for earlier changes.