OSDN Git Service

* diagnostic.c (output_format): Recognize "%H" as a format
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
2
3         * diagnostic.c (output_format): Recognize "%H" as a format
4         specifier for a location_t.
5         (text_specifies_location): New function.
6         (diagnostic_set_info): Use it.
7
8 2002-06-13  Jeffrey Law  <law@redhat.com>
9
10         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
11
12         * alias.c (argument_registers): Remove.
13         (init_alias_once): Initialize static_reg_base_value here.  Remove
14         initialization of argument_registers.
15         (init_alias_once_per_function): Remove.
16         (init_alias_analysis): Copy all the entries from static_reg_base_value
17         into new_reg_base_value all at once.
18         * rtl.h (init_alias_once_per_function): Remove declaration.
19         * function.c (prepare_function_start): Do not call
20         init_alias_once_per_function.
21
22         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
23         starting a sequence and emitting an INSN.
24
25 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
26
27         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
28
29 2002-06-13  David S. Miller  <davem@redhat.com>
30
31         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
32
33 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
34
35         * cpplib.c (end_directive): Handle line skipping.  Only remove
36         the rest of the line if the directive was valid.
37         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
38         expanding a traditional macro.
39         * cpptrad.c (recursive_macro): New.
40         (read_logical_line_trad): Handle skipping.
41         (scan_out_logical_line): Continue after a successful directive.
42         Don't expand macros whilst skipping, or if recursing.
43         (_cpp_create_trad_definition): scan_out_logical_line now sets
44         the output current position.
45
46 2002-06-12  Eric Christopher  <echristo@redhat.com>
47
48         From Chris Demetriou  <cgd@broadcom.com>
49         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
50         comment.
51         (ISA_HAS_MADD_MSUB): Ditto.
52         (ISA_HAS_NMADD_NMSUB): Ditto.
53
54 2002-06-12  Eric Christopher  <echristo@redhat.com>
55
56         * config.gcc: Consolidate little endian handling and
57         little/big endian targets.
58         * config/mips/elfl.h: Remove file.
59         * config/mips/elfl64.h: Ditto.
60         * config/mips/ecoffl.h: Ditto.
61         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
62
63 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
64
65         * gengtype.h (xvasprintf): New prototype.
66         (xasprintf): New prototype.
67         (struct outf): New.
68         (get_output_file): Return an outf_p.
69         (header_file): Is now an outf_p.
70         (base_files): Now are outf_p.
71         (oprintf): New.
72         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
73         rather than stdio operations.  Use xasprintf in a few places,
74         when appropriate.
75         (xvasprintf): New.
76         (xasprintf): New.
77         (struct filemap): Delete.
78         (files): Delete.
79         (output_files): New.
80         (oprintf): New.
81         (create_file): Create an outf_p.  Add parameter to indicate output
82         file name, change all callers.
83         (open_base_files): Create gtype-desc.c here.
84         (get_output_file_with_visibility): Rewrite.
85         (get_output_file_name): Just look at 'name' field in struct outf.
86         (close_output_files): Rewrite.
87
88 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
89
90         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
91         (MASK_G_FLOAT): Define.
92         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
93         (TARGET_SWITCHES): Likewise.
94         (TARGET_DEFAULT): Likewise.
95
96 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
97
98         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
99         * config/mips/mips.c (mips_output_filename): Don't print a
100         ".file" directive if we are using DWARF-2.
101         (mips_output_function_prologue): Do not emit source file
102         name for TARGET_GAS.
103
104 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
105
106         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
107         decide whether emit the short opcode.
108         * i386.h (x86_shift1): Declare.
109         (TARGET_SHIFT1): New macro.
110         * i386.c (x86_shift1): New global variable.
111
112         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
113         unconditionally; make loop to rebuild CFG; kill unnecesary
114         find_basic_block calls; kill compute_bb_for_insn call.
115         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
116         * haifa-sched.c (sched_init): Likewise.
117         * ssa-ccp.c (ssa_const_prop): Likewise.
118         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
119
120 2002-06-11  David S. Miller  <davem@redhat.com>
121
122         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
123         active_insn_p.
124
125 2002-06-11  Richard Henderson  <rth@redhat.com>
126
127         * c-common.c (builtin_define_type_max): New.
128         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
129         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
130
131         From Joseph S. Myers:
132         * glimits.h: Rewrite to expect the double underscore definitions
133         from the compiler.
134
135         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
136         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
137         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
138         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
139         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
140         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
141         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
142         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
143
144 2002-06-11  Richard Henderson  <rth@redhat.com>
145
146         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
147         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
148         (code_for_builtns): Update.
149         (alpha_init_builtins): Add __builtin_thread_pointer and
150         __builtin_set_thread_pointer.
151         (alpha_expand_builtin): Handle void builtins.
152         * doc/extend.texi (Alpha Built-in Functions): Update.
153
154 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
155
156         PR target/6997
157         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
158
159 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
160
161         * config.gcc: Make the name of the extra-modes file adjustable
162         by target stanzas.
163         (s390x, strongarm, xscale stanzas): Use this facility.
164         * configure.in: Update to match.
165         * configure: Regenerate.
166
167 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
168
169         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
170         max/mins as unsigned GE compares.
171
172 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
173
174         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
175         * config/vax/bsd.h: New file.
176         * config/vax/netbsd.h: Add missing notice.
177         (CPP_PREDEFINES): Remove.
178         (TARGET_OS_CPP_BUILTINS): Define.
179         (CPP_SPEC): Use NETBSD_CPP_SPEC.
180         * config/vax/openbsd.h: Update copyright years.
181         (CPP_PREDEFINES): Remove.
182         (TARGET_OS_CPP_BUILTINS): Define.
183         * config/vax/ultrix.h: Likewise.
184         * config/vax/vaxv.h: Likewise.
185         * config/vax/vms.h: Likewise.
186         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
187         (CPP_PREDEFINES, CPP_SPEC): Remove.
188
189 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
190
191         * i386.md (addqi_1_slp, subqi_1_slp
192         (andqi_ext0, testqi_ext0): Remove unnecesary check.
193         (addhi*, addqi*): Simplify "dec" condition.
194         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
195         (and, or, xor to QImode splitters): New.
196         (iorqi_ext*): New.
197         (xorqi_ext_0): New.
198         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
199         (andqi_ext_1_rex64): New.
200         (ashrqi*_slp): New.
201         (ashlqi*_slp): New.
202         (lshlqi*_slp): New.
203         (rotrqi3*_slp): New.
204         (rotlqi3*_slp): New.
205
206 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
207
208         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
209         softfloat.h.
210         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
211         (CPP_ENDIAN_LITTLE_SPEC): Delete.
212         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
213         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
214         __LONG_DOUBLE_128__ setting, _CALL_* setting.
215         (CPP_DEFAULT_SPEC): Delete.
216         (CPP_FLOAT_DEFAULT_SPEC): Delete.
217         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
218         (CPP_SYSV_DEFAULT_SPEC): Delete.
219         (CPP_ENDIAN_BIG_SPEC): Delete.
220         (CPP_ENDIAN_LITTLE_SPEC): Delete.
221         (CPP_ENDIAN_SPEC): Delete.
222         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
223         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
224         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
225         cpp_longdouble_default.
226         * config/rs6000/softfloat.h: Delete.
227         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
228         (EXTRA_SPECS): Delete cpp_cpu.
229         (TARGET_CPU_CPP_BUILTINS): New.
230         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
231         prototype.
232         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
233         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
234         (CPP_DEFAULT_SPEC): Delete.
235         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
236         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
237         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
238         (CPP_DEFAULT_SPEC): Delete.
239         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
240         (CPLUSPLUS_CPP_SPEC): Likewise.
241         (CPP_CPU_SPEC): Delete.
242         (CPP_DEFAULT_SPEC): Delete.
243         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
244         (CPLUSPLUS_CPP_SPEC): Likewise.
245         (CPP_CPU_SPEC): Delete.
246         (CPP_DEFAULT_SPEC): Delete.
247         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
248         (CPP_DEFAULT_SPEC): Delete.
249         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
250         (CPP_DEFAULT_SPEC): Delete.
251
252         * doc/gty.texi: Small updates.
253
254 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
255
256         * objc/objc-act.c (warn_with_ivar): Adjust calls to
257         diagnostic_count_error.
258         (warn_with_method): Likewise.
259
260         * diagnostic.h (warnings_are_errors_message): New field of
261         diagnostic_context.
262         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
263         match semantics.
264         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
265         (diagnostic_count_diagnostic): Make aware of other kinds of
266         diagnostics.
267         (diagnostic_initialize): Initialize warnings_are_errors_message field.
268
269 2002-06-11  Tom Tromey  <tromey@redhat.com>
270
271         For PR java/6520:
272         * fold-const.c (fold_convert): Don't modify existing tree's type.
273
274 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
275
276         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
277
278 2002-06-11  Richard Henderson  <rth@redhat.com>
279
280         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
281
282 2002-06-11  Richard Henderson  <rth@redhat.com>
283
284         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
285         DWARF2_UNWIND_INFO is false.
286
287 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
288
289         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
290
291 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
292
293         * config/s390/s390.c (emit_prologue): gen_store_multiple
294         returns an insn now, not a pattern.
295
296 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
297
298         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
299         $(TEXI2DVI) -o.
300
301 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
302
303         * i386.c (x86_promote_QImode): Set for Athlon
304         (x86_fast_prefix): New global variable.
305         (x86_arch_always_fancy_math_387): Fix formating.
306         * i386.h (x86_fast_prefix): Declare
307         (TARGET_FAST_PREFIX): define.
308         * i386.md (and to strict_low_part, HI to SI
309         promoting splitter): Use new macro.
310
311         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
312
313 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
314
315         * Makefile.in (distclean): Delete junk left in testsuite
316         directory, too.
317
318 2002-06-11  Jeffrey Law <law@redhat.com>
319
320         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
321         last insn created by the splitter.
322
323         * caller-save.c (init_caller_save): Move creation of SAVEINSN
324         and RESTINSN into into the scope of the sequence.
325
326         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
327         RETURN insns.
328
329         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
330
331         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
332         not the pattern.  So extract the pattern from the insn.
333
334         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
335
336 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
337
338         * config/s390/s390.md (movsi): Only use floating point
339         register alternatives when operands are already fprs.
340         (movdi_31, movdi_64): Likewise.
341
342 2002-06-11  David S. Miller  <davem@redhat.com>
343
344         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
345         Only run RTX equality checks on INSN_P rtl.
346
347 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
348
349         * config/s390/s390.md (reload_base, ltorg): Remove.
350         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
351         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
352         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
353         s390_asm_output_pool_prologue): Likewise.
354         * s390.h (s390_pool_start_insn): Likewise.
355
356         * s390.c (s390_output_symbolic_const): Remove support for
357         old-style pool chunks.
358         (s390_function_epilogue): Likewise.
359         (s390_output_constant_pool): Likewise.  Also, fix incorrect
360         alignment for 64-bit literal pools.
361         (print_operand_address): Remove 'y' and 'Y' format flags.
362         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
363         old-style pool chunks.
364         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
365         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
366         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
367
368         * s390.c (consttable_operand): New function.
369         * s390-protos.h (consttable_operand): Declare it.
370         * s390.h (PREDICATE_CODES): Add consttable_operand.
371         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
372         consttable_sf, consttable_df, pool_start_31, pool_end_31,
373         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
374         * s390.c (struct constant, struct constant_pool): New data types.
375         (constant_modes, gen_consttable): New variables.
376         (s390_start_pool, s390_end_pool, s390_add_pool,
377         s390_dump_pool, s390_free_pool): New functions.
378         (s390_chunkify_pool): Completely reimplement literal pool
379         overflow handling.
380
381         * s390.c (s390_pool_overflow): New variable.
382         * s390.h (s390_pool_overflow): Declare it.
383         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
384         jumps in literal pool overflow situations.
385
386         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
387         (s390_frame_info): Account for possible use of RETURN_REGNUM
388         by new literal pool overflow code.
389         (s390_emit_prologue): Likewise.
390
391 2002-06-05  David S. Miller  <davem@redhat.com>
392
393         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
394         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
395         emit_insns_before_scope, emit_insns_after,
396         emit_insns_after_scope): Delete declaration.
397         * ada/misc.c (insert_code_for): Use emit_insn* instead of
398         emit_insns_foo.
399         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
400         (alpha_set_memflags): Fix comment.
401         (set_frame_related_p): Use get_insns instead of gen_sequence.
402         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
403         emitting no insns.
404         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
405         gen_sequence.
406         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
407         * config/fr30/fr30.c (fr30_move_double): Likewise.
408         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
409         Likewise.
410         * config/ia64/ia64.c (spill_restore_mem): Likewise.
411         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
412         no insns.
413         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
414         instead of gen_sequence.
415         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
416         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
417         * config/sh/sh.c (sh_need_epilogue): Likewise.
418         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
419         attributes.
420         (setjmp pattern and split): Use them to avoid splitter which emits
421         no RTL.
422         * genattrtab.c (main): Emit include of function.h
423         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
424         get_insns instead of gen_sequence.
425         * config/cris/cris.c (cris_split_movdx): Likewise.
426         * emit-rtl.c (emit_insns*): Kill.
427         (try_split): Expect insn list instead of SEQUENCE.
428         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
429         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
430         Make them abort if a SEQUENCE is given and RTL checking is
431         enabled.
432         (emit_*_scope): Don't forget to set scope on final insn.
433         (gen_sequence): Move from here...
434         * ssa.c (gen_sequence): To here as private function.
435         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
436         comments.
437         (expand_builtin_return, expand_builtin_mathfn): Likewise.
438         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
439         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
440         (expand_builtin_expect_jump): Use get_insns and fix comments.
441         * calls.c (try_to_integrate): Use emit_insn_foo.
442         (expand_call, emit_library_call_value_1): Likewise.
443         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
444         (emit_move_insn_1): Use get_insns instead of gen_sequence.
445         (expand_expr): Use emit_insn_foo.
446         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
447         * except.c (build_post_landing_pads): Likewise.
448         * flow.c (attempt_auto_inc): Likewise.
449         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
450         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
451         * function.c (fixup_var_refs_insn): Use get_insns instead of
452         gen_sequence.
453         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
454         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
455         (fixup_stack_1, purge_addressof_1, expand_main_function,
456         get_arg_pointer_save_area): Likewise.
457         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
458         expand_function_end): Use emit_insn_foo.
459         (record_insns, keep_stack_depressed): Work with insn list instead
460         of SEQUENCE, fix comments.
461         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
462         noce_try_store_flag_constants, noce_try_store_flag_inc,
463         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
464         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
465         (noce_process_if_block): Use get_insns instead of gen_sequence.
466         * optabs.c (add_equal_note): Work with insn list, fix comments.
467         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
468         (expand_unop, expand_complex_abs, expand_unop_insn,
469         expand_no_conflict_block): Likewise.
470         (gen_move_insn): Use get_insns instead of gen_sequence.
471         (gen_cond_trap): Likewise.
472         * integrate.c (copy_rtx_and_substitute): Likewise.
473         (emit_initial_value_sets): Use emit_insn_foo.
474         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
475         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
476         now that RTL generators give insn lists.
477         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
478         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
479         instead of gen_sequence.
480         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
481         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
482         instead of gen_sequence.
483         * loop.c (move_movables, emit_prefetch_instructions,
484         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
485         Likewise.
486         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
487         (product_cheap_p): Likewise, and add commentary about RTL wastage
488         here.
489         * lcm.c (optimize_mode_switching): Use get_insns instead of
490         gen_sequence.
491         * profile.c (gen_edge_profiler): Likewise.
492         * regmove.c (copy_src_to_dest): Likewise.
493         * reg-stack.c (compensate_edge): Likewise and fix comment.
494         * gcse.c (process_insert_insn): Likewise.
495         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
496         * jump.c (delete_prior_computation): Update comment.
497         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
498         of gen_sequence, update comments to match.
499         * recog.c (peephole2_optimize): Work with insn lists instead of
500         SEQUENCE rtl.
501         * sched-vis.c (print_pattern): Abort on SEQUENCE.
502         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
503         Use get_insns instead of gen_sequence.
504         (copy_loop_body): Likewise and don't emit dummy NOTE.
505         * genrecog.c: Don't mention SEQUENCE rtl in comments.
506         * combine.c (try_combine): Expect insn lists from split generator.
507         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
508         hand.
509
510 2002-06-11  Roger Sayle  <roger@eyesopen.com>
511             Andreas Jaeger <aj@suse.de>
512
513         * cfgbuild.c: Update copyright years.
514
515 2002-06-11  Andreas Schwab  <schwab@suse.de>
516
517         * config/m68k/m68k.h (PREDICATE_CODES): Define.
518
519 2002-06-11  Eric Christopher  <echristo@redhat.com>
520
521         * doc/tm.texi (Run-time Target): Add comment about flag_iso
522         and strict ANSI.
523         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
524         * config/mips/ecoffl.h: Ditto.
525         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
526         (CPP_PREDEFINES): Ditto.
527         * config/mips/elfl64.h: Ditto.
528         * config/mips/elfl.h: Ditto.
529         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
530         out until irix header consolidation.
531         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
532         with SUBTARGET_OS_CPP_BUILTINS.
533         * config/mips/iris6.h: Ditto.
534         (CPLUSPLUS_CPP_SPEC): Remove.
535         * config/mips/linux.h: Ditto.
536         * config/mips/netbsd.h: Ditto.
537         * config/mips/openbsd.h: Ditto.
538         * config/mips/rtems.h: Ditto.
539         * config/mips/rtems64.h: Ditto.
540         * config/mips/sni-svr4.h: Ditto.
541         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
542         ISA_MIPS32, ISA_MIPS64): New defines.
543         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
544         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
545         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
546         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
547         (TARGET_CPU_CPP_BUILTINS): Define.
548         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
549         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
550         (movdicc): Remove check for ISA_MIPS32.
551          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
552         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
553         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
554         sunge_sf, sunle_df, sunle_sf): New patterns.
555
556 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
557
558         * Makefile.in: Update cppmain.o.
559         * cpphash.h (struct cpp_reader): Move some members to a
560         nested structure.
561         (trad_line): Rename saved_line.
562         (_cpp_read_logical_line_trad): Update.
563         (_cpp_remove_overlay): New.
564         * cppinit.c (cpp_create_reader): No need to set saved_line.
565         (cpp_destroy): Update.
566         (cpp_read_main_file): Only overlay if compiling.
567         * cpplex.c (continue_after_nul): Return false if in directive.
568         * cpplib.c (EXPAND): New.
569         (directive_table, SEEN_EOL): Update.
570         (end_directive): Remove overlay if traditional; don't skip
571         line in traditional #define.
572         (prepare_directive_trad): New.
573         (_cpp_handle_directive, run_directive): Update for traditional
574         directives.
575         (lex_macro_node): Simplify, don't use lex_identifier_trad.
576         * cpplib.h (struct options): Add preprocess_only.
577         * cppmain.c: Don't include intl.h.
578         (cpp_preprocess_file): Set options->preprocess_only.
579         (scan_translation_unit_trad): Fix, and print line numbers.
580         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
581         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
582         save_replacement_text, _cpp_create_trad_definition): Update for
583         variable renaming.
584         (_cpp_overlay_buffer): Save line number.
585         (_cpp_remove_overlay): Rename from restore_buff, restore line.
586         (_cpp_read_logical_line_trad): Don't handle overlays here.
587         (scan_out_logical_line): Process directives.
588
589 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
590
591         * gthr-win32.h: Wrap functions in extern "C".
592         (__gthread_key_t): Typedef as unsigned long,
593         not win32 DWORD.
594         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
595         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
596         (__gthr_win32_once, __gthr_win32_key_create,
597         __gthr_win32_key_delete, __gthr_win32_getspecific,
598         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
599         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
600         __gthr_win32_mutex_unlock): Declare.
601         (__gthread_once,__gthread_key_create,
602         __gthread_key_delete, __gthread_getspecific,
603         __gthread_setspecific, __gthread_mutex_init_function,
604         __gthread_mutex_lock,__gthread_mutex_trylock,
605         __gthread_mutex_unlock): Call corresponding
606         __gthr_win32_* extern implementations if #defined
607         __GTHREAD_HIDE_WIN32API.
608         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
609         $(srcdir)/config/i386/gthr-win32.c
610         * config/i386/gthr-win32.c: New implementation file.
611         (__gthr_win32_once, __gthr_win32_key_create,
612         __gthr_win32_key_delete, __gthr_win32_getspecific,
613         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
614         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
615         __gthr_win32_mutex_unlock): New functions, based on
616         static inlines in gthr-win32.h.
617
618 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
619
620         * config/xtensa/xtensa.c (override_options): Don't warn about
621         using -fpic or -fPIC when PIC is enabled by default.
622
623 2002-06-10  Roger Sayle  <roger@eyesopen.com>
624
625         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
626
627 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
628
629         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
630         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
631         exists, substitute its pathname as @extra_modes_file@, define
632         EXTRA_MODES_FILE to be an appropriate string to #include it
633         with, and define EXTRA_CC_MODES to 1.
634
635         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
636         it's defined.  Get rid of redundancy in calling sequence for
637         CC; don't use it to define CCmode, to avoid a warning.
638         * libgcc2.c: Include symcat.h for the sake of machmode.def.
639
640         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
641         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
642         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
643         New files.
644         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
645         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
646
647         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
648         defining extra CC modes.
649
650 2002-06-10  Roger Sayle  <roger@eyesopen.com>
651             Andreas Jaeger <aj@suse.de>
652
653         * cfgrtl.c (create_basic_block_structure):  Remove index argument
654         and use last_basic_block++ instead.  (create_basic_block): Update.
655         * cfgbuild.c (find_basic_blocks_1): Likewise.
656
657         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
658         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
659         * sched-ebb.c (schedule_ebbs): Likewise.
660         * sched-rgn.c (schedule_insns): Likewise.
661         * ssa-ccp.c (ssa_const_prop): Likewise.
662         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
663         * toplev.c (rest_of_compilation): Likewise.
664         * config/ia64/ia64.c (ia64_reorg): Likewise.
665
666 2002-06-10  Roger Sayle  <roger@eyesopen.com>
667
668         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
669         of matching registers.
670
671 2002-06-10  Roger Sayle  <roger@eyesopen.com>
672
673         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
674         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
675
676 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
677
678         * config/mmix/mmix.h: Improve comments.
679         (CPP_SPEC, CPP_PREDEFINES): Don't define.
680         (TARGET_CPU_CPP_BUILTINS): Define.
681         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
682         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
683         unused predicate.
684         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
685         compiler warning.
686         (mmix_constant_address_p): Remove another
687         redundant test before case.
688         (mmix_canonicalize_comparison): Remove unused function.
689         (mmix_print_operand_address): Don't test and adjust for operand in
690         non-canonical format.
691         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
692         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
693
694 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
695
696         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
697         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
698         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
699         (gen_compare): Use CCmode unconditionally.
700
701 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
702
703         PR optimization/6759
704         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
705         the REQ_EQUAL note.
706
707 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
708
709         PR c/6660
710         * c-decl.c (grokfield): Allow user defined types if they declare
711         structs or unions for unnamed fields.
712
713 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
714
715         PR c/6809
716         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
717
718 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
719
720         PR optimization/6842
721         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
722         operand subreg cannot be simplified.
723
724 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
725
726         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
727         (compare_constant): Likewise.
728         (output_addressed_constants): Likewise.
729
730 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
731
732         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
733         merge bb with itself.
734
735 2002-06-10  Richard Henderson  <rth@redhat.com>
736
737         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
738         (builtin_zapnot): Likewise.
739
740         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
741         reservation.
742
743 2002-06-10  Eric Christopher  <echristo@redhat.com>
744
745         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
746         prototype and function.
747         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
748         (call_insn_operand): Remove half pic references.
749         (legitimate_address_p): Ditto.
750         * config/i386/i386.h: Remove half pic defines.
751
752 2002-06-10  Eric Christopher  <echristo@redhat.com>
753
754         * doc/extend.texi (Return Address): Add note explaining the side-
755         effects of inlining on __builtin_return_address.
756
757 2002-06-10  Tom Tromey  <tromey@redhat.com>
758
759         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
760         (c-common.o): Depend on langhooks.h.
761
762 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
763
764         * cpphash.h (_cpp_read_logical_line_trad,
765         _cpp_expansions_different_trad): Update prototypes.
766         * cpplex.c (continue_after_nul): New.
767         * cppmain.c: Include cpphash.h.
768         (scan_translation_unit_trad): New.
769         (cpp_preprocess_file): Call it.
770         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
771         overlay.
772         (_cpp_expansions_different_trad): Update prototype.
773
774 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
775
776         Fix cfi generation for SH[1-4]:
777
778         * sh.c (frame_insn): New function.
779         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
780         (push): Now returns rtx.  Use frame_insn.
781         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
782         of a DF register.
783         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
784
785 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
786
787         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
788         and gtype-desc.c.
789         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
790         (distclean): ... not here.  But do delete all testsuite/*.log,
791         testsuite/*.sum files here.  Delete mkheaders.  Delete
792         po/*.gmo and the testsuite directory in a split tree build.
793
794 2002-06-10  Jeffrey Law  <law@redhat.com>
795
796         * alias.c (static_reg_base_value): New to hold RTL for
797         items allocated once per function for the aliasing code.
798         (init_alias_once_per_function): Initialize static_reg_base_value.
799         (init_alias_analysis): Avoid throw-away allocations of RTL by
800         using pre-computed values in static_reg_base_value.
801         * function.c (prepare_function_start): Call
802         init_alias_once_per_function appropriately.
803         * rtl.h (init_alias_once_per_function): Declare.
804         * caller-save (init_caller_save): Restructure slightly to
805         avoid lots of silly RTL generation.
806         * expr.c (init_expr_once): Likewise.
807         * reload1.c (reload_cse_regs_1): Allocate throw-away register
808         RTL object here.  Pass it into children.
809         (reload_cse_simplify_operands): Use passed-in register RTL
810         object.
811         (reload_cse_simplify): Pass through throw-away register
812         RTL object.
813
814 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
815
816         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
817
818 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
819
820         * gcc.c (process_command): Avoid assignment to read-only location.
821         Fix sizeof calculation.
822
823 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
824
825         * cpphash.h (struct cpp_macro): Put comments on their own lines.
826         (_cpp_expansions_different_trad): New.
827         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
828         * cpptrad.c (canonicalize_text): New.
829         (scan_out_logical_line): Handle no arguments correctly.
830         (save_replacement_text): Commit memory when finished.
831         (_cpp_expansions_different_trad): New.
832
833 2002-06-10  Tim Josling  <tej@melbpc.org.au>
834
835         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
836         TREELANG and COBOL.
837         (lang_names): Add treelang and cobol.
838         (get_file_basename): Add code to support treelang and cobol as
839         4th and 5th users of c-common.c.
840
841 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
842
843         * Makefile.in (install-driver): Install driver as
844         $(target_alias)-gcc-$(version).
845         * gcc.c (spec_version): Make const.
846         (process_command): Handle -V and -b by using exec.
847         * doc/invoke.texi (Target Options): Restore -V option,
848         update docs for -b option.
849
850 2002-06-10  Tim Josling  <tej@melbpc.org.au>
851
852         * configure.in (remaining_languages_check):
853         Added check that all languages specified were found.
854         Exit if not found. Previous behaviour was silent failure.
855         * configure: Regenerated.
856
857 2002-06-10  Tim Josling  <tej@melbpc.org.au>
858
859          First steps to making treelang documentation compliant, based on
860          instructions in sourcebuild.texi. Also add to gcc.c list of
861          default languages.
862
863         * doc/contrib.texi: Add self as contributor of treelang.
864
865         * doc/frontends.texi: Add mention of treelang.
866
867         * doc/invoke.texi (Overall Options): Add mention of treelang.
868
869         * doc/standards.texi:  Add mention of treelang.
870
871 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
872
873         * config/cris/cris.c: Include ggc.h
874
875 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
876
877         * cpphash.h (_cpp_push_text_context): Update.
878         (_cpp_arguments_ok): New.
879         * cppmacro.c (_cpp_arguments_ok): New, split out from...
880         (collect_args): ...here.
881         (_cpp_push_text_context): Change inputs.
882         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
883         replace_args_and_push): New.
884         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
885         Don't use IS macros directly.
886         (scan_out_logical_line): Handle function-like macro argument
887         collection.
888         (push_replacement_text): Update.
889         (replacement_length): Remove.
890         (_cpp_create_trad_definition): Don't skip whitespace before
891         checking for '('.
892
893 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
894
895         * config/avr/avr.c (avr_mcu_types): Update for new devices.
896         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
897         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
898         * config/avr/avr.md ("type" and "length" attributes): New type
899         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
900         output a single "call" or "rcall" insn depending on device size.
901         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
902
903 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
904
905         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
906         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
907         assembler option.
908         (CPP_CPU_SPEC): Add power3 and power4.
909         (PROCESSOR_DEFAULT): Change to 604e.
910         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
911         (CPP_CPU_SPEC): Similar additions.
912         (enum process_type): Add POWER4.
913         (RTX_COSTS): Add POWER4.
914         (CPP_CPU_SPEC): Similar additions.
915         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
916         (PROCESSOR_DEFAULT64): Define.
917         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
918         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
919         branch adjustment.
920         (rs6000_issue_rate): Add Power4.
921         * config/rs6000/rs6000.md (cpu attr): Add power4.
922         (iu compare): Remove 604, 604e, 620, 630.
923         Add basic Power4 scheduling information.
924         (mfcr/mtcrf): Change type attribute to cr_logical.
925
926 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
927
928         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
929         ATTRIBUTE_PRINTF_2.
930         * gengtype-lex.l: Fix format specifier warning.
931
932         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
933         not isspace.
934         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
935         lieu of isspace/IDchar.
936         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
937         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
938         ISSPACE.
939
940 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
941
942         * Makefile.in (LIBCPP_OBJS): Take out version.o.
943         * cpphash.h (cpp_reader): Take out print_version member.
944         * cppinit.c: (cpp_handle_option): Don't do anything with
945         -version.  Just set help_only for --version, --target-help.
946         Just set verbose option for -v.
947         (cpp_post_options): Don't print a version string.
948
949 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
950
951         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
952         (avr_section_type_flags): New, handle .noinit* sections.
953
954 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
955
956         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
957         and include netbsd_entry_point.
958         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
959         (NETBSD_ENTRY_POINT): Define.
960
961 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
962
963         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
964         if not already defined.
965         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
966
967 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
968
969         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
970         in a noreturn function.
971         (avr_output_function_prologue, avr_output_function_epilogue):
972         Correct function size calculation.  Do not crash on empty function.
973         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
974
975 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
976
977         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
978         netbsd_link_spec and netbsd_entry_point.
979         (LINK_SPEC): Use %(netbsd_link_spec).
980         (NETBSD_ENTRY_POINT): Define.
981
982 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
983
984         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
985         linker emulation.
986         (LINK_ARCH64_SPEC): Likewise.
987         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
988         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
989
990 2002-06-08  Marc Espie  <espie@openbsd.org>
991
992         * lists.c (free_list):  Fix typo in comment.
993
994 2002-06-08  Andreas Jaeger  <aj@suse.de>
995
996         * lcm.c (optimize_mode_switching): Add unused attribute for
997         variable.
998
999         * sched-deps.c (sched_analyze): Remove unused variable.
1000
1001 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
1002
1003         * diagnostic.def: Don't capitalize diagnostict descriptors.
1004
1005 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1006
1007         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
1008         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
1009         (NETBSD_ENTRY_POINT): Define.
1010
1011 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1012
1013         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
1014         NETBSD_LINK_SPEC_ELF.
1015         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
1016         (NETBSD_ENTRY_POINT): Define.
1017         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
1018         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
1019         netbsd_entry_point.
1020         (NETBSD_ENTRY_POINT): Define.
1021
1022 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1023
1024         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
1025         netbsd_link_spec and netbsd_entry_point.
1026         (LINK_SPEC): Use %(netbsd_link_spec).
1027         (NETBSD_ENTRY_POINT): Define.
1028
1029 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
1030
1031         * config/netbsd-elf.h (LINK_SPEC): Rename to...
1032         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
1033         to specify program entry point.
1034
1035 2002-06-07  Jeff Law <law@redhat.com
1036
1037         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
1038         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
1039         than creating a new register.
1040         (distribute_notes): Likewise.
1041         * df.c (df_reg_use_gen): Likewise.
1042         (df_reg_clobber_gen): Likewise.
1043         (df_ref_record): Likewise.
1044         * expr.c (use_regs): Likewise.
1045         * flow.c (propagate_one_insn): Likewise.
1046         (mark_set_1): Likewise.
1047         (mark_used_reg): Likewise.
1048         * reload.c (emit_reload_insns): Likewise.
1049
1050 2002-06-07  Roger Sayle  <roger@eyesopen.com>
1051
1052         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
1053         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
1054         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
1055         comparison code comp can be reversed.
1056
1057 2002-06-07  Roger Sayle  <roger@eyesopen.com>
1058
1059         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
1060         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
1061         equivalent x > -1.0 when -ffast-math.
1062
1063 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
1064
1065         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
1066         * config/mips/t-netbsd: New file.
1067
1068 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
1069
1070         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
1071         options their own entries.
1072         (parse_option): Clarify comment.
1073         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
1074         special case.  Replace if/strcmp chain for -W options with
1075         use of new OPT_* entries for them.
1076         (cpp_handle_options): Update to match.
1077         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
1078         * c-decl.c: Update call to cpp_handle_option.
1079
1080 2002-06-07  Akim Demaille  <akim@epita.fr>
1081
1082         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
1083         Whitespace changes.
1084
1085 2002-06-07  Jeffrey Law  <law@redhat.com>
1086
1087         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
1088         on empty lists.
1089
1090 2002-06-07  H.J. Lu  (hjl@gnu.org)
1091
1092         * configure.in: Add --enable-__cxa_atexit.
1093         * configure: Regenerated.
1094         * config.in: Likewise.
1095
1096         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
1097         not defined.
1098
1099 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
1100
1101         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
1102
1103 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
1104
1105         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
1106
1107 2002-06-07  Jason Merrill  <jason@redhat.com>
1108
1109         * cppexp.c (num_equality_op): Use a temporary variable to work
1110         around gcc 3.0.4 bug.
1111
1112 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
1113
1114         * diagnostic.c (diagnostic_build_prefix): Tidy.
1115
1116 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
1117
1118         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
1119         scan_parameters, save_replacement_text, replacement_length): New.
1120         (scan_out_logical_line): Take a macro and save parameters if
1121         non-NULL.
1122         (_cpp_logical_line_trad): Update.
1123         (_cpp_create_trad_definition): Update to handle function-like
1124         macros.
1125         * cpplex.c (new_buff): Update.
1126         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
1127         * cpphash.h: ...here.
1128         (CPP_ALIGN2, _cpp_save_parameter): New.
1129         * cppmacro.c (save_parameter): Rename, export.
1130         (parse_params): Update.
1131
1132 2002-06-07  Andreas Jaeger  <aj@suse.de>
1133
1134         * config/mmix/mmix.c: Remove extra broken prototype for
1135         mmix_init_machine_status.
1136
1137 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
1138
1139         * gengtype.c: Add comments before all the routines.
1140
1141 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
1142
1143         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
1144         from and add t-sh64 to ${tmake_file}.
1145         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
1146         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
1147         * config/sh/t-netbsd-sh5-32: Remove.
1148         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
1149         MULTILIB_ENDIAN.
1150         (MULTILIB_DIRNAMES): Define.
1151
1152 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
1153
1154         * i386.md (and promoting splitters): Disable QI to SImode promoting
1155         when doing so changes immediate to be 32bit.
1156
1157         * rtl.h (emit_*_scope): Declare.
1158         * emit-rtl.c (emit_*_scope): New global functions.
1159         (try_split): Copy scope.
1160         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
1161         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
1162         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1163         noce_process_if_block, find_cond_trap): Copy scopes.
1164         * recog.c (peephole2_optimize): likewise.
1165
1166 2002-06-06  Jeffrey Law  <law@redhat.com>
1167
1168         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
1169
1170 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
1171
1172         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
1173
1174 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1175
1176         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
1177         ($(docdir)/gccinstall.info): New target.
1178         (info): Depend on it.
1179         (gccinstall.dvi): New target.
1180         (dvi): Depend on it.
1181         * doc/.cvsignore: Ignore new info files.
1182         * doc/install.texi (@setfilename): Reflect new info filename.
1183
1184 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
1185
1186         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
1187         on an UNSPEC.
1188
1189 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
1190
1191         PR objc/6834
1192         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
1193         c_common_get_alias_set.
1194         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
1195
1196 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1197
1198         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
1199         functions.
1200         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
1201         * avr/avr.c (avr_output_function_epilogue): Use above to determine
1202         function size.
1203         * pa/pa.c (pa_output_function_prologue): Likewise.
1204
1205 2002-06-05  David S. Miller  <davem@redhat.com>
1206
1207         * integrate.c (subst_constants): Handle 'B' RTL format.
1208
1209 2002-06-05  Eric Christopher  <echristo@redhat.com>
1210
1211         * varasm.c (make_decl_rtl): Fix comment for removed
1212         halfpic.c.
1213
1214 2002-06-05  Eric Christopher  <echristo@redhat.com>
1215
1216         * Makefile.in: Remove missed halfpic bits.
1217
1218 2002-06-05  Eric Christopher  <echristo@redhat.com>
1219
1220         * toplev.c: Remove half-pic.
1221         * config/mips/mips.c: Ditto.
1222         * config/mips/mips.h: Ditto. Remove unused defines.
1223         * config/mips/openbsd.h: Update comment to reflect above.
1224         * config/mips/mips.md: Remove half-pic constraints.
1225         * halfpic.h: Delete.
1226         * halfpic.c: Ditto.
1227
1228 2002-06-05  Jeffrey Law  <law@redhat.com>
1229
1230         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
1231         rejects (mem (lo_sum (reg) (unspec))), but will allow
1232         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
1233
1234 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1235
1236         * cpphash.h (_cpp_create_definition): Update prototype.
1237         (_cpp_push_text_context, _cpp_create_trad_definition): New.
1238         ( cpp_lex_identifier_trad): New.
1239         (_cpp_set_trad_context): New.
1240         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
1241         * cpplib.c (SEEN_EOL): Update.
1242         (lex_macro_node): Update for -traditional.
1243         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
1244         * cppmacro.c (_cpp_create_definition): Split into
1245         create_iso_definition() and _cpp_create_trad_definition().
1246         (warn_of_redefinition): Update prototype; handle traditional
1247         macros.
1248         (_cpp_push_text_context): New.
1249         * cpptrad.c (skip_whitespace, push_replacement_text): New.
1250         (lex_identifier): Call ht_lookup with correct start.
1251         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
1252         _cpp_set_trad_context): New.
1253         (scan_out_logical_line): Update to handle changing contexts.
1254
1255 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
1256
1257         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
1258         (shl*-*-elf*): Add.
1259         * config/sh/t-be (MULTILIB_ENDIAN): Set.
1260         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
1261         * t-sh (MULTILIB_ENDIAN): Set.
1262         (MULTILIB_OPTIONS): Use it.
1263         * t-sh64 (MULTILIB_OPTIONS): Likewise.
1264         (MULTILIB_DIRNAMES): Likewise.
1265
1266 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
1267
1268         * toplev.h (report_error_function): Remove.
1269
1270         * diagnostic.h (location_t): New datatype.
1271         (text_info): Likewise.
1272         (diagnostic_info): Likewise.
1273         (output_prefix): New macro.
1274         (diagnostic_last_function_changed): Likewise.
1275         (diagnostic_set_last_function): Likewise.
1276         (diagnostic_last_module_changed): Likewise.
1277         (diagnostic_set_last_module): Likewise.
1278         (report_diagnostic): Now macro.
1279         (diagnostic_set_info): Declare.
1280
1281         * diagnostic.c (report_problematic_module): Rename to
1282         diagnostic_repor_current_module.
1283         (set_diagnostic_context): Remove.
1284         (count_error): Rename to diagnostic_error_count.
1285         (error_function_changed): Remove.
1286         (record_last_error_function): Likewise.
1287         (error_module_changed): Likewise.
1288         (record_last_error_module): Likewise.
1289         (context_as_prefix): Rename to diagnostic_build_prefix.
1290         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
1291         (diagnostic_set_info): New function.
1292
1293         * objc/objc-act.c: #include diagnostic.h
1294         (error_with_ivar): Adjust call to count_error.
1295         (warn_with_method): Likewise.
1296         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
1297
1298 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
1299
1300         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
1301         lang_hooks.types.make_type instead of make_node; set up
1302         __va_list_tag type decl.
1303         (xtensa_builtin_saveregs): Remove broken use of
1304         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
1305         for saved registers; add varargs alias set.
1306
1307 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1308
1309 config:
1310         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
1311         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1312         CPP_PREDEFINES and part of CPP_SPEC.
1313         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
1314         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
1315
1316 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
1317
1318         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
1319
1320 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
1321
1322         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
1323
1324 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
1325
1326         * gengtype-yacc.y: Make sure all rules end with a semicolon.
1327
1328 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
1329
1330         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
1331         typo in function prototype and include "ggc.h" header.
1332
1333 2002-06-04  Richard Henderson  <rth@redhat.com>
1334
1335         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
1336         (print_operand) ['U']: Likewise.
1337         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
1338         (alpha_expand_unaligned_store_words): Likewise.
1339         (alpha_expand_builtin_vector_binop): Fix typo.
1340         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
1341         umulh, and cix insns.
1342         (one_arg_builtins): Add cix builtins.
1343         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
1344         (alpha_expand_builtin): Fix typo in arity.
1345         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
1346         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
1347         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
1348         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
1349         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
1350         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
1351         builtin_ctlz, builtin_ctpop): New.
1352         * doc/extend.texi (Alpha Built-in Functions): Update.
1353
1354 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
1355
1356         * gengtype.c (write_gc_root): Don't unnecessarily prevent
1357         global variable-length arrays being roots.
1358
1359         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
1360         * configure.in (config_gtfiles): New variable.
1361         (all_gtfiles): Initialise from config_gtfiles.
1362         * configure: Regenerate.
1363
1364 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1365
1366 config/i386:
1367         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
1368         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
1369         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
1370         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
1371         win32.h (CPP_SPEC): Remove cpp_cpu.
1372         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
1373         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
1374
1375 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
1376
1377         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
1378
1379 2002-06-04  Jeff Law <law@redhat.com.
1380             David Edelsohn <edelsohn@gnu.org>
1381             Michael Matz <matz@kde.org>
1382
1383         * sched-int.h (struct deps): New field libcall_block_tail_insn.
1384         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
1385         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
1386         is set, then mark the current insn as being part of a libcall
1387         scheduling group.
1388         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
1389
1390         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
1391         insns against the issue rate.
1392
1393 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
1394
1395         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
1396         * final.c (final_scan_insn): Likewise.
1397         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
1398         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
1399         * haifa-sched.c (unlink_other_notes): Likeewise.
1400         (reemit_notes): Likewise.
1401         * print-rtl.c (print_rtx): Likewise.
1402         * sched-deps (sched-analyze): Likewise.
1403         * rtl.c (note_insn_name): Likewise.
1404         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
1405         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
1406         (RANGE_*): Kill.
1407
1408 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1409
1410         * varasm.c (mark_constants): Handle RTX format 'B'.
1411
1412 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1413
1414         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
1415         (struct cpp_context): Add traditional fields.
1416         * cppmacro.c (paste_all_tokens, push_ptoken_context,
1417         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
1418         * cpptrad.c (skip_comment, lex_identifier,
1419         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
1420
1421 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
1422
1423         * gbl-ctors.h: Fix formatting.
1424         * gcc.c: Likewise.
1425         * gccspec.c: Likewise.
1426         * gcov.c: Likewise.
1427         * gcov-io.h: Likewise.
1428         * gcse.c: Likewise.
1429         * ggc-common.c: Likewise.
1430         * ggc.h: Likewise.
1431         * ggc-page.c: Likewise.
1432         * ggc-simple.c: Likewise.
1433         * global.c: Likewise.
1434         * graph.h: Likewise.
1435         * gthr-dce.h: Likewise.
1436         * gthr.h: Likewise.
1437         * gthr-posix.h: Likewise.
1438         * gthr-rtems.h: Likewise.
1439         * gthr-solaris.h: Likewise.
1440         * gthr-win32.h: Likewise.
1441
1442 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
1443
1444         Merge from pch-branch:
1445
1446         * gengtype.h (UNION_OR_STRUCT_P): New macro.
1447         * gengtype.c (write_gc_structure_fields): Use it.
1448         (write_gc_root): Use it here too.
1449
1450         * gengtype.c (write_gc_structure_fields): Assume that lengths
1451         of typenames fit into an 'int'; don't pass a size_t to "%d" in
1452         printf.
1453         (write_gc_marker_routine_for_structure): Likewise.
1454         (write_gc_types): Likewise.
1455         (write_gc_root): Likewise.
1456
1457         * varray.h (VARRAY_CLEAR): New.
1458         (varray_clear): Prototype.
1459         * varray.c (varray_clear): New.
1460         * cselib.c (reg_values_old): New.
1461         (used_regs_old): New.
1462         (cselib_init): Use cached varrays if available to avoid
1463         generating large amounts of garbage.
1464         (cselib_finish): Don't throw away old varrays.
1465
1466         * final.c (insn_addresses_): Move out of ifdef.
1467
1468         * varray.c (uses_ggc): Make more varray kinds GCable.
1469         * varray.h (union varray_data_tag): Let gengtype see
1470         fields 'generic' and 'te'.
1471         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
1472         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
1473         (reg_to_stack): Don't call VARRAY_FREE.
1474         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
1475         (insn_addresses_): Use gengtype to mark.
1476         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
1477         pointers; handle generic pointers in unused union fields.
1478         (get_output_file_with_visibility): Include cselib.h,
1479         insn-addr.h in gtype-desc.c.
1480         * function.c (prologue): Use gengtype to mark.
1481         (epilogue): Likewise.
1482         (sibcall_epilogue): Likewise.
1483         * dependence.c: Include gt-dependence.h, ggc.h.
1484         (struct def_use): Use gengtype to mark.
1485         (struct loop): Likewise.
1486         (struct induction): Likewise.
1487         (struct dependence): Likewise.
1488         (def_use_chain): Likewise.
1489         (dep_chain): Likewise.
1490         (loop_chain): Likewise.
1491         (induction_chain): Likewise.
1492         (init_dependence_analysis): Don't free anything, just clear pointers.
1493         (build_def_use): Use GGC to allocate def_use.
1494         (add_loop): Use GGC to allocate loop.
1495         (find_induction_variable): Use GGC to allocate induction.
1496         (check_node_dependence): Use GGC to allocate induction, dependence.
1497         (dump_node_dependence): Don't free varrays.
1498         (end_dependence_analysis): Likewise.
1499         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
1500         (struct elt_loc_list): Likewise.
1501         (struct elt_list): Likewise.
1502         * cselib.c: Don't include obstack.h.
1503         (hash_table): Use gengtype to mark.
1504         (reg_values): Use gengtype to mark.
1505         (used_regs): Use gengtype to mark.
1506         (cselib_obstack): Delete.
1507         (cselib_startobj): Delete.
1508         (empty_vals): Mark as deletable.
1509         (empty_elt_lists): Mark as deletable.
1510         (empty_elt_loc_lists): Mark as deletable.
1511         (new_elt_list): Use GGC to allocate struct elt_list.
1512         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
1513         (clear_table): Don't delete obstack; don't unnecessarily clear
1514         deletable variables.
1515         (new_cselib_val): Use GGC to allocate struct cselib_val.
1516         (cselib_init): Don't set up obstacks.  Use GGC to allocate
1517         hash table.
1518         (cselib_finish): Just clear variables, don't free anything.
1519         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
1520         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
1521         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
1522         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
1523         (gt-reg-stack.h): New rule.
1524         (gt-dependence.h): New rule.
1525         (gtype-desc.o): Add cselib.h, insn-addr.h.
1526
1527         * varray.c: Use only necessary headers.
1528         (element_size): New.
1529         (uses_ggc): New.
1530         (varray_init): Take type, not size.  Use GGC if appropriate.
1531         (varray_grow): Update for change to struct varray_head_tag.
1532         Use GGC if appropriate.
1533         * varray.h (struct const_equiv_data): Use gengtype.
1534         (enum varray_data_enum): New.
1535         (union varray_data_tag): Use gengtype.
1536         (struct varray_head_tag): Use gengtype.  Replace size field with
1537         enum varray_data_enum.
1538         (varray_init): Update prototype.
1539         (VARRAY_SCHED_INIT): Delete.
1540         (VARRAY_*_INIT): Update for change to varray_init.
1541         (VARRAY_SCHED): Delete.
1542         (VARRAY_PUSH_SCHED): Delete.
1543         (VARRAY_TOP_SCHED): Delete.
1544         * tree.h: Update for change to length specifier.
1545         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
1546         (clone_body): Likewise.
1547         * ssa.h (ssa_definition): Use gengtype to mark.
1548         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
1549         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
1550         * rtl.h (struct rtvec_def): Update for change to length specifier.
1551         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
1552         (struct initial_value_struct): Update for change to length specifier.
1553         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
1554         (ggc_add_tree_varray_root): Delete prototype.
1555         (ggc_mark_rtx_varray): Delete prototype.
1556         (ggc_mark_tree_varray): Delete prototype.
1557         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
1558         (ggc_add_tree_varray_root): Delete.
1559         (ggc_mark_rtx_varray): Delete.
1560         (ggc_mark_tree_varray): Delete.
1561         (ggc_mark_rtx_varray_ptr): Delete.
1562         (ggc_mark_tree_varray_ptr): Delete.
1563         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
1564         (create_varray): Delete prototype.
1565         * gengtype.c (varrays): Delete.
1566         (create_varray): Delete.
1567         (adjust_field_type): Detect array of string pointers.
1568         (process_gc_options): Remove code to handle varray_type option.
1569         (set_gc_used_type): Remove TYPE_VARRAY case.
1570         (output_escaped_param): New.
1571         (write_gc_structure_fields): Use output_escaped_param on all
1572         parameters.  Handle 'skip' with 'use_param' option.  Handle
1573         arrays of strings.  Remove TYPE_VARRAY handling.
1574         (write_gc_roots): Use boolean to detect 'length' option.
1575         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
1576         (struct_fields): Call adjust_field_type on array fields.
1577         (type): Remove VARRAY_TYPE case.
1578         (type_option): Likewise.
1579         * gengtype-lex.l: Don't consider varray_type a keyword.
1580         * function.h: Update for change to length specifier.
1581         (free_eh_status): Delete prototype.
1582         * function.c (free_after_compilation): Don't call free_eh_status.
1583         (reorder_blocks): Don't use VARRAY_FREE.
1584         * except.c (struct eh_status): Update for change to length specifier.
1585         remove varray_type specifier.
1586         (free_eh_status): Delete.
1587         * dwarf2out.c: Include gt-dwarf2out.h.
1588         (used_rtx_varray): Use gengtype to mark, move
1589         outside ifdefs.
1590         (incomplete_types): Likewise.
1591         (decl_scope_table): Likewise.
1592         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
1593         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
1594         * c-tree.h (struct lang_type): Update for change to length specifier.
1595         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
1596         * c-objc-common.c: Include gt-c-objc-common.h.
1597         (deferred_fns): Mark for gengtype.
1598         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
1599         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
1600         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
1601         (gtype-desc.o): Update dependencies.
1602         (dwarf2out.o): Add gt-dwarf2out.h.
1603         (varray.o): Update dependencies.
1604         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
1605         (gt-c-objc-common.h): New rule.
1606         (gt-dwarf2out.h): New rule.
1607         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
1608
1609         * doc/gty.texi (GTY Options): Correct spelling.
1610         (GGC Roots): Likewise.
1611         * Makefile.in (TEXI_CPP_FILES): New.
1612         (TEXI_GCC_FILES): New.
1613         (TEXI_GCCINT_FILES): New.
1614         (TEXI_CPPINT_FILES): New.
1615         ($(docdir)/cpp.info): Use new macros.
1616         ($(docdir)/gcc.info): Likewise.
1617         ($(docdir)/gccint.info): Likewise.
1618         ($(docdir)/cppinternals.info): Likewise.
1619         (cpp.dvi): Likewise.
1620         (gcc.dvi): Likewise.
1621         (gccint.dvi): Likewise.
1622         (cppinternals.dvi): Likewise.
1623
1624         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
1625         * doc/gccint.texi (Top): Include gty.texi.
1626         * doc/gty.texi: New file.
1627
1628         * bitmap.c: Include ggc.h, gt-bitmap.h.
1629         (bitmap_ggc_free): New.
1630         (bitmap_elem_to_freelist): New.
1631         (bitmap_element_free): Use bitmap_elem_to_freelist.
1632         (bitmap_element_allocate): Allow use of GGC.
1633         (bitmap_clear): Use bitmap_elem_to_freelist.
1634         (bitmap_copy): Update for change to bitmap_element_allocate.
1635         (bitmap_set_bit): Likewise.
1636         (bitmap_operation): Update for changes elsewhere.
1637         (bitmap_initialize): Allow to create bitmaps that will use GGC.
1638         * bitmap.h (struct bitmap_element_def): Use gengtype.
1639         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
1640         (bitmap_initialize): Add extra parameter.
1641         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
1642         (BITMAP_ALLOCA): Delete.
1643         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
1644         (BITMAP_GGC_ALLOC): New.
1645         * Makefile.in (gtype-desc.o): Add bitmap.h.
1646         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
1647         (GTFILES): Add bitmap.c.
1648         (gt-bitmap.h): New rule.
1649         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
1650         * basic-block.h: Update for changes to bitmap_initialize.
1651         * except.c (exception_handler_label_map): Move into...
1652         (struct eh_status): Here.
1653         (struct eh_region): Make 'aka' GCable.
1654         (free_eh_status): Don't need to specially handle
1655         exception_handler_label_map.
1656         (add_ehl_entry): Update for changes to exception_handler_label_map.
1657         (find_exception_handler_labels): Likewise.
1658         (remove_exception_handler_label): Likewise.
1659         (maybe_remove_eh_handler): Likewise.
1660         (for_each_eh_label): Likewise.
1661         (remove_eh_handler): Allocate 'aka' using GGC.
1662         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
1663         to list of includes.
1664
1665         * gengtype.c (write_gc_marker_routine_for_structure): Name
1666         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
1667         (write_gc_types): Arrange for the tests with NULL to be inlined.
1668         (write_gc_roots): Update uses of procedure pointers.
1669         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
1670
1671         * Makefile.in (explow.o): Add dependency on gt-explow.h.
1672         (sdbout.o): Add dependency on gt-sdbout.h.
1673
1674         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
1675         (mem_attrs_htab): Likewise.
1676         (init_emit_once): Don't call ggc_add_deletable_htab.
1677         * fold-const.c (size_htab): Use gengtype to clear unused entries.
1678         (size_int_type_wide): Don't call ggc_add_deletable_htab.
1679         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
1680         parameters, use them, change callers.
1681         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
1682         (write_gc_roots): Handle 'if_marked' option.
1683         (main): Don't need to call set_gc_used_type any more.
1684         * ggc.h (ggc_htab_marked_p): Delete.
1685         (ggc_htab_mark): Delete.
1686         (struct ggc_cache_tab): New.
1687         (gt_ggc_cache_rtab): New declaration.
1688         * ggc-common.c (struct d_htab_root): Delete.
1689         (d_htab_roots): Delete.
1690         (ggc_add_deletable_htab): Delete.
1691         (ggc_htab_delete): Handle new htab-deleting mechanism.
1692         (ggc_mark_roots): Use new htab-deleting mechanism.
1693         * tree.c (type_hash_table): Use gengtype to clear unused entries.
1694         Make static.
1695         (init_obstacks): Don't call ggc_add_deletable_htab.
1696
1697         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
1698         (struct hashed_entry): Likewise.
1699         (nst_method_hash_list): Likewise.
1700         (cls_method_hash_list): Likewise.
1701         (HASH_ALLOC_LIST_SIZE): Delete.
1702         (ATTR_ALLOC_LIST_SIZE): Delete.
1703         * objc/objc-act.c (hash_init): Use ggc to allocate
1704         nst_method_hash_list, cls_method_hash_list.
1705         (hash_enter): Use ggc to allocate; allocate one entry at a time.
1706         (hash_add_attr): Likewise.
1707         (ggc_mark_hash_table): Delete.
1708         (objc_act_parse_init): Delete.
1709         (objc_init): Delete reference to objc_act_parse_init.
1710         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
1711         obstack.h.  Replace references to 'struct hash_table' with htab_t.
1712         (struct symbol_hash_entry): Replace hash header with key field.
1713         (struct file_hash_entry): Replace hash header with key field.
1714         (struct demangled_hash_entry): Replace hash header with key field.
1715         (hash_string_eq): New.
1716         (hash_string_hash): New.
1717         (symbol_hash_newfunc): Delete.
1718         (symbol_hash_lookup): Modify to use htab_t.
1719         (file_hash_newfunc): Delete.
1720         (file_hash_lookup): Modify to use htab_t.
1721         (demangled_hash_newfunc): Delete.
1722         (demangled_hash_lookup): Modify to use htab_t.
1723         (tlink_init): Modify to use htab_t.
1724         * hash.h: Delete.
1725         * hash.c: Delete.
1726         * ggc.h: Delete forward structure declarations.
1727         Delete prototypes for deleted functions.
1728         * ggc-common.c: Don't include hash.h.
1729         (ggc_add_tree_hash_table_root): Delete.
1730         (ggc_mark_tree_hash_table_entry): Delete.
1731         (ggc_mark_tree_hash_table): Delete.
1732         (ggc_mark_tree_hash_table_ptr): Delete.
1733         * gengtype.c (write_gc_structure_fields): Allow param_is option.
1734         (write_gc_marker_routine_for_structure): Use visibility of
1735         the parameter if there is one.
1736         * function.c: Replace hash.h with hashtab.h.  Replace references
1737         to 'struct hash_table *' with htab_t.
1738         (struct insns_for_mem_entry): Include a plain key.
1739         (fixup_var_refs_insns_with_hash): Update to use htab_t.
1740         (insns_for_mem_newfunc): Delete.
1741         (insns_for_mem_hash): Update to use htab_t.
1742         (insns_for_mem_comp): Likewise.
1743         (insns_for_mem_walk): Likewise.
1744         * c-lang.c: Include ggc.h.
1745         * Makefile.in (OBJS): Remove hash.o.
1746         (c-lang.o): Add GGC_H.
1747         (COLLECT2_OBJS): Remove hash.o.
1748         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
1749         (ggc-common.o): Remove hash.h.
1750         (function.o): Remove hash.h, add HASHTAB_H.
1751         (genautomata.o): Remove hash.h, add HASHTAB_H.
1752
1753         * varasm.c (mark_const_str_htab_1): Delete.
1754         (mark_const_str_htab): Delete.
1755         (const_str_htab_del): Delete.
1756         (const_str_htab): Use gengtype to mark.
1757         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
1758         allocate them.
1759         * tree.c (mark_tree_hashtable_entry): Delete.
1760         (mark_tree_hashtable): Delete.
1761         * tree.h (mark_tree_hashtable): Delete prototype.
1762         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
1763         (ggc_mark): Likewise.
1764         (ggc_calloc): New.
1765         (htab_create_ggc): New.
1766         * ggc-common.c (ggc_calloc): New.
1767         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
1768         (struct type): Add param_struct structure.
1769         * gengtype.c (param_structs): New.
1770         (adjust_field_type): Handle param_is option.
1771         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
1772         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
1773         (write_gc_structure_fields): Add new PARAM parameter.  Update
1774         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
1775         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
1776         Use it to generate function name.  Update callers.
1777         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
1778         Process them.
1779         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
1780         option.
1781         (main): Define PTR as pointer-to-scalar.  Don't specially
1782         mark deferred_string or ehl_map_entry.
1783         * gengtype-yacc.y (PARAM_IS): Add new token.
1784         (externstatic): Use adjust_field_type.
1785         (type_option): Add PARAM_IS.
1786         * gengtype-lex.l: Add rule for typedef of function pointers.
1787         Add rule for PARAM_IS.
1788         (IWORD): Add size_t.
1789         * except.c (exception_handler_label_map): Use gengtype to mark.
1790         (type_to_runtime_map): Likewise.
1791         (mark_ehl_map_entry): Delete.
1792         (mark_ehl_map): Delete.
1793         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
1794         (t2r_mark_1): Delete.
1795         (t2r_mark): Delete.
1796         * Makefile.in (gtype-desc.o): Correct dependencies.
1797         (GTFILES): Add hashtab.h.
1798         (genautomata.o): Actually uses hashtab.h.
1799
1800         * Makefile.in (stringpool.o): Add $(GGC_H).
1801         (dwarf2asm.o): Likewise.
1802         (GTFILES): Add hashtable.h.
1803         * c-common.h (struct c_common_identifier): Use gengtype.
1804         * c-decl.h (c_mark_tree): Delete.
1805         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1806         * c-tree.h (struct lang_identifier): Use gengtype.
1807         (union lang_tree_node): New.
1808         (c_mark_tree): Delete prototype.
1809         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
1810         dwarf2_debug_hooks.
1811         * gengtype-lex.l (IWORD): Allow 'bool'.
1812         (ptr_alias): Match.
1813         * gengtype-yacc.y (ALIAS): New token.
1814         (type_option): New rule.
1815         (option): Use type_option.
1816         * gengtype.c (process_gc_options): New.
1817         (set_gc_used_type): Use it.
1818         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
1819         Add new variable 't' to hold the type of the field being processed.
1820         Add more error checking.  Use UNION_P when looking at 'desc' option.
1821         Handle language-specific structures containing other
1822         language-specific structures.
1823         (write_gc_types): Handle 'ptr_alias' option.
1824         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
1825         * ggc-common.c (ggc_pending_trees): Delete.
1826         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
1827         (ggc_mark_trees): Delete.
1828         (gt_ggc_m_tree_node): Delete.
1829         * ggc.h (ggc_pending_trees): Delete.
1830         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
1831         * hashtable.h (ht_identifier): Use gengtype.
1832         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
1833         * langhooks.h (struct lang_hooks): Delete mark_tree.
1834         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
1835         anyway.
1836         * system.h: Poison LANG_HOOKS_MARK_TREE.
1837         * tree.c (tree_node_structure): New.
1838         * tree.h (struct tree_common): Use gengtype.
1839         (struct tree_int_cst): Likewise.
1840         (struct tree_real_cst): Likewise.
1841         (struct tree_string): Likewise.
1842         (struct tree_complex): Likewise.
1843         (struct tree_vector): Likewise.
1844         (struct tree_identifier): Likewise.
1845         (struct tree_list): Likewise.
1846         (struct tree_vec): Likewise.
1847         (struct tree_exp): Likewise.
1848         (struct tree_block): Likewise.
1849         (struct tree_type): Likewise.
1850         (struct tree_decl): Likewise.
1851         (enum tree_structure_enum): New.
1852         (union tree_node): Use gengtype, with an alias.
1853         (tree_node_structure): Prototype.
1854         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1855
1856         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
1857         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
1858         to LANG_HOOKS_FUNCTION_FINAL.
1859         * Makefile.in (GTFILES): Add bitmap.h.
1860         * except.c (struct eh_region): Mark field 'aka' to be skipped.
1861
1862         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
1863         (alpha_init_machine_status): Give proper type.
1864         * Makefile.in (c-lang.o): Depend on gtype-c.h.
1865         (optabs.o): Depend on gt-optabs.h.
1866         (GTFILES): Add optabs.o.
1867         (gt-optabs.h): Add rule.
1868         * optabs.c: Include gt-optabs.h.
1869
1870         * gengtype.c (set_gc_used_type): Correct some errors in last change.
1871         (write_gc_structure_fields): If a field which should be NULL is
1872         not, abort.
1873         * c-pragma.c: Move struct align_stack and variable alignment_stack
1874         out from the ifdef.
1875
1876         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
1877         * config/xtensa/xtensa.c: Include gt-cris.h.
1878         (struct machine_function): Use gengtype to mark.
1879         * config/mmix/mmix.h (struct machine_function): Use gengtype
1880         to mark.
1881         * config/cris/t-cris: Add dependencies for gt-cris.h.
1882         * config/cris/cris.c: Include gt-cris.h.
1883         (struct machine_function): Use gengtype to mark.
1884         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
1885         to mark.
1886         * doc/tm.texi (Per-Function Data): Delete references to
1887         mark_machine_status.
1888         * config/ia64/ia64.c (ia64_override_options): Don't set
1889         mark_machine_status.
1890         * config/i386/i386.c (override_options): Likewise.
1891         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
1892         * config/arm/arm.c (arm_init_expanders): Likewise.
1893         * config/alpha/alpha.c (override_options): Likewise.
1894         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
1895         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
1896         (write_gc_structure_fields): Don't handle 'really' option.
1897         Handle 'maybe_null' option.
1898         (write_gc_types): Handle 'maybe_null' option.
1899         * function.h (struct function): Don't use "really".
1900         (mark_machine_status): Delete declaration.
1901         (mark_lang_status): Delete declaration.
1902         (gt_ggc_mr_machine_function): Delete prototype.
1903         (gt_ggc_mr_language_function): Delete prototype.
1904         * function.c (mark_machine_status): Delete.
1905         (mark_lang_status): Delete.
1906         (gt_ggc_mr_machine_function): Delete.
1907         (gt_ggc_mr_language_function): Delete.
1908         * c-tree.h (mark_c_function_context): Delete prototype.
1909         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
1910         * c-decl.c (struct language_function): Rename from struct
1911         c_language_function.  Update uses.  Use gengtype to mark.
1912         (mark_c_function_context): Delete.
1913         * c-common.h (struct c_language_function): Rename from struct
1914         language_function.
1915         (mark_stmt_tree): Delete prototype.
1916         (c_mark_lang_decl): Delete prototype.
1917         (mark_c_language_function): Delete prototype.
1918         * c-common.c (mark_stmt_tree): Delete.
1919         (c_mark_lang_decl): Delete.
1920         (mark_c_language_function): Delete.
1921
1922         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
1923         (lang_bitmap): New typedef.  Use where appropriate.
1924         (struct type): Add gc_used field, lang_struct field.
1925         (UNION_P): New macro.
1926         (new_structure): New prototype.
1927         (find_structure): Remove 'pos' parameter.  Change all callers.
1928         * gengtype-lex.l: Update for changes to find_structure.
1929         * gengtype-yacc.y (typedef_struct): Use new_structure.
1930         (yacc_ids): Suppress warning.
1931         (type): Use new_structure.
1932         * gengtype.c (string_type): Update for changes to struct type.
1933         (find_structure): Just find a structure, don't worry about
1934         creating one.
1935         (new_structure): New.
1936         (note_yacc_type): Use new_structure.
1937         (set_gc_used_type): New.
1938         (set_gc_used): New.
1939         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
1940         (write_gc_types): Handle TYPE_LANG_STRUCT.
1941         (write_gc_marker_routine_for_structure): New.
1942         (main): Call set_gc_used.  Add some calls to set_gc_used_type
1943         for places where GCC doesn't use gengtype properly yet.
1944         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
1945         (gt_ggc_m_tree_node): Likewise.
1946
1947         * varasm.c (copy_constant): Call expand_constant if we hit
1948         something we can't recognise.
1949
1950         * ggc-common.c (ggc_mark_rtvec_children): Delete.
1951         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
1952         (lang_mark_false_label_stack): Delete.
1953         * rtl.h (struct rtvec_def): Use gengtype to mark.
1954         * ggc.h (ggc_mark_rtvec): Delete.
1955         (gt_ggc_m_rtvec_def): Delete.
1956         (ggc_mark_nonnull_tree): Delete.
1957         (ggc_mark_rtvec_children): Delete prototype.
1958         (lang_mark_false_label_stack): Delete declaration.
1959
1960         * gengtype.h (note_yacc_type): Add prototype.
1961         * gengtype.c (note_yacc_type): New function.
1962         * gengtype-lex.l: Add lexer support for yacc files.
1963         * gengtype-yacc.y (start): Extract union from yacc files.
1964         (yacc_union): New rule.
1965         (yacc_typematch): New rule.
1966         (yacc_ids): New rule.
1967         (enum_items): Tweak for efficiency.
1968         (optionseq): Likewise.
1969
1970         * c-common.h (struct language_function): Use gengtype.
1971         (struct c_lang_decl): Likewise.
1972         * c-tree.h (struct lang_decl): Likewise.
1973         (struct lang_type): Likewise.
1974         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
1975         tree language substructures.
1976
1977         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
1978         ggc_mark_tree.
1979         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
1980
1981         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
1982
1983         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
1984         mark. Remove 'data.block.cleanup_ptr' field.
1985         (struct stmt_status): Use usual technique to mark struct nesting.
1986         (gt_ggc_mr_nesting_cond): Delete.
1987         (gt_ggc_mr_nesting_loop): Delete.
1988         (gt_ggc_mr_nesting_block): Delete.
1989         (gt_ggc_mr_nesting_case_stmt): Delete.
1990         (expand_start_cond): Set discriminator.
1991         (expand_start_loop): Likewise.
1992         (expand_start_null_loop): Likewise.
1993         (expand_start_bindings_and_block): Set discriminator.  Don't set
1994         deleted fields.
1995         (expand_decl_cleanup): Replace 'cleanup_ptr' with
1996         &thisblock->data.block.cleanups.
1997         (expand_start_case): Set discriminator.
1998         (expand_start_case_dummy): Set discriminator.
1999
2000         * ggc-callbacks.c: Remove.
2001
2002         * gengtype.h (struct type): Add 'u.s.bitmap' field.
2003         (find_structure): Add 'pos' parameter.
2004         * gengtype-lex.l: Update callers to find_structure.
2005         * gengtype-yacc.y: Likewise.
2006         * gengtype.c (find_structure): Allow for structures to be defined
2007         in multiple language backends.
2008         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
2009         (counter): Rename to gc_counter.
2010         (write_gc_structure_fields): Fail when writing out fields for
2011         an incomplete structure.  Ignore arrays of scalars.  Handle
2012         'tree_vec' special.
2013         (write_gc_types): Reset counter for each procedure written.
2014
2015         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
2016         (free_case_nodes): Delete.
2017         (expand_end_case_type): Delete call to free_case_nodes.
2018
2019         * Makefile.in (cselib.o): Include gt-<filename>.h.
2020         (gcse.o): Likewise.
2021         (profile.o): Likewise.
2022         (alias.o): Likewise.
2023         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
2024         alphabetize backend files.
2025         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
2026         * alias.c: Use gengtype for roots.
2027         * c-common.h (struct stmt_tree_s): Use gengtype.
2028         * c-decl.c: Use gengtype for roots.
2029         * cselib.c: Use gengtype for roots.
2030         * expr.c: Use gengtype for roots.
2031         * fold-const.c: Use gengtype for roots.
2032         * gcse.c: Use gengtype for roots.
2033         * gengtype-lex.l: Handle typedefs of function types.
2034         Allow for empty array bounds.
2035         Allow processing to stop on initialisers.
2036         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
2037         (semiequal): New rule.
2038         * gengtype.c (create_file): Tidy output files.
2039         (get_output_file_with_visibility): Fix paren warning.  Fix bug
2040         involving multiple input files mapping to one output file.
2041         (write_gc_structure_fields): Skip arrays of scalars.
2042         (write_gc_types): Tidy output files.
2043         (write_gc_root): New function.
2044         (write_gc_roots): Fix bugs, add support for roots that are
2045         structures.
2046         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
2047         (ggc_mark_tree_ptr): Delete.
2048         (ggc_add_rtx_root): Delete.
2049         (ggc_add_tree_root): Delete.
2050         (ggc_del_root): Delete.
2051         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
2052         allocate struct initial_value_struct.
2053         * profile.c: Use gengtype for roots.
2054         * sdbout.c: Use gengtype for roots.
2055         * varasm.c (mark_weak_decls): Delete unused prototype.
2056         (mark_const_hash_entry): Delete unused function.
2057         * config/darwin-protos.h: Use gengtype for roots.
2058         (machopic_add_gc_roots): Delete.
2059         * config/arm/arm.c: Use gengtype for roots.
2060         * config/arm/arm.h: Use gengtype for roots.
2061         * config/c4x/c4x-protos.h: Use gengtype for roots.
2062         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
2063         * config/d30v/d30v-protos.h: Use gengtype for roots.
2064         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
2065         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
2066         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
2067         * config/ia64/ia64-protos.h: Use gengtype for roots.
2068         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
2069         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
2070         * config/m68hc11/m68hc11.c (z_reg): Make global.
2071         (z_reg_qi): Make global.
2072         (m68hc11_add_gc_roots): Delete.
2073         * config/mcore/mcore-protos.h: Use gengtype for roots.
2074         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
2075         * config/mips/mips.c (mips_add_gc_roots): Delete.
2076         * config/mips/mips.h: Use gengtype for roots.
2077         * config/mmix/mmix.c (override_options): Use gengtype for roots.
2078         * config/mmix/mmix.h: Use gengtype for roots.
2079         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
2080         * config/mn10200/mn10200.h: Use gengtype for roots.
2081         * config/pa/pa.c: Use gengtype for roots, marking.
2082         (struct deferred_plabel): Use GGC, gengtype.
2083         (pa_add_gc_roots): Delete.
2084         (mark_deferred_plabels): Delete.
2085         * config/pj/pj-protos.h: Use gengtype for roots.
2086         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
2087         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
2088         machopic_add_gc_roots.
2089         * config/rs6000/rs6000.h: Use gengtype for roots.
2090         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
2091         (gt-darwin.h): Add rule.
2092         * config/sh/sh.c: Use gengtype for roots.
2093         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
2094         (gt-sh.h): Add rule.
2095         * config/sparc/sparc.c: Use gengtype for roots.
2096         (sparc_add_gc_roots): Delete.
2097         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
2098         (mark_ultrasparc_pipeline_state): Delete.
2099         * config/sparc/sparc.h: Use gengtype for roots.
2100
2101         * Makefile.in (c-parse.o): Update dependencies.
2102         (c-common.o): Likewise.
2103         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
2104         Add dependencies for the files they generate.
2105         * c-common.c: Replace ggc_add_* uses with GTY annotations.
2106         * c-common.h: Likewise.
2107         * c-decl.c: Likewise.
2108         (gt_ggc_mp_binding_level): Delete.
2109         * c-lang.c: Include gtype-c.h.
2110         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
2111         gt-c-parse.h.
2112         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
2113         (gt_ggc_mp_align_stack): Delete.
2114         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
2115         * function.c: Replace ggc_add_* uses with GTY annotations.
2116         (gt_ggc_mp_function): Delete.
2117         * function.h: Replace ggc_add_* uses with GTY annotations.
2118         * gengtype.c (lang_names): New.
2119         (NUM_BASE_FILES): New.
2120         (open_base_files): Create language base files.
2121         (startswith): New.
2122         (get_file_basename): New.
2123         (get_base_file_bitmap): New.
2124         (get_output_file_with_visibility): Rename from get_output_file.
2125         Add more mappings for various C/Objc filenames.
2126         (finish_root_table): New.
2127         (write_gc_roots): Handle dependencies and scoping properly.
2128         * gengtype.h: Add prototypes for new functions.
2129         * ggc-common.c (struct deletable_root): Delete.
2130         (deletables): Delete.
2131         (ggc_add_deletable_root): Delete.
2132         (ggc_mark_roots): No need to deal with deleted functionality.
2133         * ggc.h (ggc_add_deletable_root): Delete prototype.
2134         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
2135         (gtype-objc.h): Add rule to create.
2136         * objc/config-lang.in (gtfiles): New.
2137         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
2138         ggc_add_* with GTY markers.  Include gtype-objc.h.
2139         (ggc_mark_imp_list): Delete.
2140         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
2141         * objc/objc-lang.c: Random Whitespace Change.
2142
2143         * except.h (exception_handler_labels): Delete.
2144         (get_exception_handler_labels): New.
2145         * except.c (exception_handler_labels): Delete.
2146         (struct eh_status): Add exception_handler_labels field.
2147         (doing_eh): Don't add exception_handler_labels as root.
2148         (free_eh_status): Don't need to free exception_handler_labels.
2149         (get_exception_handler_labels): New.
2150         (find_exception_handler_labels): Update for move of
2151         exception_handler_labels.
2152         (remove_exception_handler_label): Likewise.
2153         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
2154         * jump.c (rebuild_jump_labels): Likewise.
2155         * loop.c (find_and_verify_loops): Likewise.
2156         * sched-rgn.c (is_cfg_nonregular): Likewise.
2157
2158         * gengtype.c (write_gc_structure_fields): Handle variable-length
2159         TYPE_ARRAYs.
2160
2161         * varasm.c (struct weak_syms): Use GGC, gengtype.
2162         (mark_weak_decls): Delete.
2163         (weak_decls): Likewise.
2164         (add_weak): Likewise.
2165         (remove_from_pending_weak_list): Likewise.
2166         (init_varasm_once): Likewise.
2167
2168         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
2169         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
2170         stor-layout.c, regclass.c, and lists.c.
2171         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
2172         gt-regclass.h and gt-lists.h on s-gtype.
2173         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
2174         * except.c: Use gengtype for roots.
2175         * explow.c: Use gengtype for roots.  Include gt-explow.h.
2176         * expr.h (init_stor_layout_once): Delete prototype.
2177         * function.c: Use gengtype for roots.
2178         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
2179         * gengtype-yacc.y (start): Can also be an externstatic.
2180         (externstatic): New production.
2181         (struct_fields): Correct array bounds inversion for 2-d arrays.
2182         * gengtype.c (variables): New variable.
2183         (note_variable): New function.
2184         (get_output_file): Include libfuncs.h into gtype-desc.c.
2185         (get_output_file_name): New function.
2186         (write_gc_structure_fields): Suppress warnings.
2187         (write_gc_types): Make static.
2188         (put_mangled_filename): New function.
2189         (write_gc_roots): New function.
2190         (main): Call write_gc_roots.
2191         * gengtype.h (note_variable): Prototype.
2192         (get_output_file_name): Prototype.
2193         (write_gc_types): Delete prototype.
2194         * ggc.h: Clean up unnecessary structure predefinitions.
2195         (struct ggc_root_tab): Define.
2196         (gt_ggc_m_rtx_def): Make function, not macro.
2197         (gt_ggc_m_tree_node): Likewise.
2198         * libfuncs.h: Use gengtype for roots.
2199         * lists.c: Use gengtype for roots.  Include gt-lists.h.
2200         (init_EXPR_INSN_LIST_cache): Delete.
2201         * optabs.c: Use gengtype for roots.
2202         (gt_ggc_mp_optab): Delete.
2203         * optabs.h: Use gengtype for roots.
2204         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
2205         * rtl.h: Use gengtype for roots.
2206         (init_EXPR_INSN_LIST_cache): Delete prototype.
2207         * stor-layout.c: Use gengtype for roots.
2208         Include gt-stor-layout.h.
2209         (init_stor_layout_once): Delete.
2210         * toplev.c: Use gengtype for roots.  Delete calls to deleted
2211         routines.
2212         * tree.c: Use gengtype for roots.
2213         * tree.h: Use gengtype for roots.
2214         * varasm.c: Use gengtype for roots.
2215
2216         * Makefile.in (GTFILES): Add @all_gtfiles@.
2217         * configure: Regenerate.
2218         * configure.in: Construct all_gtfiles from the gtfiles definitions
2219         in config-lang.in.
2220         * gengtype-yacc.y (type): Warn about duplicate structure names.
2221         * gengtype.c (get_output_file): Handle .c files in language
2222         subdirectories.
2223
2224         * Makefile.in (GTFILES): Run gengtype on all the config files
2225         and on the target .c file.
2226         * except.c (mark_eh_region): Delete.
2227         (init_eh_for_function): Use GGC on struct eh_status.
2228         (mark_eh_status): Delete.
2229         (free_eh_status): Use GGC.
2230         (expand_eh_region_start): Use GGC to
2231         (collect_eh_region_array): Allocate last_region_number using GGC.
2232         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
2233         (remove_eh_handler): Let GGC free struct eh_region.
2234         (add_call_site): Use GGC to reallocate call_site_record array.
2235         * function.c (init_machine_status): Update calling sequence.
2236         (mark_machine_status): Likewise.
2237         (mark_lang_status): Likewise.
2238         (prepare_function_start): Update init_machine_status call.
2239         (mark_function_status): Delete.
2240         (maybe_mark_struct_function): Delete.
2241         (ggc_mark_struct_function): Delete.
2242         (gt_ggc_mp_function): New.
2243         (gt_ggc_mr_machine_function): New.
2244         (gt_ggc_mr_language_function): New.
2245         (init_function_once): Use canonical names.
2246         * function.h (struct function): Use gengtype.
2247         (init_machine_status): Return the structure.
2248         (mark_machine_status): Take a 'void *'.
2249         (mark_lang_status): Likewise.
2250         * ggc-common.c (ggc_mark_trees): Use canonical name for
2251         ggc_mark_struct_function.
2252         * tree.h (ggc_mark_struct_function): Delete prototype.
2253         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
2254         (alpha_init_machine_status): Likewise.
2255         (override_options): Use canonical name for alpha_mark_machine_status.
2256         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
2257         * config/arm/arm.h (struct machine_function): Use gengtype.
2258         * config/arm/arm.c (arm_mark_machine_status): Delete.
2259         (arm_init_machine_status): Update calling sequence.
2260         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
2261         * config/cris/cris.c (cris_init_machine_status): Update
2262         calling sequence.
2263         * config/d30v/d30v.h (struct machine_function): Use gengtype.
2264         * config/d30v/d30v.c (d30v_init_machine_status): Update
2265         calling sequence.
2266         (d30v_mark_machine_status): Delete.
2267         * config/i386/i386.c: Include gt-i386.h.
2268         (struct machine_function): Use gengtype.
2269         (ix86_init_machine_status): Update calling sequence.
2270         (ix86_mark_machine_status): Delete.
2271         (override_options): Use canonical namke for ix86_mark_machine_status.
2272         * config/ia64/ia64.h (struct machine_function): Use gengtype.
2273         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
2274         sequence.
2275         (ia64_mark_machine_status): Delete.
2276         (ia64_override_options): Use canonical name for
2277         ia64_mark_machine_status.
2278         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
2279         sequence.
2280         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
2281         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2282         * gengtype.c (get_output_file): Fix warning.
2283         (main): Add prototype to suppress warning.
2284         * tree.c: Remove tree_hash_mark prototype.
2285
2286         * tree.h (init_stmt): Delete prototype.
2287         * toplev.c (lang_independent_init): Don't call init_stmt.
2288         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
2289         (stmt_obstack): Delete.
2290         (POPSTACK): No need to free 'struct nesting'.
2291         (gt_ggc_mr_nesting_cond): Use canonical names.
2292         (gt_ggc_mr_nesting_loop): Use canonical names.
2293         (gt_ggc_mr_nesting_block): Use canonical names.
2294         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
2295         (mark_stmt_status): Delete.
2296         (init_stmt): Delete.
2297         (clear_last_expr): Clear both last_expr_type and last_expr_value.
2298         Use it everywhere that last_expr_type was cleared.
2299         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
2300         (zap_lists): Delete.
2301         * ggc.h (ggc_add_deletable_root): Prototype.
2302         (mark_stmt_status): Remove prototype.
2303         * ggc-common.c (ggc_add_deletable_root): New.
2304         (ggc_mark_roots): Handle deletable roots.
2305         * function.c (ggc_mark_struct_function): Use canonical name
2306         for mark_stmt_status.
2307         * emit-rtl.c (free_sequence_stack): New.
2308         (start_sequence): Use a freelist for sequences.
2309         (end_sequence): Likewise.
2310         (init_emit_once): Add free_sequence_stack as a deleteable root.
2311         * c-pragma.c Include gt-c-pragma.h.
2312         (struct align_stack): Use gengtype.
2313         (push_alignment): Use GGC for struct align_stack.
2314         (mark_align_stack): Delete.
2315         (gt_ggc_mp_align_stack): New.
2316         (init_pragma): Use canonical name for mark_align_stack.
2317         * c-decl.c: Include gt-c-decl.h.
2318         (struct binding_level): Use gengtype.
2319         (make_binding_level): Use GGC; handle the freelist here.
2320         (pop_binding_level): New.
2321         (pushlevel): Move code into make_binding_level.
2322         (push_label_level): Likewise.
2323         (poplevel): Move code into pop_binding_level.
2324         (pop_label_level): Likewise.
2325         (mark_binding_level): Delete.
2326         (gt_ggc_mp_binding_level): New.
2327         (c_init_decl_processing): Use canonical name for mark_binding_level.
2328         Add free_binding_level as deletable root.
2329         (mark_c_function_context): Use canonical name for mark_binding_level.
2330         * Makefile.in (c-decl.o): Add gt-c-decl.h.
2331         (c-pragma.o): Add gt-c-pragma.h.
2332         (GTFILES): Add c-decl.c and c-pragma.c.
2333         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
2334
2335         * tree.c (struct type_hash): Use gengtype.
2336         (init_obstacks): Use canonical name for type_hash_mark.
2337         (type_hash_mark): Delete.
2338         Include gt-tree.h.
2339         * rtl.h (struct mem_attrs): Use gengtype.
2340         * optabs.h (struct optab): Use gengtype.
2341         * optabs.c (expand_binop): Squish signed/unsigned warning.
2342         (mark_optab): Make local, use canonical name, use autogenerated
2343         marker procedure.
2344         (init_optabs): Use canonical name for mark_optab.
2345         (new_optab): Use GGC to allocate optabs.
2346         * ggc.h: Delete mark_optab prototype.
2347         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
2348         mem_attrs marker procedure.
2349         * gengtype.c (get_output_file): Include headers in gtype-desc.c
2350         explicitly rather than deducing them from file names.
2351         (write_gc_structure_fields): Handle arrays of structures.
2352         (main): Return non-zero exit code if errors occur during output.
2353         * emit-rtl.c (mem_attrs_mark): Delete.
2354         (init_emit_once): Use canonical name for mem_attrs marker procedure.
2355         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
2356         (tree.o): Depend on gt-tree.h.
2357         (GTFILES): Add rtl.h, optabs.h, tree.c.
2358         (gt-tree.h): Add it to s-gtype rule.
2359
2360         * .cvsignore: Ignore gengtype flex/bison generated files.
2361         * Makefile.in (GGC_H): Add gtype-desc.h.
2362         (OBJS): Add gtype-desc.o.
2363         (GEN): Add gengtype.
2364         (STAGESTUFF): Add gengtype.
2365         (varasm.o): Add gt-varasm.h.
2366         (stmt.o): Add gt-stmt.h.
2367         (except.o): Add gt-except.h.
2368         (integrate.o): Add gt-integrate.h.
2369         (GTFILES): New.
2370         Add new rules for new files.
2371         * configure: Regenerate.
2372         * configure.in: Correct defaults.h paths.
2373         * emit-rtl.c (mark_sequence_stack): Delete.
2374         (mark_emit_status): Delete.
2375         (start_sequence): Allocate sequence structures using GGC.
2376         (end_sequence): Allocate sequence structures using GGC.
2377         * except.c: Use gengtype for various structures.  Include
2378         gt-except.h.
2379         * expr.c (mark_expr_status): Delete.
2380         * function.c: Use gengtype for various structures.  Include
2381         gt-function.h.
2382         (mark_function_status): Use standard gt_ggc names for marker functions.
2383         (ggc_mark_struct_function): Likewise.
2384         * function.h: Use gengtype for various structures.
2385         * gengtype-lex.l: New file.
2386         * gengtype-yacc.y: New file.
2387         * gengtype.c: New file.
2388         * gengtype.h: New file.
2389         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
2390         the standard names.  Remove some now-unnecessary prototypes.
2391         * integrate.c: Use gengtype for various structures.  Include
2392         gt-integrate.h.
2393         (mark_hard_reg_initial_vals): Delete.
2394         * integrate.h (mark_hard_reg_initial_vals): Delete.
2395         * stmt.c: Use gengtype for various structures.  Include
2396         gt-stmt.h.
2397         (mark_case_node): Delete.
2398         (mark_goto_fixup): Delete.
2399         (mark_stmt_status): Use standard gt_ggc names for marker functions.
2400         * system.h: Define GTY to empty.   In flex/bison files,
2401         don't poison malloc or realloc, instead just define them to
2402         xmalloc and xrealloc.
2403         * varasm.c: Use gengtype for various structures.  Include
2404         gt-varasm.h.  Use standard gt_ggc names for marker functions.
2405         (mark_pool_constant): Delete.
2406         (mark_varasm_status): Delete.
2407         (decode_rtx_const): #if 0 out non-typesafe hack.
2408
2409         * function.h (free_lang_status): Mark as obsolete.
2410         * function.c (free_lang_status): Mark as obsolete.
2411         * c-decl.c (push_c_function_context): Use GC to allocate and free
2412         struct language_function.
2413         (pop_c_function_context): Likewise.
2414         * c-common.c (mark_c_language_function): Mark struct
2415         language_function.
2416
2417         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
2418         Document that the machine_function structures must be allocated
2419         using GC.  Update mark_machine_status documentation.
2420         * function.h: Don't declare free_machine_status.
2421         * function.c (free_machine_status): Don't define.
2422         (free_after_compilation): Don't call free_machine_status.
2423         (ggc_mark_struct_function): Mark f->machine.  Call
2424         mark_machine_status only on non-NULL pointers.
2425         * system.h: Poison free_machine_status.
2426         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
2427         struct machine_function.
2428         (xtensa_free_machine_status): Delete.
2429         (override_options): Don't set free_machine_status.
2430         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
2431         free_machine_status.
2432         (rs6000_init_machine_status): Use GC on struct machine_function.
2433         (rs6000_free_machine_status): Delete.
2434         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
2435         machine_function.
2436         (ia64_mark_machine_status): Likewise.
2437         (ia64_free_machine_status): Delete.
2438         (ia64_override_options): Don't set free_machine_status.
2439         * config/i386/i386.c (override_options): Don't set
2440         free_machine_status.
2441         (ix86_init_machine_status): Use GC on struct machine_function.
2442         (ix86_mark_machine_status): Likewise.
2443         (ix86_free_machine_status): Delete.
2444         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
2445         machine_function.
2446         (d30v_mark_machine_status): Likewise.
2447         (d30v_free_machine_status): Delete.
2448         (d30v_init_expanders): Don't set free_machine_status.
2449         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
2450         machine_function.
2451         (arm_init_machine_status): Likewise.
2452         (arm_free_machine_status): Delete.
2453         (arm_init_expanders): Don't set free_machine_status.
2454         * config/alpha/alpha.c (override_options): Don't set
2455         free_machine_status.
2456         (alpha_init_machine_status): Use GC on struct machine_function.
2457         (alpha_mark_machine_status): Likewise.
2458         (alpha_free_machine_status): Delete.
2459
2460         * varasm.c (compare_constant): Fix typo.
2461
2462         * varasm.c: Don't include obstack.h.
2463         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
2464         (struct rtx_const): Give substructures names, improve formatting.
2465         (struct constant_descriptor): Delete.
2466         (struct constant_descriptor_tree): New, based on constant_descriptor.
2467         (const_hash_table): Is a hash table of trees.
2468         (mark_const_hash_entry): Is used for hashes of trees.  Mark
2469         constant_descriptor_tree structure.
2470         (mark_const_str_htab_1): Mark deferred_string structure.
2471         (compare_constant): Rewrite to compare trees.
2472         (compare_constant_1): Delete.
2473         (record_constant): Delete.
2474         (record_constant_1): Delete.
2475         (output_constant_def): Use struct constant_descriptor_tree.
2476         Don't duplicate trees twice.
2477         (struct constant_descriptor_rtx): New.
2478         (struct pool_constant): Used for rtx constants.
2479         (init_varasm_status): Update for change to struct varasm_status.
2480         (mark_varasm_status): Likewise.
2481         (free_varasm_status): Delete.
2482         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
2483         (record_constant_rtx): Likewise.
2484         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
2485         (force_const_mem): Likewise.
2486         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
2487         * function.c (free_after_compilation): Don't use free_varasm_status.
2488         * function.h: Don't prototype free_varasm_status.
2489
2490         * ggc-common.c (ggc_realloc): Handle X being NULL.
2491
2492         * ggc-common.c (ggc_realloc): New function.
2493         * ggc.h: Prototype it.
2494         * emit-rtl.c (free_emit_status): Delete.
2495         (init_emit): Allocate emit subarrays using GC.
2496         (gen_reg_rtx): Reallocate subarrays using GC.
2497         (init_emit): Use GC to allocate 'struct emit_status' and its
2498         subarrays.
2499         (mark_emit_status): Mark structure and its subarrays.
2500         * stmt.c (free_stmt_status): Delete.
2501         * expr.c (free_expr_status): Delete.
2502         * function.h: Remove prototypes for deleted functions.
2503         * function.c (free_after_compilation): Don't use deleted functions.
2504         Don't call free() on x_parm_reg_stack_loc.
2505         (free_after_parsing): Don't use free_stmt_status.
2506         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
2507         (mark_function_status): Mark x_parm_reg_stack_loc.
2508
2509         * varasm.c (init_varasm_status): Use GC to allocate
2510         'struct varasm_status' and its fields x_const_rtx_hash_table
2511         and x_const_rtx_sym_hash_table.
2512         (mark_varasm_status): Mark them.
2513         (free_varasm_status): Use GC to free them.
2514         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
2515         (mark_expr_status): Mark the structure itself.
2516         (free_expr_status): Use GC to free the structure.
2517         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
2518         (mark_stmt_status): Mark the 'struct stmt_status' itself.
2519         (init_stmt_for_function): Allocate the structure for GC.
2520
2521         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
2522         (equate_type_number_to_die): Likewise.
2523         * tree.h (TYPE_SYMTAB_DIE): New macro.
2524         (struct die_struct): Predeclare.
2525         (struct tree_type): Add field symtab.die.   Add a tag
2526         to the union type of field symtab.
2527
2528         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
2529         'struct rtvec_def *', not 'struct rtvec_def'.
2530
2531         * function.h (original_arg_vector): Make a real rtvec.
2532         * function.c (ggc_mark_struct_function): Adjust.
2533         * integrate.c (expand_inline_function): Adjust.
2534
2535 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
2536
2537         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
2538         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
2539         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
2540         (TARGET_VERSION_CPU): Define according to the
2541         default target.
2542         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
2543         TARGET_VERSION_CPU.
2544         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
2545         if TARGET_SHMEDIA64.
2546         (LINK_DEFAULT_CPU_EMUL): Define according to the
2547         default target.
2548         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
2549         (SUBTARGET_LINK_SPEC): Define.
2550         (LINK_SPEC): Use SH_LINK_SPEC.
2551         (ASM_SPEC): Remove.
2552         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
2553         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
2554         and TARGET_SHMEDIA64 which abort, for now.
2555         * config/sh/t-netbsd-sh5: New file.
2556         * config/sh/t-netbsd-sh5-32: New file.
2557         * config/sh/t-netbsd-sh5-64: New file.
2558
2559 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
2560             Richard Henderson  <rth@redhat.com>
2561
2562         * config/alpha/alpha.c (reg_or_const_int_operand): New.
2563         (some_operand, input_operand): Accept CONST_VECTOR.
2564         (alpha_extra_constraint): Add 'W'.
2565         (alpha_expand_zap_mask): New.
2566         (alpha_expand_builtin_vector_binop): New.
2567         (enum alpha_builtin): New.
2568         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
2569         (alpha_init_builtins, alpha_expand_builtin): New.
2570         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
2571         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
2572         (PREDICATE_CODES): Update.
2573         * config/alpha/alpha-protos.h: Update.
2574         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
2575         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
2576         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
2577         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
2578         (movv2si, movv2si_fix, movv2si_nofix): New.
2579         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
2580         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
2581         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
2582         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
2583         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
2584         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
2585         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
2586         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
2587         builtin_unpkbw, unpkbw): New.
2588         * doc/extend.texi (Alpha Built-in Functions): New.
2589
2590 2002-06-03  Richard Henderson  <rth@redhat.com>
2591
2592         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
2593         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
2594
2595 2002-06-03  Richard Henderson  <rth@redhat.com>
2596
2597         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
2598
2599         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
2600         (const0_operand): New.
2601         (reg_or_fp0_operand, fp0_operand): Remove.
2602         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2603         * config/alpha/alpha-protos.h: Update.
2604         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
2605         and fp0_operand with reg_or_0_operand and const0_operand.
2606
2607 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
2608
2609         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
2610
2611 2002-06-03  Roger Sayle  <roger@eyesopen.com>
2612
2613         * gcse.c (cprop_jump): Use single_set to get the pattern
2614         from the setcc argument.
2615
2616 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
2617
2618         * diagnostic.h (diagnostic_count): Move from output_buffer to
2619         diagnostic_context.
2620         (diagnostic_kind_count): Adjust definition.
2621
2622 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
2623
2624         * except.c (except.c): Do not rebuild CFG.
2625         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
2626         optimization.
2627
2628 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
2629
2630         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
2631         * toplev.c: Include cfglahout.h
2632         * Makefile.in (toplev.c): Add dependnecy.
2633
2634 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2635
2636         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
2637         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
2638         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
2639
2640 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
2641
2642         * config/ns32k/netbsd.h: Update copyright years.
2643         (TARGET_OS_CPP_BUILTINS): Define.
2644         (CPP_PREDEFINES): Remove.
2645         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
2646         (TARGET_CPU_CPP_BUILTINS): Define.
2647
2648 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2649
2650         * emit-rtl.c: Fix formatting.
2651         * errors.h: Likewise.
2652         * except.c: Likewise.
2653         * explow.c: Likewise.
2654         * expmed.c: Likewise.
2655         * expr.c: Likewise.
2656         * expr.h: Likewise.
2657
2658 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2659
2660         * config/h8300/elf.h: Fix formatting.
2661         * config/h8300/rtems.h: Likewise.
2662
2663 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
2664
2665         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
2666
2667 2002-06-02  Tom Tromey  <tromey@redhat.com>
2668
2669         * fixinc/fixincl.x: Rebuilt.
2670         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
2671
2672 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2673
2674 config/i370:
2675         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
2676         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
2677         * mvs.h: Similarly.
2678         * oe.h: Similarly.
2679
2680 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
2681
2682         * final.c (final):  Allow notes to not have computed addresses;
2683         kill no longer needed STACK_REGS ifdef.
2684
2685 2002-06-02  Richard Henderson  <rth@redhat.com>
2686
2687         * gcse.c (bypass_conditional_jumps): Fix typo last change.
2688
2689 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2690
2691         * loop.c (emit_prefetch_instructions): Properly place the address
2692         computation.
2693
2694 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
2695
2696         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
2697         (set_block_for_insn): Turn into macro.
2698         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
2699         * cfglayout.c (insn_scopes): Kill.
2700         (scope_to_insns_initialize): Do not use insn_scopes.
2701         (scope_to_insns_finalize): Likewise.
2702         (duplicate_insn_chain): Likewise.
2703         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
2704         * cfgrtl.c (basic_block_for_insn): Kill.
2705         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
2706         (create_basic_block_structure): Use reorder_insns.
2707         (compute_bb_for_insn): Do not use basic_block_for_insn.
2708         (merge_blocks_nomove): Likewise.
2709         (update_bb_for_insn): Likewise.
2710         (verify_flow_info): Likewise.
2711         (set_block_for_insn): Kill.
2712         * combine.c (try_combine): Update gen_rtx_INSN call.
2713         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
2714         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
2715         scopes and BBs.
2716         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
2717         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
2718         Clear BB.
2719         (emit_insns_after): Simplify.
2720         (emit_copy_of_insn_after): Copy scope.
2721         * final.c (final_start_function): Lower scopes.
2722         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
2723         * integrate.c (copy_insn_list): Cope scopes.
2724         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
2725         * loop.c (loop_optimize): Do not care block notes.
2726         * print-rtl.c (print_rtx): Print BB.
2727         * recog.c (apply_change_group): Simplify.
2728         * rtl.c (copy_rtx): Handle 'B'.
2729         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
2730         * rtl.h (Field accessors): Update indexes.
2731         * sched-ebb.c (schedule_ebbs): Do not lower notes.
2732         * sched-rgn.c (schedule_insns): Likewise.
2733         * toplev.c (rest_of_compilation): Lower notes.
2734         * unroll.c (unroll_loop): Do not care scoping notes.
2735         (copy_loop_body): Copy scopes.
2736
2737 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2738
2739 config/h8300:
2740         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
2741         SUBTARGET_SPEC.
2742         * rtems.h: Similarly.
2743         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
2744         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
2745         (TARGET_CPU_CPP_BUILTINS): Use.
2746
2747 2002-06-02  Richard Henderson  <rth@redhat.com>
2748
2749         * alias.c: Include target.h.
2750         (mark_constant_function): Use targetm.binds_local_p instead
2751         of checking TREE_PUBLIC ourselves.
2752         * Makefile.in (alias.o): Add TARGET_H.
2753
2754 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2755
2756         * c-lex.c: Update copyright and file description.
2757
2758 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2759
2760         * config/fr30/fr30.h: Update to new CPP macros.
2761
2762 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2763
2764         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
2765
2766 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2767             Zack Weinberg <zack@codesourcery.com>
2768
2769         * c-common.c (c_common_init): Override cpplib's default
2770         warn_long_long setting.
2771         * c-lex.c (lex_number): Replace with interpret_integer,
2772         interpret_float, narrowest_unsigned_type and
2773         narrowest_signed_type, taking advantage of the new
2774         cpplib functionality.
2775         * cpperror.c (_cpp_begin_message): If a warning is turned
2776         into an error, avoid printing "warning:".
2777         * cppexp.c (cpp_num_sign_extend): New.
2778         * cppinit.c: Update comment.
2779         * cpplib.h (cpp_num_sign_extend): New.
2780         * tree.h: Update comment.
2781
2782 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
2783
2784         * diagnostic.h (struct diagnostic_context):  Add new member
2785         internal_error.
2786         (internal_error_function): Remove declaration.
2787         * diagnostic.c (internal_error_function): Remove definition..
2788         (internal_error): Adjust use.
2789
2790 2002-06-02  Richard Henderson  <rth@redhat.com>
2791
2792         * rtl.h (CC0_P): New.
2793         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
2794         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
2795         (bypass_block): Save old dest block for dump text.
2796         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
2797         Allow only true SET insns, not single_set.
2798
2799 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
2800
2801         * diagnostic.c (diagnostic_finish): Rename to output_flush.
2802         (clear_disgnostic_info): Rename to output_clear_data.  Use false
2803         instead of 0 for boolean value.
2804         Adjust function call throughout.
2805
2806 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2807
2808         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
2809         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
2810
2811 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2812
2813         * d30v.h (CPP_PREDEFINES): Replace with
2814         (TARGET_CPU_CPP_BUILTINS): New.
2815
2816 2002-06-02  Roger Sayle  <roger@eyesopen.com>
2817
2818         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
2819
2820 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
2821
2822         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
2823
2824 2002-06-02  Richard Henderson  <rth@redhat.com>
2825
2826         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
2827
2828 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2829
2830         Support for C++ constructors/destructors.
2831         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
2832         instead of looping if main() returns.
2833         (asm_file_start): Output global symbols that cause .data and .bss
2834         initialization code to be linked in, unconditionally for now.
2835         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
2836         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
2837         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2838         (LIBSTDCXX): New.
2839         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
2840         (__tablejump__): New.
2841         (__do_copy_data, __do_clear_bss): New.
2842         (__do_global_ctors, __do_global_dtors): New.
2843         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
2844         _ctors, _dtors.
2845
2846 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2847
2848         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
2849         (CPP_SPEC, CPP_PREDEFINES): Kill.
2850         * c4x/rtems.h (CPP_PREDEFINES): Kill.
2851         (TARGET_OS_CPP_BUILTINS): New.
2852
2853 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
2854
2855         * Makefile.in (tracer.o): New.
2856         * params.def (TRACER_*): New options.
2857         * rtl.h (tracer): Declare.
2858         * timevar.def (TV_TRACER): New.
2859         * toplev.c (dump_file_index): Add DFI_tracer.
2860         (dump_file_info): Add tracer.
2861         (flag_tracer): New.
2862         (lang_indepdenent_options): Add tracer.
2863         (rest_of_compilation): Call tracer.
2864         * tracer.c: New file.
2865         * invoke.texi (-ftracer): Document.
2866         (--param tracer-*): Document.
2867
2868 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
2869
2870         * tree-inline.c (expand_call_inline): Make the statement
2871         expression we generate have a COMPOUND_STMT.
2872
2873 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2874
2875         * gcse.c (cprop_cc0_jump): Function deleted.
2876         (cprop_jump): Take an additional argument which is the possibly
2877         NULL cc setting insn immediately before the conditional jump.
2878         When a MODE_CC set is present, substitute it into the JUMP_INSN
2879         before attempting the constant propagation.
2880         (cprop_insn):  Recognize cc setters followed by conditional jumps
2881         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
2882         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
2883         (find_bypass_set): New function based upon find_avail_set used by
2884         cprop, but finds constant expressions available at the end of
2885         basic blocks.
2886         (bypass_block): New function.  Given a basic block that begins
2887         with a conditional jump and multiple incoming edges, perform
2888         the jump bypass optimization.
2889         (bypass_conditional_jumps): New function.  Call bypass_block with
2890         each suitable basic block in the CFG using a simple single pass.
2891
2892 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2893
2894         * tree.c (real_minus_onep): New function to test for -1.0.
2895         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
2896
2897 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2898
2899         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
2900         and "!p && !q" into "(p|q) == 0" under suitable conditions.
2901
2902 2002-06-01  Andreas Jaeger  <aj@suse.de>
2903
2904         * cppexp.c (cpp_classify_number): Cast precission to int for
2905         correct printf format.
2906
2907 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2908
2909         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
2910         expected, but don't really exist: atmega83, atmega85, attiny10.
2911         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
2912         emulations for all devices.
2913         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
2914         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
2915
2916 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
2917
2918         * config/h8300/h8300-protos.h: Add a prototype for
2919         h8300_shift_needs_scratch_p.
2920         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
2921         * config/h8300/h8300.h (OK_FOR_R): New.
2922         (OK_FOR_S): Likewise.
2923         (OK_FOR_T): Likewise.
2924         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
2925         * config/h8300/h8300.md (anonymous shift patterns): Use
2926         constraints R, S, and T.
2927
2928 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2929
2930         * basic-block.h (struct basic_block_def): New field loop_father.
2931         (BB_VISITED): New flag.
2932         (struct loop): New field pred, removed field shared.
2933         (struct loops): New field parray.
2934         (LOOP_EXITS_DOMS): Removed.
2935         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
2936         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
2937         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
2938         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
2939         verify_loop_structure): Declare.
2940         * cfg.c (entry_exit_blocks): Initialize loop_father field.
2941         * cfganal.c (dfs_enumerate_from): New function.
2942         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
2943         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2944         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
2945         flow_loop_dump, flow_loops_dump, flow_loops_free,
2946         flow_loop_tree_node_add, flow_loop_level_compute,
2947         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
2948         flow_loop_outside_edge_p): Modified for new infrastructure.
2949         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
2950         redirect_edge_with_latch_update, flow_loop_free): New static functions.
2951         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
2952         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
2953         find_common_loop, verify_loop_structure, loop_latch_edge,
2954         loop_preheader_edge): New functions.
2955         (flow_loops_cfg_dump): Do not show dominators, as this information
2956         does not remain up to date long.
2957         (flow_loops_find): Store results in new format.
2958         * predict.c (propagate_freq, estimate_probability,
2959         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
2960         infrastructure.
2961
2962 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
2963
2964         * except.c (nothrow_function_p): Walk epilogue delay list
2965         checking the insn, not the chain for potential throws.
2966
2967 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
2968
2969         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
2970         (install): Refer to install-cpp directly.
2971         (uninstall-cpp): Folded into uninstall rule.
2972         * configure.in: Delete all code relating to --disable-cpp.
2973         * configure: Regenerate.
2974         * config/t-install-cpp: Delete.
2975
2976 2002-05-31  Richard Henderson  <rth@redhat.com>
2977
2978         * configure.in (HAVE_AS_TLS): Add alpha tests.
2979         * configure: Rebuild.
2980         * config/alpha/alpha.c (TARGET_AS_TLS): New.
2981         (alpha_tls_size, alpha_tls_size_string): New.
2982         (overide_options): Set it.  Always install machine_status hooks.
2983         (input_operand): Accept got tls predicates.
2984         (local_symbol_p): Merge into ...
2985         (local_symbolic_operand): ... here.  Reject tls symbols.
2986         (global_symbolic_operand): Likewise.
2987         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
2988         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
2989         (tp16_symbolic_operand, tp32_symbolic_operand): New.
2990         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
2991         (alpha_encode_section_info): Handle TLS symbols.
2992         (alpha_strip_name_encoding): Likewise.
2993         (alpha_legitimate_address_p): Likewise.
2994         (alpha_legitimize_address): Likewise.
2995         (alpha_expand_mov): Early exit to avoid nop moves.
2996         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
2997         (alpha_init_machine_status, alpha_mark_machine_status,
2998         alpha_free_machine_status): Always define.
2999         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
3000         (print_operand, print_operand_address): Add TLS relocs.
3001         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
3002         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
3003         (TARGET_SWITCHES): Add -mtls-kernel.
3004         (alpha_tls_size, alpha_tls_size_string): New.
3005         (TARGET_OPTIONS): Add -mtls-size=.
3006         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
3007         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
3008         (ASM_OUTPUT_LABELREF): Skip %.
3009         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
3010         (PREDICATE_CODES): Update.
3011         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
3012         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
3013         UNSPEC_TP, UNSPECV_SET_TP): New.
3014         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
3015         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
3016         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
3017         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
3018         (call_value_osf_2_er): Accept anything as op4.
3019         * config/alpha/alpha-protos.h: Update.
3020         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
3021
3022 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
3023
3024         * cppinit.c (append_include_chain): Always pay attention to
3025         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
3026         marker on argument.
3027
3028 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3029
3030         * target.h: Fix formatting.
3031         * timevar.h: Likewise.
3032         * tlink.c: Likewise.
3033         * toplev.c: Likewise.
3034         * toplev.h: Likewise.
3035         * tree.c: Likewise.
3036         * tree-dump.h: Likewise.
3037         * tree.h: Likewise.
3038         * tree-inline.h: Likewise.
3039         * unroll.c: Likewise.
3040         * unwind-dw2.c: Likewise.
3041         * unwind-dw2-fde.c: Likewise.
3042         * unwind-dw2-fde-glibc.c: Likewise.
3043         * unwind-dw2-fde.h: Likewise.
3044         * unwind.h: Likewise.
3045         * unwind-sjlj.c: Likewise.
3046         * varasm.c: Likewise.
3047         * varray.h: Likewise.
3048         * vmsdbg.h: Likewise.
3049         * vmsdbgout.c: Likewise.
3050         * xcoffout.h: Likewise.
3051
3052 2002-05-31  Igor Shevlyakov <igor@microunity.com>
3053
3054         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
3055         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
3056
3057 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
3058
3059         * gcc.c (cpp_unique_options): Remove "-d" options.
3060         (cpp_debug_options): New spec string.
3061         (default_compilers): Use it.
3062         * objc/lang-specs.h: Likewise.
3063
3064 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
3065
3066         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
3067         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
3068         * gcc/mklibgcc.in: Likewise.
3069         * gcc/config/arc/t-arc: Likewise.
3070         * gcc/configure.in: Likewise.
3071         * gcc/configure: Regenerate.
3072
3073 2002-05-31  Stan Shebs  <shebs@apple.com>
3074             Turly O'Connor  <turly@apple.com>
3075
3076         * c-decl.c (struct binding_level): Change int field n_incomplete
3077         to tree list incomplete_list.
3078         (clear_binding_level): Init field with NULL.
3079         (pushdecl): Add incomplete type to list.
3080         (mark_binding_level): Mark the incomplete list.
3081         (finish_struct): Scan the incomplete list for types instead
3082         of all decls in the current binding level.
3083
3084 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3085
3086         * pa.c (output_millicode_call): Add missing '%' characters.
3087         (output_call): Likewise.
3088
3089 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
3090
3091         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
3092         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3093
3094 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
3095
3096         * varasm.c (mark_constant_pool): Walk epilogue delay list
3097         checking the insn, not the chain for potential constants.
3098
3099 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
3100
3101         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
3102
3103 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
3104
3105         * i386.c (classify_argument): Properly handle base types.
3106
3107         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
3108         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
3109         registers.
3110
3111 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3112
3113         * gcse.c (gcse_emit_move_after): New.
3114         (pre_delete, hoist_store): Use it.
3115
3116         * reload1.c (emit_input_reload_insns): Use constrain_operands
3117         instead of constraint_accepts_reg_p to verify optimization.
3118         (constraint_accepts_reg_p): Kill
3119
3120         * reload1.c (reload_cse_delete_noop_set): Kill.
3121         (reload_cse_simplify): use delte_insn_and_edges.
3122
3123 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3124
3125         * cfgloop.c (flow_loops_find): Initialize first and last fields
3126         correctly.
3127
3128 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3129
3130         * c-common.c (builtin_define_std): Correct logic.
3131
3132 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3133
3134         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
3135         (output_call): Likewise.
3136
3137 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3138
3139         * pa.c: Move output.h include after tree.h include.
3140         (pa_asm_output_mi_thunk): Constify identifier lab.
3141
3142 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
3143
3144         * config/ns32k/ns32k.h: Define named constants for the
3145         bits in target_flags and use them.
3146         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
3147
3148 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3149
3150         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
3151         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
3152         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
3153         default scheduling model.
3154         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
3155         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
3156         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
3157         * doc/install.texi (hppa*-*-*): Document default scheduling.
3158
3159 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3160
3161         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
3162
3163 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
3164
3165         * config.gcc (ns32k-*-netbsd*): Set tm_file to
3166         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
3167         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
3168         netbsd.h, or netbsd-aout.h.
3169
3170 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
3171
3172         * longlong.h (count_trailing_zeros): Add missing \, and clean up
3173         whitespace in __ns32000__ case.
3174
3175 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
3176
3177         * expr.c (expand_expr): Output partially zeroed out vectors with
3178         output_constant_def.
3179
3180 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
3181
3182         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
3183         (sh-*-netbsdelf*)
3184         (shl*-*-netbsdelf*): New targets.
3185         * config/sh/netbsd-elf.h: New file.
3186         * config/sh/t-netbsd: New file.
3187
3188 2002-05-30  Richard Henderson  <rth@redhat.com>
3189             Eric Botcazou  <ebotcazou@multimania.com>
3190
3191         PR optimization/6822
3192         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
3193         to unsigned int for op1 comparisons.  Use gen_int_mode.
3194
3195 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
3196
3197         * expmed.c (const_mult_add_overflow_p): New.
3198         * expr.h: Declare it.
3199         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
3200         Don't eliminate the biv if the giv has a constant multiplier and
3201         the rhs argument of the comparison does satisfy the predicate.
3202         Use expand_mult_add to compute the replacement constant.
3203
3204 2002-05-30  Osku Salerma  <osku@iki.fi>
3205
3206         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
3207         (c_common_get_alias_set): Handle it.
3208         * doc/extend.texi: Document it.
3209
3210 2002-05-30  Richard Henderson  <rth@redhat.com>
3211
3212         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
3213         * toplev.c (process_options): Don't check it.
3214         * doc/tm.texi: Don't document it.
3215         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
3216         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
3217         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
3218         frame pointer optimization if current_function_profile.
3219
3220 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3221
3222         * langhooks.c: Fix formatting.
3223         * langhooks.h: Likewise.
3224         * lcm.c: Likewise.
3225         * libgcc2.c: Likewise.
3226         * lists.c: Likewise.
3227         * local-alloc.c: Likewise.
3228         * loop.c: Likewise.
3229         * loop.h: Likewise.
3230
3231 2002-05-30  Marc Espie <espie@openbsd.org>
3232
3233         * config.gcc (sparc64-*-openbsd*): New.
3234         * config/sparc/openbsd1-64.h: New.
3235         * config/sparc/openbsd64.h: New.
3236
3237 2002-05-30  Jeff Law <law@redhat.com>
3238
3239         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
3240         a dead insn with a REG_RETVAL note when the entire libcall is not
3241         dead and remove the associated REG_LIBCALL note at the same time.
3242
3243 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
3244
3245         * lcm.c (output.h): #include.
3246         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
3247         as an ordinary block.
3248         (optimize_mode_switching): Don't pretend that the exit block is
3249         an ordinary block, or handle sucessors of entry block specially.
3250         Instead, split edges from entry block and to exit block, and
3251         put a computing definition on the thus gained post-entry-block,
3252         and a need on the pre-exit-block.
3253
3254 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
3255
3256         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
3257         * rtl.texi: Document 'B'
3258
3259 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
3260
3261         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
3262         at run-time.
3263         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
3264
3265 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
3266
3267         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
3268         const0_rtx instead of NULL_RTX when in error.
3269         (altivec_expand_abs_builtin): Same.
3270         (rs6000_expand_binop_builtin): Same.
3271         (altivec_expand_predicate_builtin): Same.
3272         (altivec_expand_stv_builtin): Same.
3273         (rs6000_expand_ternop_builtin): Same.
3274         (altivec_expand_builtin): Same.
3275
3276 2002-05-29  David S. Miller  <davem@redhat.com>
3277
3278         * rtl.h (clear_emit_caches): Delete.
3279         * integrate.c (output_inline_function): Don't call it.
3280         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
3281         (clear_emit_caches): Delete definition.
3282         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
3283
3284 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
3285
3286         * config/mmix/mmix.c: Include real.h.
3287         (mmix_constant_address_p): Remove redundant test before switch.
3288
3289 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3290
3291         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
3292         only if not already defined.
3293
3294 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3295
3296         * config/h8300/h8300-protos.h: Remove prototypes for
3297         ok_for_bclr and small_power_of_two.
3298         * config/h8300/h8300.c (small_power_of_two): Remove.
3299         (ok_for_blcr): Likewise.
3300         (fix_bit_operand): Make WHAT deal with an integer instead of a
3301         constraint character.
3302         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
3303         (CONST_OK_FOR_P): Likewise.
3304         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
3305         CONST_OK_FOR_P any more.
3306         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
3307         of fix_bit_operand.
3308         (iorqi3): Likewise.
3309         (xorqi3): Likewise.
3310
3311 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3312
3313         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3314         (CPP_PREDEFINES): Make sure this is undefined.
3315         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
3316         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
3317         or -U__MIPSEB__ before defining one or the other.  Instead,
3318         use %(subtarget_endian_default) if neither -EB nor -EL are
3319         specified.
3320         (SUBTARGET_EXTRA_SPECS): Define.
3321         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
3322         %(netbsd_cpp_spec).
3323
3324 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
3325
3326         * doc/md.texi (Patterns): Note pattern condition pitfall
3327         for unnamed insn.
3328
3329 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
3330
3331         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
3332         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
3333         ternary operations from here...
3334         (rs6000_expand_builtin): ...to here.
3335         New argument expandedp.
3336         Change all instances of altivec_expand_binop_builtin to
3337         rs6000_expand_binop_builtin.
3338         (altivec_expand_unop_builtin): Rename to
3339         rs6000_expand_unop_builtin.
3340         (altivec_expand_binop_builtin): Rename to
3341         rs6000_expand_binop_builtin.
3342         (altivec_expand_ternop_builtin): Rename to
3343         rs6000_expand_ternop_builtin.
3344
3345 2002-05-29  Richard Henderson  <rth@redhat.com>
3346
3347         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
3348         (TARGET_BI_ARCH): Likewise.
3349         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
3350         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
3351         (TARGET_64BIT_DEFAULT): Default to 0.
3352         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
3353
3354 2002-05-29  Richard Henderson  <rth@redhat.com>
3355
3356         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
3357         (get_pc_thunk_name): New.
3358         (output_set_got): Use it.
3359         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
3360         into linkonce sections.
3361
3362 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3363
3364         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3365         (CPP_PREDEFINES): Make sure this is undefined.
3366         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
3367         (CPP_SUBTARGET_SPEC): Don't provide different versions for
3368         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
3369         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
3370         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
3371         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3372         (CPP_PREDEFINES): Make sure this is undefined.
3373         (SUBTARGET_EXTRA_SPECS): Define.
3374         (CPP_SPEC): Use %(netbsd_cpp_spec).
3375
3376 2002-05-29  Jeff Law <law@redhat.com>
3377
3378         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
3379
3380         * flow.c (propagate_one_insn): Do not remove a dead insn if it
3381         contains a REG_RETVAL note.
3382
3383         * haifa-sched (sched_analyze): Remove another useless clearing
3384         of SCHED_GROUP_P I missed yesterday.
3385
3386         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
3387         * pa.c (pa_asm_output_mi_thunk): New function.
3388         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
3389
3390 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3391             Marek Michalkiewicz  <marekm@amelek.gda.pl>
3392
3393         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
3394         (avr_asm_only_p): Make non-static.
3395         (enum avr_arch): Remove.
3396         (avr_arch_types): New.
3397         (avr_mcu_types): Update.
3398         (avr_override_options): Use avr_arch_types table instead of switch.
3399         * avr.h (CPP_PREDEFINES): Die.
3400         (avr_base_arch_macro, avr_extra_arch_macro): New.
3401         (TARGET_CPU_CPP_BUILTINS): New.
3402         (CPP_SPEC, EXTRA_SPECS): Simplify.
3403         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
3404         CPP_AVR5_SPEC): Die.
3405
3406 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3407
3408         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
3409         NETBSD_OS_CPP_BUILTINS_AOUT.
3410         (SUBTARGET_EXTRA_SPECS): Define.
3411         (CPP_SPEC): Use %(netbsd_cpp_spec).
3412
3413 2002-05-29  Richard Henderson  <rth@redhat.com>
3414
3415         * config/i386/i386.c (ix86_output_function_epilogue): New.
3416         (TARGET_ASM_FUNCTION_EPILOGUE): New.
3417         (pic_label_name): Remove.
3418         (pic_labels_used): New.
3419         (ix86_asm_file_end): Emit one pc load stub for each register used.
3420         (output_set_got): Generate deep pc load to any register.
3421         (ix86_select_alt_pic_regnum): New.
3422         (ix86_save_reg): Don't save pic register if we can find a valid
3423         call-clobbered replacement.
3424         (ix86_expand_prologue): If we found a valid replacement, renumber
3425         pic_offset_table_rtx.
3426         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
3427         pic_offset_table_rtx after reload.
3428         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
3429         * config/i386/i386.md (set_got): Make insn, not expander.
3430         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
3431
3432 2002-05-29  Richard Henderson  <rth@redhat.com>
3433
3434         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
3435         alignment for alloca.
3436
3437 2002-05-29  Richard Henderson  <rth@redhat.com>
3438
3439         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
3440         (print_operand_address): Only add rip for symbolic addresses
3441         for which we do not have another relocation type.
3442
3443 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3444
3445         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3446         (EXTRA_SPECS): Add netbsd_cpp_spec.
3447         (CPP_SPEC): Use %(netbsd_cpp_spec).
3448         (CPP_PREDEFINES): Remove.
3449         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3450         (EXTRA_SPECS): Define.
3451         (CPP_SPEC): Use %(netbsd_cpp_spec).
3452         (CPP_PREDEFINES): Remove.
3453
3454 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3455
3456         PR preprocessor/6844
3457         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
3458         NUL.
3459
3460 2002-05-29  Eric Christopher  <echristo@redhat.com>
3461
3462         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
3463         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
3464
3465 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
3466
3467         * config/fr30/fr30.md: Remove previous restriction on splits.
3468         Enforce conformance through gen_lowpart and cont_int_operand.
3469         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
3470         as the assembler does not support ".bss".
3471
3472 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3473
3474         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3475         (CPP_PREDEFINES): Remove.
3476         (SUBTARGET_EXTRA_SPECS): Define.
3477         (CPP_SPEC): Use %(netbsd_cpp_spec).
3478         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3479         (CPP_PREDEFINES): Remove.
3480         (SUBTARGET_EXTRA_SPECS): Define.
3481         (CPP_SPEC): Use %(netbsd_cpp_spec).
3482         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
3483         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
3484         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
3485         Add netbsd_cpp_spec.
3486         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
3487
3488 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3489             Zack Weinberg <zack@codesourcery.com>
3490
3491         * cppexp.c (cpp_num): Move to cpplib.h.
3492         (CPP_ERROR): Remove.
3493         (interpret_float_suffix, interpret_int_suffix): New.
3494         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
3495         (cpp_classify_number, cpp_interpret_integer): New.
3496         (interpret_number): Remove.
3497         (eval_token): Update to use new routines.
3498         * cpphash.h (cpp_num_part): Move to cpplib.h.
3499         * cppinit.c (cpp_post_options): Set warn_long_long.
3500         * cpplib.h (struct cpp_options): Add warn_long_long.
3501         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
3502         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
3503         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
3504         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
3505         cpp_interpret_integer): New.
3506
3507 2002-05-29  Joel Sherrill <joel@OARcorp.com>
3508
3509         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
3510
3511 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3512
3513         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
3514         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
3515         (CPP_SUBTARGET_SPEC): Define.
3516         (SUBTARGET_EXTRA_SPECS): Define.
3517         (CPP_SPEC): Remove.
3518
3519 2002-05-29  Chris Lattner  <sabre@nondot.org>
3520
3521         * ssa.c (rename_insn_1): Rename uses of undefined registers to
3522         prevent confusion if/when the register is defined.
3523
3524 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
3525
3526         PR target/6838
3527         * config/cris/cris.md: Fix typos and thinkos in comments.
3528         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
3529         second alternative.
3530         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
3531         ("*mov_sideqi_mem"): Similar, but for operand 3.
3532         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
3533         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
3534         Remove spurious mode specifier on operand 2.
3535
3536 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3537
3538         * config/h8300/h8300-protos.h: Remove the prototype for
3539         o_operand.
3540         Add prototypes for single_one_operand and single_zero_operand.
3541         * config/h8300/h8300.c (o_operand): Remove.
3542         (single_one_operand): New.
3543         (single_zero_operand): Likewise.
3544         (print_operand): For 'V' operand, and the operand with 0xff.
3545         For 'V' and 'W' operands, do not and the bit position with 7.
3546         * config/h8300/h8300.md (various anonymous patterns): Replace
3547         use of exact_log2 with single_one_operand/single_zero_operand.
3548
3549 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
3550
3551         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3552
3553 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
3554
3555         * config/s390/s390.c (legitimate_pic_operand_p): Do not
3556         accept symbolic LARL operands.
3557         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
3558         epilogue insns.
3559
3560 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
3561
3562         * config/s390/s390.md (cmpstr_64/31): Mark whole
3563         input registers as used.
3564
3565 2002-05-28  Richard Henderson  <rth@redhat.com>
3566
3567         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
3568         not current_function_uses_pic_offset_table and
3569         current_function_uses_const_pool; examine current_function_profile.
3570         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
3571         input to blockage if needed.
3572         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
3573         (legitimize_pic_address): Likewise.  Set regs_ever_live for
3574         pic_offset_table_rtx when invoked during reload.
3575         * config/i386/i386.h (FINALIZE_PIC): Remove.
3576         * config/i386/i386.md (tablejump): Reformat.  Do not set
3577         current_function_uses_pic_offset_table.
3578         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
3579         (blockage): Accept anything as operand 0.
3580
3581 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
3582
3583         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
3584         common CPP built-ins for all NetBSD a.out targets.
3585         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
3586         common CPP built-ins for all NetBSD ELF targets.
3587         * config/netbsd.h: Add missing notice.
3588         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
3589         for all NetBSD targets.
3590         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
3591         for all NetBSD targets using an LP64 code model.
3592         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
3593         NetBSD targets.
3594
3595 2002-05-28  Richard Henderson  <rth@redhat.com>
3596
3597         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
3598         update if UPDATE_LIFE_LOCAL.
3599
3600 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3601
3602         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
3603
3604 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
3605                           Jason R. Thorpe <thorpej@wasabisystems.com>
3606
3607         config/sh reorganization to factor out endianness and coff:
3608
3609         * config/sh/little.h: New file.
3610         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
3611         defined, define to 0 to select big-endian.
3612         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
3613         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
3614         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
3615         * config/sh/t-be: New file.
3616         * config/sh/t-le: New file.
3617
3618         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
3619         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
3620         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
3621         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
3622         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
3623         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
3624         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
3625         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
3626         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
3627         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
3628         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
3629         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
3630         (LINK_SPEC): Define to SH_LINK_SPEC.
3631         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
3632         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
3633         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
3634         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
3635         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
3636         * config/sh/coff.h: New file.
3637         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
3638         (TARGET_OBJFMT_CPP_BUILTINS): Define.
3639         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
3640         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
3641         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
3642         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
3643         (PTRDIFF_TYPE): Likewise.
3644         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
3645         (CPP_PREDEFINES): Don't define.
3646         (TARGET_OBJFMT_CPP_BUILTINS): Define.
3647         (LINK_SPEC): Define to SH_LINK_SPEC.
3648         (LINK_EMUL_PREFIX): Redefine.
3649         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
3650         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
3651         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
3652         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
3653         (TARGET_OS_CPP_BUILTINS): Define.
3654         (TARGET_DEFAULT): Redefine.
3655         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
3656         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
3657         (LINK_SPEC): Don't redefine.
3658         (LINK_DEFAULT_CPU_EMUL): Redefine.
3659         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
3660         * sh.c (sh_asm_named_section): Don't declare / define.
3661         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
3662         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
3663         (sh64-*-elf* tm_file): Likewise.
3664         (sh-*-rtemself* tm_file): Likewise.
3665         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
3666         (sh-*-linux* tmake_file): Add sh/t-le.
3667         (sh-*-rtems* tm_file): Add sh/coff.h
3668         (sh-*-* tm_file): Likewise.
3669
3670 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
3671
3672         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
3673         CONSTANT_POOL_ADDRESS_P.
3674
3675         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
3676
3677 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
3678             Jeff Law <law@redhat.com>
3679
3680         * optabs.c (expand_binop): Fix nwords sign warnings.
3681         generate pseudo for add_optab.
3682
3683         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
3684         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
3685
3686 2002-05-28      Marc Espie <espie@openbsd.org>
3687
3688         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
3689         inherited from gas.h.
3690         (ASM_QUAD):  Undef.  OpenBSD does not support it.
3691
3692 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
3693
3694         * doc/install.texi (binaries): Change mingw binaries
3695         link to www.mingw.org.
3696
3697 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3698
3699         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
3700
3701 2002-05-28  Richard Henderson  <rth@redhat.com>
3702
3703         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
3704         bottom alignment for leaf functions.
3705
3706 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3707
3708         * config/pa/milli32.S, config/pa/lib1funcs.asm,
3709         config/sparc/sol2-g1.asm: Delete unused files.
3710
3711 2002-05-28  Richard Henderson  <rth@redhat.com>
3712
3713         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
3714
3715         * flow.c (calculate_global_regs_live): Rename call_used to
3716         invalidated_by_call.  Initialize from regs_invalidated_by_call
3717         instead of call_used_regs.
3718
3719         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
3720         DECL_EXTERNAL.
3721
3722 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3723
3724         * tree.h: Don't include real.h.
3725         Forward-declare struct realvaluetype.
3726         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
3727         contain it.
3728         (TREE_REAL_CST_PTR): New accessor.
3729         (TREE_REAL_CST): Update.
3730         * real.h: Include machmode.h.
3731         (realvaluetype): Make it struct realvaluetype, not a typedef.
3732         (build_real): Prototype here.
3733
3734         * tree.c: Include real.h.
3735         (build_real): Allocate the REAL_VALUE_TYPE as a separate
3736         object in GC memory, set TREE_REAL_CST_PTR to point to it.
3737         (build_real_from_int_cst): Use build_real.
3738         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
3739         REAL_CST.
3740
3741         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
3742         fold-const.c, print-tree.c, real.c: Include real.h.
3743         * Makefile.in: Update dependency lists.
3744
3745 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3746
3747         * basic-block.h (last_basic_block): Declare.
3748         (expunge_block_nocompact): Declaration removed.
3749         (compact_blocks): Declare.
3750         * cfg.c (last_basic_block): New variable.
3751         (expunge_block_nocompact): Removed.
3752         (expunge_block): Do not compact basic blocks.
3753         (compact_blocks): New.
3754         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
3755         longer change.
3756         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
3757         last_basic_block.
3758         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
3759         real positions of blocks.
3760         (delete_unreachable_blocks): Simplified -- quadratic behavior now
3761         cannot occur.
3762         (cleanup_cfg): Compact blocks.
3763         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
3764         basic_block_info varray.
3765         (flow_delete_block): Comment update.
3766         (back_edge_of_syntactic_loop_p): Modify position check code.
3767         (verify_flow_info): Update checking.
3768         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
3769         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
3770         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
3771         indices no longer change.
3772         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
3773         last_basic_block.
3774         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
3775         * profile.c (branch_prob): Compact blocks.
3776         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
3777         last_basic_block.
3778
3779 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3780
3781         * config/h8300/h8300.md (two anonymous patterns): New.
3782
3783 2002-05-28  David S. Miller  <davem@redhat.com>
3784
3785         * config/sparc/sparc.md (cpu): Tidy.
3786         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
3787         'trap'.
3788         (in_call_delay): Delete reference to 'return' type.
3789         (eligible_for_return_delay, in_return_delay, define_delay
3790         referencing those): Delete.
3791         (rest of file): Use new type attributes as appropriate.
3792         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
3793         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
3794         * config/sparc/ultra1_2.md (us1_single): New reservation.
3795         (us1_ialuX): Likewise.
3796         * config/sparc/ultra3.md (us3_single): Likewise.
3797         (us3_ialuX): Likewise.
3798         (us3_imul, us3_idiv): Tweak.
3799
3800 2002-05-28  Richard Henderson  <rth@redhat.com>
3801
3802         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
3803         STRING_CST.
3804
3805 2002-05-28  Richard Henderson  <rth@redhat.com>
3806
3807         * config.gcc: Obsolete mn10200.
3808
3809 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3810
3811         * cppexp.c (interpret_number): Optimize for single-digit
3812         and less-than-half-precision cases.
3813         (num_trim, num_positive, num_div_op): Cast constants.
3814
3815 2002-05-27  Bo Thorsen  <bo@suse.de>
3816
3817         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
3818         3.1 branch. The file was made by Jakub Jelinek.
3819         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
3820         support so multilib doesn't break. And don't define this at all
3821         when -Dinhibit_libc is used.
3822         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
3823         * config/i386/t-linux64: Implement full multilib support. Patch
3824         originally done by Andreas Jaeger and Jakub Jelinek.
3825
3826 2002-05-27  Roger Sayle  <roger@eyesopen.com>
3827
3828         * c-common.c: Add support for __attribute__((nothrow)) to specify
3829         that a function cannot throw an exception (using TREE_NOTHROW).
3830         (handle_nothrow_attribute): New function to process this attribute.
3831
3832         * doc/extend.texi: Document the new nothrow function attribute.
3833
3834 2002-05-27  H.J. Lu  (hjl@gnu.org)
3835
3836         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
3837         (num_positive): Likewise.
3838         (num_div_op): Likewise.
3839
3840 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3841
3842         * c-common.c (c_common_init): Always use intmax_t.
3843
3844 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3845
3846         * c-common.c (c_common_init): Use intmax_t for now.
3847
3848 2002-05-24  Andrew Haley  <aph@redhat.com>
3849
3850         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
3851         if T is a boolean type.
3852
3853 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3854
3855         * basic-block.h (last_basic_block): Defined as synonym for
3856         n_basic_blocks.
3857         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
3858         flow_depth_first_order_compute, flow_preorder_transversal_compute,
3859         flow_dfs_compute_reverse_init): Replaced relevant occurences of
3860         n_basic_blocks with last_basic_block.
3861         * cfgbuild.c (make_edges): Likewise.
3862         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
3863         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
3864         * combine.c (combine_instructions): Likewise.
3865         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
3866         iterative_dataflow_bitmap): Likewise.
3867         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
3868         calc_idoms, idoms_to_doms): Likewise.
3869         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
3870         Likewise.
3871         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
3872         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
3873         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
3874         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
3875         delete_null_pointer_checks, compute_code_hoist_vbeinout,
3876         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
3877         compute_store_table, build_store_vectors): Likewise.
3878         * haifa-sched.c (sched_init): Likewise.
3879         * ifcvt.c (if_convert): Likewise.
3880         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3881         pre_edge_lcm, compute_available, compute_nearerout,
3882         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
3883         Likewise.
3884         * predict.c (estimate_probability, process_note_prediction,
3885         note_prediction_to_br_prob): Likewise.
3886         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
3887         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3888         * regrename.c (copyprop_hardreg_forward): Likewise.
3889         * resource.c (init_resource_info): Likewise.
3890         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
3891         init_regions, schedule_insns): Likewise.
3892         * ssa-ccp.c (ssa_const_prop): Likewise.
3893         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3894         * ssa.c (compute_dominance_frontiers,
3895         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
3896
3897         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
3898         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
3899         sizes consistently.
3900
3901 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
3902
3903         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
3904         new.
3905         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
3906         hoist_insn_after, hoist_insn_to_edge): New.
3907
3908 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
3909
3910         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
3911         (PROP_FINAL): Include.
3912         * flow.c (life_analysis, update_life_info,
3913         init_propagate_block_info, mark_set_1, mark_used_rgs):
3914         Support SCAN_DEAD_STORE.
3915
3916 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3917
3918         * c-common.c (c_common_init): Set CPP arithmetic precision.
3919         * cppexp.c (cpp_num_part): Move typedef ...
3920         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
3921         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
3922         (sanity_checks): Update.
3923
3924 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
3925
3926         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
3927         (mkheaders): New rule.
3928         (install-mkheaders): New rule.
3929         * configure.in (all_outputs): Add mkheaders.
3930         * configure: Regenerate.
3931         * mkheaders.in: New file.
3932
3933 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
3934
3935         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
3936
3937 2002-05-26  Andreas Jaeger  <aj@suse.de>
3938
3939         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
3940
3941 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3942
3943         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
3944         right_shift): Remove.
3945         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
3946         HIGH_PART): New.
3947         (struct op): Use cpp_num.
3948         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
3949         num_part_mul, num_unary_op, num_binary_op, num_negate,
3950         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
3951         num_div_op, num_lshift, num_rshift, append_digit): New.
3952         (interpret_number, parse_defined, eval_token, reduce): Update
3953         for two-integer arithmetic.
3954         (binary_handler): New typedef.
3955         (optab): Update.
3956         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
3957         (_cpp_parse_expr, reduce): Update to handle two-integers.
3958         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
3959
3960 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3961
3962         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
3963         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
3964         branch insn into account, do not assume 1.
3965         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
3966         over single word insn.  Handle upper half of I/O space too.
3967         * config/avr/avr.md (*sbrx_branch): Use it.
3968         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
3969         (*sbix_branch, *sbix_branch_bit7): Likewise.
3970         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
3971         Use RTL peepholes to optimize register operand sign tests.
3972
3973 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3974
3975         * config/avr/avr.c (avr_asm_only_p): New variable.
3976         (avr_override_options): Set it here if AVR1.
3977         (asm_file_start): Test it here, report an error if set.
3978
3979 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
3980
3981         * alias.c: Fix formatting.
3982         * attribs.c: Likewise.
3983         * bb-reorder.c: Likewise.
3984         * bitmap.c: Likewise.
3985         * bitmap.h: Likewise.
3986         * builtins.c: Likewise.
3987
3988 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
3989
3990         * reload.c (find_valid_class): Accept new argument DEST,
3991         choose class accordingly.
3992         (push_reload): Update callers.
3993
3994 2002-05-26  Andreas Jaeger  <aj@suse.de>
3995
3996         * combine.c (combine_instructions): Do not indent #if for
3997         traditional C.
3998
3999 2002-05-25  Richard Henderson  <rth@redhat.com>
4000
4001         * c-pragma.c (apply_pragma_weak): Convert value identifier to
4002         string for decl_attributes.
4003         (handle_pragma_weak): Call assemble_alias if we're modifying
4004         an existing decl.
4005
4006 2002-05-25  Richard Henderson  <rth@redhat.com>
4007
4008         PR target/6788
4009         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
4010         using rtl instead of fprintf.
4011         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
4012         * config/sparc/sparc-protos.h: Update.
4013
4014 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4015
4016         * Makefile.in (C_COMMON_H): Fix.
4017         Update other targets.
4018         * c-common.c: Don't include c-lex.h.
4019         (builtin_define_with_value): Make static and prototype.
4020         (builtin_define_std): Move from c-lex.h.
4021         * c-common.h (init_c_lex): Move from c-lex.h.
4022         * c-decl.c: Don't include c-lex.h.
4023         (make_pointer_declarator): Move from c-parse.in.
4024         * c-lex.c: Don't include c-lex.h.
4025         * c-lex.h: Remove.
4026         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
4027         (make_pointer_declarator): Move to c-decl.c.
4028         * c-pragma.c: Don't include c-lex.h.
4029         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
4030         * c-tree.h (make_pointer_declarator): New.
4031 doc:
4032         * passes.texi, tm.texi: Update.
4033 objc:
4034         * Make-lang.in: Update and correct.
4035         * objc-act.c: Don't include c-lex.h or cpplib.h.
4036 treelang:
4037         * treetree.c: Don't include c-lex.h.
4038 config:
4039         * darwin-c.c: Don't include c-lex.h.
4040         * c4x/c4x-c.c: Don't include c-lex.h.
4041         * c4x/t-c4x: Update.
4042         * i370/i370-c.c: Don't include c-lex.h.
4043         * i370/t-i370: Update.
4044         * i960/i960-c.c: Don't include c-lex.h.
4045         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
4046         * i960/t-960bare: Update.
4047         * i960/t-vxworks: Update.
4048         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
4049         * rs6000/t-darwin: Update.
4050         * rs6000/t-rs6000-c-rule: Update.
4051         * v850/v850-c.c: Don't include c-lex.h.
4052         * v850/v850.c: Don't include c-lex.h or cpplib.h.
4053
4054
4055 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
4056
4057         * tree.def: Fix typos.
4058         * doc/install.texi: Likewise.
4059
4060 2002-05-25  Richard Henderson  <rth@redhat.com>
4061
4062         * configure.in (HAVE_AS_TLS): Add ia64 test.
4063         * configure: Rebuild.
4064         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
4065         (override_options): Set it.
4066         (TARGET_HAVE_TLS): New.
4067         (sdata_symbolic_operand): Look for 's'.
4068         (tls_symbolic_operand): New.
4069         (ia64_expand_load_address): Abort for tls symbols.
4070         (gen_tls_get_addr): New.
4071         (gen_thread_pointer): New.
4072         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
4073         (rtx_needs_barrier): Add new unspecs.
4074         (ia64_encode_section_info): Handle tls symbols.
4075         (ia64_strip_name_encoding): Strip two encoding chars.
4076         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
4077         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
4078         (TARGET_OPTIONS): Add tls-size.
4079         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
4080         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
4081         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
4082         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
4083         (movsf, movdf): Likewise.
4084         (movdi_symbolic): Use match_scratch.  Don't split if we won't
4085         have a scratch availiable.
4086         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
4087         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
4088         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
4089         * config/ia64/ia64-protos.h: Update.
4090         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
4091         sdata_symbolic_operand.
4092         (ASM_OUTPUT_LABELREF): Strip two characters.
4093
4094 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
4095
4096         * combine.c (simplify_set): Remove an unnecessary subreg.
4097
4098 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4099
4100         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
4101
4102         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
4103
4104 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
4105
4106         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
4107
4108 2002-05-25  Roger Sayle  <roger@eyesopen.com>
4109
4110         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
4111         (cond (compare x y) 0) into the equivalent (cond x y).
4112
4113 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
4114
4115         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
4116
4117 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
4118
4119         * config.gcc: Remove all stanzas for previously obsoleted
4120         systems.  Where necessary, add explicit error stanzas to
4121         prevent removed systems from being misidentified as something
4122         else.  Begin a fresh obsoletions list, with the systems that
4123         were reprieved last round.
4124         * doc/install.texi: Remove all mention of dead targets.
4125         * fixinc/mkfixinc.sh: Likewise.
4126
4127         * config/arm/arm.h: Bit 31 of target_flags is no longer
4128         reserved.
4129
4130         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
4131         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
4132         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
4133         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
4134         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
4135         config/alpha/osf12.h, config/alpha/osf2or3.h,
4136         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
4137         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
4138         config/clipper/clipper-protos.h, config/clipper/clipper.c,
4139         config/clipper/clipper.h, config/clipper/clipper.md,
4140         config/clipper/clix.h, config/convex/convex-protos.h,
4141         config/convex/convex.c, config/convex/convex.h,
4142         config/convex/convex.md, config/convex/fixinc.convex,
4143         config/convex/proto.h, config/elxsi/elxsi-protos.h,
4144         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
4145         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
4146         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
4147         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
4148         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
4149         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
4150         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
4151         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
4152         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
4153         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
4154         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
4155         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
4156         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
4157         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
4158         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
4159         config/m68k/altos3068.h, config/m68k/apollo68.h,
4160         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
4161         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
4162         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
4163         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
4164         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
4165         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
4166         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
4167         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
4168         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
4169         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
4170         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
4171         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
4172         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
4173         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
4174         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
4175         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
4176         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
4177         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
4178         config/mips/dec-osf1.h, config/mips/elflorion.h,
4179         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
4180         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
4181         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
4182         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
4183         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
4184         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
4185         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
4186         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
4187         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
4188         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
4189         config/ns32k/sequent.h, config/ns32k/tek6000.h,
4190         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
4191         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
4192         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
4193         config/sparc/rtems.h, config/we32k/we32k-protos.h,
4194         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
4195         Delete file.
4196
4197 2002-05-24  Richard Henderson  <rth@redhat.com>
4198
4199         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
4200         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
4201         * config/i386/i386.c (tls_model_chars): Add leading space.
4202         (tls_symbolic_operand): Don't bias by 1.
4203         (legitimize_address): Don't unbias by 1.
4204
4205 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4206
4207         * lcm.c (optimize_mode_switching): Change bb used as indices
4208         to bb->index.
4209
4210 2002-05-24  Richard Henderson  <rth@redhat.com>
4211
4212         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
4213         of update_life_info_in_dirty_blocks.
4214
4215 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR other/6782
4218         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
4219
4220 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4221
4222         PR preprocessor/6780
4223         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
4224
4225 2002-05-24  Jim Blandy  <jimb@redhat.com>
4226
4227         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
4228         entry with a type code of zero, marking the end of the compilation
4229         unit's macro info.
4230
4231 2002-05-24  Richard Henderson  <rth@redhat.com>
4232
4233         * varasm.c (asm_output_bss): Always output one byte.
4234         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
4235
4236 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
4237
4238         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
4239         namespace.
4240
4241 2002-05-24  Andreas Jaeger  <aj@suse.de>
4242
4243         * ggc-page.c (alloc_page): Cast variables of type size_t to
4244         unsigned long, adjust printf format string.
4245         (ggc_alloc): Likewise.
4246         (ggc_print_statistics): Likewise.
4247         (ggc_print_statistics): Correct printf format string for SCALE to
4248         use unsigned long.
4249
4250 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
4251
4252         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
4253
4254 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
4255             Zack Weinberg     <zack@codesourcery.com>
4256
4257         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
4258         quoted strings.
4259         * dwarf2out.c (lookup_filename): Properly quote filename in .file
4260         directive in assembly file.
4261         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
4262         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
4263         * config/pj/pj.h (ASM_FILE_START): Likewise.
4264         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
4265         * config/avr/avr.c (asm_file_end): Likewise.
4266         * toplev.c (output_quoted_string): Handle possibly signed plain
4267         char.
4268         * toplev.h (output_clean_symbol_name): Declare
4269         * toplev.c (output_clean_symbol_name): Define.
4270         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
4271         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
4272
4273 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
4274
4275         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
4276
4277 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
4278
4279         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
4280         of size of unsigned.
4281
4282 2002-05-23  Richard Henderson  <rth@redhat.com>
4283
4284         * configure.in (HAVE_AS_TLS): New test.
4285         * config.in, configure: Rebuild.
4286         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
4287         (ix86_tls_dialect_string, ix86_tls_dialect): New.
4288         (override_options): Set it.
4289         (tls_model_chars, tls_symbolic_operand): New.
4290         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
4291         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
4292         (local_exec_symbolic_operand): New.
4293         (get_pic_label_name): Merge into output_set_got.
4294         (ix86_asm_file_end): Emit pic_label_name if defined.
4295         (legitimate_constant_p, constant_address_p): New.
4296         (legitimate_pic_operand_p): New.
4297         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
4298         (legitimate_address_p): Likewise.
4299         (ix86_encode_section_info): Rename from i386_; handle tls decls.
4300         (ix86_strip_name_encoding): New.
4301         (get_thread_pointer): New.
4302         (legitimize_address): Handle tls symbols.
4303         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
4304         Remove UNSPEC_PLT.
4305         (struct machine_function): Add some_ld_name.
4306         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
4307         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
4308         (output_addr_const_extra): New.
4309         (maybe_get_pool_constant): New.
4310         (ix86_split_to_parts): Use it.
4311         (ix86_expand_move): Handle tls symbols.
4312         (ix86_tls_get_addr): New.
4313         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
4314         (TARGET_OPTIONS): Add tls-dialect.
4315         (CONSTANT_ADDRESS_P): Use new out-of-line function.
4316         (LEGITIMATE_CONSTANT_P): Likewise.
4317         (LEGITIMATE_PIC_OPERAND_P): Likewise.
4318         (TARGET_STRIP_NAME_ENCODING): New.
4319         (ASM_OUTPUT_LABELREF): New.
4320         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
4321         (OUTPUT_ADDR_CONST_EXTRA): New.
4322         (PREDICATE_CODES): Update.
4323         (ix86_tls_dialect, ix86_tls_dialect_string): New.
4324         * config/i386/i386.md: Regroup and renumber unspec constants.
4325         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
4326         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
4327         (tls_global_dynamic, tls_local_dynamic_base): New.
4328         (tls_local_dynamic_once): New.
4329         * config/i386/i386-protos.h: Update.
4330
4331 2002-05-23  Richard Henderson  <rth@redhat.com>
4332
4333         * genemit.c (gen_insn): Print file:lineno comment before function.
4334         (main): likewise.
4335         * gensupport.c (struct queue_elem): Add filename member.
4336         (queue_pattern): Initialize it; update all callers.
4337         (process_include): Don't free filename.
4338         (read_md_rtx): Set read_rtx_filename.
4339
4340 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
4341
4342         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
4343
4344 2002-05-23  Richard Henderson  <rth@redhat.com>
4345
4346         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
4347
4348 2002-05-23  Richard Henderson  <rth@redhat.com>
4349
4350         * doc/extend.texi (C++98 Thread-Local Edits): Update with
4351         commentary from Mark.
4352
4353 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4354
4355         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
4356         Use FOR_EACH_BB macros to iterate over basic block chain.
4357         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
4358         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
4359         Likewise.
4360         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
4361         find_unreachable_blocks, create_edge_list, verify_edge_list,
4362         remove_fake_edges, add_noreturn_fake_exit_edges,
4363         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
4364         Likewise.
4365         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
4366         find_sub_basic_blocks): Likewise.
4367         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
4368         Likewise.
4369         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
4370         Likewise.
4371         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
4372         Likewise.
4373         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
4374         commit_edge_insertions, commit_edge_insertions_watch_calls,
4375         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
4376         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
4377         * conflict.c (conflict_graph_compute): Likewise.
4378         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4379         df_modified_p, df_refs_unlink, df_dump): Likewise.
4380         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
4381         * final.c (compute_alignments): Likewise.
4382         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
4383         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
4384         count_or_remove_death_notes): Likewise.
4385         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
4386         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
4387         classic_gcse, compute_transp, cprop, compute_pre_data,
4388         compute_transpout, invalidate_nonnull_info,
4389         delete_null_pointer_checks_1, delete_null_pointer_checks,
4390         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
4391         compute_store_table, build_store_vectors, store_motion): Likewise.
4392         * global.c (global_conflicts, mark_elimination): Likewise.
4393         * graph.c (print_rtl_graph_with_bb): Likewise.
4394         * haifa-sched.c (sched_init): Likewise.
4395         * ifcvt.c (if_convert): Likewise.
4396         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
4397         compute_available, compute_nearerout, compute_rev_insert_delete,
4398         optimize_mode_switching): Likewise.
4399         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
4400         * predict.c (estimate_probability, note_prediction_to_br_prob,
4401         propagate_freq, counts_to_freqs, expensive_function_p,
4402         estimate_bb_frequencies): Likewise.
4403         * profile.c (instrument_edges, get_exec_counts,
4404         compute_branch_probabilities, compute_checksum, branch_prob,
4405         find_spanning_tree): Likewise.
4406         * recog.c (split_all_insns, peephole2_optimize): Likewise.
4407         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
4408         Likewise.
4409         * regclass.c (scan_one_insn, regclass): Likewise.
4410         * regmove.c (mark_flags_life_zones, regmove_optimize,
4411         record_stack_memrefs): Likewise.
4412         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
4413         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
4414         * resource.c (find_basic_block): Likewise.
4415         * sched-ebb.c (schedule_ebbs): Likewise.
4416         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
4417         find_single_block_region, find_rgns, schedule_insns)
4418         * sibcall.c (optimize_sibling_and_tail_recursive_call)
4419         * ssa-ccp.c (optimize_unexecutable_edges,
4420         ssa_ccp_df_delete_unreachable_insns): Likewise.
4421         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4422         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
4423         rename_block, convert_to_ssa, compute_conservative_reg_partition,
4424         compute_coalesced_reg_partition, rename_equivalent_regs,
4425         convert_from_ssa): Likewise.
4426         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
4427         process_for_unwind_directive): Likewise.
4428
4429         * df.c (FOR_ALL_BBS): Removed.
4430         * gcse.c (struct null_pointer_info): Type of current_block field
4431         changed.
4432         (struct reg_avail_info): Type of last_bb field changed.
4433         * config/ia64/ia64.c (block_num): Removed.
4434         (need_copy_state): Type changed.
4435         (last_block): New.
4436
4437 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4438
4439         * cppinit.c (mark_named_operators): Split out from init_builtins.
4440         (cpp_finish_options): Call it from here instead.
4441
4442 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
4443
4444         * builtin-attrs.def: Update copyright years.
4445         (ATTR_NONNULL): New attribute identifier.
4446         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
4447         attribute tree lists.
4448         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
4449         format operand.
4450         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
4451         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
4452         attribute lists.  Chain the appropriate nonnull attribute.
4453         * c-format.c (check_format_arg): Remove null format string
4454         warning.
4455         * testsuite/gcc.dg/format/null-1.c: New test.
4456
4457 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4458
4459         * Makefile.in (ADAC): Define.
4460         (SYSLIBS): Define.
4461         (.SUFFIXES): Move before language makefile fragments.
4462         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
4463
4464 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
4465
4466         * varasm.c (make_decl_rtl): Don't allow weak variables to be
4467         placed in common.
4468
4469 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4470
4471         * cfg.c (dump_flow_info): Print results of
4472         maybe_hot/probably_never_executed predicates.
4473         * toplev.c (open_dump_file): Print function frequency.
4474
4475 2002-05-23  David S. Miller  <davem@redhat.com>
4476
4477         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
4478         regsets.
4479
4480 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
4481
4482         * c-common.c (warn_nonnull): Declare.
4483         (c_common_attribute_table): Add "nonnull" attribute.
4484         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
4485         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
4486         check_function_arguments_recurse): New functions.
4487         * c-common.h (warn_nonnull): Declare extern.
4488         (check_function_arguments, check_function_arguments_recurse): New
4489         prototypes.
4490         * c-decl.c (c_decode_option): Add -Wnonnull option.
4491         * c-format.c (set_Wformat): Set warn_nonnull if enabling
4492         format checking.
4493         (format_check_context): New structure.
4494         (check_format_info_recurse): Remove recursion and rename to...
4495         (check_format_arg): ...this.  Update comment.
4496         (check_format_info): Use check_function_arguments_recurse.
4497         * c-typeck.c (build_function_call): Call check_function_arguments
4498         instead of check_function_format.
4499         * doc/extend.texi: Document "nonnull" attribute.
4500         * doc/invoke.texi: Docuemnt -Wnonnull option.
4501         * testsuite/gcc.dg/nonnull-1.c: New test.
4502         * testsuite/gcc.dg/nonnull-2.c: New test.
4503
4504 2002-05-23  David S. Miller  <davem@redhat.com>
4505
4506         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
4507         * cfgcleanup.c (cleanup_cfg): If it is set do not
4508         attempt to delete trivially dead insns.
4509         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
4510         * toplev.c (rest_of_compilation): Document non-trivial aspect
4511         the RTL before optimize_save_area_alloca is run.
4512
4513 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4514
4515         * c-lex.c (indent_level): Remove.
4516         (cb_file_change, c_lex): Remove indent level handling.
4517         * c-lex.h (indent_level): Remove.
4518         * input.h (struct file_stack): Remove indent_level.
4519         * toplev.c (push_srcloc): Remove indent_level handling.
4520
4521 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
4522
4523         PR target/6753
4524         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
4525         of x in constraints for clarity.
4526         (sse_mov?fcc split): abort if op2 == op3.
4527         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
4528         sse_movsfcc_const0_4): Add earlyclobber.
4529         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
4530         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
4531         Use Y instead of x in constraints.
4532
4533 2002-05-23  Richard Henderson  <rth@redhat.com>
4534
4535         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
4536         (C++98 Thread-Local Edits): New subsection.
4537
4538         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
4539         (ix86_arch): Set type to enum processor_type.
4540
4541         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
4542         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
4543
4544 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
4545
4546         * configure.in: Fix as version test for binutils 2.12.1 releases
4547         (without dates).
4548         * configure: Rebuilt.
4549
4550 2002-05-23  Richard Henderson  <rth@redhat.com>
4551
4552         * config/i386/i386.c (get_pic_label_name): New.
4553         (load_pic_register): Remove.
4554         (output_set_got): New.
4555         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
4556         * config/i386/i386.md (UNSPEC_SET_GOT): New.
4557         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
4558         (prologue_set_got, prologue_get_pc): Remove.
4559         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
4560         (builtin_setjmp_receiver): Use gen_set_got.
4561         * config/i386/i386-protos.h: Update.
4562
4563 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
4564
4565         * gcse.c (hash_expr): Do not use alias set for hashing.
4566
4567 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
4568
4569         * dbxout.c (dbxout_class_name_qualifiers): New function.
4570         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
4571
4572 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4573
4574         * cpperror.c (_cpp_begin_message): No special casing
4575         of CPP_FATAL_LIMIT.
4576         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
4577         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
4578         * cpplib.c (do_include_common): Use DL_ERROR.
4579         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
4580         (DL_ICE): Renumber.
4581         * fix-header.c (read_scan_file): Update.
4582
4583 2002-05-22  Richard Henderson  <rth@redhat.com>
4584
4585         * config/i386/i386.c (ix86_expand_call): New function, extracted
4586         from md call patterns.  Add pic_offset_table_rtx to
4587         CALL_INSN_FUNCTION_USAGE when needed.
4588         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
4589         (call_value_pop, call_value, untyped_call): Likewise.
4590         (call_exp, call_value_exp): Remove.
4591         * config/i386/i386-protos.h: Update.
4592
4593 2002-05-22  Richard Henderson  <rth@redhat.com>
4594
4595         * varasm.c (default_section_type_flags): Check for VAR_DECL
4596         before using DECL_THREAD_LOCAL.
4597
4598 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
4599
4600         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
4601         (STARTFILE_SPEC): Delete PE crt0.o.
4602         * config/rs6000/aix51.h: Same.
4603         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
4604         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
4605         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
4606         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
4607         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
4608
4609 2002-05-22  Richard Henderson  <rth@redhat.com>
4610
4611         * varasm.c (default_section_type_flags): Handle tls data and
4612         default sections.
4613         (default_unique_section): Handle tls sections.
4614
4615 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
4616
4617         * configure.in (CROSS): Define NATIVE_CROSS.
4618         * configure: Regenerate.
4619         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
4620         (startfile_prefix_spec): New var.
4621         (static_specs): Add startfile_prefix_spec.
4622         (do_spec_2): Split out from..
4623         (do_spec): ..here.
4624         (main): Process startfile_prefix_spec.
4625         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
4626         dynamic linker.
4627         (STARTFILE_PREFIX_SPEC): Define.
4628         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
4629         absolute paths.
4630
4631 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
4632
4633         * cpperror.c: Fix formatting.
4634         * cppexp.c: Likewise.
4635         * cppfiles.c: Likewise.
4636         * cpphash.c: Likewise.
4637         * cpphash.h: Likewise.
4638         * cppinit.c: Likewise.
4639         * cpplex.c: Likewise.
4640         * cpplib.c: Likewise.
4641         * cppmacro.c: Likewise.
4642         * cppmain.c: Likewise.
4643         * cppspec.c: Likewise.
4644
4645 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
4646
4647         * combine.c (force_to_mode): Use gen_int_mode.
4648         Don't clear CONST_INT bits outside of mode.
4649
4650 2002-05-22  Richard Henderson  <rth@redhat.com>
4651
4652         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
4653         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
4654
4655 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
4656
4657         PR c/6643
4658         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
4659         if DECL_SIZE_UNIT is INTEGER_CST.
4660
4661 2002-05-22  Richard Henderson  <rth@redhat.com>
4662
4663         * flow.c (life_analysis): Delete broken reg_label check.
4664
4665 2002-05-22  Richard Henderson  <rth@redhat.com>
4666
4667         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
4668         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
4669
4670 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
4671
4672         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
4673         (embed-bb.c): New rule.
4674         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
4675         * config/sh/embed_bb.c: Delete.
4676
4677 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
4678
4679         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
4680
4681 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
4682
4683         * config/h8300/h8300.md (*andorqi3): New.
4684
4685 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4686
4687         PR preprocessor/6517
4688         * Makefile.in: Update.
4689         * c-common.c (c_common_post_options): Add preprocessor
4690         errors to the error count.
4691         * c-lang.c (c_post_options): Kill.
4692         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4693         * hooks.h: Add header guards.
4694         * langhooks-def.h: Include hooks.h.
4695         (LANG_HOOKS_POST_OPTIONS): Update.
4696         * langhooks.h (struct lang_hooks): Update post_options.
4697         * toplev.c (parse_options_and_default_flags): Update.
4698 objc:
4699         * objc-lang.c (objc_post_options): Kill.
4700         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4701
4702 2002-05-21  Bruce Korb  <bkorb@gnu.org>
4703
4704         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
4705         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
4706         * fixinc/fixincl.x: regen.
4707
4708 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
4709
4710         * cfgbuild.c: Fix formatting.
4711         * cfg.c: Likewise.
4712         * cfgcleanup.c: Likewise.
4713         * cfglayout.c: Likewise.
4714         * cfgloop.c: Likewise.
4715         * cfgrtl.c: Likewise.
4716
4717 2002-05-21  Richard Henderson  <rth@redhat.com>
4718
4719         * c-common.h (enum rid): Add RID_THREAD.
4720         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
4721         (grokdeclarator): Grok __thread.
4722         * c-parse.in (reswords): Add __thread.
4723         (rid_to_yy): Add RID_THREAD.
4724
4725         * tree.h (DECL_THREAD_LOCAL): New.
4726         (struct tree_decl): Add thread_local_flag.
4727         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
4728         * tree.c (staticp): TLS variables are not static.
4729
4730         * target-def.h (TARGET_HAVE_TLS): New.
4731         * target.h (have_tls): New.
4732         * output.h (SECTION_TLS): New.
4733         * varasm.c (assemble_variable): TLS variables can't be common for now.
4734         (default_section_type_flags): Handle .tdata and .tbss.
4735         (default_elf_asm_named_section): Handle SECTION_TLS.
4736         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
4737
4738         * flags.h (flag_tls_default): Declare.
4739         * toplev.c (flag_tls_default): Define.
4740         (display_help): Display help for it.
4741         (decode_f_option): Set it.
4742
4743         * doc/extend.texi (Thread-Local): New node describing language-level
4744         thread-local storage.
4745         * doc/invoke.texi (-ftls-model): Document.
4746
4747         * fixinc/inclhack.def (thread_keyword): New.
4748         * fixinc/fixincl.x: Rebuild.
4749
4750 2002-05-21  Jeffrey A Law  <law@redhat.com>
4751
4752         * optabs.c (expand_binop): For double-word integer multiplies,
4753         do not compute intermediate results into something that is
4754         not a register (such as a SUBREG or MEM).
4755
4756         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
4757         (ix86_sched_reorder): Make sure to initialize scheduling
4758         data even when there's only one insn in the ready queue.
4759
4760 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
4761
4762         * genautomata.c (reserv_sets_hash_value): Fix a typo.
4763
4764 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
4765
4766         * genautomata.c (reserv_sets_hash_value): Define hash_value as
4767         set_el_t.  Transform the hash value into unsigned.
4768         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
4769         (transform_3): Add code to process `(A,B)+(D,E)'.
4770
4771 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
4772
4773         * reload1.c (do_output_reload): Run delete_output_reload
4774         only if optimizing.
4775
4776 2002-05-21  Roger Sayle  <roger@eyesopen.com>
4777
4778         PR middle-end/6600
4779         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
4780         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
4781         (can_store_by_pieces): ... and here to limit the largest mode used.
4782         Add a comment to document this function.
4783
4784 2002-05-21  Richard Henderson  <rth@redhat.com>
4785
4786         * flow.c (life_analysis): Fix test for deleted label.
4787
4788 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4789
4790         * doc/tm.texi: Fix typo.
4791
4792 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
4793
4794         * c-common.c (c_common_init): Set options->unsigned_char from
4795         flag_signed_char.
4796         (cb_register_builtins): Define __STRICT_ANSI__ and
4797         __CHAR_UNSIGNED__ here...
4798         * cppinit.c (init_builtins): Not here.
4799         (cpp_create_reader): unsigned_char option defaults to 0, not
4800         !DEFAULT_SIGNED_CHAR.
4801         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
4802         and -funsigned-char.
4803
4804         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
4805         * cpphash.c (_cpp_init_hashtable): Don't set it.
4806         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
4807         directly.  Clarify comment.
4808
4809 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4810
4811         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
4812         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
4813         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
4814         BASIC_BLOCK (n_basic_blocks - 1).
4815         * cfganal.c (can_fallthru, flow_call_edges_add,
4816         flow_preorder_transversal_compute): Too.
4817         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
4818         find_sub_basic_blocks): Too.
4819         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
4820         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
4821         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
4822         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
4823         * combine.c (this_basic_block): Type changed to basic_block.
4824         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
4825         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4826         get_last_value, distribute_notes, distribute_links): Too.
4827         * final.c (compute_alignments): Too.
4828         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
4829         * function.c (thread_prologue_and_epilogue_insns): Too.
4830         * gcse.c (compute_code_hoist_vbeinout): Too.
4831         * global.c (build_insn_chain): Too.
4832         * ifcvt.c (find_if_block, find_cond_trap): Too.
4833         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
4834         * regmove.c (regmove_optimize): Too.
4835         * resource.c (find_basic_block): Too.
4836         * sched-ebb.c (schedule_ebbs): Too.
4837         * ssa-dce.c (find_control_dependence, find_pdom): Too.
4838
4839 2002-05-21  Andreas Jaeger  <aj@suse.de>
4840
4841         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
4842
4843 2002-05-21  Richard Henderson  <rth@redhat.com>
4844
4845         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
4846         unspec names, not numbers.
4847
4848 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4849
4850         * doc/sourcebuild.texi: Mention snapshot-README and
4851         snapshot-index.html as needing updating for new front ends.
4852
4853 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4854
4855         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
4856         disabling checking, and avoid multiple evaluation of RTX.
4857
4858 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
4859
4860         * bitmap.c (bitmap_find_bit): Return early if we have the correct
4861         element cached.
4862
4863 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
4864
4865         * profile.c (gen_edge_profiler):  Set alias set before the memory is
4866         used.
4867
4868 2002-05-20  David S. Miller  <davem@redhat.com>
4869
4870         * cselib.c (max_value_regs): New.
4871         (cselib_lookup, cselib_invalidate_regno): Initialize it when
4872         adding new entries to the REG_VALUES table and we are dealing with
4873         a hard register.
4874         (clear_table): Initialize it.
4875         (cselib_invalidate_regno): Use it to determine which hard
4876         registers to scan when mode is not VOIDmode.
4877
4878 2002-05-20  Duraid Madina   <duraid@fl.net.au>
4879
4880         * tradcpp.c (fixup_newlines): Use old-style function header.
4881
4882 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
4883
4884         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
4885
4886 2002-05-20  H.J. Lu  (hjl@gnu.org)
4887
4888         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
4889
4890         * config/mips/mips.h (DFMODE_NAN): Defined.
4891         (SFMODE_NAN): Likewise.
4892
4893 2002-05-20  Dale Johannesen  <dalej@apple.com>
4894
4895         * combine.c (cant_combine_insn_p):  Back out my
4896         previous patch.
4897
4898 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
4899
4900         * params.c: Fix formatting.
4901         * params.h: Likewise.
4902         * predict.c: Likewise.
4903         * prefix.c: Likewise.
4904         * print-rtl.c: Likewise.
4905         * print-tree.c: Likewise.
4906         * profile.c: Likewise.
4907
4908 2002-05-20  H.J. Lu  (hjl@gnu.org)
4909
4910         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
4911
4912 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
4913
4914         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
4915         switches straight on to the assembler, do not abbreviate them.
4916         * config/arm/elf.h (ASM_SPEC): As above.
4917         * config/arm/semi.h (ASM_SPEC): As above.
4918         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
4919         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
4920         -mcpu=xscale on to the assembler by default.
4921         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
4922
4923 2002-05-20  Richard Henderson  <rth@redhat.com>
4924
4925         * cse.c (canon_hash): Reorder do_not_record test.  Always
4926         allow pic_offset_table_rtx.
4927
4928 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
4929
4930         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
4931         (expand_binop): Ditto (3 times).
4932
4933 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
4934
4935         * Makefile.in (distclean): Remove QMTest stuff.
4936         (QMTEST_PATH): New variable.
4937         (QMTESTFLAGS): Likewise.
4938         (QMTESTRUNFLAGS): Likewise.
4939         (QMTEST): Likewise.
4940         (QMTEST_GPP_TESTS): Likewise.
4941         (QMTEST_DIR): Likewise.
4942         (QMTEST_DIR/context): New target.
4943         (qmtest-g++): Likeise.
4944         (qmtest-gui): Likewise.
4945         (QMTEST_DIR/gpp-expected.qmr): Likewise.
4946
4947 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
4948
4949         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
4950         an altivec register if TARGET_ALTIVEC.
4951
4952         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
4953         to ALTIVEC_VECTOR_MODE.
4954         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
4955         (rs6000_va_arg): Vectors may go in registers if they are not
4956         altivec vectors.
4957
4958 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
4959
4960         * protoize.c: Fix formatting.
4961
4962 2002-05-19  Richard Henderson  <rth@redhat.com>
4963
4964         * gensupport.c (init_include_reader): Merge into ...
4965         (process_include): ... here.  Simplify composite path creation.
4966         Plug memory leaks.  Fix file/line number tracking.  Do not
4967         process_define_cond_exec.  Return void.
4968         (process_rtx): Don't check process_include return value.
4969
4970 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4971
4972         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
4973         fields.
4974         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4975         traversing basic block chain.
4976         (create_basic_block_structure, create_basic_block): Declaration changed.
4977         (link_block, unlink_block): Declare.
4978         * cfg.c (entry_exit_blocks): Initialize new fields.
4979         (link_block, unlink_block): New.
4980         (expunge_block_nocompact): Unlink basic block.
4981         (dump_flow_info): Print prev_bb/next_bb fields.
4982         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
4983         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
4984         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
4985         * cfgrtl.c (create_basic_block_structure, create_basic_block,
4986         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
4987         (verify_flow_info): Check that list agrees with numbering.
4988
4989 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4990
4991         * c-common.c (preprocessing_asm): New macro.
4992         * c-lex.h (builtin_define, builtin_assert): Use pfile.
4993 doc:
4994         * tm.texi: Update.
4995 config/alpha:
4996         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
4997         (CPP_SPEC): Simplify.
4998         (TARGET_CPU_CPP_BUILTINS): Update.
4999         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
5000         (CPP_SPEC): Simplify.
5001         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
5002         (TARGET_OS_CPP_BUILTINS): Update.
5003         * osf.h (CPP_XFLOAT_SPEC): Kill.
5004         (TARGET_OS_CPP_BUILTINS): Update.
5005         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
5006         * osf5.h (CPP_XFLOAT_SPEC): Kill.
5007         * vms.h (CPP_SUBTARGET_SPEC): Kill.
5008         (TARGET_OS_CPP_BUILTINS): Update.
5009
5010 2002-05-19  Richard Henderson  <rth@redhat.com>
5011
5012         * varasm.c (default_binds_local_p): Fix typo.
5013
5014 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5015
5016         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
5017         CONST_INT operand to the correct mode after adding 1 to it.
5018
5019 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
5020
5021         * config.gcc (powerpc-wrs-windiss*): New target.
5022
5023 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5024
5025         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
5026         (ashrdi3): Use it.
5027
5028 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
5029
5030         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
5031         alphasort.
5032         * config.in: Regenerated.
5033         * configure: Regenerated.
5034
5035 2002-05-19  Richard Henderson  <rth@redhat.com>
5036
5037         * target-def.h (TARGET_BINDS_LOCAL_P): New.
5038         * target.h (struct gcc_target): Move boolean fields to the end.
5039         Add binds_local_p.
5040         * varasm.c (default_binds_local_p): New.
5041         * output.h: Declare it.
5042
5043         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
5044         * config/cris/cris.c (cris_encode_section_info): Likewise.
5045         * config/i386/i386.c (i386_encode_section_info): Likewise.
5046         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
5047         * config/sh/sh.c (sh_encode_section_info): Likewise.
5048
5049         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
5050         (TARGET_BINDS_LOCAL_P): New.
5051
5052 2002-05-19  Richard Henderson  <rth@redhat.com>
5053
5054         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
5055         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
5056         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
5057
5058         * toplev.c (display_help): Kill -a -ax help.
5059
5060         * config/1750a/1750a.h, config/alpha/alpha.h,
5061         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
5062         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
5063         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
5064         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
5065
5066         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
5067         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
5068
5069         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
5070         (ix86_output_function_block_profiler): Kill.
5071         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
5072         (m68hc11_function_block_profiler): Kill.
5073         * config/m68hc11/m68hc11-protos.h: Update.
5074         * config/m88k/m88k.c (output_block_profiler): Kill.
5075         (output_function_block_profiler): Kill.
5076         * config/m88k/m88k-protos.h: Update.
5077
5078 2002-05-19  Richard Henderson  <rth@redhat.com>
5079
5080         * system.h (STRIP_NAME_ENCODING): Poison it.
5081         * output.h (STRIP_NAME_ENCODING): Remove.
5082         (default_strip_name_encoding): Declare.
5083         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
5084         * target.h (strip_name_encoding): New.
5085         * varasm.c (default_strip_name_encoding): New.
5086
5087         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
5088         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
5089         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
5090         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
5091         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
5092         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
5093         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
5094         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
5095         config/v850/v850.h: Use the hook, not the macro.
5096
5097         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
5098         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
5099         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
5100         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
5101         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
5102         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
5103         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
5104         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
5105         config/v850/v850.c, config/v850/v850.h:
5106         Move STRIP_NAME_ENCODING to out-of-line function and add
5107         TARGET_STRIP_NAME_ENCODING.
5108
5109         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
5110         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
5111         with TARGET_STRIP_NAME_ENCODING referencing existing function;
5112         make function static.
5113
5114         * xcoffout.c: Include target.h
5115         * Makefile.in (xcoffout.o): Update.
5116
5117         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
5118         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
5119         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
5120         reloc argument unused.
5121         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
5122
5123         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
5124         STRIP_NAME_ENCODING docs.
5125
5126 2002-05-19  Andreas Jaeger  <aj@suse.de>
5127
5128         * gengenrtl.c: Add prototype for excluded_rtx.
5129
5130         * real.h: Add prototype for exact_real_truncate.
5131
5132 2002-05-18  Richard Henderson  <rth@redhat.com>
5133
5134         * system.h (ENCODE_SECTION_INFO): Poison it.
5135         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
5136         * target.h (encode_section_info): New.
5137         * varasm.c (make_decl_rtl, output_constant_def): Use it.
5138         * hooks.c (hook_tree_int_void): New.
5139         * hooks.h: Declare it.
5140
5141         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
5142         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
5143         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
5144         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
5145         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
5146         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
5147         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
5148         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
5149         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
5150         config/mcore/mcore-protos.h, config/mcore/mcore.c,
5151         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
5152         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
5153         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
5154         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
5155         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
5156         referencing existing function.  Make function static.
5157
5158         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
5159         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
5160         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
5161         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
5162         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
5163         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
5164         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
5165         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
5166         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
5167         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
5168         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
5169         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
5170         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
5171         Move ENCODE_SECTION_INFO to out-of-line function and add
5172         TARGET_ENCODE_SECTION_INFO.
5173
5174         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
5175         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5176
5177         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
5178         from SUBTARGET_*
5179         (switch_to_section): Replace in_rdata case with in_readonly_data.
5180
5181         * config/h8300/h8300.c (h8300_encode_label): Make static.
5182         * config/h8300/h8300-protos.h: Update.
5183
5184         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
5185         from rs6000_encode_section_info; make static.
5186         (rs6000_xcoff_encode_section_info): New.
5187
5188         * config/v850/v850.c (v850_encode_data_area): Make static.
5189         * config/v850/v850-protos.h: Update.
5190
5191         * config/vax/vax.c: Include flags.h.
5192         (vms_select_section): Fix typo.
5193
5194         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
5195         ENCODE_SECTION_INFO docs.
5196
5197 2002-05-18  Richard Henderson  <rth@redhat.com>
5198
5199         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
5200         REGISTER_TARGET_PRAGMAS.
5201         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
5202
5203         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
5204
5205 2002-05-18  Richard Henderson  <rth@redhat.com>
5206
5207         * system.h (SELECT_RTX_SECTION): Poison.
5208         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
5209         * target.h (select_rtx_section): New.
5210         * varasm.c (output_constant_pool): Use it.
5211         (default_select_rtx_section, default_elf_select_rtx_section): New.
5212         * output.h: Declare them.
5213
5214         * config/darwin.h (SELECT_RTX_SECTION): Move ...
5215         * config/darwin.c (machopic_select_rtx_section): ... here.
5216         * config/darwin-protos.h: Update.
5217
5218         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
5219         * config/nextstep.c (machopic_select_rtx_section): ... here.
5220         (nextstep_select_section): Rename variable to avoid macro clash.
5221         * config/nextstep-protos.h: Update.
5222
5223         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
5224         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
5225         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
5226         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
5227         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
5228         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
5229         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
5230         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
5231         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
5232         (SELECT_RTX_SECTION): Remove.
5233
5234         * config/darwin.h, config/elfos.h, config/nextstep.h,
5235         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
5236         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
5237         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
5238         config/sparc/lynx.h, config/xtensa/xtensa.c
5239         (TARGET_ASM_SELECT_RTX_SECTION): New.
5240
5241         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
5242         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
5243         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
5244         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
5245         (ia64_aix_select_rtx_section): New.
5246         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
5247         redefining.
5248         * config/mips/mips.c (mips_select_rtx_section): Make static.
5249         Support ELF SHF_MERGE features.
5250         * config/mips/mips-protos.h: Update.
5251         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
5252         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
5253         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
5254         make static, fall back to default_elf_select_rtx_section.
5255         * config/rs6000/rs6000-protos.h: Update.
5256         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
5257         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
5258         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
5259         * config/romp/romp.c (romp_select_rtx_section): New.
5260         * config/s390/s390.c (s390_select_rtx_section): New.
5261         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
5262         declarations before target macro definition.
5263         (xtensa_emit_call): Use static buffer.
5264         (xtensa_select_rtx_section): New.
5265         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
5266         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
5267         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
5268
5269         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
5270         SELECT_RTX_SECTION docs.
5271
5272 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
5273
5274         * i386.md (movsi/movdi): Fix template.
5275         (sse2 patterns): Set attributes consistently.
5276
5277         * i386.md (pushqi2, ashrqi_*): Fix constraint.
5278
5279 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
5280
5281         * optabs.c (complex_part_zero_p): New.
5282         * (expand_cmplxdiv_straight): Use it.
5283         * (expand_cmplxdiv_wide): Ditto.
5284         * (expand_binop): Ditto.
5285
5286 2002-05-18  Richard Henderson  <rth@redhat.com>
5287
5288         * final.c (HAVE_READONLY_DATA_SECTION): New.
5289         (shorten_branches): Use it instead of ifdefs.
5290         * varasm.c (enum in_section): Add in_readonly_data.
5291         (text_section, data_section): Tidy.
5292         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
5293
5294         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
5295         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
5296         (READONLY_DATA_SECTION): Don't undef.
5297
5298         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
5299         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
5300         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
5301
5302         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
5303         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
5304         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
5305         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
5306
5307         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
5308         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
5309         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
5310         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
5311         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
5312         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
5313         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
5314         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
5315         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
5316
5317         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
5318         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
5319         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
5320         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
5321         config/pa/pa64-hpux.h, config/sparc/litecoff.h
5322         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
5323
5324         * config/elfos.h, config/netware.h, config/svr3.h,
5325         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
5326         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
5327         config/h8300/h8300.h, config/i386/i386-interix.h,
5328         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
5329         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
5330
5331         * config/elfos.h, config/netware.h, config/svr3.h,
5332         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
5333         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
5334         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
5335         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
5336
5337         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
5338         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
5339         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
5340         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
5341         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
5342         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
5343         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
5344         config/rs6000/sysv4.h, config/v850/v850.h
5345         (EXTRA_SECTIONS): Remove in_const/in_rdata.
5346         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
5347
5348         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
5349         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
5350         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
5351         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
5352         * config/alpha/alpha.c (alpha_start_function): Likewise.
5353         (alpha_write_linkage): Likewise.
5354         * config/m32r/m32r.c (m32r_select_section): Likewise.
5355         * config/m88k/m88k.c (m88k_select_section): Likewise.
5356         * config/mips/mips.c (mips_select_rtx_section): Likewise.
5357         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
5358         (rs6000_elf_select_section): Likewise.
5359         * config/v850/v850.c (v850_select_section): Likewise.
5360
5361         * config/1750a/1750a.h, config/i860/sysv3.h
5362         (READONLY_DATA_SECTION_ASM_OP): New.
5363         READONLY_DATA_SECTION_ASM_OP.
5364         * config/i386/interix.c, config/i386/winnt.c
5365         (i386_pe_unique_section): Always use .rdata prefix.
5366         * config/pa/som.h (readonly_data): Always switch to read-only section.
5367         (READONLY_DATA_SECTION): Predicate on flag_pic.
5368         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
5369         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
5370         (READONLY_DATA_SECTION): Update.
5371
5372 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
5373
5374         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
5375         is used without -Wformat.
5376         * c-common.h (warn_format_zero_length): Declare extern.
5377         * c-decl.c (warn_options): Add "format-zero-length".
5378         * c-format.c (warn_format_zero_length): Declare.
5379         (set_Wformat): Set warn_format_zero_length for -Wformat.
5380         (check_format_info): Only warn about zero-length formats if
5381         warn_format_zero_length is true.  Include the format type
5382         name in the warning message.
5383         * doc/invoke.texi: Document -Wformat-zero-length.
5384         * testsuite/gcc.dg/format/zero-length-1.c: New test.
5385
5386 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
5387
5388         * timevar.c: Fix formatting.
5389         * tlink.c: Likewise.
5390         * toplev.c: Likewise.
5391         * tree-dump.c: Likewise.
5392         * tree-inline.c: Likewise.
5393
5394 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5395
5396         * cppinit.c (cpp_post_options): If preprocessed, turn off
5397         traditional.  If traditional, turn off column numbers.
5398         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
5399         * cpptrad.c (handle_newline): Update line_base.
5400         (skip_comment): Handle -Wcomment.
5401
5402 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
5403
5404         * cppinit.c (struct builtin): Remove unused fields.
5405         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
5406         (operator_array): New - was second half of builtin_array.
5407         (init_builtins): Simplify loop over builtin_array/operator_array.
5408
5409 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5410
5411         * defaults.h (UNIQUE_SECTION): Remove.
5412         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
5413
5414 2002-05-17  Richard Henderson  <rth@redhat.com>
5415
5416         * expr.c (init_expr_once): Don't use start/end_sequence.
5417         Use rtx_alloc instead of emit_insn.
5418         * toplev.c (lang_dependent_init): Run init_expr_once here ...
5419         (lang_independent_init): ... not here.
5420
5421 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
5422
5423         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
5424
5425 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5426
5427         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
5428         for fixed registers, possibly used for global register variables.
5429         (initial_elimination_offset, avr_output_function_prologue,
5430         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
5431
5432 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5433
5434         * Makefile.in: Update for cpptrad.c.
5435         * cpphash.h (struct cpp_buffer): New members for buffer
5436         overlays.
5437         (struct cpp_reader): New members for traditional output.
5438         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
5439         * cppinit.c (cpp_create_reader): Set trad_line.
5440         (cpp_destroy): Free trad_out_base if used.
5441         (cpp_read_main_file): Overlay an empty buffer if traditional.
5442         (cpp_finish_options): Don't do builtins.
5443         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
5444         (cpp_handle_option): Handle it.
5445         * cpplex.c (continue_after_nul): New.
5446         (_cpp_lex_direct): Use handle_nul.
5447         * cpplib.h (struct cpp_options): New traditional option.
5448         * cpptrad.c: New file.
5449
5450 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5451
5452         * c-common.c (c_common_init_options): Use C89 for Objective-C,
5453         and set the options flag.
5454         * cppinit.c (lang_flags): Remove objc.
5455         (lang_defaults): Remove OBJC and OBJCXX.
5456         (set_lang): Update.
5457         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
5458         (cpp_handle_option): Remove -+ and -lang-objc++.
5459         For ObjC, just set a flag.
5460         (print_help): Update.
5461         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
5462
5463 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5464
5465         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
5466         bootstrap with -mips3.
5467
5468 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
5469
5470         * final.c: Fix formatting.
5471         * fix-header.c: Likewise.
5472         * flow.c: Likewise.
5473         * fold-const.c: Likewise.
5474         * function.c: Likewise.
5475
5476 2002-05-17  David S. Miller  <davem@redhat.com>
5477
5478         PR c/6689, PR optimization/6615
5479         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
5480         and make it a pointer to rtx.  Update comments.
5481         (update_equiv_regs): When scanning for equivalences, record
5482         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
5483         it while making the equiv replacements.
5484
5485 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5486
5487         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
5488
5489 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
5490
5491         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
5492         when encoding visibility into SYMBOL_REF_FLAG.
5493
5494 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
5495
5496         * expr.c (force_operand): Fix reversed move.
5497
5498 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
5499
5500         * doc/install.texi (Testing): Mention two common DejaGnu warnings
5501         that can be ignored.
5502
5503 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5504
5505         * doc/install.texi (Final install): Recommend to install into a
5506         "clean" target directory.
5507
5508 2002-05-17  Richard Henderson  <rth@redhat.com>
5509
5510         * config/ia64/ia64.md: Use braced strings instead of quoted strings
5511         for code blocks.  Tidy whitespace.
5512
5513 2002-05-17  Richard Henderson  <rth@redhat.com>
5514
5515         * hooks.c (hook_tree_bool_false): New.
5516         * hooks.h: Declare it.
5517         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
5518         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
5519         * target.h (select_section, unique_section): New.
5520         (in_small_data_p): New.
5521         * varasm.c (resolve_unique_section): Use hooks instead of macros.
5522         (variable_section, output_constant_def_contents): Likewise.
5523         (default_select_section, default_unique_section): New.
5524         (categorize_decl_for_section, default_elf_select_section): New.
5525         * output.h: Declare them.
5526
5527         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
5528         (TARGET_ASM_SELECT_SECTION): New.
5529         (SELECT_SECTION): Move ...
5530         * config/darwin.c (machopic_select_section): ... here.
5531         * config/darwin-protos.h: Update.
5532
5533         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
5534         (SELECT_SECTION): Move ...
5535         * config/nextstep.c (nextstep_select_section): ... here.
5536         * config/nextstep-protos.h: Update.
5537
5538         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
5539         (TARGET_ASM_SELECT_SECTION): New.
5540         * config/svr3.h (SELECT_SECTION): Remove.
5541
5542         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
5543         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
5544         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
5545         (alpha_encode_section_info): Use it.
5546         * config/alpha/alpha-protos.h: Update.
5547         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
5548         (SELECT_SECTION, UNIQUE_SECTION): Remove.
5549         (TARGET_ASM_SELECT_SECTION): New.
5550         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
5551
5552         * config/arm/pe.h (UNIQUE_SECTION): Remove.
5553         (TARGET_ASM_UNIQUE_SECTION): New.
5554
5555         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
5556         (avr_unique_section): Rename from unique_section; make static.
5557         * config/avr/avr-protos.h: Update.
5558         * config/avr/avr.h (UNIQUE_SECTION): Remove.
5559
5560         * config/c4x/c4x.h (SELECT_SECTION): Remove.
5561
5562         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
5563         (TARGET_ASM_UNIQUE_SECTION): New.
5564         * config/i386/i386-interix.h: Likewise.
5565         * config/i386/win32.h: Likewise.
5566         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
5567         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
5568         * config/i386/sco5.h (SELECT_SECTION): Remove.
5569         (TARGET_ASM_SELECT_SECTION): New.
5570         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
5571
5572         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
5573         instead of SELECT_SECTION.
5574         * config/m68k/dpx2.h: Likewise.
5575         * config/rs6000/lynx.h: Likewise.
5576
5577         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
5578         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
5579         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
5580         (ia64_in_small_data_p): New.
5581         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
5582         (ia64_aix_select_section, ia64_aix_unique_section): New.
5583         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
5584         (SELECT_SECTION, UNIQUE_SECTION): Remove.
5585
5586         * config/m32r/m32r.h (SELECT_SECTION): Remove.
5587         (TARGET_ASM_SELECT_SECTION): New.
5588         * config/m32r/m32r.c (m32r_select_section): Take align argument.
5589         * config/m32r/m32r-protos.h: Update.
5590
5591         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
5592         (SELECT_SECTION): Move ...
5593         * config/m88k/m88k.c (m88k_select_section): ... here.
5594
5595         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
5596         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
5597         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
5598         (mcore_unique_section): Make static.
5599         * config/mcore/mcore-protos.h: Update.
5600
5601         * config/mips/elf.h (UNIQUE_SECTION): Remove.
5602         (TARGET_ASM_UNIQUE_SECTION): New.
5603         * config/mips/elf64.h: Likewise.
5604         * config/mips/iris6gld.h: Likewise.
5605         * config/mips/linux.h: Likewise.
5606         * config/mips/mips-protos.h: Update.
5607         * config/mips/mips.c (mips_select_section): Add align argument.
5608         * config/mips/mips.h (SELECT_SECTION): Remove.
5609         (TARGET_ASM_SELECT_SECTION): New.
5610
5611         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
5612         * config/mmix/mmix.c (mmix_select_section): Remove.
5613         (mmix_unique_section): Remove.
5614         * config/mmix/mmix-protos.h: Update.
5615
5616         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
5617         (SELECT_SECTION): Move ...
5618         * config/pa/pa.c (pa_select_section): ... here.
5619         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
5620
5621         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
5622         from rs6000_select_section and make static.
5623         (rs6000_elf_unique_section): Similarly.
5624         (rs6000_xcoff_select_section): From xcoff.h.
5625         (rs6000_xcoff_unique_section): Likewise.
5626         * config/rs6000/rs6000-protos.h: Update.
5627         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
5628         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
5629         * config/rs6000/xcoff.h: Likewise.
5630
5631         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
5632         (SELECT_SECTION): Move ...
5633         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
5634
5635         * config/v850/v850.h (SELECT_SECTION): Move ...
5636         * config/v850/v850.c (v850_select_section): ... here.
5637         (TARGET_ASM_SELECT_SECTION): New.
5638
5639         * config/vax/vms.h (SELECT_SECTION): Move ...
5640         * config/vax/vax.c (vms_select_section): ... here.
5641         (TARGET_ASM_SELECT_SECTION): New.
5642
5643         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
5644         for the target hooks.
5645
5646 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
5647
5648         * config/arm/arm.c (emit_multi_reg_push): Do not set
5649         RTX_FRAME_RELATED_P on the SEQUENCE.
5650
5651 2002-05-16  Richard Henderson  <rth@redhat.com>
5652
5653         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
5654         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
5655
5656 2002-05-16  Richard Henderson  <rth@redhat.com>
5657
5658         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
5659
5660         * config/ia64/ia64.c (saveable_obstack): Do not declare.
5661
5662 2002-05-16  Richard Henderson  <rth@redhat.com>
5663
5664         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
5665         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
5666         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
5667         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
5668         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
5669         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
5670         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
5671         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
5672         Revert "Basic block renumbering removal", and two followup patches.
5673
5674 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
5675
5676         * lcm.c (optimize_mode_switching): Revert previous change.
5677
5678 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5679
5680         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
5681         with only extant block numbers.
5682
5683 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
5684
5685         * lcm.c (optimize_mode_switching): Fix typo.
5686
5687 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5688
5689         * flow.c (calculate_global_regs_live): Queue blocks in program order.
5690
5691 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5692
5693         * doc/install.texi (Configuration): Document PWDCMD.
5694
5695 2002-05-16  Dale Johannesen  <dalej@apple.com>
5696
5697         * combine.c (cant_combine_insn_p):  Reenable combinations
5698         involving hard regs unless CLASS_LIKELY_SPILLED_P.
5699
5700 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5701
5702         * c-common.c (cb_register_builtins): Handle more built-ins
5703         here rather than in gcc.c specs.
5704         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
5705         (cpp_options): Pass -O flags even when only preprocessing.
5706         * toplev.c (set_fast_math_flags): New prototype.
5707         (fast_math_flags_set_p): New.
5708         (set_no_fast_math_flags): Remove.
5709         (decode_f_option): Update.
5710         * toplev.h (set_fast_math_flags): Update.
5711         (fast_math_flags_set_p): New.
5712         (set_no_fast_math_flags): Remove.
5713 config:
5714         * c4x/c4x.c (c4x_override_options): Update.
5715
5716 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
5717
5718         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
5719         Default-define here.
5720         (builtin_define_with_value): Can now wrap the expansion in
5721         quotation marks if such is wanted.
5722         (cb_register_builtins): Update calls to builtin_define_with_value.
5723         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
5724         here.
5725         (c_common_init): Set options->stdc_0_in_system_headers.
5726         * c-lex.h: Update prototype of builtin_define_with_value.
5727         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
5728         and REGISTER_PREFIX.
5729
5730         * cppinit.c (VERS, ULP, C, X): Kill.
5731         (builtin_array): Remove entries for __VERSION__,
5732         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
5733         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
5734         a constant.
5735         (init_builtins): Kill off a bunch of now-dead code.
5736         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
5737         -fno-leading-underscore.
5738         (cpp_handle_option): Remove code to set user_label_prefix.
5739         (cpp_post_options): Likewise.
5740
5741         * cpplib.h (struct cpp_options): Remove user_label_prefix.
5742         (stdc_0_in_system_headers): New.
5743         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
5744         stdc_0_in_system_headers) too to decide the value of __STDC__.
5745
5746         * tradcpp.c (user_label_prefix): Kill.
5747         (main): Remove code handling -f(no-)leading-underscore.
5748         (initialize_builtins): Don't define __REGISTER_PREFIX__
5749         or __USER_LABEL_PREFIX__.
5750         (install_value): Wrap compound statement in dummy loop so the
5751         macro works properly in an if statement.
5752
5753
5754 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
5755
5756         * loop.h (struct loop_info): Add member has_prefetch.
5757         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
5758         (prescan_loop): Initialize has_prefetch.
5759         (struct prefetch_info): Change prefetch_in_loop and
5760         prefetch_before_loop from bit fields to ints.
5761         (emit_prefetch_instructions): Several small fixes.
5762         (check_dbra_loop): Don't reverse loop that uses prefetch.
5763
5764 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5765
5766         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
5767         * configure.in: Likewise.
5768         * fixinc/check.tpl: Likewise.
5769         * fixinc/fixinc.dgux: Likewise.
5770         * fixinc/fixinc.svr4: Likewise.
5771         * fixinc/fixinc.winnt: Likewise.
5772         * fixinc/fixincl.sh: Likewise.
5773         * fixproto: Likewise.
5774         * configure: Regenerate.
5775
5776 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5777
5778         Basic block renumbering removal:
5779         * basic_block.h (struct basic_block_def): Renamed index to sindex,
5780         added prev_bb and next_bb fields.
5781         (n_basic_blocks): Renamed to num_basic_blocks.
5782         (last_basic_block): New, index of last basic block.
5783         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
5784         traversing basic block chain.
5785         (BLOCK_NUM): index -> sindex.
5786         (create_basic_block_structure, create_basic_block): Declaration changed.
5787         (debug_num2bb): Declare.
5788         (expunge_block_nocompact): Declaration removed.
5789         (link_block, unlink_block, compact_blocks): Declare.
5790         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
5791         * cfg.c (entry_exit_blocks): Initialize new fields.
5792         (clear_edges, alloc_block, expunge_block, cached_make_edge,
5793         redirect_edge_pred, dump_flow_info, dump_edge_info,
5794         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
5795         free_aux_for_edges): Modified.
5796         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
5797         (expunge_block_nocompact): Removed.
5798         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
5799         find_unreachable_blocks, create_edge_list, print_edge_list,
5800         verify_edge_list, flow_edge_list_print, remove_fake_successors,
5801         remove_fake_edges, flow_reverse_top_sort_order_compute,
5802         flow_depth_first_order_compute, flow_preorder_transversal_compute,
5803         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
5804         flow_dfs_compute_reverse_execute): Modified.
5805         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
5806         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
5807         Modified.
5808         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5809         merge_blocks_move_predecessor_nojumps,
5810         merge_blocks_move_successor_nojumps, merge_blocks,
5811         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
5812         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
5813         * cfglayout.c (skip_insns_after_block, label_for_bb,
5814         record_effective_endpoints, scope_to_insns_finalize,
5815         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
5816         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
5817         cfg_layout_duplicate_bb): Modified.
5818         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
5819         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5820         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
5821         flow_loops_find, flow_loop_outside_edge_p): Modified.
5822         * cfgrtl.c (create_basic_block_structure, create_basic_block,
5823         flow_delete_block, compute_bb_for_insn, split_block,
5824         try_redirect_by_replacing_jump, redirect_edge_and_branch,
5825         force_nonfallthru_and_redirect, tidy_fallthru_edge,
5826         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
5827         commit_edge_insertions, commit_edge_insertions_watch_calls,
5828         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
5829         purge_all_dead_edges): Modified.
5830         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
5831         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
5832         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
5833         Modified.
5834         * conflict.c (conflict_graph_compute): Modified.
5835         * df.c (FOR_ALL_BBS): Removed.
5836         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
5837         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
5838         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
5839         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
5840         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
5841         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
5842         * final.c (compute_alignments, final_scan_insn): Modified.
5843         * flow.c (verify_local_live_at_start, update_life_info,
5844         update_life_info_in_dirty_blocks, free_basic_block_vars,
5845         delete_noop_moves, calculate_global_regs_live,
5846         initialize_uninitialized_subregs, allocate_bb_life_data,
5847         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
5848         mark_used_reg, count_or_remove_death_notes): Modified.
5849         * function.c (thread_prologue_and_epilogue_insns): Modified.
5850         * gcse.c (struct null_pointer_info): Change typo of current_block
5851         to basic_block.
5852         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
5853         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
5854         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
5855         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
5856         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
5857         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
5858         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
5859         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
5860         pre_delete, one_pre_gcse_pass, compute_transpout,
5861         invalidate_nonnull_info, delete_null_pointer_checks_1,
5862         free_code_hoist_mem, compute_code_hoist_vbeinout,
5863         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
5864         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
5865         compute_store_table, build_store_vectors, insert_insn_start_bb,
5866         insert_store, replace_store_insn, free_store_memory, store_motion):
5867         Modified.
5868         * global.c (global_alloc, global_conflicts, mark_elimination,
5869         build_insn_chain): Modified.
5870         * graph.c (print_rtl_graph_with_bb): Modified.
5871         * haifa-sched.c (sched_init): Modified.
5872         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
5873         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
5874         if_convert): Modified.
5875         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
5876         compute_insert_delete, pre_edge_lcm, compute_available,
5877         compute_farthest, compute_nearerout, compute_rev_insert_delete,
5878         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
5879         Modified.
5880         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
5881         * loop.c (loop_dump_aux): Modified.
5882         * predict.c (combine_predictions_for_insn, estimate_probability,
5883         last_basic_block_p, process_note_prediction, process_note_predictions,
5884         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
5885         expensive_function_p, estimate_bb_frequencies,
5886         compute_function_frequency): Modified.
5887         * print-rtl.c (print_rtx): Modified.
5888         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
5889         get_exec_counts, compute_branch_probabilities, compute_checksum,
5890         branch_prob, find_spanning_tree): Modified.
5891         * recog.c (split_all_insns, peephole2_optimize): Modified.
5892         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
5893         convert_regs_1, convert_regs_2, convert_regs): Modified.
5894         * regclass.c (scan_one_insn, regclass): Modified.
5895         * regmove.c (mark_flags_life_zones, regmove_optimize,
5896         combine_stack_adjustments): Modified.
5897         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
5898         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
5899         * reorg.c (dbr_schedule): Modified.
5900         * resource.c (find_basic_block, init_resource_info): Modified.
5901         * sbitmap.c (sbitmap_intersection_of_succs,
5902         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
5903         sbitmap_union_of_preds): Modified.
5904         * sched-deps.c (init_dependency_caches): Modified.
5905         * sched-ebb.c (schedule_ebbs): Modified.
5906         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
5907         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
5908         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
5909         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
5910         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
5911         ssa_const_prop): Modified.
5912         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
5913         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
5914         * ssa.c (remove_phi_alternative, find_evaluations,
5915         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
5916         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
5917         make_regs_equivalent_over_bad_edges,
5918         make_equivalent_phi_alternatives_equival,
5919         compute_conservative_reg_partition,
5920         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
5921         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
5922         Modified.
5923
5924 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
5925
5926         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
5927
5928 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
5929
5930         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
5931         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
5932         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
5933         calling CONSTANT_POOL_ADDRESS_P.
5934         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
5935         to decide whether to define __arm__ or __thumb.
5936         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
5937         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
5938
5939 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5940
5941         * config/arc/arc.h (CPP_PREDEFINES): Remove.
5942         (CPP_SPEC): Update.
5943         (TARGET_CPU_CPP_BUILTINS): New.
5944
5945 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5946
5947         * cpphash.h (cpp_macro): Move here, and make expansion a union.
5948         * cppmacro.c (cpp_macro): Remove.
5949         (enter_macro_context, replace_args, warn_of_redefinition,
5950         _cpp_create_definition, cpp_macro_definition): Update.
5951
5952 2002-05-16  Jason Merrill  <jason@redhat.com>
5953
5954         * config/mips/mips.c (mips_output_external): Don't do sdata
5955         optimization for a variable with DECL_COMDAT set.
5956
5957 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5958
5959         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
5960         Cleanups for accepting modifiers on pointers.
5961         Fix predicate typos.
5962         Allow long pointers as well as int pointers.
5963
5964 2002-05-15  Richard Henderson  <rth@redhat.com>
5965
5966         * varasm.c (merge_weak): Remove special case for extern and common.
5967
5968 2002-05-15  Matt Hiller  <hiller@redhat.com>
5969
5970         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
5971         XFAILing.
5972         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
5973         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
5974         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
5975         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
5976         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
5977         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
5978
5979 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5980
5981         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
5982
5983 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5984
5985         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
5986         ("altivec_mfvscr"): Read from VSCR.
5987
5988         Add vscr sets for the following insns: altivec_vctuxs,
5989         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
5990         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
5991         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
5992         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
5993         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
5994         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
5995         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
5996         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
5997         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
5998         altivec_vsum2sws, altivec_vsumsws.
5999
6000         * config/rs6000/rs6000.h: Add VSCR fixed register.
6001         (CALL_REALLY_USED_REGISTERS): Add vscr.
6002         (CALL_USED_REGISTERS): Same.
6003         (FIXED_REGISTERS): Same.
6004         (REG_ALLOC_ORDER): Same.
6005         (reg_class): Add VSCR_REGS.
6006         (REG_CLASS_NAMES): Same.
6007         (REG_CLASS_CONTENTS): Same.
6008         (VSCR_REGNO): New.
6009         (REGISTER_NAMES): Add vscr.
6010         (DEBUG_REGISTER_NAMES): Same.
6011         (ADDITIONAL_REGISTER_NAMES): Same.
6012         (FIRST_PSEUDO_REGISTER): Increment.
6013         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
6014
6015 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
6016
6017         * fold-const.c (fold): Fix a typo.
6018
6019 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
6020
6021         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
6022         comparison against the highest or lowest integer value before
6023         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
6024         transformation and that of an unsigned comparison against 0
6025         right after.
6026
6027 2002-05-15  Richard Henderson  <rth@redhat.com>
6028
6029         * varasm.c (merge_weak): Error for any weakening after definition.
6030         Adjust weakening after use warning to catch more cases.
6031         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
6032         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
6033
6034 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
6035
6036         * invoke.texi (-malign-double): Re-add lost warning.
6037
6038         * i386-protos.h (x86_output_mi_thunk): Declare.
6039         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
6040         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
6041
6042         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
6043         when flag_asynchronous_unwind_tables is set.
6044
6045         * flags.h (flag_reorder_functions): Declare.
6046         * function.c (prepare_function_start): Initialize frequnecy.
6047         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
6048         * Makefile.in (predict.o): Add dependency on target.h and params.h
6049         * defaults.h (HOT_TEXT_SECTION_NAME,
6050         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
6051         * predict.c (choose_function_section): New function.
6052         (estimate_bb_frequencies): Use it.
6053         * toplev.c (flag_reorder_functions): New global variable.
6054         (lang_independent_options): New.
6055         (parse_options_and_default_flags): Set.
6056         * varasm.c (assemble_start_function): Bypass functdion alignment
6057         for never executed functions.
6058         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
6059         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
6060         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
6061         Document.
6062
6063         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
6064
6065         * predict.c: Inlude profile.h
6066         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
6067         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
6068         Use the information about maximal counter in the program.
6069
6070         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
6071
6072         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
6073         probably_never_executed_bb_p): New functions.
6074         * cfgcleanup.c (outgoing_edges_match): Use them.
6075         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
6076         (maybe_hot_bb_p, probably_cold_bb_p,
6077         probably_never_executed_bb_p): New functions.
6078
6079         * function.h (function): Add new field function_frequency.
6080         * predict.c (compute_function_frequency): New function.
6081         (estimate_probability): Call it.
6082
6083 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
6084
6085         PR optimization/5172, optimization/5200
6086         * gcse.c (gcse_main): Disable store_motion.
6087
6088 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
6089
6090         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
6091         (c_common_nodes_and_builtins): Use it.
6092         (builtin_define_with_value): New function.
6093         (cb_register_builtins): Define __SIZE_TYPE__,
6094         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
6095         using builtin_define_with_value.  Use consistent notation when
6096         defining __GXX_WEAK__.
6097         (WCHAR_TYPE_SIZE): Don't redefine.
6098         (combine_strings): Don't use WCHAR_TYPE_SIZE.
6099
6100         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
6101         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
6102         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
6103         * tradcpp.c (initialize_builtins): Likewise.
6104         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
6105
6106         * c-lex.h (builtin_define_with_value): Prototype.
6107         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
6108         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
6109         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
6110
6111         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
6112         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
6113         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
6114         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
6115         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
6116         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
6117         config/sparc/sol2-bi.h, config/sparc/sparc.h:
6118         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
6119         to __SIZE_TYPE__ etc from all spec strings. When this makes
6120         extra specs empty, delete them.
6121
6122 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6123
6124         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
6125         for PA8000 or generating dwarf2 call frame information.
6126         (output_call): Remove DO_FRAME_NOTES check from return pointer
6127         optimization.
6128         (following_call): Return 0 when scheduling for PA8000 or generating
6129         dwarf2 call frame information.  Revise comment.
6130
6131 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6132
6133 config/alpha:
6134         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
6135         and __IEEE_FP_INEXACT as appropriate.
6136         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
6137         (CPP_SPEC): Remove ieee defines.
6138         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
6139
6140 2002-05-14  Richard Henderson  <rth@redhat.com>
6141
6142         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
6143         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
6144
6145 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6146
6147         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
6148         (CPP_SPEC): Update.
6149         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
6150         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
6151         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
6152         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
6153         (EXTRA_SPECS): Update.
6154         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
6155         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
6156         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
6157         define TARGET_OS_CPP_BUILTINS if necessary.
6158
6159 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6160
6161         * gcc.c (cpp_options): Must pass -m* and -f* options
6162         to the front end even when only preprocessing.
6163         (cc1_options): Remove redundant -lang-c.
6164         * tradcpp.c (main): Ignore -m options.
6165 objc:
6166         * lang-specs.h: Similarly.
6167
6168 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
6169
6170         * genautomata.c (transform_3): Add code for transformation
6171         `(A,B,...)+C -> A+C,B,...'.
6172
6173 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
6174
6175         * final.c (end_final): Do not output profile_arcs constructor, when
6176         no functions are instrumented.
6177
6178 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
6179
6180         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
6181
6182 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6183
6184         * doc/install.texi: Remove special markup originally required for
6185         HTML generation with texi2html.
6186
6187 2002-05-14  Andreas Schwab  <schwab@suse.de>
6188
6189         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
6190         SELECT_SECTION.
6191         (UNIQUE_SECTION): Define to get small data correctly.
6192
6193         * varasm.c (resolve_unique_section): Add third parameter
6194         flag_function_or_data_sections and use it instead of
6195         flag_function_sections.
6196         (assemble_start_function): Pass flag_function_sections.
6197         (asm_emit_uninitialised): Pass flag_data_sections.
6198         (assemble_variable): Likewise.
6199
6200 2002-05-14  Richard Henderson  <rth@redhat.com>
6201
6202         * config/i386/i386.md: Use define_constants for unspec numbers.
6203         * config/i386/i386.c: Likewise.
6204
6205 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6206
6207         * doc/contrib.texi: Update my entry.
6208
6209 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
6210
6211         * fixinc/inclhack.def (winidss_valist): Limit applicability.
6212         * fixinc/fixincl.x: Regenerated.
6213         * fixinc/tests/base/math.h: Update.
6214         * fixinc/tests/base/testing.h: Likewise.
6215
6216 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
6217
6218         * genattr.c (gen_attr): Don't emit a comma after the last
6219         enumerator.
6220
6221 2002-05-13  Richard Henderson  <rth@redhat.com>
6222
6223         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
6224         by non-local gotos.
6225         * recog.c (peephole2_optimize): Likewise.
6226
6227 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
6228
6229         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
6230         input to O_BINARY.
6231
6232 2002-05-13  Jeffrey A Law  (law@redhat.com)
6233
6234         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
6235         Update prototype and callers.
6236         (propagate_one_insn): Stack pointer adjustments kill MEMs on
6237         the mem_set_list which reference the stack pointer, as do
6238         calls to constant functions as they may clobber outgoing
6239         argument space.
6240
6241         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
6242
6243         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
6244         (ia32_multipass_dfa_lookahead): New function.
6245
6246 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6247
6248         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
6249         (translate_options): Remove 'V'.
6250         (process_command): Similarly.
6251 doc:
6252         * invoke.texi: Remove documentation of 'V'.
6253
6254 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
6255
6256         * config/s390/linux.h: Revert 2002-04-22 changes.
6257
6258 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
6259
6260         * config/fr30/fr30.md: Only allow splits of immediate loads
6261         if the destination is a register.
6262
6263 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6264
6265         * Makefile.in (c-common.o, cppinit.o): Update.
6266         * c-common.c: Include except.h.
6267         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
6268         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
6269         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
6270         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
6271         CPP_PREDEFINES): Handle here.
6272 config:
6273         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
6274         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
6275         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
6276         TARGET_OS_CPP_BUILTINS.
6277         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
6278         (CPP_SPEC, EXTRA_SPECS): Update.
6279         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
6280         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
6281         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
6282         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
6283         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
6284 doc:
6285         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
6286         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
6287
6288 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
6289
6290         * emit-rtl.c (global_rtl): Update comment.
6291         (const_double_htab, const_double_htab_hash,
6292         const_double_htab_hash, lookup_const_double): New.
6293         (const_int_htab_hash, const_int_htab_eq): Remove const
6294         qualifiers, which cause tons of warnings with RTL checking on.
6295         (gen_rtx_CONST_DOUBLE): Deleted.
6296         (const_double_from_real_value): New function - bears some
6297         resemblance to the former immed_real_const_1.
6298         (immed_double_const): Moved here from varasm.c and
6299         simplified.
6300         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
6301         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
6302         (gen_rtx): Use immed_double_const.
6303         (init_emit_once): Initialize the const_double_htab.  Use
6304         REAL_VALUE_FROM_INT where possible.  Can now use
6305         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
6306         * varasm.c (struct varasm_status): Remove x_const_double_chain.
6307         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
6308         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
6309         (init_varasm_status, mark_varasm_status): Don't touch
6310         x_const_double_chain.
6311
6312         * output.h: Delete prototype for clear_const_double_mem.
6313         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
6314         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
6315         const_double_from_real_value, not immed_real_const_1, and use
6316         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
6317         CONST_DOUBLE_ATOF.
6318         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
6319         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
6320         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
6321         (gen_rtx_REG): Second arg is unsigned.
6322
6323         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
6324         (excluded_rtx): New, return true for CONST_DOUBLE.
6325         (genmacro): Write nothing for excluded codes.
6326         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
6327         * expr.c (expand_expr): Likewise.
6328         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
6329         CONST_DOUBLE_CHAIN.
6330         * toplev.c (rest_of_compilation): Don't call
6331         clear_const_double_mem.
6332
6333         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
6334         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
6335         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
6336         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
6337         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
6338         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
6339         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
6340         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
6341
6342 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6343
6344         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
6345
6346 2002-05-12  Tom Tromey  <tromey@redhat.com>
6347
6348         * tree.h (copy_node): Don't mention TREE_PERMANENT.
6349
6350 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
6351
6352         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
6353         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
6354         * gensupport.h: Prototype new routines.
6355         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
6356         use of printf.
6357         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
6358         (next_comma_elt): Use scan_comma_elt.
6359
6360         * config/i386/i386.md: Use new attribute notation to break up
6361         long lines in define_attr forms.
6362
6363 2002-05-12  Richard Henderson  <rth@redhat.com>
6364
6365         * expr.c (compress_float_constant): New.
6366         (emit_move_insn): Use it.
6367         (float_extend_from_mem): New.
6368         (init_expr_once): Initialize it.
6369         * real.c (exact_real_truncate): New.
6370
6371         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
6372         dropped into memory; penalize for size.
6373         (RTX_COSTS): FLOAT_EXTEND is free.
6374         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
6375         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
6376
6377 2002-05-12  Richard Henderson  <rth@redhat.com>
6378
6379         * profile.h (profile_info): Add missing extern to declaration.
6380         * profile.c (profile_info): Define it.
6381
6382 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6383
6384         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
6385         used for DImode and TImode.
6386
6387 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6388
6389         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
6390         fake a newline.
6391
6392 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
6393
6394         * config/rs6000/rs6000.c (rs6000_default_long_calls,
6395         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
6396         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
6397         (rs6000_override_options): Handle -m(no-)longcall.
6398         (init_cumulative_args, output_mi_thunk): Check for both
6399         longcall and shortcall attributes on the function.
6400         (rs6000_attribute_table): Add "shortcall".
6401         (rs6000_handle_longcall_attribute): Update comment.
6402         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
6403         altivec_expand_ternop_builtin): Add default clauses to switches
6404         to silence warnings.
6405
6406         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
6407         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
6408         (TARGET_OPTIONS): Add longcall and no-longcall.
6409
6410         * config/rs6000/rs6000.md (call_nonlocal_sysv,
6411         call_value_nonlocal_sysv): Split by alternatives.  One pair
6412         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
6413         the call cookie.  The other pair accepts only LR/CTR and has
6414         no restriction.
6415
6416         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
6417         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
6418         tmake_file.
6419         * config/rs6000/rs6000-c.c: New file.
6420         * config/rs6000/t-rs6000-c-rule: New file.
6421         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
6422         Prototype rs6000_pragma_longcall.
6423
6424         * doc/extend.texi: Document shortcall attribute.
6425         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
6426
6427 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6428
6429         * reorg.c (dbr_schedule): Remove unnecessary test.
6430
6431 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
6432
6433         * i386.md (testsi to testqi spliters): New.
6434
6435         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
6436
6437         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
6438
6439         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
6440
6441         * basic-block.h: New flag EDGE_CAN_FALLTHRU
6442         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
6443         that can be made fallthru.
6444
6445         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
6446
6447         * cfglayout.c (cleanup_unconditional_jumps): New static function.
6448         (cfg_layout_initialize): Use it.
6449
6450 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6451
6452         * config/avr/avr.c (avr_mcu_types): Update supported devices.
6453         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6454         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6455
6456 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
6457
6458         * dbxout.c: Fix formatting.
6459         * dependence.c: Likewise.
6460         * df.c: Likewise.
6461         * diagnostic.c: Likewise.
6462         * doloop.c: Likewise.
6463         * dominance.c: Likewise.
6464         * doschk.c: Likewise.
6465         * dwarf2asm.c: Likewise.
6466         * dwarf2out.c: Likewise.
6467         * dwarfout.c: Likewise.
6468
6469 2002-05-10  Richard Henderson  <rth@redhat.com>
6470
6471         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
6472         Convert integers constants as needed.  Replace "nwords" field with
6473         "sizeof_bb".
6474         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
6475         * function.h: Fix typo in comment.
6476         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
6477
6478 2002-05-10  Roger Sayle  <roger@eyesopen.com>
6479
6480         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
6481         into the equivalent (signed char)c > 0.
6482
6483 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
6484
6485         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
6486         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
6487         (struct prefetch_info): Fix spelling of member bytes_accessed.
6488         (emit_prefetch_instructions): Make dump messages more regular;
6489         restructure code to add more dump messages; use new macros for
6490         heuristics. (There are no code generation changes in any of this).
6491
6492 2002-05-10  David S. Miller  <davem@redhat.com>
6493
6494         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
6495         (struct rtx_def): Update unchanging flag comment.
6496         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
6497         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
6498         to be handled to INSN too.
6499         (dbr_schedule): Likewise.
6500         * resource.c (next_insn_no_annul): Likewise.
6501
6502         * cse.c (rtx_cost): Remove multiplication by power of 2 special
6503         casing.
6504
6505 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6506
6507         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
6508         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
6509         (possibly) work around broken /bin/sh.
6510
6511 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6512
6513         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
6514         . as N64/N32 libgcc_s.so subdirs.
6515
6516 2002-05-10  David S. Miller  <davem@redhat.com>
6517
6518         * config/sparc/sparc.md: Use define_constants for unspec numbers.
6519
6520         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
6521         more accurately.
6522         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
6523         comment.
6524         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
6525         * doc/rtl.texi: Document these macros more accurately.
6526         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
6527         JUMP_INSNs and CALL_INSNs.
6528         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
6529         or INSN_FROM_TARGET_P if the code is appropriate.
6530
6531 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6532
6533         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
6534         before using SYMBOL_REF_FLAG (addr).
6535
6536         * config/avr/avr-protos.h (avr_io_address_p): Declare.
6537         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
6538         Make non-static.  Update all callers.
6539         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
6540         New insns to clear/set/test a single bit in I/O address space.
6541
6542 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6543
6544         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
6545
6546 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6547
6548         * Makefile.in: Update.
6549         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
6550         builtin_define_std): New.
6551         (c_common_init): Register CPP builtins callback.
6552         * c-common.h (flag_iso, flag_undef): New.
6553         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
6554         * c-lex.c: Don't include target.h.
6555         (cb_register_builtins): Move to c-common.c.
6556         (init_c_lex): Don't register hook here.
6557         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
6558         (cpp_define, cpp_assert): Remove.
6559         * gcc.c (cc1_options): Pass -undef to front end.
6560         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
6561         (TARGET_INITIALIZER): Update.
6562         * target.h (struct cpp_reader): Don't predeclare.
6563         (struct gcc_target): Remove cpp builtin hook.
6564         * tree.c (default_register_cpp_builtins): Remove.
6565 doc:
6566         * tm.texi: Update.
6567
6568 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6569
6570         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
6571
6572 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6573
6574         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
6575         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
6576
6577 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
6578
6579         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
6580         * config/sparc/libgcc-sparc-glibc.ver: New file.
6581         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
6582         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
6583
6584 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
6585
6586         PR target/6429
6587         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
6588         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
6589         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
6590         base multilibs.
6591         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
6592         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
6593         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
6594         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
6595
6596 2002-05-09  Richard Henderson  <rth@redhat.com>
6597
6598         * config/ia64/ia64.md: Use define_constants for unspec numbers.
6599         * config/ia64/ia64.c: Likewise.
6600
6601 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
6602
6603         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
6604         (save_restore_insns): Likewise.
6605         (mips_expand_prologue, mips_expand_epilogue): Update callers.
6606         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
6607
6608 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
6609
6610         * athlon.md, k6.md, pentium.md, ppro.md): New files.
6611         * i386.md: Move scheduling information into new files.
6612
6613         * i386.md (type attribute): Add "rotate" for rotate insns.
6614         (rotate insns): Set type to "rotate".
6615         (various attributes and function units): Treat rotate like shift.
6616         (pent_pair attribute): Only rotates by one bit position are
6617         pairable.
6618         (sbb insns): Explicitly set pent_pair attribute on a couple
6619         that were missing it.
6620
6621 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
6622
6623         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
6624         make sure that buffer starts on odd word address.
6625         (sh_va_arg): Skip odd fp registers when reading a double precision
6626         value.
6627
6628 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6629
6630         * tree.h (preserve_data, object_permanent_p, type_precision):
6631         Remove.
6632
6633 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6634
6635         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
6636         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
6637 doc:
6638         * cpp.texi: Update for removal of obsolete features.
6639
6640 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
6641                           Jeffrey A Law  (law@redhat.com)
6642
6643         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
6644         the DFA interface for Pentium processors.
6645         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
6646         (attr_pent_pair, ix86_pent_find_pair): Remove.
6647         (ix86_sched_reorder_pentium): Remove.
6648         (ix86_sched_reorder): Remove reordering for Pentium.
6649         * i386.md (Pentium scheduling): Rewrite using DFA description.
6650
6651 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
6652
6653         * cfganal.c (can_fallthru): Fix fast path.
6654         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
6655         with edges to the next block.
6656
6657 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
6658                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
6659
6660         * final.c (end_final): Use C trees to output data structures for profiling.
6661
6662         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
6663         (profile.o): New dependency profile.h
6664         (final.o): New dependency profile.h
6665         * profile.h: New file. New global structure profile_info.
6666         * final.h (count_edges_instrumented_now): Declare.
6667         (current_function_cfg_checksum): Declare.
6668         (function_list): New structure.
6669         (functions_head, functions_tail): New static variables.
6670         (end_final): Emits more data, removed some -ax stuff.
6671         (final): Stores function names and chcksums.
6672         * gcov-io.h (__write_gcov_string): New function.
6673         (__read_gcov_string): New function.
6674         * gcov.c (read_profile): New function.
6675         (create_program_flow_graph): Uses read_profile instead of reading
6676         da_file.
6677         (read_files): Removed da_file checking, it's done by read_profile now.
6678         * libgcc2.c (bb_function_info): New structure.
6679         (bb): New field in structure, removed some -ax stuff.
6680         (__bb_exit_func): Changed structure of da_file.
6681         * profile.c (count_edges_instrumented_now): New global variable.
6682         (current_function_cfg_checksum): New global variable.
6683         (max_counter_in_program): New global variable.
6684         (get_exec_counts): New function.
6685         (compute_checksum): New function.
6686         (instrument_edges): Sets count_edges_instrumented_now.
6687         (compute_branch_probabilities): Uses get_exec_counts instead of
6688         reading da_file.
6689         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
6690         (init_branch_prob): Removed da_file checking, done in get_exec_counts
6691         now.
6692         (end_branch_prob): Removed da_file checking, done in get_exec_counts
6693         now.
6694         * gcov.texi: Updated information about gcov file format.
6695
6696 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6697
6698         * sbitmap.c: Fix formatting.
6699         * scan.c: Likewise.
6700         * scan-decls.c: Likewise.
6701         * sched-deps.c: Likewise.
6702         * sched-ebb.c: Likewise.
6703         * sched-rgn.c: Likewise.
6704         * sched-vis.c: Likewise.
6705         * sdbout.c: Likewise.
6706         * sibcall.c: Likewise.
6707         * simplify-rtx.c: Likewise.
6708         * ssa.c: Likewise.
6709         * ssa-ccp.c: Likewise.
6710         * ssa-dce.c: Likewise.
6711         * stmt.c: Likewise.
6712         * stor-layout.c: Likewise.
6713         * stringpool.c: Likewise.
6714
6715 2002-05-09  David S. Miller  <davem@redhat.com>
6716
6717         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
6718
6719 2002-05-07  David S. Miller  <davem@redhat.com>
6720
6721         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
6722         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
6723         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
6724         library implementation clobbers the output before the inputs
6725         are fully consumed, use stack temporary for the output.
6726
6727 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
6728
6729         * config/netbsd.h (CPP_SPEC): Remove.
6730         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
6731         * config/i386/netbsd.h (CPP_SPEC): Define.
6732         * config/ns32k/netbsd.h (CPP_SPEC): Define.
6733         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
6734         * config/sparc/netbsd.h (CPP_SPEC): Define.
6735         * config/vax/netbsd.h (CPP_SPEC): Define.
6736
6737 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6738
6739         * read-rtl.c: Fix formatting.
6740         * real.c: Likewise.
6741         * recog.c: Likewise.
6742         * regclass.c: Likewise.
6743         * regmove.c: Likewise.
6744         * reg-stack.c: Likewise.
6745         * reload1.c: Likewise.
6746         * reload.c: Likewise.
6747         * resource.c: Likewise.
6748         * rtlanal.c: Likewise.
6749         * rtl.c: Likewise.
6750         * rtl-error.c: Likewise.
6751
6752 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6753
6754         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
6755         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
6756
6757 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
6758
6759         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
6760         use __SSE2__ macro instead.
6761         * config/i386/xmmintrin.h: Likewise.
6762
6763 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
6764
6765         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
6766         and use it in all invocations of these macros.  Clean up comments.
6767         * rtl.c (rtl_check_failed_flag): Add an argument for the name
6768         of the flag access macro whose check failed.
6769         * doc/rtl.texi (Flags): Document additional flag uses.
6770
6771 2002-05-08  Robert Spier <rspier@pobox.com>
6772             Neil Booth  <neil@daikokuya.demon.co.uk>
6773
6774         PR preprocessor/6521
6775         * cppfiles.c (handle_missing_header): Don't do anything
6776         different for <> includes.
6777 doc:
6778         * cppopts.texi: Update documentation for -MG.
6779
6780 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6781
6782         * cpplex.c (cpp_interpret_charconst): Truncate as well as
6783         sign-extend.
6784 doc:
6785         * cpp.texi: Clarify multichar charconst valuation.
6786
6787 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
6788
6789         * doc/invoke.texi: Document -mwindiss option.
6790
6791 2002-05-08  Jason Merrill  <jason@redhat.com>
6792
6793         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
6794
6795         * dwarf2out.c (gen_type_die): Abort on broken recursion.
6796
6797         PR c++/6381
6798         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
6799         REAL_CST.
6800
6801 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
6802
6803         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
6804         little-endian multilibs to override arm/thumb multilibs.
6805         Do not build hardware floating point multilibs, nor apcs-26
6806         multilibs for the Thumb.
6807
6808 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
6809
6810         PR c/6569.
6811         * varasm.c (mark_weak): New function.
6812         (merge_weak): Use it.  Do not call declare_weak.
6813         (declare_weak): Use merge_weak.
6814
6815 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
6816
6817         * cse.c (dead_libcall_p): Update counts.
6818         (delete_trivially_dead_insns): Update call of dead_libcall_p.
6819
6820 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
6821
6822         * cfglayout.c (function_tail_eff_head): Rename to ...
6823         (function_footer): ... this one.
6824         (unlink_insn_chain): New functions.
6825         (label_for_bb): Only call block_label and emit debug message.
6826         (record_effective_endpoints): Actually unlink the headers and footers.
6827         (fixup_reorder_cahin): Re-insert the unlinked sequences.
6828         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
6829         * cfglayout.h (struct reorder_block_def): New fields footer/header;
6830         remove eff_head/eff_end.
6831         * rtl.h (set_first_insn): Declare.
6832         * emit-rtl.c (set_first_insn): New function.
6833
6834         * cfglayout.c (fixup_reorder_chain): Dump duplicated
6835         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
6836         cfg_layout_duplicate_bb): New global function.
6837         (duplicate_insn_chain): New static function.
6838         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
6839         cfg_layout_duplicate_bb): Declare.
6840         (struct reorder_block_def): Add "original" field.
6841         * emit-rtl.c (emit_copy_of_insn_after): New function.
6842         * rtl.h (emit_copy_of_insn_after): Declare.
6843
6844         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
6845         (fixup_reorder_chain): properly handle edges to exit block.
6846
6847 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6848                                Jan Hubicka  <jh@suse.cz>
6849
6850         * basic-block.h (note_prediction_to_br_prob): declare.
6851         * c-semantics.c: Inlucde predit.h
6852         (expand_stmt): predict GOTO_STMT as not taken.
6853         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
6854         (cleanup_cfg): Do not free tail_recursion_list.
6855         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
6856         (flow_delete_block): Kill predictions past end of basic block.
6857         * output.h (delete_unreachable_blocks): Declare.
6858         * predict.c (predicted_by_p, process_note_predictions,
6859         process_note_prediction, last_block_p): New function.
6860         (estimate_probability): Bypass loop on PRED_CONTINUE;
6861         do not handle noreturn heuristics; kill PRED_RETURN; add
6862         PRED_EARLY_RETURN.
6863         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
6864         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
6865         * predict.h (IS_TAKEN): New constant.
6866         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
6867         * rtl.c (NOTE_INSN_PREDICTION): New.
6868         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
6869         New macro.
6870         (insn_note): add NOTE_INSN_PREDICTION.
6871         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
6872         CFG; free tail_recursion_label_list.
6873         * stmt.c: Include predict.h;
6874         (return_prediction): New.
6875         (expand_value_return): Use it.
6876         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
6877
6878 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
6879
6880         * config/mips/mips.md: Name the unspecs with define_constant.
6881         (*HILO_delay): Rename to 'hilo_delay' (no star).
6882         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
6883         (reload_outdi, reload_outsi): Likewise.
6884
6885 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
6886
6887         * toplev.c: Fix formatting.
6888
6889 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
6890
6891         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
6892         * configure.in (ac_rtlflag_checking): New.
6893         * doc/install.texi (--enable-checking): Document RTL flag checking.
6894
6895 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6896
6897         * c-common.c (c_common_init): Set options->unsigned_wchar.
6898         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
6899         group target dependencies.
6900         (init_builtins, cpp_handle_option): Update.
6901         * cpplex.c (cpp_interpret_charconst): Update.
6902         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
6903         signed_char to unsigned_char, group target dependencies.
6904         * defaults.h (WCHAR_UNSIGNED): Remove.
6905         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
6906 config:
6907         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
6908         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
6909         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
6910         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
6911         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
6912 doc:
6913         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
6914
6915 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
6916
6917         * fixinc/inclhack.def (windiss_math1): New fix.
6918         (windiss_math2): Likewise.
6919         (windiss_valist): Likewise.
6920         * fixinc/fixincl.x: Regenerated.
6921
6922 2002-05-07  Andreas Jaeger  <aj@suse.de>
6923
6924         * genautomata.c (output_internal_min_issue_delay_func): Add
6925         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
6926         (output_internal_trans_func): Likewise.
6927
6928 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
6929
6930         * pa.c (hppa_profile_hook): Use force_reg to get the address
6931         of the profile hook into an appropriate pseudo register.
6932
6933 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
6934
6935         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
6936         (LINK_START_SPEC): Handle it.
6937         (LINK_OS_SPEC): Likewise.
6938         (CPP_SPEC): Likewise.
6939         (STARTFILE_SPEC): Likewise.
6940         (LIB_SPEC): Likewise.
6941         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
6942         all platforms.
6943         (CRTSAVRES_DEFAULT_SPEC): New macro.
6944         (LIB_WINDISS_SPEC): New macro.
6945         (CPP_OS_WINDISS_SPEC): Likewise.
6946         (STARTFILE_WINDISS_SPEC): Likewise.
6947         (ENDFILE_WINDISS_SPEC): Likewise.
6948         (LINK_START_WINDISS_SPEC): Likewise.
6949         (LINK_OS_WINDISS_SPEC): Likewise.
6950         * config/rs6000/windiss.h: New file.
6951
6952 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
6953
6954         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
6955
6956 2002-05-06  David S. Miller  <davem@redhat.com>
6957
6958         * config/sparc/sparc.md (shift insns): Do not mask off
6959         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
6960         take care of it.
6961
6962 2002-05-06  Richard Henderson  <rth@redhat.com>
6963
6964         PR c++/6212
6965         * expr.c (highest_pow2_factor_for_type): New.
6966         (expand_assignment): Use it.
6967
6968 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
6969
6970         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
6971         unspec_volatile.
6972         ("altivec_mfvscr"): Same.
6973
6974 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
6975
6976         * rtl.h (struct rtx_def): Update comments.
6977         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
6978         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
6979         RTL_FLAG_CHECK macros with list of expected RTL codes.
6980         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
6981         (rtl_check_failed_flag): New.
6982         * reload1.c (reload): Use REG macro before changing rtx to MEM.
6983         (reload_cse_noop_set_p): Check rtx code before using access macro.
6984         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
6985         before using access macro.
6986
6987 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
6988
6989         * doc/rtl.texi (Flags): Update to reflect current usage.
6990
6991 2002-05-06  Roger Sayle  <roger@eyesopen.com>
6992
6993         PR opt/3995
6994         * fold-const.c (sign_bit_p): New function.
6995         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
6996         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
6997         Reapply fold when converting (A & C) == C into (A & C) != 0.
6998         (fold_binary_op_with_conditional_arg): Fix typo in comment.
6999
7000 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7001
7002         * c-common.c (warn_multichar): New.
7003         (c_common_init): Set CPP's warn_multichar.
7004         * c-common.h (warn_multichar): New.
7005         * c-decl.c (warn_multichar): Remove.
7006         * c-lex.c (lex_charconst): Update.
7007         * c-tree.h (warn_multichar): Remove.
7008         * cppexp.c (eval_token): Sign-extend charconst value.
7009         * cppinit.c (cpp_create_reader): Set warn_multichar.
7010         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
7011         each character.  Update prototype.  Sign-extend the result.
7012         * cpplib.h: Fix conditions.
7013         (struct cpp_options): Add new warning flag.
7014         (cpp_interpret_charconst): Update prototype.
7015 doc:
7016         * cpp.texi: Update documentation.
7017
7018 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
7019
7020         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
7021         Fix typo in usage of allof instead of unit.
7022
7023 2002-05-06  Richard Henderson  <rth@redhat.com>
7024
7025         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
7026         and any jump or call for IN.
7027
7028 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
7029
7030         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
7031         -msse2.
7032         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
7033
7034 2002-05-06  Roger Sayle  <roger@eyesopen.com>
7035
7036         * fold-const.c (lshift-double): Cast the high word to an unsigned
7037         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
7038         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
7039         avoid compiler warning.  (fold): Remove redundant code from
7040         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
7041
7042 2002-05-06  Jeff Law  <law@redhat.com>
7043
7044         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
7045         * pa.c (pa_adjust_cost): Remove all true dependency cost
7046         adjustments.  Also remove support for non-DFA scheduling.
7047         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
7048         to adjust true dependency costs.  Update various comments.
7049         (7100lc, 7200, 7300 scheduling): Simplify by combining the
7050         FP ALU & MPY units into a single unit.
7051
7052 2002-05-06  Catherine Moore  <clm@redhat.com>
7053
7054         * config/v850/v850.c (compute_register_save_size): Make sure
7055         to count all of the registers that will be saved.
7056
7057 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
7058
7059         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
7060
7061 2002-05-06  David S. Miller  <davem@redhat.com>
7062
7063         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
7064         allow result to overlap input operands in memory.
7065
7066 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7067
7068 doc:
7069         * cpp.texi: Update multichar charconst docs.
7070
7071 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7072
7073         * cpplex.c (cpp_interpret_charconst): Sign-extend each
7074         character.  Don't ignore excess characters.  Treat
7075         multicharacter character constants as signed.
7076         (cpp_parse_escape): Clarify diagnostic.
7077
7078 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
7079
7080         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
7081         use add instead of shift.
7082         (ashldi3_sp64): Likewise.
7083         (ashlsi3_const1, ashldi3_const1): Remove.
7084         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
7085         * config/sparc/sparc.c (const1_operand): New.
7086
7087 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
7088
7089         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
7090
7091 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
7092
7093         PR target/6561
7094         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
7095
7096 2002-05-05  Richard Henderson  <rth@redhat.com>
7097
7098         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
7099         memory latency adjustments.
7100         (alpha_variable_issue): Remove.
7101         (alpha_use_dfa_pipeline_interface): New.
7102         (alpha_multipass_dfa_lookahead): New.
7103         * config/alpha/alpha.md: Remove define_function_unit scheduling;
7104         include new dfa scheduling.
7105         (attr type): Add none.
7106         (blockage): Use it.
7107         * config/alpha/ev4.md: New.
7108         * config/alpha/ev5.md: New.
7109         * config/alpha/ev6.md: New.
7110
7111 2002-05-05  David S. Miller  <davem@redhat.com>
7112
7113         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
7114
7115 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
7116
7117         * cse.c: Fix formatting.
7118         * emit-rtl.c: Likewise.
7119
7120 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
7121
7122         * genautomata.c (initiate_states): Add additional guard to
7123         initialize `units_array'.
7124
7125 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
7126
7127         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
7128         process_unit_to_form_the_same_automaton_unit_lists,
7129         form_the_same_automaton_unit_lists
7130         check_unit_distributions_to_automata): New prototypes and
7131         functions.
7132         (check_automata): Rename it into `check_automata_insn_issues'.
7133         (unit_decl): New fields `the_same_automaton_unit' and
7134         `the_same_automaton_message_reported_p'.
7135         (unit_decl_t): New typedef.
7136         (the_same_automaton_lists): New gloval variable.
7137         (unit_regexp, unit_set_el, units_array, units_cmp,
7138         output_get_cpu_unit_code_func): Use the typedef.
7139         (evaluate_max_reserv_cycles): Increment
7140         `description->max_insn_reserv_cycles'.
7141         (initiate_states): Don't increment `max_cycles_num'.
7142         (transform_insn_regexps): Move code around transformation of
7143         regexps from `generate'.
7144         (generate): Remove call of `transform_insn_regexps'.
7145         (expand_automata): Call `transform_insn_regexps' and
7146         `check_unit_distributions_to_automata'.  Check errors before
7147         `generate'.
7148
7149         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
7150         automaton `ultrasparc3_1'.
7151
7152 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7153
7154         * c-common.c (c_common_init): Set up CPP arithmetic.
7155         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
7156         something reasonable for the host.
7157         (sanity_checks): Add checks.
7158         (cpp_read_main_file): Call sanity_checks() from here...
7159         (cpp_post_options): ... not here.
7160         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
7161         * cpplib.h (struct cpp_options): New member int_precision.
7162
7163 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7164
7165         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
7166
7167 2002-05-04  David S. Miller  <davem@redhat.com>
7168
7169         * config/sparc/linux.h, config/sparc/linux64.h
7170         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
7171
7172         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
7173         more RTX codes.
7174         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
7175
7176         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
7177         of SETs.
7178
7179 2002-05-05  Tim Josling  <tej@melbpc.org.au>
7180
7181         * treelang; New directory for new sample language treelang.
7182
7183 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7184
7185         * Makefile.in (c-lex.o): Update.
7186         * c-lex.c: Include target.h.
7187         (cb_register_builtins): New.
7188         (init_c_lex): Set builtins callback.
7189         * c-lex.h (cpp_define, cpp_assert): New prototypes.
7190         * cppinit.c (init_builtins): Use callback, including for
7191         GXX_WEAK.
7192         * cpplib.h (struct cpp_callbacks): New member.
7193         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
7194         (TARGET_INITIALIZER): Update.
7195         * target.h (struct gcc_target): New hook.
7196         * tree.c (default_register_cpp_builtins): New.
7197         * tree.h (default_register_cpp_builtins): New.
7198 doc:
7199         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
7200
7201 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7202
7203         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
7204         (cpp_post_options): Move sanity checks to...
7205         (sanity_checks): New.
7206         * cpplex.c (maybe_read_ucs): Fix prototype.
7207         (parse_string, cpp_parse_escape): Cast for %c format specifier.
7208         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
7209         if necessary.
7210
7211 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
7212
7213         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
7214         builtins.  Use V2DI patterns instead of TI for logical operations.
7215         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
7216         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
7217         (ix86_expand_builtins): Change the pattern used for movntdq.
7218         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
7219         sse2_nandv2di3): New patterns.
7220         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
7221         on operands.
7222         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
7223         (cvtdq2pd): Correct mode on operand 1.
7224         (sse2_umulsidi3): Describe without unspec.
7225         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
7226         machine modes.
7227         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
7228         (ashlv2di3): Likewise, from sse2_ashlv2di3.
7229         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
7230         ashlv4si3, ashlv2di3): Use SImode for shift count.
7231         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
7232         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
7233         New patterns.
7234         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
7235         New typedefs.
7236         (__m128i, __m128d): New macros.
7237         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
7238         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
7239         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
7240         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
7241         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
7242         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
7243         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
7244         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
7245         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
7246         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
7247         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
7248         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
7249         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
7250         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
7251         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
7252         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
7253         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
7254         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
7255         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
7256         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
7257         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
7258         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
7259         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
7260         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
7261         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
7262         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
7263         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
7264         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
7265         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
7266         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
7267         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
7268         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
7269         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
7270         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
7271         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
7272         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
7273         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
7274         functions.
7275         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
7276         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
7277
7278 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
7279
7280         * dwarf2out.c: Fix formatting.
7281         * varasm.c: Likewise.
7282
7283 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
7284
7285         PR c/6543
7286         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
7287         clobber and use result as temporary value.
7288
7289 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
7290
7291         * expr.c (force_operand): Use expand_simple_* to handle more
7292         cases.
7293
7294 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7295
7296         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
7297         and sign-extension.
7298         (lex_charconst): Update for change in prototype of
7299         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
7300         appropriately.
7301         * cpphash.h (BITS_PER_CPPCHAR_T): New.
7302         * cppinit.c (cpp_create_reader): Initialize them for no
7303         change in semantics.
7304         (cpp_post_options): Add sanity checks.
7305         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
7306         and truncation issues.  Calculate in type cppchar_t.
7307         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
7308         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
7309         run-time dependent precision correctly.  Return whether the
7310         result is signed or not.
7311         * cpplib.c (dequote_string): Use cppchar_t; update.
7312         * cpplib.h (cppchar_signed_t): New.
7313         struct cpp_options): New precision members.
7314         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
7315         * cppexp.c (eval_token): Update.
7316
7317 2002-05-03  David S. Miller  <davem@redhat.com>
7318
7319         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
7320         * config/sparc/sparc.c (sparc_rtx_costs): New function
7321         implementing RTX_COSTS and CONST_COSTS.
7322         * config/sparc/sparc.h (CONST_COSTS): Delete.
7323         (RTX_COSTS_CASES): Define.
7324         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
7325         the work.
7326
7327         * config/sparc/sparc.md (DFA schedulers): Split out...
7328         * config/sparc/cypress.md, config/sparc/hypersparc.md,
7329         config/sparc/sparclet.md, config/sparc/supersparc.md,
7330         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
7331
7332         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
7333         checks on it, always defined for Sparc.
7334
7335         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
7336         Tweak, and add more detailed comments.
7337
7338 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
7339
7340         * Re-apply patch accidentally reverted with
7341         DFA scheduler merge: remove all rules and variables to slurp
7342         source files out of libiberty and rebuild them with HOST_CC.
7343         ($(HOST_PREFIX_1)varray.o): New rule.
7344         (genattrtab rule): Word wrap.
7345
7346 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7347
7348         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
7349         (CPP_SUBTARGET_SPEC): Define.
7350         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
7351         cpp_subtarget specs.
7352         (CPP_SPEC): Redefine to include %(cpp_subtarget).
7353
7354 2002-05-03  David S. Miller  <davem@redhat.com>
7355
7356         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
7357         * target.h (struct gcc_target): Delete cycle_display member.
7358
7359         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
7360         (rtx_needs_barrier): Delete reference to cycle_display unspec.
7361         (ia64_sched_reorder2): Mention need for cycle display handling
7362         once such notes exist.
7363
7364 2002-05-03  Richard Henderson  <rth@redhat.com>
7365
7366         * real.c (etoasc): Strip most trailing zeros for clarity.
7367         * sched-vis.c: Include real.h.
7368         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
7369         * Makefile.in (sched-vis.o): Add real.h.
7370
7371 2002-05-03  David S. Miller  <davem@redhat.com>
7372
7373         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
7374         no longer needed.
7375
7376 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
7377
7378         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
7379         when we get an out of range literal.
7380         (altivec_expand_ternop_builtin): Same.
7381         (altivec_expand_unop_builtin): Same.
7382         (altivec_expand_builtin): Same, for dss.
7383         (altivec_expand_builtin): Use trees instead of rtl when
7384         determining literal argument validity.
7385
7386 2002-05-03  David S. Miller  <davem@redhat.com>
7387
7388         Delete cycle display scheduling hook.
7389         * config/ia64/ia64.c (ia64_cycle_display,
7390         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
7391         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
7392         and use emit_insn_before instead of ia64_emit_insn_before.
7393         * config/ia64/ia64.md (unspec usage): Delete cycle display.
7394         (cycle_display): Delete insn pattern.
7395         * config/sparc/sparc.md (unspec usage): Delete cycle display.
7396         (cycle_display): Delete insn pattern.
7397         * config/sparc/sparc.c (sparc_cycle_display,
7398         TARGET_SCHED_CYCLE_DISPLAY): Delete.
7399         * doc/md.texi (cycle_display): Don't mention.
7400         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
7401
7402 2002-05-03  Richard Henderson  <rth@redhat.com>
7403
7404         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
7405         * recog.h: Declare them.
7406
7407         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
7408         * config/sparc/sparc.md: Use store_data_bypass_p instead.
7409         * config/sparc/sparc-protos.h: Update.
7410
7411 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7412
7413         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
7414         -D__arch64__.  Add -D_LP64.
7415         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
7416         from sparc.h.
7417         (CPP_ARCH64_SPEC): Likewise.
7418         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
7419         (NO_BUILTIN_SIZE_TYPE): Undef.
7420
7421 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
7422
7423         * genautomata.c (min_issue_delay_pass_states): Change return type
7424         in the prototype.
7425         (min_issue_delay_pass_states): Change the algorithm.
7426         (min_issue_delay): Set up min_insn_issue_delay for the state.
7427         (output_min_issue_delay_table): Interchange the nested loops and
7428         and initiate min_insn_issue_delay for states.
7429
7430 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
7431
7432         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
7433         jump is simplejump.
7434
7435 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
7436
7437         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
7438         sequence.
7439
7440 2002-05-03  Richard Henderson  <rth@redhat.com>
7441
7442         PR opt/6534
7443         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
7444         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
7445         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
7446         code before JUMP, not EARLIEST.
7447
7448 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7449
7450         * c-format.c (check_format_info_main): Don't check for presence of
7451         parameter for * width until after operand number has been read,
7452         and only check for it if format parameters are available.
7453         Fixes PR c/6547.
7454
7455 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7456
7457         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
7458         (LINK_SPEC): Undef before defining.
7459
7460 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7461
7462         PR preprocessor/6489
7463         * tradcpp.c (fixup_newlines): New.
7464         (main, finclude): Use it.
7465
7466 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
7467
7468         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
7469         * config/mips/mips.c (mips_unique_section): Strip encoding from
7470         decl name.
7471
7472 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7473
7474         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
7475         mode.
7476
7477 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7478
7479         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
7480         (Specific): Removed buildstats references.
7481         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
7482         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
7483         Accomodate Solaris versions beyond 8.
7484         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
7485         (Specific, *-*-solaris2.8): Removed, obsolete.
7486
7487 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7488
7489         PR target/6542
7490         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
7491         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
7492         fill leaf_reg_remap with identity.
7493         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
7494
7495 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7496
7497         * config/h8300/crti.asm: Remove trailing spaces.
7498         * config/h8300/h8300.c: Likewise.
7499         * config/h8300/lib1funcs.asm: Likewise.
7500
7501 2002-05-02  Jason Merrill  <jason@redhat.com>
7502
7503         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
7504         * c-decl.c (c_init_decl_processing): Use it.
7505         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
7506         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
7507         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
7508
7509 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7510
7511         * regrename.c: Fix formatting.
7512         * tree.c: Likewise.
7513
7514 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
7515
7516         * i386.md (attribute memory): Handle compares properly.
7517
7518 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
7519
7520         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
7521         to none.
7522
7523 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7524
7525         * function.c: Fix formatting.
7526
7527 2002-05-02  Jan Hubicka  <jh@suse.cz>
7528
7529         * haifa-sched.c (schedule_insn): Print table of instructions and
7530         reservations.
7531         (sched_block): Do not print ready list at verbosity level 1.
7532         * sched-vis.c (print_insn): Make global.
7533         * sched-ebb.c (ebb_print_insn): Rename from...
7534         (print_insn): ... this one.
7535         * sched-int.h (print_insn): Declare
7536
7537 2002-05-02  Richard Henderson  <rth@redhat.com>
7538
7539         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
7540         emitted by cycle_display.
7541
7542 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
7543
7544         * doc/install.texi (*-*-freebsd*): Update to latest status.
7545
7546 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
7547
7548         PR target/6540
7549         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
7550         * config/float-sparc.h: Assume 128-bit long double if
7551         __LONG_DOUBLE_128__ is defined.
7552
7553 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
7554
7555         * genattrtab.c (write_function_unit_info): Add a dummy element
7556         when num_units == 0.
7557
7558 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7559
7560         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
7561         TYPE_MODE (double_type_node) instead of DFmode.
7562
7563 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
7564
7565         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
7566         jumps post reload.
7567         * toplev.c (rest_of_compilation): Revert Richard's patch.
7568
7569 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7570
7571         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
7572
7573 2002-05-02  Catherine Moore  <clm@redhat.com>
7574
7575         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
7576
7577 2002-05-02  Kazu Hirata  <kazu@hxi.com>
7578
7579         * combine.c: Fix comment typos.
7580         * expr.c: Likewise.
7581         * genautomata.c: Likewise.
7582         * stmt.c: Likewise.
7583         * tree.h: Likewise.
7584
7585 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
7586
7587         * doc/install.texi: State GNAT version requirements.
7588
7589 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
7590
7591         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
7592         of the frame pointer or arg pointer register which strict register
7593         checking is not enabled.
7594
7595 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
7596
7597         * gcc.dg/altivec-8.c: New.
7598
7599         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
7600         PRE_INC and PRE_DEC for altivec modes.
7601
7602 2002-05-01  Bruce Korb  <bkorb@gnu.org>
7603
7604         * fixinc/check.tpl(set-writable): make sure the function exists first
7605         * fixinc/inclhack.def(alpha_assert): fix test_text
7606         * fixinc/tests/base/assert.h: add in missing result
7607
7608 2002-05-01  Jeff Law  <law@redhat.com>
7609
7610         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
7611         'T' constraint.
7612
7613 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
7614
7615         * dbxout.c (dbxout_type): Emit size information for range types,
7616         as well, but only when using GDB extensions.
7617
7618 2002-05-01  Richard Henderson  <rth@redhat.com>
7619
7620         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
7621         target-independent gnu binutils date test.
7622
7623 2002-05-01  Richard Henderson  <rth@redhat.com>
7624
7625         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
7626         info before expunging the block.
7627
7628 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
7629
7630         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
7631         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
7632         -M -or -MM is in effect.
7633
7634 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
7635
7636         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
7637         A29k configurations.
7638         * doc/install.texi: Update to match.
7639
7640 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7641
7642         PR bootstrap/6514
7643         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
7644         for duplicates. Always loop over whole list.
7645
7646 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7647
7648         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
7649
7650 2002-05-01      Joel Sherrill <joel@OARcorp.com>
7651
7652         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
7653         support routines.
7654
7655 2002-05-01      Joel Sherrill <joel@OARcorp.com>
7656
7657         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
7658
7659 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
7660
7661         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
7662         (nabs_nopower): Same.
7663         (floatdisf2): New pattern.
7664         (absdi2): Convert to define_insn_and_split.
7665         (nabsdi2): Same.
7666         (trunctfsf2): Same.
7667         (floatditf2): Same.
7668         (floatsitf2): Same.
7669         (fix_trunctfdi2): Same.
7670         (fix_trunctfsi2): Same.
7671
7672 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
7673
7674         * doc/install.texi: Update Texinfo version requirement
7675         documentation.
7676
7677 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
7678
7679         PR target/6512, PR target/5628
7680         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
7681         when memory is not aligned.
7682         (movdf_insn_v9only_vis): Likewise.
7683         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
7684         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
7685         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
7686
7687 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
7688
7689         * gcc.dg/altivec-7.c: New.
7690
7691         * config/rs6000/altivec.h: Cleanup.
7692
7693 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
7694
7695         * doc/invoke.texi (Option Summary): Add -mvrsave=.
7696         (RS/6000 and PowerPC Options): Document -mvrsave=.
7697
7698         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
7699         (rs6000_altivec_vrsave_string): Same.
7700         (rs6000_override_options): Call rs6000_parse_vrsave_option.
7701         (rs6000_parse_vrsave_option): New.
7702         (rs6000_stack_info): Only generate vrsave instructions when
7703         TARGET_ALTIVEC_VRSAVE.
7704
7705         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
7706         (rs6000_altivec_vrsave_string): Define extern.
7707         (rs6000_altivec_vrsave): Same.
7708         (TARGET_ALTIVEC_VRSAVE): New.
7709
7710 2002-04-30  Richard Henderson  <rth@redhat.com>
7711
7712         PR opt/6516
7713         * toplev.c (rest_of_compilation): Don't run cross-jump before
7714         bb-reorder.
7715
7716 2002-04-30  Tom Rix  <trix@redhat.com>
7717
7718         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
7719         check which_alternative.
7720
7721 2002-04-30  Kazu Hirata  <kazu@hxi.com>
7722
7723         * cpplex.c: Fix comment formatting.
7724         * function.c: Likewise.
7725         * integrate.c: Likewise.
7726         * regrename.c: Likewise.
7727         * sibcall.c: Likewise.
7728         * simplify-rtx.c: Likewise.
7729         * tree-inline.c: Likewise.
7730
7731 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7732
7733         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
7734         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
7735         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
7736         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
7737         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
7738         * pa/x-ada: New file.  Define ADA_CFLAGS.
7739
7740 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
7741
7742         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
7743         from MMIX_LAST_REGISTER_FILE_REGNUM.
7744         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
7745         (struct machine_function): New member highest_saved_stack_register
7746         previously static variable in mmix.c.
7747         (MACHINE_DEPENDENT_REORG): Define.
7748         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
7749         (MMIX_OUTPUT_REGNO): New.
7750         (mmix_target_asm_function_prologue): Move calculation of last used
7751         saved-stack-register into...
7752         (mmix_machine_dependent_reorg): New function.  Update to also handle
7753         !TARGET_ABI_GNU.
7754         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
7755         register names, simplify somewhat by new variable regno.
7756         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
7757         register.
7758         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
7759         emitting register names.
7760         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
7761         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
7762         Remove fixed FIXME.
7763         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
7764         Declare.
7765
7766         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
7767
7768 2002-04-30  Richard Henderson  <rth@redhat.com>
7769
7770         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
7771         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
7772         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
7773         emit_tfmode_cvt): New.
7774         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
7775         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
7776         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
7777         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
7778         * config/sparc/sparc-protos.h: Update.
7779
7780 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
7781
7782         * install.texi (Final install): Add to the list of info to include
7783         in a report of a successful bootstrap, and add link to 3.1 list.
7784
7785 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
7786
7787         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
7788         (mode): Add vector modes
7789         (i387): Kill attribute.
7790         (unit): New attribute.
7791         (length_immediate): Grok new types.
7792         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
7793         (modrm): Use "unit".
7794         (memory): Handle MMX/SSE properly.
7795         (scheduling descriptions): Kill uses of fop1.
7796         (sse, mmx, fp patterns): Set type and mode properly.
7797
7798 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
7799
7800         * pa.c (override_options): Default to PA8000 scheduling.
7801         * doc/invoke.texi (HP-PA options): Mention newly added 7300
7802         scheduling parameter.
7803
7804         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
7805         handling of double precision multiplies.
7806
7807         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
7808         fpdiv and fpsqrt instructions.
7809         (7200 & 7300 scheduling): Fix typo in handling of
7810         store-load and store-store penalties.
7811
7812 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7813
7814         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
7815         mips.  Add two missing commas.
7816
7817 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
7818
7819         * doc/contrib.texi (Contributors): Update Paolo Carlini's
7820         and Benjamin Kosnik's entries.
7821
7822 2002-04-29  David S. Miller  <davem@redhat.com>
7823
7824         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
7825         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
7826         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
7827         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
7828
7829 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7830
7831         * combine.c (find_split_point): Use gen_int_mode.
7832
7833 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
7834
7835         Merging code from dfa-branch:
7836
7837         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
7838
7839         * genautomata.c (output_reserv_sets): Fix typo.
7840
7841         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
7842
7843         * genautomata.c (output_reserv_sets): Remove
7844         next_cycle_output_flag.
7845
7846         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
7847
7848         * sched-rgn.c (init_ready_list): Make the DFA code handle
7849         USE/CLOBBER insns in the same way as the traditional
7850         scheduler.
7851         (new_ready): Similarly..
7852
7853         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
7854
7855         * haifa-sched.c (schedule_block): Change the DFA state only after
7856         issuing insn.
7857
7858         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
7859
7860         * pa.c (hppa_use_dfa_pipeline_interface): New function.
7861         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
7862         (override_options): Add PA7300 scheduling support.
7863         (pa_adjust_cost): Update various comments.  Properly
7864         handle anti and output dependencies when using the
7865         DFA scheduler.
7866         (pa_issue_rate): Add PA7300 scheduling support.
7867         (pa_can_combine_p): Call extract_insn before calling
7868         constrain_operands (taken from mainline tree).
7869         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
7870         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
7871         descriptions using DFA descriptions.  Add PA7300
7872         scheduling support.
7873
7874         2002-03-30  David S. Miller  <davem@redhat.com>
7875
7876         Add UltraSPARC-III DFA scheduling support.
7877         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
7878         Update FP conditional move on register insn patterns to use it, as
7879         appropriate.
7880         (define_attr cpu): Add ultrasparc3.
7881         (define_attr us3load_type): New, update integer load patterns to
7882         set it, as appropriate.
7883         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
7884         (rest): Add UltraSPARC3 scheduling description.
7885         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
7886         (PROCESSOR_ULTRASPARC3): New.
7887         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
7888         ({ASM,CPP}_CPU_SPEC): Likewise.
7889         (REGISTER_MOVE_COST): Likewise.
7890         (RTX_COSTS): Likewise.
7891         * config/sparc/sparc.c (sparc_override_options,
7892         sparc_initialize_trampoline, sparc64_initialize_trampoline,
7893         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
7894         sparc_issue_rate): Likewise.
7895         * config/sparc/sol2.h: Likewise.
7896         * config/sparc/sol2-sld-64.h: Likewise.
7897         * config/sparc/linux64.h: Likewise.
7898
7899         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
7900
7901         * doc/md.texi: Add comments about usage the latency time for the
7902         different dependencies and about case when two or more conditions
7903         in different define_insn_reservations returns TRUE for an insn.
7904
7905         * doc/md.texi: Add reference for automaton based pipeline
7906         description.
7907
7908         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
7909
7910         * doc/passes.texi: Add missed information about genattrtab.
7911
7912         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
7913
7914         * genautomata.c (output_automata_list_transition_code): Check
7915         automata_list on NULL.
7916
7917         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
7918
7919         * genautomata.c (output_insn_code_cases,
7920         output_automata_list_min_issue_delay_code,
7921         output_automata_list_transition_code,
7922         output_automata_list_state_alts_code): Comment the functions.
7923
7924         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
7925
7926         * genautomata.c (automata_list_el_t): New typedef.
7927         (get_free_automata_list_el,free_automata_list_el,
7928         free_automata_list, automata_list_hash, automata_list_eq_p,
7929         initiate_automata_lists, automata_list_start, automata_list_add,
7930         automata_list_finish, finish_automata_lists,
7931         output_insn_code_cases, output_automata_list_min_issue_delay_code,
7932         output_automata_list_transition_code,
7933         output_automata_list_state_alts_code, add_automaton_state,
7934         form_important_insn_automata_lists): New functions and prototypes.
7935         (insn_reserv_decl): Add members important_automata_list and
7936         processed_p.
7937         (ainsn): Add members important_p.
7938         (automata_list_el): New structure.
7939         (first_free_automata_list_el, current_automata_list,
7940         automata_list_table): New global variables.
7941         (create_ainsns): Initiate member important_p.
7942         (output_internal_min_issue_delay_func): Generate the switch and
7943         call output_insn_code_cases.
7944         (output_internal_trans_func, output_internal_state_alts_func):
7945         Ditto.
7946         (generate): Call initiate_automata_lists.
7947         (automaton_states): New global variable.
7948         (expand_automata): Call form_important_insn_automata_lists.
7949         (write_automata): Call finish_automata_lists.
7950
7951         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
7952
7953         * genautomata.c (add_excls, add_presence_absence): Check that
7954         cpu units in the sets belong the same automaton.
7955
7956         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
7957         about that cpu units in the sets belong the same automaton.
7958
7959         * doc/md.texi: Ditto.
7960
7961         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
7962                     Nitin Gupta  <niting@noida.hcltech.com>
7963
7964         * config/sh/sh.c (sh_use_dfa_interface): New function.
7965
7966         (sh_issue_rate): New Function.
7967         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
7968         TARGET_SCHED_ISSUE_RATE: define.
7969
7970         * config/sh/sh.md: Add DFA based pipeline description for SH4.
7971
7972         (define_attr insn_class): New attribute used for DFA
7973          scheduling.
7974         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
7975         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
7976          cmpeqdi_t): Likewise.
7977
7978         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
7979          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
7980          ex_group.
7981         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
7982
7983         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7984
7985         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
7986         break.
7987
7988         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7989
7990         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
7991         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
7992         necessary.
7993         (output_dfa_start_func): Initiate new variable insn_codes_length,
7994         (write_automata): Output definition of the new variable.
7995
7996         2001-10-02  David S. Miller  <davem@redhat.com>
7997
7998         * haifa-sched.c (advance_one_cycle): New function.
7999         (schedule_block): Use it.
8000         (queue_to_ready): Use it, and also make sure to advance the DFA
8001         state on all stall cycles, not just those where insn_queue links
8002         are found.
8003
8004         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
8005
8006         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
8007         non-zero if the highest-priority instruction could be scheduled.
8008         (choose_ready): Remove last argument from max_issue call.
8009
8010         2001-09-28  David S. Miller  <davem@redhat.com>
8011
8012         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
8013         ultrasparc and 3 for other multi-issue sparcs.
8014
8015         2001-09-27  David S. Miller  <davem@redhat.com>
8016
8017         * config/sparc/sparc.md (cycle_display): New pattern.
8018         * config/sparc/sparc.c (sparc_cycle_display): New.
8019         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
8020
8021         2001-09-25  David S. Miller  <davem@redhat.com>
8022
8023         Convert all of Sparc scheduling to DFA
8024         * config/sparc/sparc.md: Kill all define_function_unit
8025         directives and replace with DFA equivalent.
8026         * config/sparc/sparc.c (ultrasparc_adjust_cost,
8027         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
8028         ultra_fpmode_conflict_exists, ultra_find_type,
8029         ultra_build_types_avail, ultra_flush_pipeline,
8030         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
8031         ultrasparc_variable_issue, ultrasparc_sched_init,
8032         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
8033         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
8034         ultra_cur_hist, ultra_cycles_elapsed): Kill.
8035         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
8036         ultrasparc_store_bypass_p): New.
8037         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
8038         Declare.
8039
8040         2001-09-24  David S. Miller  <davem@redhat.com>
8041
8042         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
8043         ready->vec[foo] not ready[foo].
8044
8045         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
8046
8047         * doc/md.texi: Correct examples for define_insn_reservations
8048         `mult' and `div'.
8049
8050         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
8051
8052         * genautomata.c (create_automata): Print message about creation of
8053         each automaton.
8054         (generate): Remove printing meease about creation of
8055         automata.
8056
8057         2001-09-05  David S. Miller  <davem@redhat.com>
8058
8059         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
8060         * config/sparc/linux64.h: Likewise.
8061
8062         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
8063
8064         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
8065         schedule_block, sched_init, sched_finish): Add missed calls of
8066         use_dfa_pipeline_interface.
8067
8068         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
8069         Ditto.
8070
8071         * sched-vis.c (get_visual_tbl_length): Ditto.
8072
8073         2001-08-27  Richard Henderson  <rth@redhat.com>
8074
8075         * genattr.c (main): Emit state_t even when not doing scheduling.
8076
8077         2001-08-27  Richard Henderson  <rth@redhat.com>
8078
8079         * genautomata.c (expand_automata): Always create a description.
8080
8081         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
8082
8083         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
8084         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
8085         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
8086         RTL constructions.
8087
8088         * genattr.c (main): New variable num_insn_reservations.  Increase
8089         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
8090         pipeline hazard recognizer interface.
8091
8092         * genattrtab.h: New file.
8093
8094         * genattrtab.c: Include genattrtab.h.
8095         (attr_printf, check_attr_test, make_internal_attr,
8096         make_numeric_value): Move protypes into genattrtab.h.  Define them
8097         as external.
8098         (num_dfa_decls): New global variable.
8099         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
8100         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
8101         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
8102         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
8103
8104         * genautomata.c: New file.
8105
8106         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
8107
8108         * sched-int.h: (curr_state): Add the external definition for
8109         automaton pipeline interface.
8110         (haifa_insn_data): Add comments for members blockage and units.
8111
8112         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8113         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
8114         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
8115         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
8116         TARGET_SCHED_DFA_POST_CYCLE_INSN,
8117         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8118         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
8119         macros.
8120         (TARGET_SCHED): Use the new macros.
8121
8122         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
8123         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
8124         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
8125         dfa_bubble): New members in gcc_target.sched.
8126
8127         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
8128         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
8129         (insn_queue): Redefine it as pointer to array.
8130         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
8131         INSN_QUEUE_SIZE.
8132         (max_insn_queue_index_macro_value): New variable.
8133         (curr_state, dfa_state_size, ready_try): New varaibles for
8134         automaton interface.
8135         (ready_element, ready_remove, max_issue): New function prototypes
8136         for automaton interface.
8137         (choose_ready): New function prototype.
8138         (insn_unit, blockage_range): Add comments.
8139         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
8140         FUNCTION_UNITS_SIZE == 0.
8141         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
8142         actual_hazard, potential_hazard): Add comments.
8143         (insn_cost): Use cost -1 as undefined value.  Remove
8144         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
8145         pipeline interface.
8146         (ready_element, ready_remove): New functions for automaton
8147         interface.
8148         (schedule_insn): Add new code for automaton pipeline interface.
8149         (queue_to_ready): Add new code for automaton pipeline interface.
8150         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
8151         (debug_ready_list): Print newline when the queue is empty.
8152         (max_issue): New function for automaton pipeline interface.
8153         (choose_ready): New function.
8154         (schedule_block): Add new code for automaton pipeline interface.
8155         Print ready list before scheduling each insn.
8156         (sched_init): Add new code for automaton pipeline interface.
8157         Initiate insn cost by -1.
8158         (sched_finish): Free the current automaton state and finalize
8159         automaton pipeline interface.
8160
8161         * sched-rgn.c: Include target.h.
8162         (init_ready_list, new_ready, debug_dependencies): Add new code for
8163         automaton pipeline interface.
8164
8165         * sched-vis.c: Include target.h.
8166         (get_visual_tbl_length): Add code for automaton interface.
8167         (target_units, print_block_visualization):  Add comments.
8168
8169         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
8170         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
8171         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
8172         (getruntime.o, genautomata.o): New entries.
8173         (genattrtab.o): Add new dependency file genattrtab.h.
8174         (genattrtab): Add new dependencies.  Link it with `libm.a'.
8175         (getruntime.o, hashtab.o): New entries for canadian cross.
8176
8177         * doc/md.texi: Description of automaton based model.
8178
8179         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
8180         Add comments.
8181         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
8182         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
8183         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
8184         TARGET_SCHED_DFA_POST_CYCLE_INSN,
8185         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
8186         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
8187         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
8188         hook descriptions.
8189         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
8190         MAX_DFA_ISSUE_RATE): New macro descriptions.
8191
8192         * doc/contrib.texi: Add dfa based scheduler contribution.
8193
8194         * doc/gcc.texi: Add more information about genattrtab.
8195
8196 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8197
8198         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
8199         adjust_address_nv call.
8200
8201 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
8202
8203         * doc/install.texi (Testing): Provide additional information, and
8204         a stronger encouragement, for running the testsuites.
8205
8206 2002-04-29  DJ Delorie  <dj@redhat.com>
8207
8208         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
8209         given in upper case.
8210
8211 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8212
8213         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
8214         Solaris 2 <widec.h> if missing.
8215         * fixinc/fixincl.x: Regenerate.
8216         * fixinc/tests/base/widec.h: New file.
8217
8218 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
8219
8220         * toplev.c (f_options): Add "profile" switch so that
8221         -fno-profile can be used to disable -p.
8222
8223 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
8224
8225         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
8226         UV2DImode.
8227         * tree.c (build_common_tree_nodes_2): Likewise.
8228         * tree.h (enum tree_index): Likewise.
8229         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
8230
8231         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
8232         entries.
8233         (init_mmx_sse_builtins): Initialize SSE2 builtins.
8234         (ix86_expand_builtin): Add support for SSE2 builtins.
8235         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
8236         (VALID_SSE_REG_MODE): Use it.
8237         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
8238         (enum ix86_builtins): Add SSE2 builtins.
8239         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
8240         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
8241         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
8242         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
8243         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
8244         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
8245         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
8246         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
8247         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
8248         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
8249         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
8250         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
8251         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
8252         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
8253         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
8254         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
8255         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
8256         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
8257         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
8258         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
8259         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
8260         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
8261         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
8262         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
8263         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
8264         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
8265         lfence_insn): New patterns.
8266         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
8267         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
8268
8269 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
8270
8271         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
8272
8273 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8274
8275         * doc/contrib.texi (Contributors): Add Paolo Carlini and
8276         Janis Johnson.
8277         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
8278         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
8279         and CPU instead of cpu.
8280
8281 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
8282
8283         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
8284         variables.
8285         (lang_independent_options): Add -fif-conversion, -fif-conversion2
8286         (rest_of_compilation): Do if conversion only when asked for.
8287         (parse_options_and_default_flags): Set new variables to 1 for -O1
8288         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
8289
8290 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
8291
8292         * i386.c (dbx64_register_map): Fix typo.
8293
8294 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
8295
8296         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
8297         real_one_half, real_bb_freq_max): New static variables.
8298         (debug_profile_bbauxs): Kill.
8299         (process_note_predictions): Kill unused variable.
8300         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
8301         volatile double.
8302         (propagate_freq): Use REAL_ARITHMETICS.
8303         (estimate_bb_frequencies): Likevise; init new static variables.
8304         * Makefile.in (predict.o): Add dependency on real.h
8305
8306 2002-04-28  David S. Miller  <davem@redhat.com>
8307
8308         PR target/6500
8309         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
8310         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
8311         several {reads,writes} instead.
8312         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
8313         Define.
8314
8315 2002-04-27  David S. Miller  <davem@redhat.com>
8316
8317         PR target/6494
8318         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
8319         of the stack bias.
8320
8321         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
8322         including signal.h and sys/ucontext.h, not needed.
8323
8324 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
8325
8326         * varasm.c (output_constant_def): Correct test for not calling
8327         ENCODE_SECTION_INFO for INTEGER_CST.
8328
8329 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8330
8331         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
8332         keep most cases as function eval_token.
8333         (eval_token): New function.
8334         (_cpp_parse_expr): Read token here for improved diagnostics.
8335         Don't use op_as_text.  Detect bad ':' here.
8336         (reduce): Don't detect bad ':' here.
8337         (op_as_text): Remove.
8338         * cpphash.h (_cpp_test_assertion): Change prototype.
8339         * cpplib.c (_cpp_test_assertion): Change prototype.
8340
8341 2002-04-28  Richard Henderson  <rth@redhat.com>
8342
8343         PR c/5154
8344         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
8345         (ggc_mark_rtx_children): New.
8346
8347 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8348
8349         PR target/6496
8350         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
8351         after call peepholes for UltraSPARC.
8352         (call + jump 64-bit peepholes): Remove.
8353
8354 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8355
8356         PR c/6497
8357         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
8358         result as temporary value.
8359
8360 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8361
8362         PR c++/6396
8363         * toplev.c (rest_of_compilation): Only run regrename and copy
8364         propagation if optimizing.
8365
8366 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8367
8368         PR optimization/6475
8369         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
8370         register of REGNO_DECL (i).
8371         * Makefile.in (reload1.o): Add $(TREE_H).
8372
8373 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8374
8375         * cppexp.c (lex): Update to use state.skip_eval.
8376         (struct op): Remove prio and flags members.
8377         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
8378         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
8379         (LEFT_ASSOC): New macro.
8380         (optab): New table of operator priorities and flags.
8381         (SHIFT): Update.
8382         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
8383         malloc-ed parser stack.
8384         (reduce): New; reduce the operator stack.
8385         (_cpp_expand_op_stack): Expand the operator stack as necessary.
8386         * cpphash.h (struct op): Predeclare.
8387         (struct cpp_reader): New members op_stack, op_limit.
8388         (struct lexer_state): New member skip_eval.
8389         (_cpp_parse_expr): Update.
8390         (_cpp_expand_op_stack): New.
8391         * cpplib.c (do_if): Update.
8392         * cppinit.c (cpp_create_reader): Create op stack.
8393         (cpp_destroy): And destroy it.
8394         * cpplib.h (CPP_LAST_CPP_OP): Correct.
8395         (TTYPE_TABLE): Correct.
8396
8397 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8398
8399         PR c/6343
8400         * c-decl.c (duplicate_decls): Call merge_weak.
8401         * c-pragma.c (apply_pragma_weak): Warn about misuse.
8402         * output.h (merge_weak): Prototype merge_weak.
8403         * varasm.c (merge_weak): New function.
8404         (declare_weak): Make sure we don't give an error on VAR_DECLs.
8405         Mark RTL with SYMBOL_REF_WEAK.
8406
8407 2002-04-27  Kurt Garloff <garloff@suse.de>
8408
8409         * tree-inline.c (inlinable_function_p): Improve heuristics
8410         by using a smoother function to cut down allowable inlinable size.
8411         * param.def: Add parameters max-inline-insns-single,
8412         max-inline-slope, min-inline-insns that determine the exact
8413         shape of the above function.
8414         * param.h: Likewise.
8415
8416 2002-04-26  Richard Henderson  <rth@redhat.com>
8417
8418         * c-parse.in (malloced_yyss, malloced_yyvs): New.
8419         (yyoverflow): Re-add.  Set them.
8420         (free_parser_stacks): New.
8421         * c-common.h: Declare it.
8422         * c-lex.c (c_common_parse_file): Call it.
8423
8424 2002-04-26  Richard Henderson  <rth@redhat.com>
8425
8426         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
8427         for fallthru search.
8428
8429 2002-04-26  Eric Christopher  <echristo@redhat.com>
8430
8431         PR optimization/3700
8432         * config/mips/mips.c (mips_issue_rate): Define.  New function.
8433         (TARGET_SCHED_ISSUE_RATE): Use.
8434
8435 2002-04-25  David S. Miller  <davem@redhat.com>
8436
8437         PR target/6422
8438         * reorg.c (optimize_skip): Do not allow exception causing
8439         instructions to be considered for delay slots.
8440         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
8441         (relax_delay_slots): Do not try to consider exception causing
8442         instructions as redundant.
8443
8444 2002-04-26  Richard Henderson  <rth@redhat.com>
8445
8446         PR c/5225
8447         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
8448
8449 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
8450
8451         PR bootstrap/6445
8452         * config/i386/i386.md (untyped_call): Return the value in a float
8453         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
8454         TARGET_80387.
8455
8456 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
8457
8458         * tree.c (tree_int_cst_lt): Compare constants whose types differ
8459         in unsigned-ness correctly.
8460
8461 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8462
8463         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
8464         portable runtime model.
8465
8466 2002-04-26  Richard Henderson  <rth@redhat.com>
8467
8468         * c-parse.in (yyoverflow): Revert.
8469
8470 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
8471             Richard Henderson  <rth@redhat.com>
8472
8473         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
8474         result as temporary value.
8475
8476 2002-04-26  Richard Henderson  <rth@redhat.com>
8477
8478         PR c/3581
8479         * c-common.c (fix_string_type): Split out of ...
8480         (combine_strings): ... here.  Take a varray, not a tree list.
8481         (c_expand_builtin_printf): Use fix_string_type.
8482         * c-common.h: Update decls.
8483         * c-parse.in (string): Remove.  Update all uses to use STRING
8484         instead, and not call combine_strings.
8485         (yylexstring): New.
8486         (_yylex): Use it.
8487         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
8488         (build_asm_stmt): Likewise.
8489         * objc/objc-act.c (my_build_string): Use fix_string_type.
8490         (build_objc_string_object): Build varray for combine_strings.
8491
8492 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
8493
8494         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
8495         x86-64.
8496
8497 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8498
8499         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
8500         (HAVE_NO_R_OPERAND): Remove.
8501         (HAVE_VALUE): Remove.
8502         (op_to_prio): Update.
8503         (UNARY): Don't alter flags.
8504         (_cpp_parse_expr): want_value used to indicate whether
8505         a number or unary operator is expected next.  Distinguish
8506         unary and binary +/-.
8507         (op_as_text): Update for unary operators.
8508
8509 2002-04-25  Richard Henderson  <rth@redhat.com>
8510
8511         PR c/2161
8512         * c-parse.in (yyoverflow): New.
8513
8514 2002-04-25  Richard Henderson  <rth@redhat.com>
8515
8516         PR c/2098
8517         * c-common.c (shorten_compare): Simplfy conditions leading to
8518         the generation of a warning.
8519
8520 2002-04-25  Richard Henderson  <rth@redhat.com>
8521
8522         PR c/2035
8523         * expmed.c (extract_bit_field): Fall through to generic code rather
8524         than aborting on subreg special case.
8525
8526 2002-04-25  David S. Miller  <davem@redhat.com>
8527
8528         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
8529         for DECL being NULL.
8530
8531 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
8532
8533         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
8534
8535 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
8536
8537         * c-decl.c (grokdeclarator): Remove outdated ??? note
8538         on invalid declaration of flexible array members.
8539
8540 2002-04-25  Richard Henderson  <rth@redhat.com>
8541
8542         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
8543
8544 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
8545
8546         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
8547         needed by the compiler, even if they are used as global regs.
8548
8549 2002-04-25  Matt Hiller  <hiller@redhat.com>
8550
8551         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
8552         functions.
8553         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
8554         of the corresponding functions.
8555         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
8556         New prototypes.
8557
8558 2002-04-25  Matt Hiller  <hiller@redhat.com>
8559
8560         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
8561
8562         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
8563         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
8564         registers, adjust comment accordingly.
8565         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
8566         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
8567         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
8568         for coprocessor registers.
8569         (ADDITIONAL_REGISTER_NAMES): Include
8570         ALL_COP_ADDITIONAL_REGISTER_NAMES.
8571
8572         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
8573         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
8574         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
8575         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
8576         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
8577
8578         (mips_char_to_class): Adjust comment to include coprocessor
8579         constraint letters.
8580
8581         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
8582         New functions.
8583         (mips_reg_names, mips_regno_to_class): Include coprocessor
8584         information.
8585         (mips_sw_reg_names): Ditto, make non-static.
8586         (mips_move_1word): Handle moves to and from coprocessor registers.
8587         (mips_move_2words): Handle moves to and from coprocessor
8588         registers.
8589         (mips_class_max_nregs, mips_register_move_cost): Handle
8590         coprocessor register classes.
8591         (override_options): Initialize mips_char_to_class and
8592         mips_hard_regno_mode_ok properly for coprocessor registers.
8593
8594         * config/mips/mips.md (movdi_internal, movdi_internal2,
8595         movsi_internal1, movsi_internal2): Add constraint-sets for
8596         coprocessor registers.
8597         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
8598         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
8599         isn't mips.
8600         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
8601         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
8602         isn't mips.
8603         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
8604         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
8605         isn't mips.
8606         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
8607         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
8608         isn't mips.
8609
8610         * doc/tm.texi: Document feature.
8611
8612 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8613
8614         * integrate.c (function_attribute_inlinable_p): Simplify.
8615         Check the table pointer is not NULL.
8616
8617 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
8618
8619         * doc/c-tree.texi: Fix typo in introduction.
8620
8621 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8622
8623         * c-common.h (c_common_parse_file): Update.
8624         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8625         * c-lex.c (YYDEBUG): Get from c-lex.h.
8626         (c_common_parse_file): Update.
8627         * c-lex.h (YYDEBUG, yydebug): New.
8628         * c-parse.in (YYDEBUG): Get from c-lex.h.
8629         (c_set_yydebug): Remove.
8630         * c-tree.h (c_set_yydebug): Remove.
8631         * langhooks-def.h (lhd_do_nothing_i): New.
8632         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
8633         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
8634         * langhooks.c  (lhd_do_nothing_i): New.
8635         (lhd_set_yydebug): Remove.
8636         * langhooks.h (struct lang_hooks): Update.
8637         * toplev.c (set_yydebug): New.
8638         (compile_file): Update call to parse_file hook.
8639         (decode_d_option): Update.
8640 objc:
8641         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8642
8643 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
8644
8645         * loop.c (load_mems): Don't change the interface of called functions.
8646
8647         * calls.c (expand_call): Take current_function_pretend_args_size
8648         into account when setting argblock for sibcalls.
8649
8650 2002-04-24  Matt Hiller  <hiller@redhat.com>
8651
8652         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
8653         * c-lex.c: Ditto.
8654
8655         * cpplex.c (skip_line_comment): Process comment one multibyte
8656         character at a time rather than one char at a time, if
8657         appropriate.
8658         (parse_string): Process string one multibyte character at a time
8659         rather than one char at a time, if appropriate.
8660         * c-lex.c (lex_string): Lex and copy multibyte strings
8661         appropriately.
8662         * cpplib.h (cppchar_t): Change to unsigned.
8663
8664 2002-04-24  Richard Henderson  <rth@redhat.com>
8665
8666         PR c/3467
8667         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
8668         for c99.
8669
8670 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
8671
8672         * sh.c (sh_va_arg): If argument was passed by reference,
8673         dereference the pointer.
8674
8675         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8676
8677         * sh.md (divsi3_i4_media): Use match_operand for input values
8678         rather than hard registers.
8679         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
8680         unnecessarily through hard registers.  Keep copies of pseudo
8681         registers outside of the libcall sequence.
8682
8683         * sh.md (casesi_shift_media): Add modes.
8684
8685         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
8686         values in memory.
8687
8688 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8689
8690         * attribs.c (c_common_attribute_table): Move table and handlers
8691         to c-common.c.
8692         (format_attribute_table, lang_attribute_table,
8693         lang_attribute_common): Remove.
8694         (init_attributes): Replace NULL pointers with pointers to the
8695         empty table.
8696         (handle_packed_attribute, handle_nocommon_attribute,
8697         handle_common_attribute, handle_noreturn_attribute,
8698         handle_noinline_attribute, handle_always_inline_attribute,
8699         handle_used_attribute, handle_unused_attribute,
8700         handle_const_attribute, handle_transparent_union_attribute,
8701         handle_constructor_attribute, handle_destructor_attribute,
8702         handle_mode_attribute, handle_section_attribute,
8703         handle_aligned_attribute, handle_weak_attribute,
8704         handle_alias_attribute, handle_visibility_attribute,
8705         handle_no_instrument_function_attribute, handle_malloc_attribute,
8706         handle_no_limit_stack_attribute, handle_pure_attribute,
8707         handle_deprecated_attribute, handle_vector_size_attribute,
8708         vector_size_helper): Move to c-common.c.
8709         * c-common.c (c_common_attribute_table,
8710         handle_packed_attribute, handle_nocommon_attribute,
8711         handle_common_attribute, handle_noreturn_attribute,
8712         handle_noinline_attribute, handle_always_inline_attribute,
8713         handle_used_attribute, handle_unused_attribute,
8714         handle_const_attribute, handle_transparent_union_attribute,
8715         handle_constructor_attribute, handle_destructor_attribute,
8716         handle_mode_attribute, handle_section_attribute,
8717         handle_aligned_attribute, handle_weak_attribute,
8718         handle_alias_attribute, handle_visibility_attribute,
8719         handle_no_instrument_function_attribute, handle_malloc_attribute,
8720         handle_no_limit_stack_attribute, handle_pure_attribute,
8721         handle_deprecated_attribute, handle_vector_size_attribute,
8722         vector_size_helper): Move from attribs.c.
8723         * c-common.h (c_common_attribute_table,
8724         c_common_format_attribute_table): New.
8725         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
8726         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
8727         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
8728         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
8729         (LANG_HOOKS_INITIALIZER): Update.
8730         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
8731         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
8732         * target.h: Update comment.
8733         * tree.c (default_target_attribute_table): Remove.
8734         * tree.h (default_target_attribute_table, format_attribute_table,
8735         lang_attribute_table, lang_attribute_common): Remove.
8736 objc:
8737         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
8738         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
8739
8740 2002-04-24  Jason Merrill  <jason@redhat.com>
8741
8742         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
8743         * dwarf2out.c (dwarf_attr_name): Support it.
8744         (gen_array_type_die): Emit it.
8745         (lookup_type_die): No special handling for VECTOR_TYPE.
8746         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
8747
8748 2002-04-24  Richard Henderson  <rth@redhat.com>
8749
8750         * config/mips/mips.md (movdi_usd): Renumber.
8751
8752 2002-04-24  David S. Miller  <davem@redhat.com>
8753
8754         PR target/6420
8755         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
8756         32-bit Sparc and current_function_returns_struct is true.
8757
8758 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
8759
8760         * loop.c (canonicalize_condition): Use gen_int_mode.
8761
8762 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
8763
8764         * config/rs6000/altivec.h: Cleanup file.  Add non individual
8765         variants.
8766         (vec_vaddubm): New.
8767         (vec_vadduhm): New.
8768         (vec_vadduwm): New.
8769         (vec_vaddfp): New.
8770         (vec_vaddcuw): New.
8771         (vec_vaddubs): New.
8772         (vec_vaddsbs): New.
8773         (vec_vadduhs): New.
8774         (vec_vadduws): New.
8775         (vec_vaddsws): New.
8776         (vec_vand): New.
8777         (vec_vandc): New.
8778         (vec_vavgub): New.
8779         (vec_vavgsb): New.
8780         (vec_vavguh): New.
8781         (vec_vavgsh): New.
8782         (vec_vavguw): New.
8783         (vec_vavgsw): New.
8784         (vec_vrfip): New.
8785         (vec_vcmpbfp): New.
8786         (vec_vcmpequb): New.
8787         (vec_vcmpequh): New.
8788         (vec_vcmpequw): New.
8789         (vec_vcmpeqfp): New.
8790         (vec_vcmpgefp): New.
8791         (vec_vcmpgtub): New.
8792         (vec_vcmpgtsb): New.
8793         (vec_vcmpgtuh): New.
8794         (vec_vcmpgtsh): New.
8795         (vec_vcmpgtuw): New.
8796         (vec_vcmpgtsw): New.
8797         (vec_vcmpgtfp): New.
8798         (vec_vcmpgefp): New.
8799         (vec_vcfux): New.
8800         (vec_vcfsx): New.
8801         (vec_vctsxs): New.
8802         (vec_vctuxs): New.
8803         (vec_vexptefp): New.
8804         (vec_vrfim): New.
8805         (vec_lvx): New.
8806         (vec_lvebx): New.
8807         (vec_lvehx): New.
8808         (vec_lde): Add vector float variant.
8809         (vec_lvewx): New.
8810         (vec_lvxl): New.
8811         (vec_vlogefp): New.
8812         (vec_vmaddfp): New.
8813         (vec_vmhaddshs): New.
8814         (vec_vmaxub): New.
8815         (vec_vmaxsb): New.
8816         (vec_vmaxuh): New.
8817         (vec_vmaxsh): New.
8818         (vec_vmaxuw): New.
8819         (vec_vmaxsw): New.
8820         (vec_vmaxsw): New.
8821         (vec_vmaxfp): New.
8822         (vec_vmrghb): New.
8823         (vec_vmrghh): New.
8824         (vec_vmrghw): New.
8825         (vec_vmrglb): New.
8826         (vec_vmrglh): New.
8827         (vec_vmrglw): New.
8828         (vec_vminub): New.
8829         (vec_vminsb): New.
8830         (vec_vminuh): New.
8831         (vec_vminsh): New.
8832         (vec_vminuw): New.
8833         (vec_vminsw): New.
8834         (vec_vminfp): New.
8835         (vec_vmladduhm): New.
8836         (vec_vmhraddshs): New.
8837         (vec_msumubm): New.
8838         (vec_vmsummbm): New.
8839         (vec_vmsumuhm): New.
8840         (vec_vmsumshm): New.
8841         (vec_vmsumuhs): New.
8842         (vec_vmsumshs): New.
8843         (vec_vmuleub): New.
8844         (vec_vmulesb): New.
8845         (vec_vmuleuh): New.
8846         (vec_vmulesh): New.
8847         (vec_vmuloub): New.
8848         (vec_mulosb): New.
8849         (vec_vmulouh): New.
8850         (vec_vmulosh): New.
8851         (vec_vnmsubfp): New.
8852         (vec_vnor): New.
8853         (vec_vor): New.
8854         (vec_vpkuhum): New.
8855         (vec_vpkuwum): New.
8856         (vec_vpkpx): New.
8857         (vec_vpkuhus): New.
8858         (vec_vpkshss): New.
8859         (vec_vpkuwus): New.
8860         (vec_vpkswss): New.
8861         (vec_vpkshus): New.
8862         (vec_vpkswus): New.
8863         (vec_vperm): New.
8864         (vec_vrefp): New.
8865         (vec_vrlb): New.
8866         (vec_vrlh): New.
8867         (vec_vrlw): New.
8868         (vec_vrfin): New.
8869         (vec_vrsqrtefp): New.
8870         (vec_vsel): New.
8871         (vec_vslb): New.
8872         (vec_vslh): New.
8873         (vec_vslw): New.
8874         (vec_vsldoi): New.
8875         (vec_vsl): New.
8876         (vec_vslo): New.
8877         (vec_vspltb): New.
8878         (vec_vsplth): New.
8879         (vec_vspltw): New.
8880         (vec_vspltisb): New.
8881         (vec_vspltish): New.
8882         (vec_vspltisw): New.
8883         (vec_vsrb): New.
8884         (vec_vsrh): New.
8885         (vec_vsrw): New.
8886         (vec_vsrab): New.
8887         (vec_vsrah): New.
8888         (vec_vsraw): New.
8889         (vec_vsr): New.
8890         (vec_vsro): New.
8891         (vec_stvx): New.
8892         (vec_stvebx): New.
8893         (vec_stvehx): New.
8894         (vec_stvewx): New.
8895         (vec_stvxl): New.
8896         (vec_vsububm): New.
8897         (vec_vsubuhm): New.
8898         (vec_vsubuwm): New.
8899         (vec_vsubfp): New.
8900         (vec_vsubcuw): New.
8901         (vec_vsububs): New.
8902         (vec_vsubsbs): New.
8903         (vec_vsubuhs): New.
8904         (vec_vsubshs): New.
8905         (vec_vsubuws): New.
8906         (vec_vsubsws): New.
8907         (vec_vsum4ubs): New.
8908         (vec_vsum4sbs): New.
8909         (vec_vsum4shs): New.
8910         (vec_vsum2sws): New.
8911         (vec_vsumsws): New.
8912         (vec_vrfiz): New.
8913         (vec_vupkhsb): New.
8914         (vec_vupkhpx): New.
8915         (vec_vupkhsh): New.
8916         (vec_vupklsb): New.
8917         (vec_vupklpx): New.
8918         (vec_vupklsh): New.
8919         (vec_vxor): New.
8920
8921 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
8922
8923         PR c/5430
8924         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
8925         added literals from substracted literals.
8926         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
8927         (fold) [associate]: Preserve MINUS_EXPR if needed.
8928
8929 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
8930
8931         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
8932         are obsoleted.
8933
8934 2002-04-23  Tom Tromey  <tromey@redhat.com>
8935
8936         * gcc.c: Added --resource.  For PR java/6314.
8937
8938 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
8939
8940         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
8941         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
8942         these libraries.
8943
8944 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
8945
8946         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
8947
8948 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
8949
8950         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
8951         workaround.
8952         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
8953         (ix86_expand_clrstr): Fix typo.
8954         * loop.c (gen_load_of_final_value): New.
8955         (loop_givs_rescan, strength_reduce, check_dbra_loop):
8956         Use it.
8957
8958 2002-04-23  Roger Sayle  <roger@eyesopen.com>
8959
8960         * builtins.c (builtin_memset_gen_str): New function.
8961         (expand_builtin_memset): Optimize the case of constant length, but
8962         unknown value.
8963
8964 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
8965
8966         * config/rs6000/altivec.h (vec_step): Remove extraneous
8967         parentheses.
8968         (vec_ctu): Cast return.
8969
8970 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
8971
8972         PR target/6413
8973         * function.h: (struct function): Add profile_label_no field.
8974         (current_function_profile_label_no): Define.
8975         * function.c: (profile_label_no): New static var.
8976         (expand_function_start): Increment it, and copy to
8977         current_function_profile_label_no.
8978         * output.h (profile_label_no): Delete.
8979         * final.c (profile_label_no): Delete.
8980         (profile_function): Use current_function_profile_label_no.
8981         (final_end_function): Don't increment profile_label_no here.
8982         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
8983         profile_label_no with current_function_profile_label_no.
8984         * config/pa/pa.c (current_function_number): Delete.
8985         (pa_output_function_prologue): Don't output profile label here.
8986         (hppa_profile_hook): Use label_no param rather than
8987         current_function_number.
8988         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
8989         * config/pa/pa.h: .. here.
8990         (FUNCTION_PROFILER): Output profile label here.
8991
8992 2002-04-22  Eric Christopher  <echristo@redhat.com>
8993
8994         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
8995         patch of 2002-04-09 due to binutils issues.
8996         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
8997
8998 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
8999
9000         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
9001         constraint to 'o' for m=r and r=m alternatives.
9002         ("*movv8hi_internal1"): Same.
9003         ("*movv16qi_internal1"): Same.
9004         ("*movv4sf_internal1"): Same.
9005
9006 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
9007
9008         * rtl.h (RTX_FLAG): New macro.
9009         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
9010         * final.c (alter_subreg): Use macro to access rtx flag.
9011         * integrate.c (copy_rtx_and_substitute): Use new access macro.
9012         * print-rtl.c (print_rtx): Use new access macro.
9013
9014         * cse.c (insert): Check rtx code before accessing flag.
9015
9016         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
9017         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
9018         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
9019         convert_const_symbol_ref, make_canonical, make_alternative_compare,
9020         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
9021         simplify_test_exp, optimize_attrs, simplify_by_exploding,
9022         find_and_mark_used_attributes, unmark_used_attributes,
9023         add_values_to_cover, simplify_with_current_value,
9024         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
9025         copy_rtx_unchanging, main): Use new access macros.
9026
9027 2002-04-22  Tom Rix  <trix@redhat.com>
9028
9029         * expmed.c (init_expmed): Generate shifted constant once.
9030
9031 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
9032
9033         * c-lex.c (lex_charconst): Call convert to get constant in
9034         proper type; don't just smash the type field.
9035         Fixes PR c/6300.
9036
9037         * config.gcc: Add list of obsolete configurations.  Disallow
9038         building these without --enable-obsolete.
9039         * doc/install.texi: Document --enable-obsolete and obsoletion
9040         policy.  Mention obsoletion of individual targets in
9041         appropriate places.
9042
9043 2002-04-22  Richard Henderson  <rth@redhat.com>
9044
9045         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
9046
9047 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
9048
9049         PR f/6138.
9050         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
9051         (walk_fixup_memory_subreg): Likewise.
9052         (fixup_var_refs_insn): Adjust accordingly.
9053         (fixup_var_refs_1): Likewise.
9054
9055 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
9056
9057         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
9058         LIBPATH_ARCH64_SPEC): Define.
9059         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
9060         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
9061         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
9062         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
9063
9064 2002-04-22      Joel Sherrill <joel@OARcorp.com>
9065
9066         * gthr-rtems.h: Correct prototypes to remove warnings.
9067
9068 2002-04-22  Richard Henderson  <rth@redhat.com>
9069
9070         PR c/6344
9071         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
9072
9073         * gcse.c (free_insn_expr_list_list): New.
9074         (clear_modify_mem_tables): Use it.  Fix bit set usage.
9075         (canon_list_insert): Use EXPR_LISTs for expressions.
9076         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
9077
9078 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
9079
9080         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
9081         file change and include code to _cpp_pop_buffer.
9082         * cpphash.h (struct pending_option): Predeclare.
9083         (struct cpp_reader): New member next_include_file.
9084         (_cpp_pop_file_buffer): Update.
9085         (_cpp_push_next_buffer): Update, rename.
9086         * cppinit.c (cpp_destroy): Free include chain and pending here.
9087         (cpp_finish_options): Simplify.
9088         (_cpp_push_next_buffer): Rename and clean up.
9089         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
9090         Clarify.
9091         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
9092
9093 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
9094
9095         * config/rs6000/altivec.h (vec_xor): Add variant for both args
9096         being vector signed int.
9097         (vec_andc): Same.
9098         (vec_xor): Add variant for both args being vector signed char.
9099         Remove redundant variant.
9100         (vec_andc): Same.
9101
9102 2002-04-21  David S. Miller  <davem@redhat.com>
9103
9104         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
9105         compare mode in output RTL.
9106
9107 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
9108
9109         * config/rs6000/rs6000.c (rs6000_override_options): Correct
9110         style and formatting of previous patch.
9111
9112 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
9113
9114         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
9115         flag_pic for ABI_AIX.
9116
9117 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
9118
9119         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
9120         * cppfiles.c (read_include_file): Similarly.
9121         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
9122         uxstrdup ustrchr, ufputs): Similarly.
9123         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
9124         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
9125         cpp_ideq, parse_identifier, parse_number): Similarly.
9126         * cpplib.c (struct directive, dequote_string, D, run_directive,
9127         cpp_push_buffer): Similarly.
9128         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
9129         _cpp_create_definition, check_trad_stringification,
9130         cpp_macro_definition): Similarly.
9131
9132 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
9133
9134         * cppmacro.c (funlike_invocation_p): Don't step back
9135         over CPP_EOF.
9136
9137 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
9138
9139         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
9140         labelno.
9141
9142 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
9143
9144         * doc/invoke.texi: Remove Chill references.
9145         * doc/gcc.texi: Update last modified date.
9146
9147 2002-04-20  Kazu Hirata  <kazu@hxi.com>
9148
9149         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
9150         push and pop.  Replace add.l with add.w.
9151
9152 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
9153
9154         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
9155         multiply instructions for H8/300H case.
9156
9157 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
9158
9159         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
9160         Bum three instructions from each routine.
9161
9162 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9163
9164         * Makefile.in: Update.
9165         * decl.c (push_c_function_context, pop_c_function_context,
9166         mark_c_function_context): Rename for consistency.
9167         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
9168         * c-tree.h (push_c_function_context, pop_c_function_context,
9169         mark_c_function_context): Rename for consistency.
9170         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9171         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
9172         * function.c (init_lang_status, save_lang_status,
9173         restore_lang_status, mark_lang_status, free_lang_status):
9174         Move to langhooks.h.
9175         (push_function_context_to, pop_function_context_from,
9176         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
9177         Update.
9178         * function.h (init_lang_status, save_lang_status,
9179         restore_lang_status, mark_lang_status, free_lang_status):
9180         Move to langhooks.h.
9181         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
9182         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
9183         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
9184         LANG_HOOKS_FUNCTION_INITIALIZER): New.
9185         (LANG_HOOKS_INITIALIZER): Update.
9186         (lhd_do_nothing_f): New.
9187         * langhooks.h (struct lang_hooks_for_functions): New.
9188         (struct lang_hooks): New hooks.
9189         * langhooks.c (lhd_do_nothing_f): New.
9190 objc:
9191         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9192         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
9193
9194 2002-04-19  David S. Miller  <davem@redhat.com>
9195
9196         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
9197         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
9198
9199 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
9200
9201         PR optimization/3756
9202         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
9203         x = ((int) y < 0) ? cst1 : cst2.
9204
9205 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
9206
9207         PR c/6358
9208         * function.c: Reapply patch for c/6358.
9209         (expand_function_end): Copy decl_rtl's mode, not
9210         current_function_return_rtx mode.
9211
9212 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
9213
9214         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
9215         targets.
9216
9217 2002-04-19  Tom Tromey  <tromey@redhat.com>
9218
9219         * doc/install.texi (Specific): Update status of Solaris 2.8.
9220         For PR libgcj/6158.
9221
9222 2002-04-19  Andreas Schwab  <schwab@suse.de>
9223
9224         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
9225         (PUT_REAL): Restore old definition.
9226
9227 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
9228             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9229
9230         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
9231         binutils 2.11.2 and higher generate smaller binaries than Sun's
9232         native tools.
9233
9234 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
9235
9236         PR c++/6352
9237         * toplev.c (rest_of_compilation): Do not defer functions for which
9238         TREE_SYMBOL_REFERENCED has already been set.
9239
9240 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
9241
9242         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
9243         alternative.
9244
9245 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9246
9247         * builtins.c: Include langhooks.h.
9248         (lang_type_promotes_to): Remove.
9249         (expand_builtin_va_arg): Use new hook.
9250         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
9251         (simple_type_promotes_to): Move to c-typeck.c.
9252         * c-common.h (simple_type_promotes_to): Remove.
9253         * c-decl.c (duplicate_decls, grokdeclarator): Update.
9254         * c-format.c: Include langhooks.h.
9255         (check_format_types): Update.
9256         * c-tree.h (c_type_promotes_to): New.
9257         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
9258         (type_lists_compatible_p): Update.
9259         * langhooks-def.h (lhd_type_promotes_to): New.
9260         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
9261         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
9262         * langhooks.c (lhd_type_promotes_to): New.
9263         * langhooks.h (struct lang_hooks_for_types): New hook.
9264         * tree.h (lang_type_promotes_to): Remove.
9265 objc:
9266         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
9267
9268 2002-04-18  Richard Henderson  <rth@redhat.com>
9269
9270         * function.c: Revert patch for c/6358.
9271
9272 2002-04-18  Richard Henderson  <rth@redhat.com>
9273
9274         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
9275         blocks.  Handle multiple references to the TRAP block.  Handle
9276         non-adjacent THEN and OTHER blocks.
9277
9278 2002-04-18  Richard Henderson  <rth@redhat.com>
9279
9280         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
9281         crash with no type for by-mode libcalls.
9282
9283         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
9284
9285 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
9286
9287         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
9288         __xtensa_nonlocal_goto): Use a syscall instructions to flush
9289         the register windows.
9290
9291 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
9292
9293         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
9294         appropriate.  Document need for extended precision even when
9295         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
9296         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
9297         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
9298         instead of relying on later syntax error when REAL_WIDTH > 5.
9299         * real.c: Define NE based only on whether or not we have a
9300         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
9301         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
9302         define GET_REAL and PUT_REAL as simple memcpy operations; no
9303         need to byteswap or round.
9304         Use #error instead of #ifdef-ing out the entire file, for
9305         prompt error detection.
9306
9307         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
9308
9309 2002-04-18  David S. Miller  <davem@redhat.com>
9310
9311         * config/sparc/sparc.h (BRANCH_COST): Define.
9312
9313         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
9314         does it.
9315
9316 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
9317
9318         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
9319         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
9320         propagate_block calls after relaxation loop using new variable
9321         stabilized_prop_flags.
9322
9323 2002-04-18  Richard Henderson  <rth@redhat.com>
9324
9325         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
9326         (ia64_va_arg): Expect variable sized types by reference.
9327         * config/ia64/ia64-protos.h: Update.
9328         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
9329         ia64_function_arg_pass_by_reference.
9330
9331 2002-04-18  Richard Henderson  <rth@redhat.com>
9332
9333         * ifcvt.c: Include except.h.
9334         (block_has_only_trap): Break out from find_cond_trap.
9335         (find_cond_trap): Use it.  Always delete the trap block.
9336         (merge_if_block): Allow then block null.  Be less simplistic about
9337         what insns can end a block.
9338         * Makefile.in (ifcvt.o): Depend on except.h.
9339
9340         * config/ia64/ia64.md (trap, conditional_trap): New.
9341
9342 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9343
9344         PR c/6358
9345         * function.c (assign_parms): Assign hard current_function_return_rtx
9346         register here...
9347         (expand_function_end): ...not here.
9348
9349 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
9350
9351         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
9352         * c-tree.h (c_incomplete_type_error): New.
9353         * c-typeck.c (require_complete_type, build_component_ref): Update.
9354         (incomplete_type_error): Rename.
9355         * langhooks-def.h (lhd_incomplete_type_error): New.
9356         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
9357         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
9358         * langhooks.c (lhd_incomplete_type_error): New.
9359         * langhooks.h (struct lang_hooks_for_types): New hook.
9360         * tree.c (size_in_bytes): Use new hook.
9361         * tree.h (incomplete_type_error): Remove.
9362 objc:
9363         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
9364
9365 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
9366
9367         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
9368         TARGET_FLOAT_FORMAT blocks.
9369
9370 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9371
9372         * doc/install.texi (Downloading the source): Do not mention Chill
9373         any longer, but mention Ada.
9374         (Configuration): Do not mention Chill any longer.
9375
9376 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
9377
9378         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
9379
9380 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
9381
9382         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
9383         in last patch.
9384
9385 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9386
9387         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
9388         instead of unsigned_type.
9389
9390 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
9391
9392         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
9393         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
9394         later.
9395
9396 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
9397
9398         * attribs.c (vector_type_node_list): New static variable.
9399         (handle_vector_size_attribute): Use it to avoid generating a
9400         new type node each time we are called.
9401
9402         * combine.c (subst): Avoid trying to make a vector mode subreg of
9403         an integer constant.
9404         (gen_lowpart_for_combine): Likewise.
9405
9406 2002-04-18  Roger Sayle  <roger@eyesopen.com>
9407             Jakub Jelinek  <jakub@redhat.com>
9408
9409         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
9410         for integer constant c (if x has unsigned type or sign bit is not
9411         set in c).  This folds the zero/sign extension into the bit-wise and
9412         operation.
9413
9414 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9415
9416         PR middle-end/6205
9417         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
9418         otherwise xorps.
9419
9420 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
9421
9422         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
9423
9424 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
9425
9426         * gcc.c (read_specs): Detect and fail if an attempt is made to
9427         rename a spec string to an already existing string.
9428
9429 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
9430
9431         * config/s390/s390.c (legitimize_pic_address): Do not generate
9432         illegal address constant without CONST.
9433
9434 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9435
9436         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
9437         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9438
9439 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
9440
9441         PR optimization/6305
9442         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
9443         to make sure previous reloads are taken into account.  Generate
9444         better code if one operand is an in-range immediate constant.
9445
9446 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
9447
9448         * doc/install.texi (Building): libgcj requires GNU make.
9449
9450 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
9451
9452         PR bootstrap/6315
9453         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
9454         even if hard quad and register is not floating.
9455         (movtf reg<-mem split): Disallow splitting if hard quad and
9456         register is floating.
9457         (movtf mem<-reg split): Likewise.
9458         * config/sparc/sparc.c (fp_register_operand): New predicate.
9459         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
9460
9461 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
9462
9463         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
9464         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
9465         (unprotoize.o): Ditto.  Build from protoize.c.  Define
9466         UNPROTOIZE on command line.
9467         * protoize.c: Include cppdefault.h.  Delete include_defaults.
9468         (in_system_include_dir): Use cpp_include_defaults (defined in
9469         cppdefault.o).
9470         * unprotoize.c: Delete file.
9471
9472 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
9473
9474         * config/rs6000/altivec.h (vec_ld): Add array variants.
9475         (vec_lde): Same.
9476         (vec_ldl): Same.
9477
9478 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
9479             Aldy Hernandez <aldyh@redhat.com>
9480
9481         * config/rs6000/altivec.h: Define __ALTIVEC__.
9482         (bool): New.
9483         (__pixel): New.
9484         (pixel): New.
9485         (vec_cfux): New.
9486         (vec_vmaddfp): New.
9487         (vec_vsldoi): New.
9488         Add parentheses to all macro arguments.
9489
9490 2002-04-16  Richard Henderson  <rth@redhat.com>
9491
9492         PR c++/6320
9493         * except.c (remove_eh_handler): Insert inner regions at beginning
9494         of sibling chain.  Refactor expressions.
9495
9496 2002-04-16  Richard Henderson  <rth@redhat.com>
9497
9498         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
9499         * config/sparc/sol2-gas-bi.h: New file.
9500         * config.gcc (sparc*-solaris): Add it as needed.
9501         * configure.in (AS_SPARC64_FLAG): Remove check.
9502         * config.in, configure: Regenerate.
9503
9504         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
9505
9506 2002-04-16  Richard Henderson  <rth@redhat.com>
9507
9508         * config/mips/mips.c (override_options): Don't override N32 for
9509         a 64-bit ISA.
9510
9511         PR 6202
9512         * config/mips/mips.md (can_delay): Split out of existing define_delays.
9513         (HILO_delay): Set can_delay false.
9514
9515 2002-04-16  Dale Johannesen <dalej@apple.com>
9516
9517         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
9518         instruction addresses.
9519         (rs6000_output_function_epilogue): Likewise.
9520
9521 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
9522
9523         * c-parse.in (poplevel, compstmt_start,
9524         compstmt_primary_start): Add ending ';', in accordance
9525         with POSIX.
9526
9527 2002-04-16  Richard Henderson  <rth@redhat.com>
9528
9529         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
9530         Adjust tm_file order to get TARGET_DEFAULT set properly.
9531         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
9532         * doc/install.texi (sparc-solaris): Update.
9533
9534 2002-04-16  Dale Johannesen <dalej@apple.com>
9535
9536         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
9537         comparison operands do not match each other or if modes of
9538         conditions do not match result.
9539
9540 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
9541
9542         PR target/6305
9543         * config/s390/s390.md (mulsidi3): Set both subregs of the
9544         multiword register.
9545
9546 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
9547
9548         * config/rs6000/altivec.h (vec_addc): Type check.
9549
9550 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
9551
9552         PR middle-end/6279
9553         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
9554
9555         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
9556
9557 2002-04-15  Richard Henderson  <rth@redhat.com>
9558
9559         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
9560         call_really_used_regs too.
9561
9562 2002-04-15  Richard Henderson  <rth@redhat.com>
9563
9564         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
9565
9566 2002-04-15  David S. Miller  <davem@redhat.com>
9567
9568         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
9569         as being CLOBBERed.
9570
9571 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
9572
9573         PR c/6290
9574         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
9575         CONST_VECTOR is { 0, ... 0 }.
9576
9577 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
9578
9579         * doc/install.texi (Installing GCC: Configuration): Clarify
9580         the only supported ways to configure gcc.
9581
9582 2002-04-15  Roland McGrath  <roland@frob.com>
9583
9584         * config.gcc (alpha*-*-gnu*): New target configuration.
9585         * config/alpha/gnu.h: New file for it.
9586         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
9587
9588 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
9589
9590         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
9591         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
9592         * tree.h (expand_start_stmt_expr): Update prototype.
9593         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
9594         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
9595         on the STMT_EXPR created for the inline function.
9596
9597 2002-04-15  Richard Henderson  <rth@redhat.com>
9598
9599         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
9600         config/i386/linux-aout.h, config/i386/linux-oldld.h,
9601         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
9602         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
9603         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
9604         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
9605         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
9606         Define __gnu_linux__, not gnu_linux.
9607         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
9608
9609 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
9610
9611         Remove Chill front end.
9612         * gcc.c (default_compilers): Remove Chill entries.
9613         * ch: Remove directory.
9614         * doc/frontends.texi: Remove information about Chill.
9615         * doc/sourcebuild.texi: Likewise.
9616         * doc/standards.texi: Likewise.
9617
9618 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
9619
9620         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
9621         (LONGLONG_STANDALONE): Define.
9622
9623 2002-04-15  David S. Miller  <davem@redhat.com>
9624
9625         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
9626         Call emit_library_call with LCT_NORMAL.
9627         (sparc_initialize_trampoline): Use LCT_foo instead of
9628         magic constant in emit_library_call invocations.
9629         (sparc64_initialize_trampoline): Likewise.
9630         (sparc_profile_hook): Likewise.
9631         * config/sparc/sparc.md: Likewise.
9632
9633         * config/sparc/sparc.c (sparc_extra_constraint_check):
9634         Fix type of argument 'c'.
9635         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
9636         Likewise.
9637
9638 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9639
9640         * diagnostic.h (output_buffer_state): Redefine.
9641         (output_format_decoder): New macro.
9642         (output_prefixing_rule): Likewise.
9643         (output_line_cutoff): Likewise.
9644         (diagnostic_format_decoder): Adjust.
9645         (diagnostic_prefixing_rule): Likewise.
9646         (diagnostic_line_cutoff): Likewise.
9647         (diagnostic_state): Likewise.
9648         (diagnostic_kind_count): Likewise.
9649         (diagnostic_buffer): Now a macro.
9650
9651         * diagnostic.c (diagnostic_buffer): Remove definition.
9652         (output_is_line_wrapping): Adjust.
9653         (set_real_maximum_length): Likewise.
9654         (output_set_maximum_length): Likewise.
9655         (init_output_buffer): Likewise.
9656         (lhd_print_error_function): Likewise.
9657         (output_do_verbatim): Likewise.
9658
9659 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9660
9661         * cpperror.c (print_location): Don't print include chain
9662         if line == 0.
9663         (cpp_begin_message): Update to use DL_ macros.
9664         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
9665         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
9666         cpp_notice, cpp_notice_from_errno): Remove.
9667         (cpp_error, cpp_error_with_line): Update to take a diagnostic
9668         level.
9669         (cpp_errno): New.
9670         * cppexp.c (CPP_ICE): Remove.
9671         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
9672         lex, integer_overflow, _cpp_parse_expr): Update.
9673         * cppfiles.c (read_include_file, find_include_file,
9674         handle_missing_header, _cpp_read_file, remap_filename): Update.
9675         * cpphash.h (enum error_type): Remove.
9676         (_cpp_begin_message): Update.
9677         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
9678         cpp_handle_option, cpp_post_options): Update.
9679         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
9680         skip_whitespace, parse_identifier, parse_slow, parse_string,
9681         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
9682         cpp_interpret_charconst): Update.
9683         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
9684         lex_macro_node, do_undef, glue_header_name, parse_include,
9685         do_include_common, read_flag, do_line, do_linemarker, do_ident,
9686         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
9687         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
9688         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
9689         _cpp_pop_buffer, do_diagnostic): Update.
9690         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
9691         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
9692         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
9693         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
9694         cpp_notice, cpp_notice_from_errno): Remove.
9695         (cpp_error, cpp_error_with_line): Update to take a diagnostic
9696         level.
9697         (cpp_errno): New.
9698         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
9699         collect_args, enter_macro_context, save_parameter, parse_params,
9700         _cpp_create_definition, check_trad_stringification,
9701         cpp_macro_definition): Update.
9702         * cppmain.c (cpp_preprocess_file): Update.
9703         * fix-header.c (read_scan_file): Update.
9704
9705 2002-04-14  Andreas Schwab  <schwab@suse.de>
9706
9707         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
9708
9709 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
9710
9711         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
9712
9713 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
9714
9715         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
9716         not gnu_hurd.
9717
9718 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
9719
9720         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
9721
9722 2002-04-13      Joel Sherrill <joel@OARcorp.com>
9723
9724         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
9725         sparc-elf and sparc-rtems targets.
9726
9727 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
9728
9729         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
9730         defined, and __gnu_hurd__ wherever __GNU__ is defined.
9731         * arm/linux-elf.h: Likewise.
9732         * cris/aout.h: Likewise.
9733         * cris/linux.h: Likewise.
9734         * i370/linux.h: Likewise.
9735         * i386/gnu.h: Likewise.
9736         * i386/linux-aout.h: Likewise.
9737         * i386/linux-oldld.h: Likewise.
9738         * i386/linux.h: Likewise.
9739         * i386/linux64.h: Likewise.
9740         * ia64/linux.h: Likewise.
9741         * m68k/linux-aout.h: Likewise.
9742         * m68k/linux.h: Likewise.
9743         * mips/linux.h: Likewise.
9744         * pa/pa-linux.h: Likewise.
9745         * pj/linux.h: Likewise.
9746         * rs6000/sysv4.h: Likewise.
9747         * s390/linux.h: Likewise.
9748         * sh/linux.h: Likewise.
9749         * sparc/linux-aout.h: Likewise.
9750         * sparc/linux.h: Likewise.
9751         * sparc/linux64.h: Likewise.
9752         * xtensa/linux.h: Likewise.
9753
9754 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
9755
9756         * stmt.c (check_unique_operand_names): Expect operand names to
9757         be strings rather than identifiers.  Use simple_cst_equal to
9758         compare them.
9759         (resolve_operand_name_1): Make same identifier to string change here.
9760         * c-parse.in (asm_operand): Convert a named operand into a string.
9761         * cp/parse.y (asm_operand): Likewise.
9762
9763 2002-04-13  Andreas Schwab  <schwab@suse.de>
9764
9765         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
9766
9767 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
9768
9769         Revert these changes:
9770
9771         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9772
9773         PR c++/5571
9774         * stor-layout.c (layout_decl): Reset the RTL for the decl.
9775
9776 2002-04-12  Richard Henderson  <rth@redhat.com>
9777
9778         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
9779         (sparc*-*-solaris): Clean up header files.
9780         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
9781         and plan on generating 64-bit code.
9782         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
9783         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
9784         * config/sparc/sol2-sld-64.h: Rename ...
9785         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
9786         for AS_SPARC64_FLAG not defined.
9787         * config/sparc/sol2-gld-bi.h: New.
9788         * config/sparc/sol2-sld.h: Remove.
9789         * config/sparc/sol26-sld.h: New.
9790         * config/sparc/sol2.h: Tidy comments.
9791         * doc/install.texi: Document sparc-solaris configury changes.
9792
9793 2002-04-12  Richard Henderson  <rth@redhat.com>
9794
9795         * recog.c (offsettable_address_p): Match the logic in adjust_address.
9796
9797         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
9798         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
9799
9800 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9801
9802         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
9803
9804 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
9805
9806         * pa.c (pa_can_combine_p): Call extract_insn before calling
9807         constrain_operands.
9808
9809 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
9810
9811         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
9812         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
9813         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
9814         (CPP_PREDEFINES): Handle __declspec.
9815         * config/i386/t-interix (USER_H): Remove.
9816
9817 2002-04-12  DJ Delorie  <dj@redhat.com>
9818
9819         * integrate.c (compare_blocks): Make comparisons safe for when
9820         sizeof(int) < sizeof(char *).
9821         (find_block): Likewise.
9822
9823 2002-04-12  Jan Hubicka  <jh@suse.cz>
9824             David Edelsohn  <edelsohn@gnu.org>
9825
9826         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
9827         registers.
9828         (symbol_ref_operand): New.
9829         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
9830         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
9831
9832 2002-04-12  Andreas Schwab  <schwab@suse.de>
9833
9834         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
9835         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
9836         overrides the definition in config/svr4.h.
9837
9838 2002-04-12      Eric Norum <eric.norum@usask.ca>
9839
9840         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
9841         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
9842         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
9843         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
9844         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
9845         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
9846         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
9847         definitions to config/rtems.h and make the targets more similar.
9848
9849 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9850
9851         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
9852         POINTERS_EXTEND_UNSIGNED.
9853         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
9854         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
9855
9856         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
9857         not specified.
9858
9859 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
9860
9861         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
9862         depends on TARGET_SHMEDIA, not TARGET_SH5.
9863
9864 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
9865
9866         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
9867         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
9868
9869 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
9870
9871         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
9872         no r0 clobber.
9873
9874 2002-04-12  Andreas Schwab  <schwab@suse.de>
9875
9876         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
9877
9878 2002-04-12  Richard Henderson  <rth@redhat.com>
9879
9880         PR bootstrap/4191
9881         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
9882
9883         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
9884         modes spanning multiple hard regs.
9885
9886         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
9887
9888 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9889
9890         * pa.c (pa_output_function_prologue): Don't accumulate the total
9891         number of code bytes when using TARGET_64BIT, or gas, SOM and not
9892         the portable runtime.
9893         (output_deferred_plabels): Handle 64bit plabels.
9894         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
9895         generating pic code using the GAS assembler for object formats that
9896         are not SOM (ie., ELF32 and ELF64).
9897         (output_millicode_call): Check attribute type if attribute length is 28.
9898         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
9899         dbr_sequence_length once.
9900         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
9901         dbr_sequence_length once.
9902         * pa.h (TARGET_SOM): Define if not defined.
9903         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
9904         with GAS and not SOM.
9905         (jump, call_internal_reg, call_value_internal_reg): Likewise.
9906         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
9907
9908 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9909
9910         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
9911         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
9912         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
9913         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
9914         elfos.h and dbxelf.h values are fine now.
9915         * config/i386/freebsd.h, config/alpha/freebsd.h
9916         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
9917
9918 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9919
9920         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
9921         or set Acpu or Amachine.  Reformat.
9922         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9923         define.
9924         (LINK_SPEC): Do not need to undef.
9925         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
9926         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
9927         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9928         define.
9929         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
9930         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
9931         (LINK_SPEC): Do not need to undef.
9932         (DONT_USE_BUILTIN_SETJMP): Do not define.
9933         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
9934         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
9935         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
9936         Remove trailing spaces.
9937         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
9938         __ELF__, or set Acpu or Amachine.  Reformat.
9939         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9940         define.
9941
9942 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9943
9944         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
9945         all other *-*-freebsd* targets.
9946
9947 2002-04-11  Richard Henderson  <rth@redhat.com>
9948
9949         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
9950
9951 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9952
9953         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
9954         Include {cpu}/{cpu}.h thru tm_file.
9955         (alpha*-*-linux*ecoff): Remove target.
9956         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
9957         (LINK_SPEC): Remove, is not OS independent.
9958         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
9959         (LINK_SPEC): Do not need to #undef any longer.
9960         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
9961         any longer.
9962         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
9963         __ELF__.
9964         (LINK_SPEC): Moved here from alpha/elf.h.
9965         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
9966         SUB_CPP_PREDEFINES.
9967         * config/alpha/linux-ecoff.h: Remove.
9968         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
9969         (CPP_SPEC): Define _POSIX_SOURCE as needed.
9970         (CPP_SUBTARGET_SPEC): Do not define.
9971         (LINK_SPEC): Do not need to #undef any longer.
9972         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
9973         * config/alpha/vms.h: Likewise.
9974
9975 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
9976
9977         * doc/extend.texi: Remove old claim that typedefs cannot have
9978         an alignment attribute.
9979
9980 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
9981
9982         PR optimization/6177
9983         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
9984         bitpos is 0 and bitsize CONCAT size.
9985
9986 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
9987
9988         PR c/6223
9989         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
9990
9991 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
9992
9993         * config/alpha/freebsd.h: Minor reformatting.
9994         (CPP_SPEC): Define ELF and add cpp_subtarget.
9995         (ASM_SPEC): No longer needed.
9996
9997 2002-04-11  Richard Henderson  <rth@redhat.com>
9998
9999         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
10000         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
10001         (dimode mem/zero splitter): New.
10002
10003 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
10004
10005         * config/cris/cris.c (cris_override_options): Tweak error message
10006         for PIC not implemented.
10007
10008         * config/cris/cris.h: Tweak comments related to parameter-passing.
10009
10010         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
10011
10012 2002-04-10  Richard Henderson  <rth@redhat.com>
10013
10014         * except.c (add_ehl_entry): Allow duplicates after landing pad
10015         creation.
10016
10017 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
10018
10019         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
10020
10021 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
10022
10023         * c-decl.c (c_init_decl_processing): Move generation of
10024         decls for g77_integer_type_node and friends from here ...
10025         * c-common.c (c_common_nodes_and_builtins): ... to here.
10026
10027 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
10028
10029         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
10030         is only used as frame pointer when frame_pointer_needed is true.
10031
10032 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
10033
10034         PR target/817
10035         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
10036         for the fact that the pool entry uses two words.
10037         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
10038         1k bytes.
10039         (movdf_soft_insn): Similarly.
10040         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
10041         for the fact that the pool entry uses three words.
10042
10043 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
10044
10045         * config/mips/mips.c (mips_va_arg): When using the struct version
10046         of the EABI va_list, allow arguments in the register save area to
10047         take up less room than a stack argument.
10048
10049 2002-04-10  Richard Henderson  <rth@redhat.com>
10050
10051         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
10052         if EXPAND_INITIALIZER.
10053
10054 2002-04-09  Richard Henderson  <rth@redhat.com>
10055
10056         * config/alpha/alpha.md (movdi_er_maybe_g): New.
10057         * config/alpha/alpha.c (alpha_expand_mov): Use it.
10058
10059 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
10060
10061         PR optimization/6233
10062         * rtlanal.c (pure_call_p): New function.
10063         * rtl.h (pure_call_p): Declare.
10064         * loop.c (prescan_loop): Use it to set has_nonconst_call.
10065         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
10066
10067 2002-04-09  Eric Christopher  <echristo@redhat.com>
10068
10069         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
10070         information to .comm directive.
10071
10072 2002-04-09  Richard Henderson  <rth@redhat.com>
10073
10074         PR c/5078
10075         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
10076
10077 2002-04-09  Richard Henderson  <rth@redhat.com>
10078
10079         * basic-block.h (flow_delete_block_noexpunge): Declare.
10080         (expunge_block_nocompact): Declare.
10081         * cfg.c (expunge_block_nocompact): Split out from ...
10082         (expunge_block): ... here.
10083         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
10084         (flow_delete_block_noexpunge): Split out from ...
10085         (flow_delete_block): ... here.
10086         * cfgcleanup.c (delete_unreachable_blocks): Compact while
10087         removing dead blocks.
10088         * except.c (exception_handler_labels): Remove.
10089         (exception_handler_label_map): New.
10090         (struct eh_region): Add aka member.
10091         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
10092         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
10093         (for_each_eh_label, for_each_eh_label_1): New.
10094         (init_eh): Register exception_handler_label_map.
10095         (free_eh_status): Use free_region.
10096         (find_exception_handler_labels): Use the map, not the list.
10097         (remove_exception_handler_label): Likewise.
10098         (maybe_remove_eh_handler): Likewise.
10099         (remove_eh_handler): Use the region aka bitmap.
10100         * except.h (exception_handler_labels): Remove.
10101         (for_each_eh_label): Declare.
10102         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
10103         * loop.c (invalidate_loops_containing_label): New.
10104         (find_and_verify_loops): Use it.  Use for_each_eh_label.
10105         * sched-rgn.c (is_cfg_nonregular): Use
10106         current_function_has_exception_handlers.
10107
10108 2002-04-09  Richard Henderson  <rth@redhat.com>
10109
10110         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
10111         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
10112         Do not return changed status.
10113         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
10114         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
10115         New functions that do return changed status.
10116         * sbitmap.h: Update decls.
10117         * gcse.c, lcm.c: Use _cg functions as needed.
10118
10119 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
10120
10121         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
10122         (sh64-*-elf*, sh-*-rtemself*): Likewise.
10123         * config/sh/embed_bb.c: New file.
10124         * config/sh/embed-elf.h: New file.
10125         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
10126         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
10127         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
10128         __PTRDIFF_TYPE__ .
10129         (SUBTARGET_CPP_PTR_SPEC): Don't define.
10130         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
10131         Add subtarget_asm_endian_spec.
10132         (ASM_SPEC): Use subtarget_asm_endian_spec.
10133         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
10134         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
10135         (WCHAR_UNSIGNED): Define.
10136         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
10137         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
10138         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
10139         Fix value.
10140         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
10141         (sh_adjust_cost): Likewise.
10142         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
10143         __PTRDIFF_TYPE__ .
10144         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
10145         (WCHAR_TYPE_SIZE): Likewise.
10146         (ASM_SPEC): Use subtarget_asm_endian_spec.
10147         (SH_ELF_WCHAR_TYPE): #undef/ #define.
10148         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
10149         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
10150         (MAX_WCHAR_TYPE_SIZE): Don't #define .
10151         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
10152         (USER_LABEL_PREFIX): Don't #undef /#define .
10153         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
10154         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
10155         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
10156         (ASM_SPEC): Likewise.
10157         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
10158         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
10159         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
10160         (LIB2FUNCS_EXTRA): Define.
10161         * t-sh64 (LIB2FUNCS_EXTRA): Define.
10162         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
10163         (LIB1ASMFUNCS_CACHE): Define.
10164         (LIB2FUNCS_EXTRA): Redefine empty.
10165
10166 2002-04-08  Richard Henderson  <rth@redhat.com>
10167
10168         * reorg.c (get_branch_condition): Use reversed_comparison_code.
10169
10170 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10171
10172         * config/m68hc11/larith.asm (__map_data_section): Fix condition
10173         and optimize for size.
10174         (__do_global_ctors): Fix pointer comparison.
10175         (__do_global_dtors): Likewise.
10176
10177 2002-04-09  David S. Miller  <davem@redhat.com>
10178
10179         * config/sparc/sparc.c (sparc_extra_constraint_check): New
10180         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
10181         allow reloading pseudos.
10182         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
10183         * config/sparc/sparc-protos.h: Declare it.
10184
10185         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
10186         unsigned comparison warning.
10187         (output_restore_regs): Mark leaf_function as unused.
10188
10189 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10190
10191         * expr.c (is_aligning_offset): New function.
10192         (expand_expr, case COMPONENT_EXPR): Call it.
10193
10194 2002-04-08  David S. Miller  <davem@redhat.com>
10195
10196         PR target/6082
10197         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
10198
10199         Make init_priority work on Sparc when using GNU ld.
10200         * config/sparc/linux.h, config/sparc/linux64.h,
10201         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
10202         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
10203         * config/sparc/sol2-gld.h: New file to do the same.
10204         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
10205         sparc/sol2-gld.h to tm_file.
10206
10207         PR optimization/4328
10208         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
10209         * doc/md.texi: Document it.
10210         * config/sparc/sparc.md (movdi_insn_sp64_novis,
10211         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
10212         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
10213         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
10214         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
10215
10216 2002-04-08  Andreas Jaeger  <aj@suse.de>
10217
10218         * stmt.c (expand_asm_operands): Revert last patch from Richard
10219         Henderson.
10220
10221 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10222
10223         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
10224         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
10225
10226 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10227
10228         * doc/contrib.texi (Contributors): Add David O'Brien.
10229
10230 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
10231
10232         * configure.in (auto-build.h): Use target_alias and build_alias
10233         when running configure.
10234         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
10235         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
10236         * configure: Regenerate.
10237
10238 2002-04-07  David S. Miller  <davem@redhat.com>
10239
10240         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
10241
10242 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10243
10244         PR 5933
10245         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
10246         generating 32-bit pic code.
10247
10248 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
10249
10250         * cppinit.c (cpp_create_reader): Initialize
10251         discard_comments_in_macro_exp.
10252         (COMMAND_LINE_OPTIONS): Add "-CC" option.
10253         (cpp_handle_option): Handle "-CC" option.
10254         * cpplex.c (save_comment): If saving a C++ comment in
10255         a directive, convert it to a C comment.
10256         (_cpp_lex_direct): Pass second comment start character to
10257         save_comment to indicate comment type.
10258         * cpplib.c (_cpp_handle_directive): If processing
10259         a "#define" directive and discard_comments_in_macro_exp
10260         is false,  re-enable saving of comments.
10261         (lex_macro_node): If discard_comments_in_macro_exp is false,
10262         discard any comments before the macro identifier.
10263         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
10264         member.
10265         * cppmacro.c (cpp_get_token): If expanding a macro while
10266         processing a directive, discard any comments we might encounter.
10267         (parse_params): If discard_comments_in_macro_exp is false,
10268         ignore comments in the macro parameter list.
10269         * gcc.c (cpp_unique_options): Add "-CC" option.
10270         (option_map): Map "--comments-in-macros" to "-CC".
10271         * doc/cppopts.texi: Document "-CC" option.
10272         * f/lang-specs.h: Add "-CC" option.
10273         * testsuite/gcc.dg/cpp/maccom1.c: New test.
10274         * testsuite/gcc.dg/cpp/maccom2.c: New test.
10275         * testsuite/gcc.dg/cpp/maccom3.c: New test.
10276         * testsuite/gcc.dg/cpp/maccom4.c: New test.
10277         * testsuite/gcc.dg/cpp/maccom5.c: New test.
10278         * testsuite/gcc.dg/cpp/maccom6.c: New test.
10279
10280 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10281
10282         PR middle-end/6180
10283         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
10284
10285 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
10286
10287         PR c++/5571
10288         * stor-layout.c (layout_decl): Reset the RTL for the decl.
10289
10290         PR opt/5120
10291         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
10292         RTX_UNCHANGING_P for the functions arguments when a tail call
10293         is made.
10294
10295 2002-04-06  Jason Merrill  <jason@redhat.com>
10296
10297         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
10298         (parse_options_and_default_flags): Set them appropriately.
10299         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
10300
10301 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
10302
10303         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
10304         here.
10305
10306         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
10307         semicolon.
10308
10309         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
10310         types come in by-reference.  Fix typo in comment.
10311
10312 2002-04-05  David S. Miller  <davem@redhat.com>
10313
10314         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
10315         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
10316         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
10317         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
10318
10319 2002-04-05  David S. Miller  <davem@redhat.com>
10320
10321         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
10322         are not going to emit return instructions, emit at least a nop
10323         for the sake of sane backtraces.
10324
10325 2002-04-05  Richard Henderson  <rth@redhat.com>
10326
10327         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
10328
10329 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
10330
10331         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
10332
10333 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
10334
10335         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
10336         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
10337         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
10338
10339 2002-04-05  Andreas Schwab  <schwab@suse.de>
10340
10341         * c-convert.c: Include c-common.h.
10342         * Makefile.in (c-convert.o): Updated.
10343
10344 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
10345
10346         * mklibgcc.in: Use separate libgcc.map for each multilib.
10347         * Makefile.in (distclean): Don't remove libgcc.map here.
10348
10349 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
10350
10351         * Makefile.in (s-mlib): Handle --disable-multilib by separate
10352         genmultilib invocation.
10353
10354 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
10355
10356         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
10357         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
10358         to num_gprs for symmetry.
10359         * config/mips/mips.c: Adjust accordingly.
10360
10361 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10362
10363         * c-common.c (truthvalue_conversion): Rename, update.
10364         * c-common.h (c_common_truthvalue_conversion): New.
10365         * c-convert.c (convert): Update.
10366         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
10367         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
10368         * c-typeck.c (build_binary_op, build_unary_op,
10369         build_conditional_expr): Update.
10370         * fold-const.c (constant_boolean_node, fold): Use langhook.
10371         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
10372         * langhooks.h (struct lang_hooks): New hook.
10373         * stmt.c (expand_decl_cleanup): Use langhook.
10374         * tree.h (truthvalue_conversion): Remove.
10375 objc:
10376         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
10377
10378 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
10379
10380         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
10381         Add rules to make null object file.
10382
10383 2002-04-04  Jim Blandy  <jimb@redhat.com>
10384
10385         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
10386         macro formal parameter names.
10387
10388 2002-04-04  David S. Miller  <davem@redhat.com>
10389
10390         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
10391
10392 2002-04-04  Richard Henderson  <rth@redhat.com>
10393
10394         PR middle-end/5099
10395         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
10396         Support copies into and out of memory.  Don't accept allows_reg
10397         and allows_mem as gospel.
10398
10399 2002-04-04  Richard Henderson  <rth@redhat.com>
10400
10401         PR opt/6165
10402         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
10403         (write_dependence_p): Likewise.
10404
10405 2002-04-04  Richard Henderson  <rth@redhat.com>
10406
10407         * predict.c (estimate_bb_frequencies): Do frequency calculation
10408         with a volatile temporary.
10409
10410 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
10411
10412         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
10413
10414 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10415
10416         PR c++/6119
10417         * final.c (final_start_function): Don't bump profile_label_no here...
10418         (final_end_function): ...but here.
10419
10420 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10421
10422         * config/sparc/sparc.md (pic): New attribute.
10423         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
10424         into stack slots.
10425         (split after do_builtin_setjmp_setup): New.
10426
10427 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10428
10429         PR fortran/6106
10430         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
10431         change.
10432
10433 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10434
10435         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
10436         UNITS_PER_WORD for zero sized aggregates.
10437
10438 2002-04-03  David S. Miller  <davem@redhat.com>
10439
10440         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
10441         one-character spec for this, just use %(link_gcc_c_sequence).
10442
10443 2002-04-03  David S. Miller  <davem@redhat.com>
10444
10445         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
10446         handling.
10447
10448 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10449
10450         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
10451         (DWARF_FRAME_RETURN_COLUMN): Move.
10452         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10453         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
10454         * pa.c (except.h, predict.h): Include.
10455         (FRP): Delete.
10456         (store_reg_modify, set_reg_plus_d): Revise prototypes.
10457         (output_ascii): Add cast.
10458         (store_reg_modify): Revise to add frame notes.
10459         (set_reg_plus_d): Likewise.
10460         (compute_frame_size): Include space for eh data registers in frame if
10461         the current function calls eh_return.
10462         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
10463         function calls eh_return.  Save eh data registers if the current
10464         function calls eh_return.  Fix code to add frame notes.  Emit
10465         blockage to prevent insns with frame notes being scheduled in the
10466         delay slot of calls.
10467         (hppa_expand_epilogue): Restore eh data registers and do final stack
10468         adjustment if the current function calls eh_return.  Don't add frame
10469         notes.
10470         (output_call): Revise for change in length of call insn.  Don't do
10471         return pointer adjustment for an unconditional jump in the delay slot
10472         of a call when using frame notes.
10473         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
10474         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
10475         (ARG_POINTER_CFA_OFFSET): Define.
10476         * pa.md (return_external_pic): New pattern.
10477         (prologue): Correct formatting.  Use return_external_pic if current
10478         function calls eh_return.
10479         (call_internal_symref, call_value_internal_symref,
10480         sibcall_internal_symref, sibcall_value_internal_symref): Change default
10481         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
10482         respectively.
10483         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
10484
10485         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
10486         list of targets to check using "nop" insn.
10487         * configure: Rebuilt.
10488
10489 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
10490
10491         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
10492
10493 2002-04-03  David S. Miller  <davem@redhat.com>
10494
10495         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
10496         library sequence passed to the linker.
10497         (LINK_COMMAND_SPEC): Use it.
10498         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
10499         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
10500         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10501
10502 2002-04-03  Jason Merrill  <jason@redhat.com>
10503
10504         * except.c (struct eh_status): Remove protect_list.
10505         (begin_protect_partials, end_protect_partials): Remove.
10506         (add_partial_entry): Remove.
10507         * except.h: Remove prototypes.
10508
10509         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
10510         expand_decl_cleanup_eh.
10511
10512         PR c++/5636
10513         * tree.h (CLEANUP_EH_ONLY): New macro.
10514         * stmt.c (expand_decl_cleanup_eh): New fn.
10515         (expand_cleanups): Check CLEANUP_EH_ONLY.
10516         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
10517         Use expand_decl_cleanup_eh.
10518         (expand_stmt): Adjust.
10519         * c-common.h: Adjust prototype.
10520
10521 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
10522
10523         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
10524         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
10525         (cris_target_asm_function_epilogue): Ditto.
10526         (cris_initial_frame_pointer_offset): Ditto.
10527         (cris_simple_epilogue): Ditto.
10528         (cris_expand_builtin_va_arg): Variable-size types come in
10529         by-reference.
10530
10531 2002-04-03  David S. Miller  <davem@redhat.com>
10532
10533         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
10534         little-endian.
10535         (set_fast_math): Correct 'fsr' type.
10536
10537 2002-04-03  Richard Henderson  <rth@redhat.com>
10538
10539         PR opt/3569
10540         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
10541         * toplev.c (check_global_declarations): Use it.
10542         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
10543         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10544         (LANG_HOOKS_DECLS): Add it.
10545         * langhooks.c (lhd_warn_unused_global_decl): New.
10546         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10547         * c-objc-common.c (c_warn_unused_global_decl): New.
10548         * c-tree.h (c_warn_unused_global_decl): Declare.
10549         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10550
10551 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10552
10553         * langhooks-def.h (lhd_set_decl_assembler_name,
10554         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
10555         (LANG_HOOKS_INITIALIZER): Update.
10556         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
10557         * langhooks.h (struct lang_hooks): New hook.
10558         * tree.c (set_decl_assembler_name): Move to langhooks.c.
10559         (lang_set_decl_assembler_name): Remove.
10560         (init_obstacks): Don't set hook.
10561         (decl_assembler_name): New function.
10562         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
10563         (decl_assembler_name): New.
10564         (lang_set_decl_assembler_name): Remove.
10565
10566 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
10567
10568         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
10569         works properly with .hidden symbols.
10570         * configure: Rebuilt.
10571         * config.in: Rebuilt.
10572         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10573         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
10574         properly with .hidden symbols.
10575
10576 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
10577
10578         PR middle-end/6102
10579         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
10580         USE argument.
10581
10582 2002-04-03  Richard Henderson  <rth@redhat.com>
10583
10584         PR opt/4120
10585         * sched-rgn.c (sets_likely_spilled): New.
10586         (sets_likely_spilled_1): New.
10587         (add_branch_dependences): Use it.
10588
10589 2002-04-02  Richard Henderson  <rth@redhat.com>
10590
10591         PR opt/4311
10592         * loop.h (LOOP_FIRST_PASS): New.
10593         * loop.c (strength_reduce): Mind it when deciding to unroll.
10594         * toplev.c (rest_of_compilation): Set it.
10595
10596 2002-04-02  David S. Miller  <davem@redhat.com>
10597
10598         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
10599         mems_ok_for_ldd_peep when the order of the loads being examined
10600         is reversed.
10601         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
10602         existing comment to increase comprehension of this situation.
10603
10604 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
10605
10606         * config/sh/sh.md: Don't use union real_extract.
10607
10608 2002-04-02  Richard Henderson  <rth@redhat.com>
10609
10610         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
10611
10612 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
10613
10614         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
10615         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
10616         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
10617         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
10618         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
10619         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
10620         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
10621         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
10622         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
10623         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
10624         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
10625         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
10626         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
10627         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
10628         Include as many configury headers via tm_file as possible.  This
10629         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
10630         * config/openbsd-oldgas.h: New file.
10631         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
10632         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
10633         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
10634         config/i386/i386-coff.h, config/i386/i386-interix.h,
10635         config/i386/iscdbx.h, config/i386/linux-aout.h,
10636         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
10637         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
10638         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
10639         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
10640         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
10641         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
10642         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
10643         config/i386/vxi386.h: Do not directly include configury headers.
10644         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
10645         Directly include configury headers that are no longer automatically
10646         included by the above headers.
10647         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
10648         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
10649         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
10650         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
10651         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
10652         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
10653         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
10654         (TARGET_VERSION): Define.
10655         * config/i386/beos-elf.h, config/i386/freebsd.h,
10656         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
10657         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
10658         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
10659         config/i386/sco5.h, config/i386/sysv4.h
10660         (TARGET_VERSION): Do not need to protect.
10661         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
10662         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
10663         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
10664         config/i386/i386-interix.h, config/i386/linux-aout.h,
10665         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
10666         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
10667         (YES_UNDERSCORES): Do not define - not needed.
10668         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
10669         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
10670         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
10671         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
10672         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
10673         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
10674         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
10675         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
10676
10677 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
10678             Richard Henderson  <rth@redhat.com>
10679
10680         PR c/5484
10681         * function.c (assign_temp): Accept either type or decl argument.
10682         Detect variables whose size is too large to fit into an integer.
10683         * stmt.c (expand_decl): Pass the decl, not the type.
10684
10685 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
10686
10687         * protoize.c: Match include directory usage with cppdefault.c.
10688
10689 2002-04-03  Jeffrey A Law  (law@redhat.com)
10690             Hans-Peter Nilsson  <hp@bitrange.com>
10691
10692         * combine.c (simplify_comparison): Avoid narrowing a comparison
10693         with a paradoxical subreg when doing so would drop signficant bits.
10694
10695 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
10696
10697         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
10698         if POINTERS_EXTEND_UNSIGNED is defined.
10699
10700 2002-04-02  Richard Henderson  <rth@redhat.com>
10701
10702         PR opt/3967
10703         * local-alloc.c (contains_replace_regs): LO_SUM may contain
10704         replace regs.
10705
10706 2002-04-02  Richard Henderson  <rth@redhat.com>
10707
10708         * doc/standards.texi: Document required freestanding libc entry points.
10709
10710 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
10711
10712         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
10713         associated splitter.  Remove MQ constraint.
10714         (ctrdi_internal4): Correct CCmode clobber.
10715
10716 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10717
10718         * milli64.S ($$dyncall): New function.
10719         * t-linux (LIB1ASMFUNCS): Revise module list.
10720         (LIB1ASMSRC): Use pa/milli64.S.
10721
10722 2002-04-02  Richard Henderson  <rth@redhat.com>
10723
10724         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
10725         rename solaris_sys_varargs_h.
10726
10727 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10728
10729         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
10730         the same mode as its component.
10731
10732 2002-04-02  Richard Henderson  <rth@redhat.com>
10733
10734         PR opt/190
10735         * final.c (this_is_asm_operands): Export.
10736         * output.h (this_is_asm_operands): Declare.
10737         * config/i386/i386.c (print_operand): Error odd asm operands.
10738
10739 2002-04-02  Richard Henderson  <rth@redhat.com>
10740
10741         PR opt/420
10742         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
10743
10744 2002-04-01  Richard Henderson  <rth@redhat.com>
10745
10746         PR target/1538
10747         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
10748         * fixinc/fixincl.x: Rebuild.
10749
10750 2002-04-01  Richard Henderson  <rth@redhat.com>
10751
10752         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
10753         (atomic_alloc, atomic_free): New.
10754         (SIZE, MASK_FOR, PTR_IN): New.
10755         (emergency_reg_state, emergency_reg_state_free): New.
10756         (emergency_labeled_state, emergency_labeled_state_free): New.
10757         (reg_state_alloced, labeled_state_alloced): New.
10758         (alloc_reg_state, free_reg_state): New.
10759         (alloc_label_state, free_label_state, free_label_states): New.
10760         (push, pop, dup_state_stack, free_state_stack): Use them.
10761         (desc_label_state): Likewise.
10762         (uw_frame_state_for): Free label states and state stack.
10763         (uw_update_reg_address): Eliminate warnings.
10764
10765 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
10766
10767         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
10768         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
10769
10770 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10771
10772         * c-decl.c (grokdeclarator): Update.
10773         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
10774         * c-tree.h (c_mark_addressable): New.
10775         * c-typeck.c (default_function_array_conversion, build_unary_op,
10776         build_array_ref, convert_for_assignment): Update.
10777         (mark_addressable): Rename.
10778         * calls.c (try_to_integrate, expand_call): Use langhook.
10779         * expr.c (expand_expr): Use langhook.
10780         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
10781         * langhooks.h (struct lang_hooks): New hook.
10782         * stmt.c (expand_asm_operands): Use langhook.
10783         * tree.h (mark_addressable): Remove.
10784 objc:
10785         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
10786
10787 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
10788
10789         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
10790         in previous change.
10791
10792 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
10793
10794         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
10795         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
10796
10797 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10798
10799         * c-common.c (unsigned_conversion_warning, convert_and_check,
10800         unsigned_type, signed_type, shorten_compare,
10801         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
10802         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
10803         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
10804         New.
10805         * c-decl.c (grokdeclarator): Update.
10806         * c-format.c (check_format_types): Update.
10807         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
10808         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
10809         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
10810         * convert.c (convert_to_integer): Use new hooks.
10811         * expmed.c (make_tree): Use new hooks.
10812         * expr.c (store_expr): Use new hooks.
10813         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
10814         all_ones_mask_p, unextend, fold): Use new hooks.
10815         * langhooks.h (struct lang_hooks_for_types): New hooks.
10816         * tree.h (signed_or_unsigned_type, signed_type,
10817         unsigned_type): Remove.
10818 objc:
10819         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
10820         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
10821
10822 2002-03-31  Richard Henderson  <rth@redhat.com>
10823
10824         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
10825         (desc_frgr_mem): Fix reference to f16-f31.
10826
10827 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10828
10829         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
10830         RTVEC_ELT): Const-ify.
10831         * varray.h (VARRAY_CHECK): Const-ify.
10832         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
10833         ggc_mark_rtvec, ggc_mark): Const-ify.
10834
10835 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10836
10837         * diagnostic.c: Include langhooks-def.h.
10838         * Makefile.in (diagnostic.o): Update.
10839
10840 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
10841
10842         * c-common.c (c_unsafe_for_reeval): Rename.
10843         * c-common.h (c_unsafe_for_reeval): Rename.
10844         * c-decl.c (finish_incomplete_decl): Rename.
10845         (c_init_decl_processing): Don't set langhook.
10846         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
10847         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
10848         * c-objc-common.c (c_objc_common_init): Don't set langhook.
10849         * c-tree.h (finish_incomplete_decl): Rename.
10850         * langhooks-def.h (lhd_unsafe_for_reeval): New.
10851         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
10852         (LANG_HOOKS_INITIALIZER): Update.
10853         * langhooks.c (lhd_unsafe_For_reeval): New.
10854         * langhooks.h (struct langhooks): New hooks.
10855         * toplev.c (incomplete_decl_finalize_hook): Remove.
10856         (wrapup_global_declarations): Update.
10857         * tree.c (lang_unsafe_for_reeval): Remove.
10858         (unsafe_for_reeval): Update.
10859         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
10860         Remove.
10861 objc:
10862         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
10863         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
10864
10865 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
10866
10867         * diagnostic.c (print_error_function): Remove.
10868         (default_print_error_function): Rename.
10869         (report_error_function): Update.
10870         * diagnostic.h (print_error_function): Remove.
10871         (default_print_error_function): Remove.
10872         * langhooks-def.h (struct diagnostic_context): Predeclare.
10873         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
10874         (LANG_HOOKS_INITIALIZER): Update.
10875         * langhooks.h (struct diagnostic context): Predeclare.
10876         (struct lang_hooks): New hook.
10877
10878 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10879
10880         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
10881         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
10882         !flag_pic.
10883         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
10884         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
10885         of PIC_OFFSET_TABLE_REGNUM thruout.
10886         * config/rs6000/rs6000.md: Likewise.
10887         * config/rs6000/darwin.h: Likewise.
10888
10889 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10890
10891         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
10892         unsigned HOST_WIDE_INT, not unsigned int.
10893
10894 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10895
10896         PR middle-end/6096, middle-end/6098, middle-end/6099
10897         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
10898         CODE_LABELs.
10899         (fill_slots_from_thread): Likewise.
10900
10901 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10902
10903         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
10904         floating fields in float regs.
10905         (function_arg_record_value_2): Likewise.
10906
10907 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
10908
10909         * config/mmix/mmix.md (define_constants): Remove misleading
10910         FIXME.  Add MMIX_fp_rO_OFFSET.
10911         ("nonlocal_goto_receiver"): Don't have stack-frame address of
10912         saved rO as part of the pattern.  Remove FIXME.
10913         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
10914         here, at output-time.
10915
10916 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10917
10918         PR middle-end/6100
10919         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
10920         REG_BR_PRED.
10921         (output_v9branch): Likewise.
10922
10923 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
10924
10925         * gcc.c: Revert previous patch for now.
10926         * config/i386/djgpp.h: Likewise.
10927
10928 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
10929
10930         * config/mmix/crti.asm (_init): Register _fini with atexit.
10931         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
10932
10933 2002-03-31  Richard Henderson  <rth@redhat.com>
10934
10935         PR target/3997
10936         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
10937         (ASM_OUTPUT_DEF_FROM_DECLS): New.
10938
10939 2002-03-31  Richard Henderson  <rth@redhat.com>
10940
10941         * libgcc2.c (__bb_exit_func): Make static.
10942
10943         * config/alpha/alpha.md (trap): New.
10944
10945 2002-03-31  Richard Henderson  <rth@redhat.com>
10946
10947         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
10948         promoted argument types; build trap.
10949         (expand_builtin_trap): New.
10950         (expand_builtin): Use it.
10951         * stmt.c (expand_nl_goto_receivers): Likewise.
10952         * expr.h (expand_builtin_trap): Declare.
10953         * libfuncs.h (LTI_abort, abort_libfunc): New.
10954         * optabs.c (init_optabs): Init abort_libfunc.
10955
10956 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
10957
10958         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
10959         (LINK_COMMAND_SPEC): ... from here.
10960         (init_gcc_specs): Duplicate it here too, omitting
10961         shared_name in the second copy.
10962         (init_spec): Test for duplicate
10963         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
10964
10965 2002-03-30  David S. Miller  <davem@redhat.com>
10966
10967         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10968         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
10969
10970 2002-03-30  Roger Sayle <roger@eyesopen.com>
10971             Richard Henderson  <rth@redhat.com>
10972
10973         * regmove.c (combine_stack_adjustments_for_block): Avoid
10974         emitting a stack adjustment of zero bytes.  Let delete_insn
10975         update bb->head.
10976
10977 2002-03-30  Richard Henderson  <rth@redhat.com>
10978
10979         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
10980         (sparc_emitting_epilogue): New.
10981         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
10982         * config/sparc/sparc-protos.h: Update.
10983         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
10984         (TARGET_SWITCHES): Update.
10985         * config/sparc/sparc.md (return): Remove.
10986         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
10987         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
10988         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
10989         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10990         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
10991         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
10992         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
10993         Remove MASK_EPILOGUE.
10994         * doc/invoke.texi: Update.
10995
10996 2002-03-30  Daniel Berlin  <dan@dberlin.org>
10997
10998         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
10999         CPP will start the file for us.
11000
11001 2002-03-30  Richard Henderson  <rth@redhat.com>
11002
11003         PR target/5446
11004         * config/ia64/ia64.c (group_barrier_needed_p): Special case
11005         prologue_allocate_stack.
11006         (ia64_single_set): Use insn codes for recognition of special
11007         cases, not rtl matching.
11008         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
11009
11010 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
11011
11012         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
11013
11014 2002-03-30  Richard Henderson  <rth@redhat.com>
11015
11016         PR target/6032
11017         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
11018         or -fomit-frame-pointer with profiling.
11019         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
11020         (FUNCTION_PROFILER): Do nothing.
11021         (PROFILE_HOOK): New.
11022         * config/sparc/sparc.c (sparc_override_options): Don't check
11023         code models for profiling.
11024         (sparc_function_profiler): Remove.
11025         (sparc_profile_hook): New.
11026         * config/sparc/sparc-protos.h: Update.
11027
11028 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
11029
11030         PR optimization/6086
11031         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
11032         of SUBREG of volatile MEM or because the MEM was mode dependent,
11033         return CLOBBER instead of unmodified SUBREG.
11034
11035 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11036
11037         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
11038         when not optimizing.
11039
11040         * toplev.c (rest_of_compilation): Cann mark_constant_function
11041         only when optimizing.
11042
11043         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
11044         are NULL.
11045
11046         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
11047         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
11048         (try_optimize_cfg): clear all AUX fields.
11049
11050         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11051         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11052         (ix86_address_cost): Be prepared for SUBREGed registers.
11053         (legitimate_address_p): Accept SUBREGed registers.
11054
11055 2002-03-29  Richard Henderson  <rth@redhat.com>
11056
11057         PR target/5672
11058         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
11059
11060 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11061
11062         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
11063         for aggregate and TFmode types.
11064
11065 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
11066
11067         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
11068
11069 2002-03-29  Richard Henderson  <rth@redhat.com>
11070
11071         PR target/5886
11072         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
11073         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
11074
11075 2002-03-29  Richard Henderson  <rth@redhat.com>
11076
11077         PR target/6041
11078         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
11079         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
11080         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
11081         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
11082         conditional.
11083         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
11084
11085 2002-03-29  Dale Johannesen <dalej@apple.com>
11086
11087         * loop.c (combine_movables): Do allow combination of pseudos.
11088
11089 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
11090
11091         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
11092         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
11093         No functional change except ...
11094         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
11095         * doc/install.texi (*-*-freebsd*): Document port configuration.
11096
11097 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11098
11099         * Makefile.in (convert.o, calls.o, expmed.o): Update.
11100         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
11101         Use new hooks.
11102         * builtin-types.def (BT_PTRMODE): Update.
11103         * c-common.c (type_for_size): Rename c_common_type_for_size.
11104         (type_for_mode): Similarly.
11105         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
11106         Use new hook.
11107         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
11108         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
11109         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
11110         Redefine.
11111         * c-typeck.c (common_type, comptypes, default_conversion):
11112         Use new hooks.
11113         * calls.c: Include langhooks.h.
11114         (emit_library_call_value_1): Use new hooks.  Avoid redundant
11115         calls.
11116         * convert.c: Include langhooks.h
11117         (convert_to_pointer, convert_to_integer): Use new hooks.
11118         * except.c (init_eh): Similarly.
11119         * expmed.c: Include langhooks.h.
11120         (expand_mult_add): Use new hooks.
11121         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
11122         try_casesi): Similarly.
11123         * fold-const.c (optimize_bit_field_compare, make_range,
11124         decode_field_reference, fold_truthop, fold): Similarly.
11125         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
11126         put_var_into_stack): Similarly.
11127         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
11128         LANG_HOOKS_TYPE_FOR_SIZE): New.
11129         (LANG_HOOKS_TYPES_INITIALIZER): Update.
11130         * langhooks.h (lang_hooks_for_types): New hooks.
11131         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
11132         * tree.c (get_unwidened, get_narrower): Similarly.
11133         * tree.h (type_for_mode, type_for_size): Remove.
11134         * varasm.c (force_const_mem): Use new hooks.
11135         * utils2.c (nonbinary_modular_operation): Update.
11136 objc:
11137         * objc-act.c (handle_impent): Update.
11138         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
11139         Redefine.
11140
11141 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
11142
11143         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
11144         * config/ia64/ia64.c (basereg_operand): New.
11145         * config/ia64/ia64-protos.h (basereg_operand): Declare.
11146         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
11147
11148 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
11149
11150         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
11151         unwind information when frame_pointer_needed.
11152         (mmix_assemble_integer): Tweak wording in comment.
11153
11154 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11155
11156         * Makefile.in (except.o): Update.
11157         * except.c: Include langhooks.h.
11158         (init_eh): Use langhook.
11159         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
11160         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
11161         (LANG_HOOKS_INITIALIZER): Update.
11162         * langhooks.h (lang_hooks_for_types): New.
11163         (struct lang_hooks): Add it.
11164         * tree.c (make_lang_type_fn, make_lang_type): Remove.
11165         * tree.h (make_lang_type_fn, make_lang_type): Remove.
11166 config:
11167         * alpha/alpha.c: Include langhooks.h.
11168         (alpha_build_va_list): Use langhook.
11169         * d30v/d30v.c: Include langhooks.h.
11170         (d30v_build_va_list): Use langhook.
11171         * i386/i386.c: Include langhooks.h.
11172         (ix86_build_va_list): Use langhook.
11173         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
11174         * s390/s390.c: Include langhooks.h.
11175         (s390_build_va_list): Use langhook.
11176         * stormy16/stormy16.c: Include langhooks.h.
11177         (stormy16_build_va_list): Use langhook.
11178
11179 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
11180
11181         PR c++/5964
11182         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
11183         attributes.
11184         (length): Compute variable length for branches/calls/jumps here.
11185         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
11186         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
11187         define branch_type attribute.
11188         (divsi3_sp32): Maximum length is 6 not 7.
11189         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
11190         call_address_untyped_struct_value_sp32,
11191         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
11192         * config/sparc/sparc.c (empty_delay_slot): New function.
11193         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
11194         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
11195
11196 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
11197
11198         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
11199         nonzero_bits if not needed.
11200         (nonzero_bits) [XOR]: Likewise.
11201         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
11202         reg_last_set_mode and mode are both MODE_INT, but not equal.
11203         (record_value_for_reg): Compute reg_last_set_nonzero_bits
11204         in nonzero_bits_mode for MODE_INT modes.
11205
11206 2002-03-28  Richard Henderson  <rth@redhat.com>
11207
11208         PR target/5715
11209         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
11210         to GAS.  Correct drift between alternatives.
11211
11212 2002-03-28  Richard Henderson  <rth@redhat.com>
11213
11214         PR target/6087
11215         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
11216
11217 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
11218
11219         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
11220         emulation to the linker.
11221
11222 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
11223
11224         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
11225         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
11226
11227 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
11228
11229         * combine.c (simplify_and_const_int): Make sure to apply mask
11230         when force_to_mode returns a constant integer.  PR3311.
11231
11232 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11233
11234         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
11235
11236 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11237
11238         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
11239         and Objective-C Dialect Options.
11240
11241 2002-03-28  Richard Henderson  <rth@redhat.com>
11242
11243         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
11244         comparison should be done vs !=0 not >0 return code.  Tidy cases.
11245
11246 2002-03-28  Richard Henderson  <rth@redhat.com>
11247
11248         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
11249         on to c_expand_body.
11250         * c-tree.h (finish_function): Update decl.
11251         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
11252
11253 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
11254
11255         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
11256
11257 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
11258
11259         * rtlanal.c: Include flags.h
11260         (may_trap_p): Do not mark FP operations if trapping
11261         if !flag_trapping_math
11262         * Makefile.in (rtlanal.o): Add dependency on flag.h
11263         * ifcvt.c (noce_operand_ok): Avoid the lameness.
11264
11265 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
11266
11267         * mips.md: Use dconst1, not 1.0, as first argument of
11268         REAL_VALUE_LDEXP.  Don't use union real_extract.
11269
11270 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
11271
11272         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
11273         rather than $target.  Heed program_prefix and
11274         program_transform_name.  Search for gas in cross-compiler case too.
11275         "test -x" rather than "test -f".
11276         (gcc_cv_ld): Likewise.
11277         (gcc_cv_nm): Heed program_prefix and program_transform_name.
11278         (gcc_cv_objdump): Likewise.
11279         * configure: Regenerate.
11280
11281 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11282
11283         * Makefile.in (attribs.o): Update.
11284         * attribs.c: Include langhooks.h.
11285         (decl_attributes): Use langhook.
11286         * c-decl.c (insert_default_attributes): Rename.
11287         * c-tree.h (c_insert_default_attributes): New.
11288         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
11289         (LANG_HOOKS_INITIALIZER): Update.
11290         * langhooks.h (struct lang_hooks): New hook.
11291         * tree.h (insert_default_attributes): Remove.
11292 objc:
11293         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
11294
11295 2002-03-27  Andreas Schwab  <schwab@suse.de>
11296
11297         * config/i386/i386.c (classify_argument): Also check for
11298         QUAL_UNION_TYPE.
11299
11300 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11301
11302         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
11303         any more.
11304
11305 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11306
11307         * i960.md (ret): Set PC.
11308         (nonlocal_goto): Fix expander.
11309         * builtins.c (epxand_builin_longjmp): Check that we've emitted
11310         some jump or call.
11311
11312 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11313
11314         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
11315         of libcall regions.
11316
11317 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11318
11319         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
11320         assigning to BLOCK_FOR_INSN directly.
11321
11322 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
11323
11324         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
11325
11326 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11327
11328         * c-common.c (c_expand_expr): Fix prototype.
11329         * c-common.h (c_expand_expr): Always declare, update.
11330         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
11331         * c-objc-common.c (c_objc_common_init): No global hook.
11332         * expr.c (expand_expr): Use langhook.
11333         * expr.h (enum expand_modifier): Conditionally declare.
11334         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
11335         (LANG_HOOKS_INITIALIZER): Update.
11336         * langhooks.c (lhd_expand_expr): New.
11337         * langhooks.h (struct lang_hooks): New hook.
11338         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
11339         (lang_independent_init): Don't default hook.
11340 objc:
11341         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
11342
11343 2002-03-27  Richard Henderson  <rth@redhat.com>
11344
11345         PR target/6054
11346         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
11347         TARGET_CONST_GP.  Simplify conditions.
11348
11349 2002-03-27  Richard Henderson  <rth@redhat.com>
11350
11351         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
11352         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
11353         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
11354
11355 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
11356
11357         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
11358         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
11359         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
11360         Remove unnecessary masks.
11361         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
11362         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
11363         -mwindows, -mdll switches and their negations.
11364
11365 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11366
11367         * gcc-common.c (lang_mark_false_label_stack): Remove.
11368         * ggc.h (lang_mark_false_label_stack): Similarly.
11369
11370 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
11371
11372         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
11373
11374         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
11375         or __rtems_ is defined.
11376
11377 2002-03-26  Richard Henderson  <rth@redhat.com>
11378
11379         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
11380         if a non-trivial load was emitted.
11381         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
11382         in high+extra+low case.
11383
11384 2002-03-26  Richard Henderson  <rth@redhat.com>
11385
11386         * config.gcc (sparc*-solaris): Use float_format=sparc.
11387
11388 2002-03-26  Richard Henderson  <rth@redhat.com>
11389
11390         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11391         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
11392         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
11393         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
11394         (WINT_TYPE_SIZE): Fix at 32.
11395
11396 2002-03-26  Richard Henderson  <rth@redhat.com>
11397
11398         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
11399         until after eh landing pad generation.
11400         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
11401         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
11402
11403 2002-03-26  Richard Henderson  <rth@redhat.com>
11404
11405         * expr.h (ADD_PARM_SIZE): One more convert for INC.
11406
11407 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
11408
11409         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
11410         and warning switches.
11411         (cc1_options):  Likewise.
11412
11413 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
11414
11415         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
11416         Restore more of the signal context.  Set no_reg_stack_frame.
11417         * config/ia64/unwind-ia64.c (unw_state_record):
11418         Add no_reg_stack_frame, comments.
11419         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
11420         (uw_update_context): Adjust bsp when unwinding from leaf,
11421         but not signal frame.
11422
11423 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
11424
11425         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
11426
11427 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
11428
11429         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
11430
11431 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
11432
11433         PR target/5621
11434         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
11435         "Add a pool_range attribute", which was lost during the ARM/Thumb
11436         merge.
11437
11438 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
11439
11440         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
11441         a register into the MAC16 accumulator.
11442
11443 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
11444
11445         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
11446         (Warning Options): Document -Wswitch-enum.
11447         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
11448         -Wswitch.
11449         (warn_switch_enum): Define variables.
11450         * flags.h (warn_switch_enum): Declare variables.
11451         * stmt.c (expand_end_case_type): When warn_switch_enum /
11452         -Wswitch-enum, perform switch checks.
11453         Fix PR c/5044.
11454
11455 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
11456
11457         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
11458         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
11459         (reload_muladdsi_compare0_scratch): Delete.
11460
11461 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
11462
11463         * doc/install.texi (*-*-freebsd*): Update.
11464
11465 2002-03-26  Richard Henderson  <rth@redhat.com>
11466
11467         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
11468         (SUB_PARM_SIZE): Cast DEC to ssizetype.
11469
11470         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
11471         types from the normal argument frame.
11472
11473         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
11474         variable sized objects by reference.
11475         (sparc_va_arg): Receive them by reference too.
11476
11477 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
11478
11479         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
11480         code to not restoring global registers.
11481
11482 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11483
11484         * Makefile.in (ggc-common.o): Update.
11485         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
11486         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
11487         * c-tree.h (c_mark_tree): New.
11488         * ggc-common.c: Include langhooks.h.
11489         (gcc_mark_trees): Use new langhook.
11490         * ggc-callbacks.c: Delete file.
11491         * ggc.h (lang_mark_tree): Remove.
11492         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
11493         (LANG_HOOKS_INITIALIZER): Update.
11494         * langhooks.h (struct lang_hooks): New hook.
11495 objc:
11496         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
11497
11498 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
11499
11500         * doc/cpp.texi: Exclude entire Top node from printed manual.
11501         Move option index after directive index.  Insert page breaks
11502         before GFDL and concept index.  Index environment variables
11503         with command line options.
11504         * doc/cppenv.texi: Use @vtable for environment variable list.
11505         Add paragraph explaining semantics of empty elements in path
11506         variables.  Exclude a cross-reference to Fishkill from the
11507         manpage.  Remove an unnecessary cross-reference of the entry
11508         right above the referer.  Don't use @anchor in text that goes
11509         into manpage.
11510         * doc/cppopts.texi: Cross-reference the environment variables
11511         section, not the specific environment variable, for consistency.
11512
11513 2002-03-25  Richard Henderson  <rth@redhat.com>
11514
11515         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
11516         anywhere in the block.  Don't refer to insns that have been
11517         removed from the chain.  Iterate backward through the new insns.
11518         Don't refer to edges that have been removed.
11519
11520 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
11521
11522         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
11523         test for overflow of constant.
11524
11525 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
11526
11527         PR target/2623
11528         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
11529         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
11530         these patterns on arm_archv4.
11531
11532 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
11533
11534         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
11535         int".
11536
11537 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
11538
11539         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
11540         float_handled, float_handler, float_signal, set_float_handler,
11541         and do_float_handler.  Set handler for SIGFPE to crash_signal.
11542         * toplev.h: Don't prototype do_float_handler.
11543
11544         * c-lex.c: Fold parse_float into lex_number.  Make warning
11545         about portability of hex float constants more informative, and
11546         don't issue it on top of a syntax error.
11547         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
11548         their callers.
11549         * real.h: Define REAL_VALUE_ABS here...
11550         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
11551         simplify_unary_real, simplify_binary_real, and
11552         simplify_binary_is2orm1 into their callers.
11553         * tree.c: Fold build_real_from_int_cst_1 into caller.
11554
11555         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
11556
11557         * tsystem.h: Include float.h here...
11558         * libgcc2.c: ... not here.
11559
11560 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
11561
11562         Fixes for: PR bootstrap/3591, target/5676
11563         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
11564         defined.  Do not disable exceptions or rtti.
11565         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
11566         mcore.h.  Disable exceptions and rtti, since they are not
11567         supported by EPOC.
11568
11569 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11570
11571         * c-decl.c (maybe_build_cleanup): Remove.
11572         * expr.c (expand_expr): Use langhook.
11573         * langhooks-def.h (lhd_return_null_tree,
11574         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
11575         (LANGHOOKS_INITIALIZER): Update.
11576         * langhooks.c (lhd_return_null_tree): New.
11577         * langhooks.h (struct lang_hooks): New hook.
11578         * tree-inline.c (initialize_inlined_parameters): Use langhook.
11579         * tree.h (maybe_build_cleanup): Remove.
11580
11581 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
11582
11583         * regrename.c (build_def_use): Move recog_memoized
11584         before extract_insn.
11585
11586 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
11587
11588         PR target/6043
11589         * expr.c (emit_group_store): Handle storing into CONCAT.
11590
11591 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
11592
11593         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
11594         corresponding MATCH_DUP.
11595
11596 2002-03-24  Richard Henderson  <rth@redhat.com>
11597
11598         * unroll.c (unroll_loop): Zero label_map.
11599
11600         * gcse.c: Include except.h.
11601         * Makefile.in (gcse.o): Update.
11602
11603 2002-03-24  Richard Henderson  <rth@redhat.com>
11604
11605         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
11606         Do resolve_unique_section before shared data clause.
11607
11608 2002-03-24  Richard Henderson  <rth@redhat.com>
11609
11610         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
11611
11612 2002-03-24  Richard Henderson  <rth@redhat.com>
11613
11614         * recog.c (peephole2_optimize): Split blocks when EH insns are
11615         generated in the middle of a block.  Do global life update if
11616         zapped EH edges.
11617
11618 2002-03-24  Richard Henderson  <rth@redhat.com>
11619
11620         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
11621
11622 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11623
11624         preprocessor/3951
11625         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
11626         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
11627         (init_dependency_output): Don't make no_output decision here.
11628
11629 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
11630
11631         * stmt.c (check_for_full_enumeration_handling): Remove tests of
11632         warn_switch.  Update description.
11633         (expand_end_case_type): Call check_for_full_enumeration_handling
11634         when warn_switch.
11635
11636 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11637
11638         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
11639         (m68hc11_split_move): Call it to see if the source and destination
11640         operands use the same direction auto inc/dec mode, otherwise make the
11641         source an offsetable memory operand and generate an add.
11642
11643 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11644
11645         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
11646         register for operand 2.
11647         ("*subsi3_zero_extendqi"): Likewise.
11648         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
11649         bits so that it is compatible with a pop.
11650         ("*andhi3_gen"): Likewise.
11651         ("xorhi3"): Likewise.
11652
11653 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11654
11655         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
11656         -pedantic here...
11657         (cpp_post_options): ... not here.
11658
11659 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11660             Aldy Hernandez  <aldyh@redhat.com>
11661
11662         Removal of separate preprocessor cpp0.
11663
11664         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
11665         cpp0, install-common): Update.
11666         * c-common.c (flag_preprocess_only): New.
11667         (c_common_init): Preprocess for -E.
11668         * c-common.h (flag_preprocess_only): New.
11669         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
11670         * c-objc-common.c (c_init_decl_processing): Exit quickly
11671         for NULL return from c_common_init.
11672         * cpplib.h (cpp_preprocess_file): New.
11673         * cppmain.c (main, general_init, pfile, progname): Remove.
11674         (do_preprocessing): Rename cpp_preprocess_file, don't call
11675         cpp_finish.  Don't close stdout here.
11676         (setup_callbacks): Update prototype.
11677         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
11678         Update.
11679         * tradcpp.c (main): Ignore -quiet.
11680 objc:
11681         * lang-specs.h (default_compilers): Preprocess with cc1obj.
11682
11683 2002-03-24  Richard Henderson  <rth@redhat.com>
11684
11685         PR optimization/5742
11686         * machmode.def: Add inner mode field to complex modes.
11687         * config/mips/mips.c (mips_function_value): Always define.  Add
11688         new argument to handle libcalls.
11689         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
11690         (FUNCTION_VALUE): Likewise.
11691         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
11692         * config/mips/mips-protos.h: Update.
11693
11694 2002-03-23  Richard Henderson  <rth@redhat.com>
11695
11696         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
11697         * config/sparc/sparc-protos.h: Update.
11698         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
11699
11700 2002-03-23  Richard Henderson  <rth@redhat.com>
11701
11702         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
11703         _start or _init begins the text segment.
11704
11705 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
11706
11707         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
11708         not HOST_WIDEST_INT.
11709         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
11710
11711 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
11712
11713         PR java/5489
11714         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
11715         operand argument to output_return_instruction.
11716         * arm.c (arm_print_operand, case 'd'): If the operand is
11717         const_true_rtx then just return.
11718         (arm_print_operand, case 'D'): If the operand is const_true_rtx
11719         then abort.
11720
11721 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
11722
11723         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
11724         (Warning Options): Document -Wswitch-default.
11725         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
11726         -Wswitch.
11727         (warn_switch_default): Define variable.
11728         (warn_switch): Update comment.
11729         * flags.h (warn_switch_default): Declare variable.
11730         (warn_switch): Update comment.
11731         * stmt.c (expand_end_case): Check for and, when
11732         warn_switch_no_default, warn of a missing default case.
11733
11734 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
11735
11736         * real.h (N): Special case 128 bit doubles.
11737
11738         * combine.c (simplify_comparison): When widening modes, ignore
11739         sign extension on CONST_INTs.
11740
11741 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
11742
11743         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
11744         passed to adjust_address.  Fix comment formatting.
11745
11746
11747 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
11748
11749         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
11750         Always make REAL_VALUE_TYPE a struct containing an array of
11751         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
11752         big it is.  Don't declare or use union real_extract.
11753
11754         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
11755         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
11756         (print_operand), config/arm/arm.c (output_move_double),
11757         config/arm/arm.md (consttable_4, consttable_8),
11758         config/romp/romp.c (output_fpops), config/s390/s390.h
11759         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
11760         (xtensa_output_literal): Don't use union real_extract.
11761
11762         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
11763         (sfmode_constant_to_ulong), config/ns32k/merlin.h
11764         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
11765         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
11766         (PRINT_OPERAND): Don't use local version of union
11767         real_extract.
11768
11769         * config/convex/convex.c (check_float_value), config/vax/vax.c
11770         (vax_float_literal), config/m88k/m88k.md (divdf3),
11771         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
11772         config/pdp11/pdp11.c (output_move_quad): Don't do host
11773         arithmetic on target floating point quantities.
11774
11775         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
11776         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
11777
11778         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
11779         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
11780
11781         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
11782         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
11783         INFINITY.
11784         * print-rtl.c (print_rtx): Disable code which needs
11785         floating-point emulator.
11786         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
11787         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
11788         depending on HOST_FLOAT_FORMAT to be defined properly.
11789
11790         * config/1750a/1750a.c (get_double, float_label): Delete.
11791         (print_operand): Delete huge commented-out chunk.  Use
11792         REAL_VALUE_TO_DECIMAL.
11793         * config/1750a/1750a-protos.h: Delete prototypes of deleted
11794         functions.
11795         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
11796         IEEE_FLOAT_FORMAT.
11797         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
11798         Use REAL_VALUE_TO_DECIMAL as ELF version does.
11799         * config/m88k/m88k.c (real_power_of_2_operand,
11800         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
11801         real_extract out of the union; run the input through
11802         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
11803         from that into the union.
11804         * config/pdp11/pdp11.c (output_move_double): Rearrange
11805         parentheses to make automatic indenter happy.
11806
11807         * doc/tm.texi (Cross-compilation): Rename node to "Floating
11808         Point" and rewrite to describe current situation.  Also adjust
11809         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
11810         match code.
11811         * doc/rtl.texi: Adjust cross reference.
11812
11813 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
11814
11815         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
11816         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
11817         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
11818         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
11819         prevent use of sp as a reload register.
11820         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
11821         non_acc_reg_operand.
11822         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
11823         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
11824         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
11825         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
11826
11827 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11828
11829         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
11830         * cpplex.c (unterminated): Delete.
11831         (parse_string): No string literal may extend over multiple
11832         lines.  Suppress the error when preprocessing assembly.
11833         * cppmain.c (scan_translation_unit): Strings are single-line.
11834
11835         * doc/cpp.texi: Update to match.
11836
11837 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
11838
11839         PR optimization/5854
11840         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
11841         Shut up warnings.
11842         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
11843         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
11844         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
11845         const0 if scratch register was not allocated.
11846         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
11847         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
11848         with GEN_INT (...).
11849         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
11850         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
11851         with GEN_INT (...) everywhere.  Remove constraints in define_split
11852         patterns.
11853         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
11854         require scratch register for setting 0 into regs/non-pushable memory.
11855
11856 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
11857
11858         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
11859         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
11860
11861 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
11862
11863         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
11864         * cppinit.c (cpp_create_reader):  On by default.
11865         (cpp_handle_option):  Handle -W[no-]endif-labels.
11866         (cpp_post_options):  Also enable if -pedantic.
11867         * cpplib.c (do_else):  Use it.
11868         (do_endif):  Likewise.
11869         * doc/cppopts.texi:  Document new option.
11870         * doc/invoke.texi:  Document new option.
11871
11872 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
11873
11874         * config/i386/i386.c, config/i386/i386.md: Change all occurences
11875         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
11876
11877 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
11878
11879         * flow.c (calculate_global_regs_live): Clear aux fields of
11880         ENTRY and EXIT.
11881
11882 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
11883
11884         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
11885         REG or MEM subregs, pass rtx * instead of rtx to it.
11886         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
11887         rtx * instead of rtx to alter_subreg.
11888         * config/m32r/m32r.c (gen_split_move_double): Likewise.
11889         * config/pj/pj.c (pj_output_rval): Likewise.
11890
11891 2002-03-22  Richard Henderson  <rth@redhat.com>
11892
11893         PR target/3177
11894         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
11895         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
11896         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
11897         (ia64_expand_prologue): Look at int_regs, not words, for number
11898         of incomming int regs.
11899
11900 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
11901
11902         * expr.c (expand_expr): A RESULT_DECL is part of a call.
11903
11904 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
11905
11906         * toplev.c (flag_loop_optimize, flag_crossjumping):
11907         New static variables.
11908         (rest_of_compilation): Conditionalize crossjumping and
11909         loop optimizer.
11910         (parse_options_and_default_flags): Default loop_optimize and
11911         crossjumping.
11912         (lang_independent_options): Add -fcrossjumping and -floop-optimize
11913         * invoke.texi (crossjumping, loop-optimize): Document.
11914
11915 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11916
11917         * real.c (eiisneg): Move outside #ifdef NANS.
11918
11919 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
11920
11921         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
11922         frequencies match; avoid match on different loop depths.
11923         (try_crossjump_to_bb): Kill tests that no longer brings time
11924         savings.
11925         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
11926         updating code.
11927         (split_edge): Likewise.
11928
11929         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
11930         variable.
11931
11932         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
11933         * cfgrtl.c: Include insn-config.h
11934         (split_block) Dirtify block in presence of conditional execution
11935
11936 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11937
11938         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
11939         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
11940         (function_arg): Constify CUMULATIVE_ARGS.
11941         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
11942         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
11943         (UNITS_PER_DOUBLE): New macro.
11944         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
11945         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
11946         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
11947         fp_regs and stack_words.
11948         (EABI_FLOAT_VARARGS_P): New macro.
11949         * config/mips/mips.c (struct mips_arg_info): New.
11950         (mips_arg_info): New function.
11951         (function_arg_advance): Use it.  Add adjustment instructions here
11952         rather than in function_arg.
11953         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
11954         for VOIDmode at the beginning of the function.
11955         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
11956         (function_arg_pass_by_reference): Likewise.
11957         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
11958         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
11959         (mips_va_start): Likewise.  Use the new stack_words field of
11960         CUMULATIVE_ARGS to set up overflow area.  Reformat.
11961         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
11962         doubles and other types, aligning the overflow pointer for non-doubles
11963         too.  Remove some code duplication.  Replace hard-coded constants.
11964
11965 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11966
11967         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
11968         (CLASS_UNITS): Undefine.
11969         (CLASS_MAX_NREGS): Use FP_INC.
11970         * config/mips/mips.c (compute_frame_size): Likewise.
11971         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
11972
11973 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11974
11975         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
11976         prototype, and handle lexing numbers and identifiers.
11977         (parse_identifier): Update to new form of parse_slow.
11978         (parse_number): Fast path only, use parse_slow otherwise.
11979         (_cpp_lex_direct): Update calls to parse_number.
11980
11981 2002-03-21  DJ Delorie  <dj@redhat.com>
11982
11983         * bb-reorder.c (make_reorder_chain_1): Protect against
11984         when redundant edges are omitted.
11985         * predict.c (dump_prediction): Likewise.
11986
11987 2002-03-21  Richard Henderson  <rth@redhat.com>
11988
11989         PR target/5996
11990         * fixinc/inclhack.def (solaris_stdio_tag): New.
11991         * fixinc/fixincl.x: Regenerate.
11992
11993 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
11994
11995         PR c/5597
11996         * c-typeck.c (process_init_element): Flag non-static
11997         initialization of a flexible array member as illegal.
11998
11999 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
12000
12001         * config/rs6000/t-linux64: New.
12002         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
12003         t-ppccomm.  Use t-rs6000 and t-linux64.
12004         (powerpc64-*-gnu* <tmake_file>): Likewise.
12005         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
12006         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
12007         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
12008
12009 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
12010
12011         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
12012         flag_really_no_inline instead of optimize == 0.
12013
12014         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
12015
12016         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
12017
12018         * flags.h (flag_really_no_inline): New.
12019
12020         * c-common.c (c_common_post_options): Initialize
12021         flag_really_no_inline.
12022
12023         * toplev.c (flag_really_no_inline): New.
12024
12025 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
12026
12027         * config/avr/avr.md (length): Fix length computation for
12028         conditional branches.
12029
12030 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
12031
12032         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
12033         sdbout.o, profile.o): Update.
12034         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
12035         langhook.
12036         * c-common.h (gettags): Move here from tree.h.
12037         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
12038         insert_block, getdecls, kept_level_p, global_bindings_p): New.
12039         * dbxout.c (dbxout_init): Use getdecls langhook.
12040         * expr.c (expand_expr): Use insert_block langhook.
12041         * fold-const.c: Include langhooks.h.
12042         (fold_range_test, fold_binary_op_with_conditional_arg,
12043         fold): Use global_bindings_p langhook.
12044         * integrate.c (expand_inline_function): Use insert_block langhook.
12045         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
12046         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
12047         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
12048         LANG_HOOKS_GETDECLS): New.
12049         (LANG_HOOKS_INITIALIZER): Update.
12050         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
12051         langhook.
12052         * langhooks.h (struct lang_hooks_for_decls): New.
12053         (struct lang_hooks): Update.
12054         * profile.c: Include langhooks.h.
12055         (output_func_start_profiler): Use new langhooks.
12056         * sdbout.c: Include langhooks.h.
12057         (sdbout_init, sdbout_finish): Use getdecls langhook.
12058         * stmt.c: Include langhooks.h.
12059         (expand_fixup, fixup_gotos): Use new langhooks.
12060         * stor-layout.c: Include langhooks.h.
12061         (variable_size): Use global_bindings_p langhook.
12062         * toplev.c (compile_file): Use getdecls langhook.
12063         * tree-inline.c (remap_block): Use insert_block langhook.
12064         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
12065         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
12066
12067 2002-03-21  Richard Henderson  <rth@redhat.com>
12068
12069         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
12070         constants in .data when -fpic.
12071
12072 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12073
12074         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
12075         where appropriate.
12076
12077 2002-03-21  Tom Tromey  <tromey@redhat.com>
12078
12079         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
12080
12081 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12082
12083         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
12084
12085         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
12086
12087 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
12088             Richard Henderson  <rth@redhat.com>
12089
12090         PR c/5354
12091         * c-common.c (c_expand_expr): Preserve result of a statement
12092         expression if needed.
12093
12094 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
12095
12096         PR bootstrap/4195
12097         * genrecog.c (maybe_both_true_mode): Remove.
12098         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
12099         * machmode.def (Pmode): Likewise.
12100
12101 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
12102
12103         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
12104         (nonlocal_mentioned_p_1): New function.
12105         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
12106         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
12107         (mark_constant_function): Recognize pure functions.
12108         * rtl.h (global_reg_mentioned_p): New prototype.
12109         * rtlanal.c (global_reg_mentioned_p,
12110         global_reg_mentioned_p_1): New function.
12111
12112 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12113
12114         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
12115         UNIX assert.h.
12116         * fixinc/fixincl.x: Regenerate.
12117
12118 2002-03-20  Jason Merrill  <jason@redhat.com>
12119
12120         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
12121
12122 2002-03-20  Michael Meissner  <meissner@redhat.com>
12123
12124         * doc/invoke.texi (Optimize Options): Document that -O2 sets
12125         -fstrict-aliasing.
12126
12127 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
12128
12129         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
12130         ".literal_position" directive before the constant pool.
12131
12132 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12133
12134         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
12135         Add Craig Rodrigues.
12136         Add Brad Lucier to testers.
12137
12138 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
12139
12140         PR target/4792
12141         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
12142         to if_then_else.
12143         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
12144         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
12145         instead of insn_extract.
12146
12147 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
12148
12149         PR bootstrap/4192
12150         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
12151
12152         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
12153         stmt if some case has been output.
12154
12155 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
12156
12157         PR c/5972
12158         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
12159         movsfcc_1, movdfcc_1): Add %O2.
12160         * config/i386/i386.c (print_operand): Handle %ON.
12161         Print . before float condition codes in Sun as cmov syntax.
12162         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
12163         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
12164         no longer true.
12165
12166 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
12167
12168         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
12169         return instruction if PC was popped.
12170
12171 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
12172
12173         * config/xtensa/xtensa.md: Remove unused type attributes.
12174         (adddi_carry, subddi_carry): Change type attribute to "multi".
12175
12176 2002-03-19  Dale Johannesen  <dalej@apple.com>
12177
12178         PR optimization/5999, middle-end/5731
12179         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
12180         multiplications by reciprocals.
12181
12182 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
12183
12184         * Makefile.in: Update.
12185         * c-common.c: Include langhooks.h.
12186         (inline_forbidden_p): Use new hook.
12187         * diagnostic.c: Include langhooks.h.
12188         (format_with_decl, announce_function,
12189         default_print_error_function): Use new hook.
12190         * dwarf2out.c (dwarf2_name): Use new hook.
12191         * function.c: Include langhooks.h.
12192         (init_function_start): Use new hook.
12193         * langhooks-def.h (lhd_decl_printable_name): New.
12194         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
12195         (LANGHOOKS_INITIALIZER): Update.
12196         * langhooks.c (lhd_decl_printable_name): New.
12197         * langhooks.h (struct lang_hooks): New hook.
12198         * toplev.c (decl_name, decl_printable_name): Remove.
12199         (open_dump_file): Use new hook.
12200         (process_options): Remove old hook.
12201         * tree.h (decl_printable_name): Remove.
12202 objc:
12203         * objc-act.c (objc_init): Remove old hook.
12204         (objc_printable_name): Export.
12205         * objc-act.h (objc_printable_name): New.
12206         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
12207
12208 2002-03-19  Jim Blandy  <jimb@redhat.com>
12209
12210         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
12211         the start_source_file debug hook, not the current line number.
12212
12213 2002-03-19  Richard Henderson  <rth@redhat.com>
12214
12215         * flow.c (EH_USES): Provide default.
12216         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
12217         * doc/tm.texi (EH_USES): New.
12218
12219         * config/ia64/ia64.c (ia64_eh_uses): New.
12220         * config/ia64/ia64-protos.h: Update.
12221         * config/ia64/ia64.h (EH_USES): New.
12222
12223 2002-03-19  Richard Henderson  <rth@redhat.com>
12224
12225         * varasm.c (output_constant_def): Fix stupid typo.
12226
12227 2002-03-19  Richard Henderson  <rth@redhat.com>
12228
12229         PR 5879
12230         * except.c (current_function_has_exception_handlers): New.
12231         * except.h: Declare it.
12232         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
12233         Combine tests that disable all sibcalls for the function.
12234
12235 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
12236
12237         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
12238         for INTEGER_CST.
12239
12240 2002-03-19  Richard Henderson  <rth@redhat.com>
12241
12242         PR 5977, 5991
12243         * config/ia64/ia64.c: Revert 2002-03-01 patch.
12244         * config/ia64/ia64.h (INIT_EXPANDERS): New.
12245
12246 2002-03-19  Jim Blandy  <jimb@redhat.com>
12247
12248         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
12249         name, even if the replacement list contains no tokens, as required
12250         by Dwarf.
12251
12252 2002-03-19  Jason Merrill  <jason@redhat.com>
12253
12254         * varasm.c (globalize_decl): Get the name from the RTL, not
12255         DECL_ASSEMBLER_NAME.
12256
12257         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
12258
12259 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
12260
12261         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
12262         subdi_carry): Define.
12263
12264 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
12265
12266         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
12267         about -fpic/-fPIC if extra_warnings set.
12268
12269 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
12270
12271         * expr.c (expand_expr): Sign-extend CONST_INT generated from
12272         TREE_STRING_POINTER.
12273         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
12274
12275 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12276
12277         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
12278         in favor of SP if FRAME_POINTER_REQUIRED is false.
12279
12280 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
12281
12282         * emit-rtl.c (gen_int_mode): New function.
12283         * rtl.h: Prototype for it.
12284         * combine.c (make_extraction, simplify_comparison), expmed.c
12285         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
12286         (convert_modes, store_field), optabs.c (expand_fix),
12287         simplify-rtx.c (neg_const_int, simplify_unary_real),
12288
12289         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
12290         Use it instead of GEN_INT (trunc_int_for_mode (...)).
12291
12292 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
12293
12294         PR c/5656
12295         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
12296         convert_parm_for_inlining.
12297         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
12298         Define.
12299         * langhooks-def.h: Likewise.
12300         * objc/objc-lang.c: Likewise.
12301         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
12302         function.
12303         * tree-inline.c (initialize_inlined_parameters):
12304         Call convert_parm_for_inlining lang hook if needed.
12305         * c-typeck.c (c_convert_parm_for_inlining): New function.
12306         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
12307
12308 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
12309
12310         * calls.c (precompute_arguments): Do not assume that temporaries
12311         can be destroyed after expanding the argument.
12312         (expand_call): Likewise.
12313
12314 2002-03-15  Eric Christopher  <echristo@redhat.com>
12315
12316         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
12317         Fix register preference on last change.
12318         * config/mips/mips.c (mips_return_in_memory): New function.
12319         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
12320         * config/mips/mips-protos.h: Declare.
12321         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
12322         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
12323
12324 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
12325
12326         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
12327         a register too.
12328         (anddi3, iorsi3): Likewise.
12329
12330         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
12331         use %gprel for symbols that are going to be placed in linkonce
12332         sections.
12333
12334         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
12335         RETURN_ADDRESS_POINTER_REGNUM to $ra.
12336         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
12337         not needed.  Disregard leaf_function_p().
12338         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
12339         mips16 frame pointer.
12340         * config/mips/mips.md (store ra): Only to small SP offsets.
12341         2001-08-22  Graham Stott  <grahams@redhat.com>
12342         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
12343         return a REG rtx for the return address register.
12344
12345 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
12346
12347         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
12348         constant-pool addresses as "mode-dependent".
12349         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
12350
12351 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
12352
12353         PR target/5740
12354         * expr.c (emit_group_load): Use extract_bit_field if
12355         needed for CONCAT arguments.
12356
12357 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
12358
12359         PR target/4863
12360         * arm.md (tablejump): Make this a define_expand.  For PIC add the
12361         offset to the base of the table.
12362         (thumb_tablejump): Matcher for Thumb tablejump insn.
12363         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
12364         as the difference of two labels.
12365         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12366         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
12367         tables in the code.
12368         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
12369         * arm.c (get_jump_table_size): If the table is not in the text
12370         section, return zero.
12371
12372 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
12373
12374         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
12375         of gen_rtx_SUBREG.
12376         (arm_reload_out_hi): Use gen_lowpart instead of
12377         gen_rtx_SUBREG to access QImode components.
12378         * config/arm/arm.md: Disable zero_extend split for QImode
12379         subregs in BIG_ENDIAN mode.
12380         (storehi_bigend): Match use of least significant byte.
12381         (storeinthi): Remove extraneous SUBREG.
12382         Add missing construction of operands[2].
12383         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
12384         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
12385         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
12386
12387 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
12388
12389         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
12390         any_operand.
12391
12392 2002-03-17  Richard Henderson  <rth@redhat.com>
12393
12394         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
12395         explicitly.
12396
12397 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
12398
12399         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
12400         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
12401
12402 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12403
12404         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
12405
12406         * predict.c (estimate_bb_frequencies): Delete unused variables.
12407
12408 2002-03-17  Richard Henderson  <rth@redhat.com>
12409
12410         * config/ia64/ia64.c (ia64_attribute_table): Move before
12411         targetm definition.  Make static.
12412
12413 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12414
12415         * c-common.h (yyparse, c_common_parse_file): New.
12416         * c-lang.c: Include c-common.h.
12417         (LANG_HOOKS_PARSE_FILE): Redefine.
12418         * c-lex.c: Include c-common.h.
12419         (yyparse): Rename c_common_parse_file.  Call yyparse.
12420         * c-parse.in (yyparse): Remove macro.
12421         * c-tree.h (yyparse_1): Remove.
12422         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
12423         (LANG_HOOKS_INITIALIZER): Update.
12424         * langhooks.h (struct lang_hoooks): New hook parse_file.
12425         * toplev.c (compile_file): Use parse_file hook.
12426         * tree.h (yyparse): Remove.
12427         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
12428
12429 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
12430
12431         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
12432         float_truncate, not fix.
12433         ("*truncdfsf2_real"): Ditto.
12434         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
12435
12436         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
12437
12438 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
12439
12440         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
12441         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
12442         where appropriate.  Make the second reference to
12443         leaf_function_p a function call, as intended.  Reindented.
12444
12445         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
12446         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
12447
12448         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
12449         add register to non-constant into sp.
12450
12451         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
12452         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
12453         (mips16_gp_pseudo_rtx): Lose.
12454         (INIT_EXPANDERS): Deleted.
12455         * config/mips/mips.c (mips_init_machine_status): New.
12456         (mips_free_machine_status): New.
12457         (mips_mark_machine_status): New.
12458         (override_options): Set them.
12459         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
12460         (struct machine_function): ... new.  Replaced all references.
12461         (mips_add_gc_roots): Don't mark them.
12462         (embedded_pic_fnaddr_reg): New, extracted from...
12463         (embedded_pic_offset): ... here.
12464         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
12465         (movsi): Likewise.
12466
12467 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12468
12469         * cppinit.c: Revert -MD removal.
12470
12471 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12472
12473         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
12474         soft registers by default for 68HC12.
12475         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
12476         when compiling with -fomit-frame-pointer.
12477         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
12478         (expand_epilogue): Likewise.
12479         (m68hc11_gen_rotate): Use exg when rotating by 8.
12480
12481 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12482
12483         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
12484         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
12485         (splits): Remove unused add splits.
12486         ("*addhi3_68hc12"): Tune constraints.
12487         ("addhi_sp"): Try to use X instead of Y in all cases and if the
12488         constant fits in 8-bits and D is dead use abx/aby instructions.
12489         ("*addhi3"): Remove extern declaration of ix_reg.
12490         ("*subsi3"): Optimize and provide new split.
12491         ("subhi3"): Cleanup.
12492         ("*subhi3_sp"): Avoid saving X if we know it is dead.
12493         (arith splits): For 68hc12 save the address register on the stack
12494         and do the arithmetic operation with a pop.
12495
12496 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12497
12498         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
12499         allocating QImode in address registers.
12500         ("*movqi_m68hc11"): Likewise.
12501
12502 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
12503
12504         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
12505
12506 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12507
12508         * cppinit.c (print_help): Display -MD and -MMD.
12509         Don't display usage string.  Update assertion syntax and
12510         typo.
12511         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
12512         (cpp_handle_option): Update.
12513
12514 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
12515
12516         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
12517         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
12518         and define it so that regardless of target CPU size,
12519         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
12520         of "int" rather than "long."
12521
12522 2002-03-15  Richard Henderson  <rth@redhat.com>
12523
12524         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
12525         size as a tree.
12526
12527 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12528
12529         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
12530         ("tstqi" split): Avoid using memory for tstqi on address register.
12531         (splits): Remove constraints.
12532         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
12533         ("cmpdf", "cmpsf"): Remove since not used.
12534         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
12535         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
12536
12537 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12538
12539         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
12540         ("neghi2"): Tighten constraints.
12541         ("one_cmplsi2"): Optimize and simplify split.
12542         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
12543
12544 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12545
12546         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
12547         and split of AND operation to clear the upper bits.
12548         ("*logicalsi3_zextqi"): Likewise.
12549         ("*logicallhi3_zexthi_ashift8"): Likewise.
12550         ("*logicalsi3_silshr16"): Likewise.
12551         ("logicalsi3_silshl16"): Likewise.
12552         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
12553
12554 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12555
12556         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
12557         (m68hc11_indirect_p): New function.
12558         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
12559         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
12560         TARGET_M6812.
12561         (asm_print_register): Likewise.
12562         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
12563         (m68hc11_indirect_p): Declare.
12564         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
12565         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
12566         (TARGET_SWITCHES): New option -mrelax.
12567         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
12568         destination.
12569         ("iorsi3", "xorsi3"): Likewise.
12570         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
12571         ("*andhi3_mem"): New to handle destination in memory with bclr
12572         and a scratch register.
12573         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
12574         ("*andhi3_const"): New when operand2 is constant.
12575         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
12576         ("*andhi3_gen"): Cleanup of the old "andhi3".
12577         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
12578         ("xorqi3"): Update constraints.
12579
12580 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12581
12582         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
12583         for reg_equiv_memory_loc when the operand is a register that does
12584         not get a hard register (stack location).
12585         (tst_operand): After reload, accept all memory operand.
12586         (symbolic_memory_operand): Fix detection of symbolic references.
12587         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
12588         accept symbols and any constant.
12589
12590 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12591
12592         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
12593         note on the insn that sets the soft frame register.
12594         (must_parenthesize): ix and iy are also reserved names.
12595         (print_operand_address): One more place where parenthesis are required
12596         to avoid confusion with register names.
12597         (m68hc11_gen_movhi): Allow push of stack pointer.
12598         (m68hc11_check_z_replacement): Fix handling of parallel with a
12599         clobber.
12600         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
12601         the replacement register is.
12602         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
12603         and D8_REGS classes.
12604         (MODES_TIEABLE_P): All modes are tieable except QImode.
12605
12606 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12607
12608         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
12609         (___subdi3): Likewise.
12610         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
12611         (__map_data_section): Optimize 68hc11 case.
12612
12613 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12614
12615         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
12616         than a shift to avoid adding a register with itself.
12617         (m68hc11_memory_move_cost): Take into account NO_REGS.
12618         (m68hc11_register_move_cost): Update and use memory move cost
12619         for soft registers.
12620         (m68hc11_address_cost): Make cost of valid offset not 0 so that
12621         it gives more opportunities to cse to optimize.
12622         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
12623         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
12624
12625 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
12626
12627         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
12628         * c-common.def (CLEANUP_STMT): New tree node.
12629         * c-common.h (CLEANUP_DECL): New macro.
12630         (CLEANUP_EXPR): Likewise.
12631         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
12632         * expr.c (expand_expr): Tidy.
12633         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
12634         * tree-inline.c (initialize_inlined_parameters): Clean up
12635         new local variables.
12636
12637 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
12638
12639         PR bootstrap/4128
12640         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
12641         before movrXX only, use reg_overlap_mentioned_p.
12642         Only special case NE if just one insn can be generated.
12643
12644 2002-03-15  Jason Merrill  <jason@redhat.com>
12645
12646         * varasm.c (assemble_variable): Call resolve_unique_section before
12647         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
12648         of error_mark_node.
12649
12650 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
12651
12652         PR target/5170
12653         * arm.md (split pattern for thumb shiftable immediates): Add comment
12654         explaining non-obvious test.
12655
12656 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
12657
12658         PR target/5712
12659         * arm.md (movaddr, movaddr_insn): Delete.
12660
12661 2002-03-15  Jason Merrill  <jason@redhat.com>
12662
12663         * toplev.c (wrapup_global_declarations): Clarify variable handling.
12664         -fkeep-static-consts doesn't apply to comdats.
12665
12666 2002-03-14  Richard Henderson  <rth@redhat.com>
12667
12668         * c-decl.c: Include c-pragma.h.
12669         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
12670         (finish_function): Tidy.
12671         * c-pragma.c: Include c-common.h.
12672         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
12673         (handle_pragma_weak): Use them.
12674         (init_pragma): Register pending_weaks.
12675         * c-pragma.h (maybe_apply_pragma_weak): Declare.
12676         * print-tree.c (print_node): Print DECL_WEAK.
12677         * varasm.c (mark_weak_decls): Remove.
12678         (remove_from_pending_weak_list): Remove.
12679         (add_weak): Remove.
12680         (asm_emit_uninitialised): Call globalize_decl for weak commons.
12681         (weak_decls): Make a tree_list.
12682         (declare_weak): Cons weak_decls directly.
12683         (globalize_decl): Remove weak_decls elements directly.
12684         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
12685         symbols.  Don't pretend to handle aliases.
12686         (init_varasm_once): Update weak_decls registry.
12687         * Makefile.in: Update dependencies.
12688
12689 2002-03-14  Richard Henderson  <rth@redhat.com>
12690
12691         PR target/5312
12692         * config/ia64/ia64.c: Include tm_p.h last.
12693         (gen_nop_type): Remove duplicate definition.
12694         (cycle_end_fill_slots): Set sched_data for second L slot.
12695         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
12696         (nop_cycles_until): Fix typos.
12697
12698 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
12699
12700         PR optimization/5891
12701         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
12702
12703 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
12704
12705         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
12706           descriptors correctly.
12707
12708 2002-03-14  Michael Meissner  <meissner@redhat.com>
12709
12710         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
12711         100, allowing MAX_UNROLLED_INSNS to be overridden.
12712
12713         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
12714         --param.
12715
12716         * unroll.c (params.h): Include.
12717         (MAX_UNROLLED_INSNS): Delete, now in params.h.
12718
12719         * doc/invoke.texi (--param max-unroll-insns): Document.
12720
12721         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
12722
12723 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
12724
12725         * arm.md: Fix warnings about constraints in peepholes and splits.
12726
12727 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
12728
12729         * cpphash.h (struct lexer_state): Remove line_extension member.
12730         * cpplib.c (dequote_string, do_linemarker): New functions.
12731         (linemarker_dir): New data object.
12732         (DIRECTIVE_TABLE): No longer need to interpret #line in
12733         preprocessed source.  Delete obsolete comment about return
12734         values of handlers.
12735         (end_directive, directive_diagnostics, _cpp_handle_directive):
12736         Don't muck with line_extension.
12737         (directive_diagnostics): No need to issue warnings for
12738         linemarkers here.
12739         (_cpp_handle_directive): Issue warnings for linemarkers here,
12740         when appropriate.  Dispatch linemarkers to do_linemarker, not
12741         do_line.
12742         (do_line): Code to handle linemarkers split out to do_linemarker.
12743         Convert escape sequences in filename argument, both places.
12744
12745         * cppmacro.c (quote_string): Rename cpp_quote_string and
12746         export.  All callers changed.
12747         * cpplib.h (cpp_quote_string): Prototype.
12748         * cppmain.c (print_line): Call cpp_quote_string on to_file
12749         before printing it.
12750
12751         * doc/cpp.texi: Document that escapes are now interpreted in
12752         #line and in linemarkers, and that non-printing characters are
12753         converted to octal escapes when linemarkers are generated.
12754
12755 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12756
12757         * emit-rtl.c (try_split): Use delete_insns.
12758         * recog.c (split_all_insns): Fix terminating condition.
12759
12760 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
12761             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
12762
12763         PR target/5828
12764         * arm.c (arm_output_epilogue): Fix floating-point register save
12765         adjustment when using a frame pointer.
12766
12767 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
12768
12769         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
12770         * config/mips/mips.c (compute_frame_size): Retrofit them here.
12771         (save_restore_insns, mips_expand_epilogue): And here.
12772         (build_mips16_call_stub): And here.
12773         (mips_function_value): Use the new macros to decide whether a single
12774         or complex float can be returned in floating-point registers.  Return
12775         a parallel rtx in the complex case.
12776
12777 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
12778
12779         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
12780         call after liveness analysis.
12781
12782         * recog.c (split_insn): Use delete_insn_and_edges.
12783
12784         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
12785         instructions to have branch prediction notes.
12786         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
12787
12788 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
12789
12790         * configure.in: Don't pass -Wno-long-long to a ADA compiler
12791         that doesn't support it.
12792         * configure: Regenerate.
12793
12794 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12795
12796         PR target/5626
12797         * config/sparc/sparc.md (normal_branch, inverted_branch,
12798         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12799         inverted_fp_branch): Adjust calls to output_cbranch.
12800         Set length attribute.
12801         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
12802         output_v9branch.  Set length attribute.
12803         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
12804         predicates.
12805         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
12806         (output_cbranch): Likewise.  Handle far branches.
12807         (output_v9branch): Handle far branches.
12808         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
12809         Adjust prototypes.
12810         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
12811         noov_compare64_op predicates.
12812
12813 2002-03-13  Jason Merrill  <jason@redhat.com>
12814
12815         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
12816         into the function and constify it.
12817         * gthr-dce.h, gthr-solaris.h: Likewise.
12818
12819 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
12820
12821         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
12822         * config/rs6000/rs6000.c (rs6000_va_arg): Use
12823         std_expand_builtin_va_arg if not ABI_V4.
12824
12825 2002-03-13  Jason Merrill  <jason@redhat.com>
12826
12827         * varasm.c (globalize_decl): New fn.
12828         (assemble_start_function): Use it.
12829         (asm_emit_uninitialized): Use it.
12830         (assemble_alias): Use it.
12831         (assemble_variable): Use it.
12832
12833 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
12834
12835         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
12836         2002-03-12 internal visibility change.
12837         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
12838         visibility into SYMBOL_REF_FLAG.
12839
12840 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
12841
12842         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
12843         VOIDmode operand.  Add compile-time optimization for constant results.
12844
12845 2002-03-12  Jason Merrill  <jason@redhat.com>
12846
12847         * c-typeck.c (convert_for_assignment): Don't allow conversions
12848         between pointers and references.  Only allow lvalues to convert to
12849         reference.
12850
12851 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
12852
12853         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
12854         before prologue, to avoid scheduling problems.
12855
12856 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12857
12858         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
12859         (ELIMINABLE_REGS): Add sfp->sp.
12860         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
12861
12862 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12863
12864         PR optimization/5892
12865         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
12866
12867 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12868
12869         * loop.c (basic_induction_var): Don't call convert_modes if mode
12870         classes are different.
12871
12872 2002-03-12  Richard Henderson  <rth@redhat.com>
12873
12874         PR optimization/5901
12875         * function.c (reposition_prologue_and_epilogue_notes): Position
12876         the markers after/before the last/first insn not deleted.
12877
12878 2002-03-12  Richard Henderson  <rth@redhat.com>
12879
12880         PR optimization/5878
12881         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
12882         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
12883         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
12884
12885         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
12886         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
12887         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
12888
12889         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
12890         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
12891         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
12892         also.  Don't set it if not flag_pic.
12893         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
12894         to be INVALID_REGNUM when not used.
12895
12896 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
12897
12898         * expmed.c (store_bit_field): Reset alias set for memory.
12899         (extract_bit_field): Same.
12900
12901 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12902
12903         * c-common.c (c_tree_code_type, c_tree_code_length,
12904         c_tree_code_name, add_c_tree_codes): Delete.
12905         * c-common.h (add_c_tree_codes): Delete.
12906         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
12907         Define.
12908         * c-objc-common.c (c_objc_common_init): Don't call
12909         add_c_tree_codes, instead set lang_unsafe_for_reeval.
12910         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
12911         objc_tree_code_name, add_objc_tree_codes): Delete.
12912         (objc_init): Don't call add_objc_tree_codes.
12913         * objc/objc-lang.c (tree_code_type, tree_code_length,
12914         tree_code_name): Define.
12915         * toplev.c (lang_independent_init): Don't set
12916         tree_code_length[IDENTIFIER_NODE].
12917         * tree.c (tree_code_type, tree_code_length, tree_code_name):
12918         Delete definitions, moved to language front-ends.
12919         * tree.def (IDENTIFIER_NODE): Hardwire the length.
12920         * tree.h (tree_code_type, tree_code_length, tree_code_name):
12921         Const-ify.
12922         (tree_code_length): Change type to unsigned char.
12923
12924 2002-03-12  Richard Henderson  <rth@redhat.com>
12925
12926         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
12927         internal visibility change.
12928
12929 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12930
12931         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
12932         validize_mem() instead of change_address to avoid clobbering
12933         memory attributes.
12934
12935 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
12936
12937         * c-lex.h (position_after_whitespace): Remove.
12938
12939 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
12940
12941         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
12942         (lex_string): Use unsigned char pointers.
12943
12944 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
12945
12946         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
12947         is not a valid memory_operand.
12948
12949 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12950
12951         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
12952         * config/xtensa/lib1funcs.asm: Fix copyright to include
12953         special case for libgcc files.
12954         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
12955         (__divsi3): Likewise.
12956         (__umodsi3): Likewise.
12957         (__modsi3): Likewise.
12958         * config/xtensa/lib2funcs.S: Fix copyright to include
12959         special case for libgcc files.
12960
12961 2002-03-12  Tom Rix  <trix@redhat.com>
12962
12963         * collect2.c (resolve_lib_name): Move outside of
12964         OBJECT_FORMAT_COFF ifdef.
12965         (ignore_library): Same.
12966
12967 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12968
12969         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
12970
12971 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12972
12973         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
12974         to function_section before writing out the constant pool.
12975
12976 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
12977
12978         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
12979         zero_constant.
12980         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
12981
12982 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
12983
12984         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
12985         (adddi3): Likewise.
12986         (movdf): Likewise.
12987         (movdi): Likewise.
12988         (cmpsi splitter): Likewise.
12989         (modsi3): Fail if <= 0.
12990         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
12991         redundant test when HOST_BITS_PER_WIDE_INT != 32.
12992         (reg_or_sub_cint64_operand): Likewise.
12993         (num_insns_constant_wide): Optimize sign extension.
12994         (rs6000_legitimize_address): Likewise.
12995
12996 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
12997
12998         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
12999         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
13000
13001 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
13002
13003         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
13004         address calculation.
13005
13006 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
13007
13008         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
13009         scratch register to DImode / TImode.
13010         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
13011         register used does not overlap the target.
13012
13013 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13014
13015         * Makefile.in (debug.o): Depend on debug.h.
13016         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
13017         * debug.c (do_nothing_debug_hooks): Likewise.
13018         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
13019         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
13020         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
13021         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13022         * dwarfout.c (dwarf_debug_hooks): Likewise.
13023         * integrate.c (output_inline_function): Likewise.
13024         * objc/objc-act.c (synth_module_prologue): Likewise.
13025         * sdbout.c (sdb_debug_hooks): Likewise.
13026         * toplev.c (debug_hooks): Likewise.
13027         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13028
13029 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13030
13031         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
13032         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
13033         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
13034         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
13035         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
13036         * defaults.h (POINTER_SIZE): Define.
13037         * doc/tm.texi (POINTER_SIZE): Document default.
13038
13039 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13040
13041         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
13042
13043 2002-03-11  Richard Henderson  <rth@redhat.com>
13044
13045         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
13046         if rebuild_label_notes_after_reload.
13047
13048 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
13049
13050         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
13051         emit pic register load if "internal" visibility.
13052         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
13053         (cris_expand_builtin_va_arg): Do all computations on trees.
13054
13055 2002-03-11  Richard Henderson  <rth@redhat.com>
13056
13057         * rtlanal.c: Include recog.h.
13058         (keep_with_call_p): Fix thinko.
13059         * Makefile.in (rtlanal.o): Update dependencies.
13060
13061 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
13062
13063         * genflags.c (gen_insn): Use IS_VSPACE.
13064         * genoutput.c (output_insn_data): Likewise.
13065         (process_template): Likewise.
13066
13067 2002-03-11  Richard Henderson  <rth@redhat.com>
13068
13069         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
13070
13071 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
13072
13073         * Makefile.in: Update.
13074         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
13075         Update documentation.
13076         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
13077         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
13078
13079 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
13080
13081         * Makefile.in: Give texi2pod its input file as a command line
13082         argument, not on stdin.
13083
13084 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
13085             Daniel Berlin  <dan@dberlin.org>
13086
13087         C++ alias analysis improvement.
13088         * alias.c (record_component_aliases): Record aliases for base
13089         classes too.
13090
13091 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
13092
13093         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
13094
13095 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
13096
13097         * toplev.c (vms_fopen): Remove, not needed.
13098
13099         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
13100
13101         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
13102
13103         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
13104         for FP, already done later.
13105
13106         * toplev.c (debug_args): Add entry for VMS_DEBUG.
13107         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
13108
13109 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
13110
13111         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
13112         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
13113         LARGEST_EXPONENT_IS_NORMAL for the given mode.
13114         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
13115         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
13116         (ediv, emul, eldexp, esqrt): Likewise.
13117         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
13118         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
13119         (saturate): New function.
13120         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
13121         (make_nan): Use a saturation value instead of a NaN if
13122         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
13123         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
13124         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
13125         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
13126         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
13127         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
13128         !ROUND_TOWARDS_ZERO.
13129         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
13130         (ROUND_TOWARDS_ZERO): Document.
13131
13132 2002-03-11  Andreas Jaeger  <aj@suse.de>
13133
13134         * cfg.c (dump_flow_info): Remove unused variable.
13135
13136 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
13137
13138         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
13139         computations on trees.
13140
13141 2002-03-10  Richard Henderson  <rth@redhat.com>
13142
13143         PR 5693:
13144         * reload.c (copy_replacements_1): New.
13145         (copy_replacements): Use it to recurse through the rtx.
13146
13147 2002-03-10  Richard Henderson  <rth@redhat.com>
13148
13149         * loop.c (strength_reduce): Compute number of iterations as
13150         unsigned HOST_WIDE_INT.
13151
13152 2002-03-10  Richard Henderson  <rth@redhat.com>
13153
13154         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
13155         to move away from the end of the block.
13156
13157 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
13158
13159         PR preprocessor/5899
13160         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
13161
13162 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13163
13164         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
13165
13166         * attribs.c (decl_attributes): Fix signed/unsigned warning.
13167
13168 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
13169
13170         * config/mmix/mmix.c: Improve comments.
13171         (mmix_target_asm_function_prologue): Drop variable
13172         empty_stack_frame.  Don't allocate unused slot above fp.
13173         (mmix_target_asm_function_epilogue): Mirror prologue changes.
13174         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
13175         brace in first column.
13176         (enum reg_class): Ditto.
13177         (FIRST_PARM_OFFSET): Now 0.
13178         (USER_LABEL_PREFIX): Remove #if 0:d definition.
13179
13180 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13181
13182         * combine.c (make_extraction): Fix error in last change.
13183
13184 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13185
13186         * c4x.c (c4x_fp_reglist): Const-ify.
13187         * cris.c (cris_print_operand): Likewise.
13188         * i386.c (ix86_va_arg): Likewise.
13189         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
13190         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
13191         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
13192         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
13193         * mcore.h (regno_reg_class): Likewise.
13194         * mips.c (gen_int_relational): Likewise.
13195         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
13196         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
13197         * pdp11.c (move_costs): Likewise.
13198         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
13199         * s390.c (s390_branch_condition_mnemonic, regclass_map):
13200         Likewise.
13201         * s390.h (regclass_map): Likewise.
13202         * sh.c (shift_amounts): Likewise.
13203         * sh.md (rotlsi3): Likewise.
13204
13205 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
13206
13207         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
13208         (ne0+5): Use new clobber to generate proper shift pattern.
13209         Patch by Michael Matz <matz@kde.org>.
13210
13211 2002-03-09  Andreas Schwab  <schwab@suse.de>
13212
13213         * gcc.c (validate_all_switches): Also handle `%W{...}'.
13214
13215 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
13216
13217         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
13218
13219 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
13220
13221         PR middle-end/5877
13222         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
13223         even for non-representable constants.
13224
13225 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13226
13227         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
13228         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
13229         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
13230         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
13231         (pop_function_context): Compute MAY_SHARE parameter for
13232         fixup_var_refs.
13233         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
13234         (gen_mem_addressof): Call fixup_var_refs with new parm.
13235
13236         * combine.c (make_extraction): Don't make extension of CONST_INT.
13237
13238 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
13239
13240         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
13241         in o32 and o64 ABIs.
13242         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
13243         but getting fixed-size structs passed in registers regardless of
13244         padding in o32 and o64 ABIs.
13245
13246         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
13247         offset before loading address of argument passed by transparent
13248         reference.
13249
13250 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13251
13252         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
13253
13254 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
13255
13256         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
13257         marker such that registers after it are saved.
13258
13259 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13260
13261         * sparc.c (arith_4096_operand): Fix error in last change.
13262
13263 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
13264
13265         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
13266         defaults for MEABI.
13267
13268 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
13269
13270         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
13271         vectors.
13272
13273 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
13274
13275         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
13276
13277 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13278
13279         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
13280         removed; fix return value.
13281         * combine.c (combine_instructions): Dirtify blocks where we failed to
13282         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
13283         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
13284
13285 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13286
13287         * gcse.c (insert_insn_end_bb): Fix typo in last change.
13288
13289 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
13290
13291         * recog.c (peephole2_optimize): Re-distribute EH edges.
13292
13293 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
13294
13295         * expr.c (expand_expr): Use unsave lang hook.
13296         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
13297         (LANG_HOOKS_INITIALIZER): Update.
13298         * langhooks.h (struct lang_hooks): New hook unsave.
13299         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
13300         (unsave_expr_1): Remove unused lang_unsave_expr_now.
13301         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
13302         (unsave_expr_now): Remove.
13303         * tree.h (unsave_expr_now, lang_unsave,
13304         lang_unsave_expr_now): Remove.
13305         (lhd_unsave): New.
13306
13307 2002-03-08  Andreas Jaeger  <aj@suse.de>
13308
13309         * flow.c (propagate_block_delete_insn): Remove unused variable.
13310
13311 2002-03-08  Kazu Hirata  <kazu@hxi.com>
13312
13313         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
13314         insn length for memory load/store.
13315
13316 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13317
13318         * doc/install.texi (--with-libiconv-prefix): Document.
13319
13320 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
13321
13322         * doc/sourcebuild.texi: Fix typo.
13323
13324 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
13325
13326         PR c/3711
13327         * builtins.c (std_expand_builtin_va_arg): Do all computations on
13328         trees.
13329
13330 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13331
13332         * rtl.c (copy_most_rtx): Move from here ...
13333         * emit-rtl.c (copy_most_rtx): ... to here.
13334
13335 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
13336
13337         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
13338         SUBTARGET_CPP_SIZE_SPEC.
13339         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
13340
13341         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
13342
13343 2002-03-07  Matt Hiller  <hiller@redhat.com>
13344
13345         * gensupport.c (first_dir_md_include): Renamed from include;
13346         change all references.
13347         (last_dir_md_include): Renamed from last_include; change all
13348         references.
13349         (init_md_reader): Unconditionally initialize base_dir whether or
13350         not filename is a relative path.
13351
13352 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
13353
13354         * config/fp-bit.c (_unord_f2): Compile it in even if
13355         US_SOFTWARE_GOFAST is enabled.
13356
13357         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
13358         NULL_RTX.  Set all HFmode operations as NULL_RTX.
13359         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
13360         NULL_RTX, try reversing the comparison and the operands.
13361
13362 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
13363
13364         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
13365         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
13366         and MATCH_OP_DUP.
13367
13368 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
13369
13370         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
13371
13372 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13373
13374         * basic-block.h (fixup_abnormal_edges): Declare.
13375         * reload1.c (fixup_abnormal_edges): New function.
13376         * reg-stack.c (convert_regs): Use it.
13377
13378         * gcse.c (insert_insn_end_bb): Handle trapping insns.
13379
13380         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
13381
13382 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
13383
13384         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
13385         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
13386         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
13387         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
13388         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
13389         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
13390         unless x and y could be infinite.
13391         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
13392         Check that the common type of both arguments is a real, even for
13393         targets without unordered comparisons.  Allow an integer argument
13394         to be compared against a real.
13395         (expand_tree_builtin): Use expand_unordered_cmp.
13396         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
13397         * cse.c (fold_rtx): Likewise.  Fix indentation.
13398         * fold-const.c (fold_real_zero_addition_p): New.
13399         (fold): Use it, and the new HONOR_... macros.
13400         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
13401         * jump.c (reversed_comparison_code_parts): After searching for
13402         the true comparison mode, use HONOR_NANS to decide whether it
13403         can be safely reversed.
13404         (reverse_condition_maybe_unordered): Remove IEEE check.
13405         * simplify-rtx.c (simplify_binary_operation): Use the new macros
13406         to decide which simplifications are valid.  Allow the following
13407         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
13408         and (a - -b) to (a + b).
13409         (simplify_relational_operation): Use HONOR_NANS.
13410         * doc/tm.texi: Document the MODE_HAS_... macros.
13411
13412 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
13413
13414         * combine.c (simplify_comparison): If simplifying a logical shift
13415         right and compare with constant, force the comparison to unsigned.
13416
13417 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
13418
13419         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
13420
13421         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
13422         -mabi=no-altivec
13423         (alt_reg_names): Remove % for vrsave.
13424
13425 2002-03-06  Richard Henderson  <rth@redhat.com>
13426
13427         PR optimization/5844
13428         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
13429         if used indicates we've already emitted one copy of an operand.
13430         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
13431         (gen_split): Supply a non-null used.
13432
13433 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
13434
13435         * reload1.c (reload): Unshare all rtl after reload is done.
13436
13437         * simplify-rtx.c (simplify_plus_minus): Do not abort,
13438         but simply fail if the expression is too complex to simplify.
13439         (simplify_gen_binary): Handle simplify_plus_minus failures.
13440
13441 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
13442
13443         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
13444         consistently call delete_trivially_dead_insns after CSE and GCSE;
13445         fix DFI_life dumping; do jump threading after liveness; do crossjumping
13446         after liveness2; update comment in last crossjumping.
13447         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
13448
13449 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
13450
13451         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
13452         after completing fast dead code elimination.
13453
13454         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
13455         COMPARE operator.
13456
13457 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
13458
13459         * version.c:  Fix misplaced leading blanks on first line.
13460
13461 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
13462
13463         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
13464
13465 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
13466
13467         * cfgcleanup.c (mentions_nonequal_regs): New function.
13468         (thread_jump): Use it.
13469         * toplev.c (rest_of_compilation): Run jump threading after
13470         liveness.
13471
13472 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
13473
13474         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
13475         patch.
13476
13477 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
13478
13479         * predict.c (estimate_bb_frequencies): Do not reload the
13480         frequencies from notes.
13481
13482 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
13483
13484         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
13485         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
13486
13487         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
13488         delete_noop_moves): Return indeger.
13489         * flow.c (ndead): New variable.
13490         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
13491         BB argument; update callers.
13492         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
13493         (life_analysis): Do not call purge_all_dead_edges.
13494         (update_life_info): Return number of deleted insns; print statistics.
13495         (update_life_info_in_dirty_blocks): likewise.
13496         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
13497         return number of insns deleted.
13498
13499         * cse.c: Include timevar.h
13500         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
13501         iterate until stabilizes; print statistics; return number of killed
13502         insns.
13503         * Makefile.in: (cse.o): Add timevar.h dependency
13504         * rtl.h (delete_trivially_dead_insns): New.
13505         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
13506         * toplev.c (rest_of_compilation): Update callers.
13507
13508         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
13509         (try_optimize_cfg): Do not update liveness.
13510         (cleanup-cfg): Loop until try_optimize_cfg and dead code
13511         removal stabilizes; use delete_trivially_dead_insns.
13512
13513         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
13514
13515 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
13516
13517         * cppmain.c (setup_callbacks): Disable #pragma and #ident
13518         callbacks when processing assembly language.
13519
13520 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13521
13522         * pa.h (ASM_FILE_END): Define.
13523         * som.h (ASM_FILE_END): Delete.
13524
13525         * pa.c (function_arg): Don't pass floats in general registers in
13526         indirect calls if TARGET_ELF32.
13527
13528 2002-03-05  Richard Henderson  <rth@redhat.com>
13529
13530         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
13531
13532 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
13533
13534         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
13535
13536 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13537
13538         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
13539         -r command line.  Don't hide any symbols if not building
13540         shared libgcc.
13541
13542 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
13543
13544         * cfg.c (dump_flow_info): Warn about profile mismatches.
13545         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
13546         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
13547
13548 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13549
13550         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
13551         wide volatile memory by parts.
13552
13553 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13554
13555         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
13556         is NULL.
13557
13558 2002-03-05  Richard Henderson  <rth@redhat.com>
13559
13560         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
13561
13562 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
13563
13564         * toplev.c (documented_lang_options): Document more
13565         language-specific options.
13566         * doc/invoke.texi (Warning Options): Correct documentation for
13567         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
13568         * c-decl.c (c_decode_option): Use a table to handle warning options.
13569
13570 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
13571
13572         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
13573         parameter to mmix_encode_section_info.
13574         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
13575         relocatably.  Always produce ELF, not mmo if linking relocatably.
13576         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
13577         first is non-zero, don't add symbol prefix.
13578         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
13579         prototype accordingly.
13580
13581 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
13582
13583         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
13584
13585 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
13586
13587         * configure.in: Increase required makeinfo version to 4.1.
13588         * configure: Regenerate.
13589
13590 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
13591
13592         * .cvsignore: Remove *.info* and genrtl*; these files are generated
13593         elsewhere now.
13594
13595 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
13596
13597         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
13598         * doc/invoke.texi: Fix @math uses.
13599
13600 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13601
13602         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
13603         removal
13604
13605 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
13606
13607         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
13608         (powerpc-*-eabisimaltivec*): Same.
13609
13610         * config/rs6000/t-ppcendian: New.
13611
13612 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13613
13614         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
13615         nonimmediate_src_operand and nonimmediate_lsrc_operand to
13616         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
13617
13618 2002-03-03  Richard Henderson  <rth@redhat.com>
13619
13620         * toplev.c (rest_of_decl_compilation): Revert last two changes.
13621
13622 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
13623
13624         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
13625         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
13626         tree.c, config/m68k/m68k.c:
13627         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
13628         REAL_ARITHMETIC blocks unconditional.  Delete some further
13629         #ifdef blocks predicated on REAL_ARITHMETIC.
13630         * flags.h, toplev.c: Delete remaining references to
13631         flag_pretend_float.
13632
13633         * doc/invoke.texi: Remove documentation of -fpretend-float.
13634         * doc/tm.texi: Describe the various REAL_* macros as provided by
13635         real.h, not by the target configuration files.
13636
13637         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
13638         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
13639         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
13640         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
13641         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
13642         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
13643         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
13644         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
13645         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
13646         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
13647         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
13648         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
13649         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
13650         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
13651         config/xtensa/xtensa.h:
13652         Do not define, undefine, or mention in comments any of
13653         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
13654         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
13655         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
13656         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
13657         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
13658         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
13659         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
13660         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
13661         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
13662
13663 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13664
13665         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
13666         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
13667         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
13668         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
13669         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
13670         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
13671         Delete.
13672         * defaults.h (BITS_PER_WORD): Define.
13673         * doc/tm.texi (BITS_PER_WORD): Document default value.
13674
13675         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
13676         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
13677         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
13678
13679 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13680
13681         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
13682         lieu of explicit sizeof/sizeof.
13683         * i386.c (override_options, ix86_init_mmx_sse_builtins,
13684         ix86_expand_builtin): Likewise.
13685         * mips.c (mips_add_gc_roots): Likewise.
13686         * mmix.c (mmix_output_condition): Likewise.
13687         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
13688         altivec_init_builtins): Likewise.
13689         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
13690         * cppexp.c (Nsuff, parse_number): Likewise.
13691         * cppinit.c (builtin_array_end): Likewise.
13692         * gcc.c (n_default_compilers, process_command): Likewise.
13693         * genpreds.c (output_predicate_decls): Likewise.
13694         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
13695         * lcm.c (N_ENTITIES): Likewise.
13696         * stor-layout.c (set_sizetype): Likewise.
13697
13698 2002-03-03  Richard Henderson  <rth@redhat.com>
13699
13700         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
13701         for types or labels.
13702
13703 2002-03-03  Richard Henderson  <rth@redhat.com>
13704
13705         * c-decl.c (start_decl): Initialized variables are not common.
13706
13707 2002-03-02  Per Bothner  <per@bothner.com>
13708
13709         * gcc.c (option_map):  Suport new --bootclasspath option.
13710         --CLASSPATH is now just an alias for --classpath.
13711
13712 2002-03-02  Richard Henderson  <rth@redhat.com>
13713
13714         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
13715         load if "internal" visibility.
13716         * doc/extend.texi: Document visibility meanings.
13717
13718 2002-03-02  Richard Henderson  <rth@redhat.com>
13719
13720         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
13721         to functions as well.
13722
13723 2002-03-02  Richard Henderson  <rth@redhat.com>
13724
13725         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
13726         (handle_visibility_attribute): Don't call assemble_visibility.
13727         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
13728         without asmspec.  Invoke assemble_alias when needed.
13729         * varasm.c (maybe_assemble_visibility): New.
13730         (assemble_start_function, assemble_variable, assemble_alias): Use it.
13731
13732 2002-03-02  Richard Henderson  <rth@redhat.com>
13733
13734         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
13735         invoke ENCODE_SECTION_INFO with first call flag.
13736
13737         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
13738         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
13739         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
13740         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
13741         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
13742         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
13743         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
13744         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
13745         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
13746         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
13747         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
13748         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
13749         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
13750         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
13751         config/mcore/mcore-protos.h, config/mcore/mcore.c,
13752         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
13753         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
13754         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
13755         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
13756         config/sh/sh.h, config/sparc/sparc.h,
13757         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
13758         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
13759         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
13760         FIRST argument.  As needed, examine it and do nothing.
13761
13762         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
13763         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13764         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
13765
13766         * config/arm/t-pe (pe.o): Add dependencies.
13767
13768 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13769
13770         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
13771         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
13772         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
13773         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
13774         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
13775         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
13776         * defaults.h (BITS_PER_UNIT): Define.
13777         * doc/tm.texi (BITS_PER_UNIT): Document default value.
13778
13779 2002-03-02  Kazu Hirata  <kazu@hxi.com>
13780
13781         * config/h8300/h8300-protos.h: Add a prototype for
13782         compute_a_shift_length.
13783         * config/h8300/h8300.c (h8300_asm_insn_count): New.
13784         (compute_a_shift_length): Likewise.
13785         (h8300_adjust_insn_length): Do not adjust insn length of shift
13786         insns.
13787         * config/h8300/h8300.md (anonymous shift patterns): Use
13788         compute_a_shift_length.
13789
13790 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13791
13792         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
13793         trunc_int_for_mode.
13794
13795         * emit-rtl.c (offset_address): Call update_temp_slot_address.
13796
13797 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13798
13799         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
13800         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
13801         * flags.h (flag_zero_initialized_in_bss): Declare.
13802         * toplev.c (flag_zero_initialized_in_bss): New flag.
13803         (lang_independent_options): Add flag_zero_initialized_in_bss.
13804         * tree.c (initializer_zerop): New function.
13805         * tree.h (initializer_zerop): Declare.
13806         * varasm.c (assemble_variable): If we can emit bss, put zero
13807         initializers in the bss section.
13808
13809 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
13810
13811         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
13812         like more than one symbol per .weak directive.
13813
13814 2002-03-01  Richard Henderson  <rth@redhat.com>
13815
13816         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
13817         adjust argument_pointer by pretend_args_size.
13818         (ia64_va_start): Adjust va_start address by -pretend_args_size.
13819
13820 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13821
13822         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
13823
13824 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
13825
13826         * toplev.c (rest_of_compilation): Delete dead jumptables before
13827         loop.
13828         * flow.c (delete_dead_jumptables): Make global.
13829         * rtl.h (delete_dead_jumptables): Declare.
13830
13831 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
13832
13833         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
13834         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
13835         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
13836
13837 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13838
13839         * config/h8300/h8300-protos.h: Fix formatting.
13840         * config/h8300/h8300.c: Likewise.
13841         * config/h8300/h8300.h: Likewise.
13842
13843 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13844
13845         * config/h8300/h8300.c (print_operand): Support 16-bit
13846         constant addresses.
13847         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
13848
13849 2002-02-28  Richard Henderson  <rth@redhat.com>
13850
13851         * expmed.c (store_bit_field): Prevent generation of CONCATs;
13852         pun complex values as integers; use gen_lowpart instead of
13853         gen_rtx_SUBREG.
13854         (extract_bit_field): Likewise.
13855
13856 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
13857             David Edelsohn  <edelsohn@gnu.org>
13858
13859         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
13860         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
13861         (SUPPORTS_WEAK): Likewise.
13862         * output.h (add_weak): Add tree param.
13863         * varasm.c (add_weak): Likewise.  Save decl.
13864         (struct weak_syms): Add decl field.
13865         (mark_weak_decls): New function.
13866         (init_varasm_once): ggc_add_root mark_weak_decls.
13867         (assemble_start_function): Use ASM_WEAKEN_DECL.
13868         (assemble_variable): Likewise.
13869         (assemble_alias): Likewise.
13870         (declare_weak): Pass decl to add_weak.
13871         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
13872         (remove_from_pending_weak_list): Declare and define for
13873         ASM_WEAKEN_DECL.
13874         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
13875         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
13876         * defaults.h (SUPPORTS_WEAK): Likewise.
13877         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
13878         .weak for code sym.  Do emit .size for descriptor sym.
13879         (ASM_DECLARE_FUNCTION_SIZE): Define.
13880         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
13881         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
13882         .lglobl unless TARGET_XCOFF.  Formatting fixes.
13883         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
13884         .weak for code sym.
13885         (HANDLE_PRAGMA_WEAK): Remove.
13886         (ASM_WEAKEN_LABEL): Remove.
13887         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
13888
13889 2002-03-01  Jason Merrill  <jason@redhat.com>
13890
13891         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
13892         (TARGET_EXPR_CLEANUP): New macro.
13893
13894 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
13895
13896         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
13897         to take ptr_extend into account as third type of extension.
13898         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
13899         fields used by SUBREG_PROMOTED_UNSIGNED_P.
13900         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
13901         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
13902         * calls.c (precompute_arguments): Use new macro.
13903         (expand_call): Ditto.
13904         * combine.c (nonzero_bits): Ditto.
13905         (record_promoted_value): Ditto.
13906         * expr.c (store_expr): Ditto.
13907         (expand_expr): Ditto.
13908         * function.c (assign_parms): Ditto.
13909
13910 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
13911
13912         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
13913         override -shared and -shared-libgcc.
13914
13915 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
13916
13917         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
13918         of "ultrasparc".
13919         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
13920         to be broken.
13921
13922 2002-02-28  Richard Henderson  <rth@redhat.com>
13923
13924         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
13925         4 cycle latency from MM producers.
13926         (ia64_internal_sched_reorder): Likewise with pipeline flush.
13927
13928 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
13929
13930         * mklibgcc.in: Don't use GNU make extension.
13931
13932 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
13933
13934         * c-parse.in (STATIC): New terminal.
13935         (scspec): New non-terminal.  Update productions accordingly.
13936         (program): Remove bogus ifc / end ifc.
13937         (array_declarator): Simplify production using STATIC.
13938
13939 2002-02-28  Jim Meyering  <meyering@lucent.com>
13940
13941         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
13942         \a still means TARGET_BELL.
13943
13944 2002-02-28  Richard Henderson  <rth@redhat.com>
13945
13946         * haifa-sched.c (sched_emit_insn): New.
13947         (schedule_block): Use last_scheduled_insn to track last insn.
13948         * sched-int.h (sched_emit_insn): Prototype.
13949         * config/ia64/ia64.c (last_issued): Remove.
13950         (ia64_variable_issue): Don't set it.
13951         (nop_cycles_until): Use sched_emit_insn.
13952
13953 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
13954
13955         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
13956         extended constants.
13957
13958 2002-02-28  Kazu Hirata  <kazu@hxi.com>
13959
13960         * config/h8300/h8300.c: Fix formatting.
13961         * config/h8300/h8300.h: Likewise.
13962
13963 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13964
13965         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
13966         which may overwrite the high byte of the frame pointer.
13967
13968 2002-02-28  Bo Thorsen  <bo@suse.de>
13969
13970         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
13971         (STARTFILE_SPEC): Add 64 bit files.
13972         (ENDFILE_SPEC): Likewise.
13973
13974 2002-02-28  Jason Merrill  <jason@redhat.com>
13975
13976         * c-decl.c (finish_function): Only warn about missing return
13977         statement with -Wreturn-type.
13978
13979 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
13980
13981         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
13982
13983         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
13984         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
13985
13986 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
13987
13988         * basic-block.h (BB_REACHABLE): Renumber.
13989         (BB_DIRTY, BB_NEW): New flags.
13990         (clear_bb_flags): Declare.
13991         (update_life_info_in_dirty_blocks): Declare.
13992         * cfg.c (clear_bb_flags): New function.
13993         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
13994         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
13995         reorder_insns, emit_insn_after): Mark block as dirty.
13996         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
13997         (update_life_info_in_dirty_blocks): New function.
13998         * recog.c (apply_change_group): Dirtify block.
13999
14000         * cse.c (cse_insn): Reorder emitting of jump insn to keep
14001         cfg consistent.
14002         * gcse.c (delete_null_pointer_checks): Likewise.
14003
14004         * toplev.c (dump_file_index): Move cse2 after bp,
14005         add DFI_null
14006         (dump_file_info): Similary.
14007         (rest_of_compilation): Avoid most of CFG rebuilds;
14008         do first if converision after null pointer checks, do cse2
14009         after branch prediction; avoid full liveness rebuild after
14010         initializing subregs.
14011         * invoke.texi (-d options): Document -du, renumber.
14012
14013         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
14014         (notice_new_block): Do not set BB_UPDATE_LIFE.
14015         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
14016          merge_blocks_move_successor_nojumps, merge_blocks,
14017          try_crossjump_to_edge): Likewise.
14018         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
14019         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
14020         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
14021         (merge_of_block): Do not use life_data_ok.
14022         (find_if_case_1): Do not use SET_UPDATE_LIFE.
14023         (if_convert): Use BB_DIRTY mechanizm to update life.
14024         * lcm.c (optimize_mode_switching): Update
14025         update_life_info_in_dirty_blocks
14026
14027 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
14028
14029         * Makefile.in (integrate.o): Update.
14030         * c-decl.c (copy_lang_decl): Rename.
14031         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
14032         * integrate.c: Include langhooks.h.
14033         (copy_decl_for_inlining): Update to use langhook.
14034         * langhooks-def.h (lhd_do_nothing_t,
14035         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
14036         (LANG_HOOKS_INITIALIZER): Update.
14037         * langhooks.c (lhd_do_nothing_t): New.
14038         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
14039         * tree.h (copy_lang_decl): Remove.
14040 objc:
14041         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
14042
14043 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
14044
14045         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
14046         POST_DEC, and POST_MODIFY.
14047
14048 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
14049
14050         * c-typeck.c (digest_init): Remove unused parameter; all
14051         callers changed.
14052
14053 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
14054
14055         * expmed.c (expand_shift): Correctly test for low part of a
14056         subreg.
14057
14058 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
14059
14060         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
14061         insn UIDs with insn addresses.
14062
14063 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
14064
14065         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
14066         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
14067         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
14068         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
14069         gcc.c, toplev.c: Delete code implementing -traditional mode.
14070
14071         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
14072         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
14073         Document removal of -traditional mode for compilation, and
14074         remove documentation only relevant to that mode.
14075
14076         * config/nextstep.h, config/ptx4.h, config/svr4.h,
14077         config/convex/convex.h, config/d30v/d30v.h,
14078         config/i386/dgux.h, config/i386/osf1elf.h,
14079         config/i386/osfelf.h, config/i386/osfrose.h,
14080         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
14081         config/m68k/hp310.h, config/m88k/dgux.h,
14082         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
14083         config/m88k/m88k.h, config/m88k/openbsd.h,
14084         config/mips/abi64.h, config/mips/osfrose.h,
14085         config/mips/svr4-5.h, config/mips/svr4-t.h,
14086         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
14087         config/stormy16/stormy16.h: Remove all references to
14088         -traditional from target specs.  Delete all mention of the
14089         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
14090         delete a couple of commented-out definitions of
14091         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
14092         to -traditional.
14093
14094         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
14095         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
14096
14097 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
14098
14099         * mklibgcc.in: Don't use \n in a line subject to
14100         interpretation by echo.
14101
14102 2002-02-27  Graham Stott  <grahams@redhat.com>
14103
14104         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
14105         Constify NAME.
14106
14107         * loop.c (prescan_loop): Handle PARALLEL.
14108
14109         * unroll.c (loop_iterations): Return 0 if the add_val for
14110         a BIV is REG.
14111
14112         * final.c (output_operand_lossage): Constify PFX_STR.
14113
14114         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
14115
14116 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14117
14118         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
14119         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
14120
14121 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
14122
14123         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
14124
14125 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
14126
14127         * cpplex.c (_cpp_lex_token): Handle directives in macro
14128         arguments.
14129         * cpplib.c (_cpp_handle_directive): Save and restore state
14130         if parsing macro args when entering a directive.
14131         * cppmacro.c (collect_args): No need to handle directives
14132         in macro arguments.
14133         (enter_macro_context, replace_args): Use the original macro
14134         definition in case it was redefined whilst collecting arguments.
14135 doc:
14136         * cpp.texi: Update.
14137
14138 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
14139
14140         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
14141         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
14142         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
14143         method on AIX.
14144         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
14145         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
14146         (load_toc_v4_PIC_2): Same.
14147
14148 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
14149
14150         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
14151
14152 2002-02-26  Richard Henderson  <rth@redhat.com>
14153
14154         * config/alpha/alpha.md (ashldi_se): Re-enable.
14155
14156 2002-02-26  Richard Henderson  <rth@redhat.com>
14157
14158         * config/alpha/alpha.c (alpha_encode_section_info): Examine
14159         MODULE_LOCAL_P; improve commentary.
14160
14161 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
14162
14163         * doc/cpp.texi: Clarify documentation of relationship between
14164         #line and #include.
14165
14166 2002-02-26  Kazu Hirata  <kazu@hxi.com>
14167
14168         * config/h8300/h8300-protos.h: Update the prototype for
14169         compute_logical_op_length.  Add the prototype for
14170         compute_logical_op_cc.
14171         * config/h8300/h8300.c (compute_logical_op_length): Figure out
14172         code from operands.
14173         (compute_logical_op_cc): New.
14174         * config/h8300/h8300.md: Combine all the logical op patterns
14175         in HImode and SImode.  Use compute_logical_op_cc.
14176
14177 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
14178
14179         * config/i386/i386.c (print_operand): Don't append ATT-style
14180         length suffixs to x87 opcodes when in Intel mode.
14181
14182 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
14183
14184         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
14185         (init_emit_once): Update calls.
14186         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
14187         (init_syntax_once): Prototype.
14188
14189 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14190
14191         * pa-linux.h (LIB_SPEC): Update definition.
14192         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
14193
14194 2002-02-26  Richard Henderson  <rth@redhat.com>
14195
14196         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
14197         if we emitted a stop bit.
14198
14199 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
14200
14201         * configure.in (libgcc_visibility): Substitute.
14202         * configure: Rebuilt.
14203         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
14204         defined symbols .hidden.
14205
14206 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
14207
14208         * attribs.c (c_common_attribute_table): Add visibility.
14209         (handle_visibility_attribute): New function.
14210         * varasm.c (assemble_visibility): New function.
14211         * output.h (assemble_visibility): Add prototype.
14212         * tree.h (MODULE_LOCAL_P): Define.
14213         * crtstuff.c (__dso_handle): Use visibility attribute.
14214         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
14215         for MODULE_LOCAL_P symbols too.
14216         * config/ia64/ia64.c (ia64_encode_section_info): Handle
14217         MODULE_LOCAL_P symbols the same way as local symbols.
14218         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
14219         into .sdata/.sbss by the user.
14220         * doc/extend.texi (Function Attributes): Document visibility
14221         attribute.
14222
14223 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
14224
14225         PR debug/5770
14226         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
14227         STRING_CST initializer spanning the whole variable without
14228         embedded zeros.
14229         If expand_expr returned MEM, don't use it.
14230
14231 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
14232
14233         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
14234         generate a die for the lexical block.
14235
14236 2002-02-26  Kazu Hirata  <kazu@hxi.com>
14237
14238         * config/h8300/h8300-protos.h: Add a prototype for
14239         compute_logical_op_length.
14240         * config/h8300/h8300.c (compute_logical_op_length): New.
14241         * config/h8300/h8300.md (anonymous logical patterns): Use
14242         compute_logical_op_length for length.
14243
14244 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
14245
14246         * dwarf2out.c (modified_type_die): Do not call type_main_variant
14247         for vectors.
14248         (gen_type_die): Same.
14249
14250         * attribs.c (handle_vector_size_attribute): Set debug information.
14251
14252 2002-02-26  Daniel Egger  <degger@fhm.edu>
14253
14254         * config/rs6000/rs6000.md: Swap define_insn attributes to
14255         fix incorrect generation of merge high instructions instead
14256         of merge low.
14257
14258 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
14259
14260         * c-typeck.c (really_start_incremental_init): Use
14261         bitsize_zero_node for vectors.
14262
14263 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
14264
14265         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
14266         ("*set_vrsave_internal"): Same.
14267
14268 2002-02-25  Richard Henderson  <rth@redhat.com>
14269
14270         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
14271         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
14272
14273 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
14274
14275         PR target/5755
14276         * config/i386/i386.c (ix86_return_pops_args): Only pop
14277         fake structure return argument if it was passed on the stack.
14278
14279 2002-02-25  Jason Merrill  <jason@redhat.com>
14280
14281         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
14282         RESULT_DECL.
14283
14284 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
14285
14286         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
14287         link with shared_name only.
14288         * doc/invoke.texi (Link Options): Document new behavior.
14289
14290 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
14291
14292         * c-typeck.c (push_init_level): Handle vectors.
14293
14294 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
14295
14296         * config/sparc/sparc.c (const64_high_operand): Zero-extend
14297         operands of SPARC_SETHI_P.
14298         (input_operand): Likewise.
14299         (sparc_emit_set_const32): Likewise.
14300         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
14301         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
14302         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
14303         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
14304         (movdi_insn_sp64_vis): Likewise.
14305         (movdi split, movdf split): Use SETHI32.
14306         * doc/md.texi: Document SPARC constraints L, M and N.
14307
14308 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
14309
14310         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
14311         ("*set_vrsave_internal"): use mfspr for Darwin.
14312
14313         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
14314         gen_get_vrsave_internal.
14315
14316 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14317
14318         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
14319
14320 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14321
14322         * cpplex.c (cpp_interpret_charconst): Get signedness or
14323         otherwise of wide character constants correct.
14324         * cppexp.c (lex): Get signedness of wide charconsts correct.
14325
14326 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14327
14328         * optabs.c (widen_operand): Only call convert_modes for
14329         promoted SUBREG if signedness matches.
14330         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
14331
14332 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14333
14334         * cpplib.c (glue_header_name): Use local buffer to build up
14335         header name.
14336
14337 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14338
14339         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
14340
14341 2002-02-23  Kazu Hirata  <kazu@hxi.com>
14342
14343         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
14344         H8/300[HS] separately.
14345         * config/h8300/h8300.md: Remove the early clobber constraint
14346         from bit field patterns.
14347
14348 2002-02-23  Kazu Hirata  <kazu@hxi.com>
14349
14350         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
14351         register_operand.
14352         (mulhisi3): Likewise.
14353         (umulqisi3): Likewise.
14354         (umulhisi3): Likewise.
14355
14356 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14357
14358         * cppinit.c (output_deps): Correct test for stdout output.
14359         (init_dependency_output): Cure warning.
14360
14361 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14362
14363         * expr.c (store_expr): When converting expression to promoted
14364         equivalent type, allow using SUBREG_REG of TARGET as the target
14365         of the expansion of EXP.
14366         * loop.c (basic_induction_var, case SUBREG): Always look inside.
14367         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
14368         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
14369         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
14370         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
14371
14372 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
14373
14374         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
14375         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
14376         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
14377
14378 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
14379
14380         PR optimization/5747
14381         * loop.c (scan_loop): Update reg info if move_movables created new
14382         pseudos.
14383
14384 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
14385
14386         * gcc.c (init_gcc_spec): Revert last change.
14387
14388 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
14389
14390         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
14391         gpc_reg_operand constraint.
14392
14393 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
14394
14395         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
14396         Simplify comparison of `low'.
14397         (add_operand): Fix formatting.
14398         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
14399         (mask_operand): Disallow mask to wrap in 64-bit mode.
14400         (rs6000_stack_info): Remove redundant test setting push_p.
14401         (output_toc): Fix formatting.
14402         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
14403         cc_reg_not_cr0_operand constraint.
14404         (booldi3, boolcdi3 splitters): Same.
14405
14406 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
14407
14408         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
14409
14410 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
14411
14412         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
14413         gcc invoked with -shared-libgcc.
14414
14415 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
14416
14417         PR c++/5748
14418         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
14419         decl if any of elements was TREE_USED.
14420
14421 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
14422
14423         * config/sparc/sol2.h: Don't include sys/mman.h.
14424         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
14425         (arith_4096_operand): Don't throw high bits away.
14426         (const64_operand): Take sign extension of CONST_INTs into account.
14427         (const64_high_operand, sparc_emit_set_const32): Likewise.
14428         (GEN_HIGHINT64): Likewise.
14429         (sparc_emit_set_const64_quick1): Likewise.
14430         (const64_is_2insns): Likewise.
14431         (print_operand): Use trunc_int_for_mode for sign extension.
14432         * config/sparc/sparc.h (SMALL_INT32): Likewise.
14433         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
14434         chars.  Assume CONST_INT is already properly sign-extended.
14435         (movdi split): Sign-extend each SImode part.
14436         (andsi3 split): Don't mask high bits off, so that result
14437         remains properly sign-extend.
14438         (iorsi3 split): Likewise.
14439         (xorsi3 split): Likewise.
14440
14441 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
14442
14443         * fold-const.c (fold): Fix typo in comments.
14444
14445 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
14446
14447         * Makefile.in (langhooks.o): Update dependencies.
14448
14449 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
14450
14451         * langhooks.c: Include flags.h.
14452
14453 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
14454
14455         * testsuite/gcc.dg/attr-alwaysinline.c: New.
14456
14457         * c-common.c (c_common_post_options): Set inline trees by
14458         default.
14459
14460         * doc/extend.texi (Function Attributes): Document always_inline
14461         attribute.
14462         Update documentation about inlining when not optimizing.
14463
14464         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
14465
14466         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
14467         unless DECL_ALWAYS_INLINE.
14468
14469         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
14470         unless DECL_ALWAYS_INLINE.
14471         (c_disregard_inline_limits): Disregard if always_inline set.
14472
14473         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
14474         Disregard if always_inline set.
14475         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
14476         unless DECL_ALWAYS_INLINE.
14477
14478         * attribs.c (handle_always_inline_attribute): New.
14479         (c_common_attribute_table): Add always_inline.
14480
14481         * config/rs6000/altivec.h: Add prototypes for builtins
14482         requiring the always_inline attribute.
14483
14484 2002-02-21  Eric Christopher  <echristo@redhat.com>
14485
14486         * expmed.c (store_bit_field): Try to simplify the subreg
14487         before generating a new one when when the mode size of
14488         value is less than maxmode.
14489
14490 2002-02-21  Richard Henderson  <rth@redhat.com>
14491
14492         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
14493         than gen_rtx_PLUS to form the sum.
14494         * explow.c (force_reg): Rearrange to not allocate new pseudo
14495         when force_operand returns a register.
14496         * expr.c (expand_assignment): Allow offset_rtx expansion to
14497         return a sum.  Do not force addresses into registers.
14498         (expand_expr): Likewise.
14499         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
14500         to canonicalize arithmetic that didn't simpify.
14501         (simplify_plus_minus): New argument force; update
14502         all callers.  Don't split CONST unless we can do something with it,
14503         and wouldn't lose the constness of the operands.
14504
14505         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
14506         that we generated earlier.
14507
14508 2002-02-21  Tom Tromey  <tromey@redhat.com>
14509
14510         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14511         (output_line_info): Use constant `1', with a long explanatory
14512         comment.
14513         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
14514
14515 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
14516
14517         * jump.c (redirect_jump): If old label has no UID, don't try to
14518         delete it.
14519
14520 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
14521
14522         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
14523         If input is constant, do shifts at compile time.
14524
14525 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
14526
14527         * doc/extend.texi: Fix some more overfull hboxes.
14528
14529 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14530
14531         PR optimization/4994
14532         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
14533         register moves.
14534
14535 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14536
14537         PR c++/4574
14538         * expr.h (expand_and): Add mode argument.
14539         * expmed.c (expand_and): Add mode argument.
14540         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
14541         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
14542         * except.c (expand_builtin_extract_return_addr): Likewise.
14543         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
14544         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
14545         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
14546         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
14547         * config/c4x/c4x.md: Use GEN_INT (x) instead of
14548         gen_rtx (CONST_INT, VOIDmode, x).
14549
14550 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14551
14552         PR c/4697:
14553         * stmt.c (warn_if_unused_value): Move side effects test once more.
14554
14555 2002-02-20  Torbjorn Granlund  <tege@swox.com>
14556
14557         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
14558         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
14559
14560 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
14561
14562         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
14563         SUBREG or ZERO_EXTEND.
14564
14565 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
14566
14567         * sh.h (current_function_anonymous_args): Remove.
14568         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
14569         of current_function_varargs and current_function_stdarg is set.
14570         * sh.c (sh_expand_prologue): Check current_function_varargs /
14571         current_function_stdarg / TARGET_SH5 instead of
14572         current_function_anonymous_args.
14573
14574         * sh64.h (TARGET_VERSION): Define.
14575
14576 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
14577
14578         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
14579         VRSAVE_REGNO on TARGET_ALTIVEC.
14580
14581 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
14582
14583         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
14584         bits of SImode const_int.
14585         (includes_rshift_p): Likewise.
14586         (print_operand): Call mask_operand and mask64_operand with correct
14587         mode.
14588         (rs6000_output_function_epilogue): Pad traceback table to word.
14589         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
14590         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
14591         mask64_operand with correct mode.
14592         (FUNCTION_ARG_REGNO_P): Correct parentheses.
14593
14594 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
14595
14596         PR debug/4461
14597         * varasm.c (get_pool_constant_mark): New.
14598         * rtl.h (get_pool_constant_mark): Add prototype.
14599         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
14600         be represented if it has not been output.
14601
14602 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
14603
14604         * combine.c (do_SUBST): Sanity check substitutions of
14605         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
14606         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
14607         CONST_INT into its operand.
14608         (known_cond): Likewise, for ZERO_EXTEND.
14609         * simplify-rtx.c (simplify_unary_operation): Fix condition to
14610         allow for simplification of wide modes.  Reject CONST_INTs in
14611         ZERO_EXTEND when their actual mode is not given.
14612
14613 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
14614
14615         * c-decl.c (pushdecl): If no global declaration is found for an
14616         extern declaration in block scope, try a limbo one.
14617
14618 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
14619
14620         PR c++/4401
14621         * c-common.c (pointer_int_sum): Moved from...
14622         * c-typeck.c (pointer_int_sum): ...here.
14623         * c-common.h (pointer_int_sum): Add prototype.
14624
14625 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
14626
14627         PR c++/5713
14628         * c-decl.c (duplicate_decls): Return 0 if issued error about
14629         redeclaration.
14630
14631 2002-02-20  Roger Sayle  <roger@eyesopen.com>
14632             Jakub Jelinek  <jakub@redhat.com>
14633
14634         PR c/4389
14635         * tree.c (host_integerp): Ensure that the constant integer is
14636         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
14637         when pos is zero or non-zero respectively.  Clarify comment.
14638         * c-format.c (check_format_info_recurse): Fix host_integerp
14639         usage; the pos argument should be zero when assigning to a
14640         signed HOST_WIDE_INT.
14641
14642 2002-02-20  Richard Henderson  <rth@redhat.com>
14643
14644         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
14645         of the operand, rather than assuming TImode.
14646         (ix86_expand_binop_builtin): Cope with commutative patterns
14647         using nonimmediate_operand for both operands.
14648         (ix86_expand_timode_binop_builtin): Likewise.
14649         (ix86_expand_store_builtin): Validate operand 1.
14650         (ix86_expand_unop1_builtin): Likewise.
14651
14652 2002-02-20  Philip Blundell  <philb@gnu.org>
14653
14654         PR 5705
14655         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
14656
14657 2002-02-20  Richard Henderson  <rth@redhat.com>
14658
14659         PR c/5615
14660         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
14661
14662 2002-02-20  Tom Tromey  <tromey@redhat.com>
14663
14664         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14665         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14666         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14667         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14668         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
14669         unconditionally.
14670
14671 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
14672
14673         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
14674           for (const_int 0) in X not just INTVAL.
14675
14676 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
14677
14678         * doc/extend.texi: Avoid or reduce overfull hboxes.
14679
14680 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
14681
14682         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
14683         operations if the field does not start at a mode boundary.
14684
14685 2001-02-20      Joel Sherrill <joel@OARcorp.com>
14686
14687         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
14688         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
14689         Also done for -Acpu and -Amachine.
14690
14691 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
14692
14693         * cppinit.c (init_dependency_output): Take deps output file
14694         from -o if none given with -MF.  Suppress normal output.
14695         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
14696         * doc/cpp.texi, doc/invoke.texi: Update.
14697
14698 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
14699
14700         * toplev.c (output_quoted_string): Write unprintable
14701         characters with octal escapes.
14702
14703 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
14704
14705         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
14706         really_call_used[VRSAVE_REGNO] if not Altivec.
14707
14708 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
14709
14710         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
14711         MODE_MASK.
14712         (constant_pool_expr_1): Fix formatting.
14713         (rs6000_legitimize_reload_address): Likewise.
14714
14715 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14716
14717         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
14718         now that we have one.
14719
14720 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
14721
14722         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
14723         end of first block of bitfields (which was only seven bits);
14724         rename dummy to unused_1; remove comment which is no longer true.
14725
14726 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
14727
14728         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
14729
14730 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
14731
14732         PR 5399
14733         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
14734         if generating PIC.
14735
14736         PR 5054
14737         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
14738         arm_is_longcall_p rather than inspecting call-type cookie
14739         directly.
14740         (call_value_insn) [TARGET_THUMB]: Likewise.
14741
14742 2002-02-19  Graham Stott  <grahams@redhat.com>
14743
14744         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
14745
14746 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
14747
14748         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
14749         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
14750         (FP_SAVE_INLINE): Delete.
14751
14752         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
14753         * config/rs6000/eabi.asm: Remove ABI save restore routines.
14754         * config/rs6000/t-ppccomm: Build crtsavres.o.
14755         * config/rs6000/crtsavres.asm: New file.
14756
14757 2002-02-19  Philip Blundell  <philb@gnu.org>
14758
14759         * config/arm/arm.c (use_return_insn): Don't reject interrupt
14760         functions.
14761         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
14762         (output_return_instruction): Allow interrupt functions to return with
14763         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
14764         (arm_expand_prologue): Subtract 4 before stacking LR in an
14765         interrupt function.
14766
14767 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
14768
14769         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
14770         decl, not just FUNCTION_DECL.
14771         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
14772         (arm_assemble_integer): Likewise.
14773         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
14774         marked local.
14775
14776 2002-02-19  matthew green  <mrg@eterna.com.au>
14777
14778         * config.gcc (sparc-*-netbsdelf*): Enable target.
14779         (sparc64-*-netbsd*): New target.
14780         * config/sparc/netbsd-elf.h: New file.
14781         * config/sparc/t-netbsd64: New file.
14782
14783 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
14784
14785         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
14786
14787 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
14788
14789         * doc/invoke.texi: explicitly list the style guidelines that
14790         -Weffc++ checks for.
14791
14792 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
14793
14794         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
14795
14796 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
14797
14798         PR other/5718
14799         * gcc.c (cpp_unique_options): Treat -o as indicating object file
14800         only if not -E.  If -E, pass -o through to the preprocessor.
14801
14802 2002-02-19  Kazu Hirata  <kazu@hxi.com>
14803
14804         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
14805         register number with an appropriate macro.
14806
14807 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14808
14809         * doc/rtl.texi (Constants): Close @code tag.
14810
14811 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
14812
14813         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
14814         ("mmx_uavgv4hi3"): Same.
14815         ("pmulhrwv4hi3"): Same.
14816
14817         * tree-inline.c (walk_tree): Handle vectors.
14818
14819         * c-common.c (constant_expression_warning): Handle vectors.
14820         (overflow_warning): Same.
14821
14822         * sched-deps.c (sched_analyze_2): Handle vectors.
14823
14824         * rtlanal.c (rtx_unstable_p): Handle vectors.
14825         (rtx_varies_p): Same.
14826         (count_occurrences): Same.
14827         (regs_set_between_p): Same.
14828         (modified_between_p): Same.
14829         (modified_in_p): Same.
14830         (volatile_insn_p): Same.
14831         (volatile_refs_p): Same.
14832         (side_effects_p): Same.
14833         (may_trap_p): Same.
14834         (inequality_comparisons_p): Same.
14835         (replace_regs): Same.
14836         (computed_jump_p_1): Same.
14837
14838         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
14839         argument.
14840         (inner_mode_array): New.
14841         (copy_rtx): Handle vectors.
14842         (copy_most_rtx): Same.
14843         (rtx_equal_p): Same.
14844         (get_mode_alignment): Adjust for vectors.
14845
14846         * resource.c (mark_referenced_resources): Handle vectors.
14847         (mark_set_resources): Same.
14848
14849         * reload1.c (eliminate_regs): Handle vectors.
14850         (elimination_effects): Same.
14851         (scan_paradoxical_subregs): Same.
14852
14853         * reload.c (subst_reg_equivs): Handle vectors.
14854
14855         * regrename.c (scan_rtx): Handle vectors.
14856
14857         * regclass.c (reg_scan_mark_refs): Handle vectors.
14858
14859         * recog.c (find_single_use_1): Handle vectors.
14860
14861         * local-alloc.c (equiv_init_varies_p): Handle vectors.
14862         (contains_replace_regs): Same.
14863         (memref_referenced_p): Same.
14864
14865         * integrate.c (copy_rtx_and_substitute): Handle vectors.
14866         (subst_constants): Same.
14867
14868         * genattrtab.c (attr_copy_rtx): Handle vectors.
14869         (encode_units_mask): Same.
14870         (clear_struct_flag): Same.
14871         (count_sub_rtxs): Same.
14872
14873         * gcse.c (want_to_gcse_p): Handle vectors.
14874         (oprs_unchanged_p): Same.
14875         (hash_expr_1): Same.
14876         (oprs_not_set_p): Same.
14877         (expr_killed_p): Same.
14878         (compute_transp): Same.
14879         (store_ops_ok): Same.
14880
14881         * function.c (purge_addressof_1): Do not allow paradoxical subregs
14882         of vectors.
14883         (fixup_var_refs_1): Same.
14884         (instantiate_virtual_regs_1): Same.
14885
14886         * fold-const.c (operand_equal_p): Handle vectors.
14887         (fold): Same.
14888         (rtl_expr_nonnegative_p): Same.
14889
14890         * flow.c (mark_used_regs): Handle vectors.
14891
14892         * df.c (df_uses_record): Handle vectors.
14893
14894         * cselib.c (cselib_subst_to_values): Handle vectors.
14895         (cselib_mem_conflict_p): Same.
14896         (hash_rtx): Same.
14897
14898         * cse.c (canon_reg): Handle vectors.
14899         (fold_rt): Same.
14900         (cse_process_notes): Same.
14901         (count_reg_usage): Same.
14902         (canon_hash): Same.
14903
14904         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
14905
14906         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
14907
14908         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
14909         (gen_rtx): Handle CONST_VECTOR.
14910         (gen_const_vector_0): New.
14911         (copy_rtx_if_shared): CONST_VECTORs can be shared.
14912         (reset_used_flags): Same.
14913         (copy_insn_1): Same.
14914         (initializer_constant_valid_p): Handle VECTOR_CST.
14915
14916         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
14917
14918         * doc/rtl.texi (Constants): Document const_vector.
14919         (CONST0_RTX): Update for vectors.
14920         (RTL sharing): Same.
14921
14922         * print-tree.c (print_node): Add case for VECTOR_CST.
14923
14924         * tree.h (TREE_VECTOR_CST_ELTS): New.
14925         (struct tree_vector): New.
14926         (union tree_node): Add vector node.
14927         (build_vector): Add prototype.
14928
14929         * tree.def (VECTOR_CST): New.
14930
14931         * tree.c (build_vector): New.
14932
14933         * expmed.c (make_tree): Handle CONST_VECTOR.
14934
14935         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
14936         (CONST_VECTOR_ELT): New.
14937         (CONST_VECTOR_NUNITS): New.
14938
14939         * machmode.h (GET_MODE_INNER): New.
14940         (DEF_MACHMODE): Accept 8th arg.
14941
14942         * machmode.def: Add 8th argument for vector inner mode.
14943         Add inner vector modes for vectors.
14944
14945         * rtl.def (VEC_CONST): Remove.
14946         (CONST_VECTOR): New.
14947
14948         * expr.c (clear_storage): Allow vectors.
14949         (is_zeros_p): Handle VECTOR_CST.
14950
14951         * varasm.c (output_constant_pool): Handle vectors.
14952         (rtx_const): Add veclo and vechi fields.
14953         (kind): Add RTX_VECTOR.
14954         (decode_rtx_const): Add case for vector.
14955
14956         * config/rs6000/rs6000-protos.h: Add zero_constant.
14957
14958         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
14959         constants.  Force easy vector constants into memory.
14960         (easy_vector_constant): New.
14961         (emit_easy_vector_constant): New.
14962         (rs6000_legitimize_reload_address): Do not generate bad reloads on
14963         darwin.
14964
14965         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
14966         instruction does.
14967         ("altivec_lvxl"): Same.
14968         (altivec_lvebx): Same.
14969         (altivec_lvehx): Same.
14970         (altivec_lvewx): Same.
14971         ("*movv4si_const0"): New.
14972         ("*movv4sf_const0"): New.
14973         ("*movv8hi_const0"): New.
14974         ("*movv16qi_const0"): New.
14975
14976 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14977
14978         * config/h8300/h8300.c (notice_update_cc): Use
14979         cc_status.value2.
14980
14981 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14982
14983         * config/h8300/h8300.md (divmod patterns): Change the
14984         constraints for operands[1] to register_operand.
14985
14986 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14987
14988         * config/h8300/h8300-protos.h: Remove the prototype for
14989         p_operand.
14990         * config/h8300/h8300.c (p_operand): Remove.
14991         * config/h8300/h8300.md: Replace p_operand with
14992         const_int_operand.
14993
14994 2002-02-18 Philip Blundell <pb@nexus.co.uk>
14995
14996         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
14997         comment.
14998         (output_return_instruction): Allow use of LDR to unstack
14999         return addresss even for interrupt handlers or when
15000         interworking.  If compiling for ARMv5, use interworking-safe
15001         return instructions by default.  Remove duplicated code and
15002         lengthy "strcat" sequences.
15003
15004 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15005
15006         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
15007         (LINK_EH_SPEC): Define.
15008         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
15009
15010 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
15011
15012         * config/s390/s390.c (s390_emit_prologue): Do not set the
15013         frame_related flag for call-clobbered registers.
15014
15015 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
15016
15017         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
15018         (construct_container): Fix handling of SSE operands.
15019         (ix86_expand_builtin): Fix handling of 64bit pointers.
15020         (mmx_maskmovq_rex): New pattern.
15021
15022 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
15023
15024         * regrename.c (kill_set_value): Handle subregs properly.
15025
15026 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
15027
15028         * objc/objc-act.c (handle_impent): Remove leading '*'
15029         from objc_class_name.
15030
15031 2002-02-17  Richard Henderson  <rth@redhat.com>
15032
15033         * config/alpha/alpha.c (some_small_symbolic_operand,
15034         some_small_symbolic_operand_1, split_small_symbolic_operand,
15035         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
15036         Handle small SYMBOL_REFs anywhere, not just inside memories.
15037         * config/alpha/alpha-protos.h: Update.
15038         * config/alpha/alpha.h (PREDICATE_CODES): Update.
15039         * config/alpha/alpha.md (small symbolic operand splitter): Update.
15040
15041 2002-02-17  Roland McGrath  <roland@frob.com>
15042
15043         * config.gcc (powerpc-*-gnu-gnualtivec*,
15044         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
15045         * config/rs6000/gnu.h: New file.
15046         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
15047         Grok "gnu" in rs6000_abi_name.
15048         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
15049         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
15050         Grok -mcall-gnu analogous to -mcall-linux et al.
15051         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
15052         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
15053         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
15054
15055 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
15056
15057         PR c/3444:
15058         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
15059         shortening.
15060
15061 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15062
15063         * config/cris/cris.h: Undefine STARTFILE_SPEC and
15064         ENDFILE_SPEC before (re)defining them.
15065
15066 2002-02-17  Kazu Hirata  <kazu@hxi.com>
15067
15068         * config/h8300/h8300.c: Fix formatting.
15069         * config/h8300/h8300.h: Likewise.
15070
15071 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15072
15073         * doc/tm.texi: Explain why empty strings should not be
15074         marked for translation.
15075
15076 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15077
15078         * final.c (output_operand_lossage): Changed to accept
15079         printf style arguments. Change calls where necessary.
15080         * output.h (output_operand_lossage): Change declaration
15081         accordingly. Update copyright.
15082         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
15083         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
15084         Update copyright date where necessary.
15085
15086         * config/i386/i386.c (print_operand): Likewise. Remove use of
15087         sprintf.
15088
15089         * config/cris/cris.c (cris_operand_lossage): Likewise.
15090         Rename parameter so that exgettext recognizes it as
15091         translatable message.
15092         (LOSE_AND_RETURN): Rename parameter to msgid.
15093
15094 2002-02-17  Kazu Hirata  <kazu@hxi.com>
15095
15096         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
15097         hard coded register number with an appropriate macro.
15098         (HARD_REGNO_MODE_OK): Likewise.
15099         (ARG_POINTER_REGNUM): Likewise.
15100         (STATIC_CHAIN_REGNUM): Likewise.
15101         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
15102         * config/h8300/h8300.md (define_constants): Define more
15103         register numbers.
15104
15105 2002-02-17  Philipp Thomas  <pthomas@suse.de>
15106
15107         * config/i386/i386.h: Don't mark empty strings for translation.
15108
15109 2002-02-16  H.J. Lu <hjl@gnu.org>
15110
15111         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
15112
15113 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
15114
15115         * cppinit.c (merge_include_chains): Check for brack being
15116         NULL before attempting to merge it with qtail.
15117
15118 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
15119
15120         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
15121         DBX_DEBUG.
15122
15123 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15124
15125         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
15126
15127 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15128
15129         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
15130         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
15131         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
15132
15133 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15134
15135         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
15136         now only if !TARGET_FIX.
15137         (*movsi_nt_vms_fix): New pattern.
15138
15139 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
15140
15141         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
15142         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
15143         (alpha_sa_mask, alpha_sa_size): Reflect above change.
15144         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
15145         (alpha_start_function, alpha_expand_epilogue): Likewise.
15146         (unicosmk_gen_dsib): Likewise.
15147
15148 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15149
15150         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
15151
15152 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
15153
15154         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
15155         check_and_change_labels, s390_final_chunkify): Delete.
15156         (s390_split_branches, s390_chunkify_pool): New functions.
15157         (s390_function_prologue): Call them.
15158
15159         * config/s390/s390.h (S390_REL_MAX): Delete.
15160         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
15161
15162         * config/s390/s390.md (cjump, icjump, jump): Fix length
15163         attribute calculation.
15164
15165
15166 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
15167
15168         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
15169         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
15170
15171 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15172
15173         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
15174         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
15175         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
15176
15177 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
15178
15179         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
15180
15181 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
15182
15183         * reload.c (find_dummy_reload): Check that an output register
15184         is valid for its mode.
15185
15186 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
15187
15188         * combine.c (known_cond): After replacing the REG of a SUBREG, try
15189         to simplify it.
15190
15191         * function.c (assign_parms): Demote promoted argument passed by
15192         transparent reference.
15193
15194 2001-02-14      Joel Sherrill <joel@OARcorp.com>
15195
15196         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
15197         -Acpu() and -Amachine() to eliminate warnings.
15198
15199 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
15200
15201         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
15202
15203 2002-02-14  Kazu Hirata  <kazu@hxi.com>
15204
15205         * config/h8300/h8300-protos.h: Update the prototype for
15206         const_costs.
15207         * config/h8300/h8300.c (const_costs): Treat SET as a little
15208         more expensive operation.
15209         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
15210         reference to const_costs.
15211
15212 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
15213
15214         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
15215
15216 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
15217
15218         PR c/5503:
15219         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
15220         use arguments from newtype.
15221
15222 2002-02-13  Eric Christopher  <echristo@redhat.com>
15223
15224         * config/mips/mips.c (override_options): Add check for march/mipsX
15225         on the same command line. Fix error message in cpu processing.
15226         Remove architecture and ISA checks.
15227
15228 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
15229
15230         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
15231
15232         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
15233
15234 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
15235
15236         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
15237         alternatives.
15238         ("*movv8hi_internal1"): Same.
15239         ("*movv16qi_internal1"): Same.
15240         ("*movv4sf_internal1"): Same.
15241
15242         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
15243         not push_reload for altivec modes.
15244
15245 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
15246
15247         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
15248         all RTEMS targets including removal of #includes from config/*/rtems*.h
15249         file and adding them to tm_file setting. Added xm_defines=POSIX to
15250         many targets.
15251         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
15252         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
15253         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
15254         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
15255         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
15256         config/m68k/rtemself.h: Ditto.
15257         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
15258         config/mips/rtems64.h: Ditto.
15259         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
15260         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
15261         Ditto.
15262         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
15263         config/sparc/rtemself.h: Ditto.
15264         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
15265         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
15266         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
15267         more like arm-elf.
15268         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
15269         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
15270         target made more similar to i386-elf.
15271         * config/i386/t-rtems-i386: Added soft float support and multilibs.
15272         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
15273         be similar to config/m68k/t-m68kelf.
15274         * gthr-rtems.h: Encapsulate with extern "C" for C++.
15275
15276 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
15277
15278         * regmove.c (kill_value): Handle subregs.
15279
15280 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
15281
15282         * i386.md (mul patterns): Allow memory operand to be first;
15283         add expanders where needed; fix constraints.
15284         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
15285         Allow memory operand to be the first.
15286
15287         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
15288         operands.
15289
15290 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
15291
15292         PR c/5681:
15293         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
15294         GET_MODE (x).
15295
15296 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
15297
15298         PR optimization/5547:
15299         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
15300         all valid IA-32 address modes involving non-scaled %ebx and
15301         GOT/GOTOFF as displacement.
15302
15303 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
15304
15305         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
15306         after emitting ltorg insns.
15307
15308         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
15309         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
15310         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
15311         *abssf2): Fix "op_type" attribute.
15312
15313 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
15314
15315         * mkconfig.sh: Avoid using a subshell redirect.
15316         ($output.T): Change to $(output)T.
15317         (ENABLE_NLS): Remove unneeded undef.
15318
15319         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
15320         * config/alpha/x-vms (libsubdir): Define.
15321
15322         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
15323         register frame procedures. Optimize retrieving context.
15324
15325         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
15326         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
15327         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
15328
15329 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15330
15331         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
15332         Make same change as for find_base_value.
15333
15334 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15335
15336         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
15337         of QImode and SImode.
15338
15339 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15340
15341         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
15342         length computation of movsi.
15343         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
15344
15345 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15346
15347         * config/h8300/h8300.md (subqi3): Tighten the predicate for
15348         operands[2] to register_operand.
15349
15350 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
15351
15352         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
15353
15354 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
15355
15356         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
15357         for altivec_lvx* and altivec_stvx*.
15358         ("*movv4si_internal"): Add constraint for loading from GPRs.
15359         ("*movv8hi_internal1"): Same.
15360         ("*movv16qi_internal1"): Same.
15361         ("*movv4sf_internal1"): Same.
15362
15363         * config/rs6000/rs6000.c (altivec_register_operand): New.
15364
15365         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
15366         altivec_register_operand.
15367
15368 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
15369
15370         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
15371         handle SYMBOL_REF.
15372
15373 2002-02-13  Stan Shebs  <shebs@apple.com>
15374
15375         * c-typeck.c (digest_init): Handle vectors.
15376         (really_start_incremental_init): Same.
15377         (pop_init_level): Same.
15378         (process_init_element): Same.
15379
15380         * varasm.c (output_constant): Same.
15381
15382         * expr.c (clear_storage): Same.
15383         (store_constructor): Same.
15384
15385 2002-02-12  Eric Christopher  <echristo@redhat.com>
15386
15387         * explow.c (hard_function_value): Add comment explaining
15388         signed/unsigned comparison.
15389
15390 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
15391
15392         * jump.c (never_reached_warning): Add finish argument.
15393         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
15394         real insn after end.
15395         * rtl.h (never_reached_warning): Adjust prototype.
15396         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
15397         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
15398         never_reached_warning.
15399
15400 2002-02-12  Graham Stott  <grahams@redhat.com>
15401
15402         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
15403
15404 2002-02-12  Kazu Hirata  <kazu@hxi.com>
15405
15406         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
15407         logical shifts on H8/300.
15408         (shift_alg_si): Improve several shifts on H8/300.
15409         (get_shift_alg): Likewise.
15410
15411 2002-02-12  Graham Stott  <grahams@redhat.com>
15412
15413         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
15414
15415 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15416
15417         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
15418         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
15419
15420 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
15421
15422         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
15423         non-CONST_INT through default_assemble_integer.
15424         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
15425         <case 8>: Abort for CONST_DOUBLE.
15426
15427 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15428
15429         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
15430         is specified.
15431         * config/pa/pa-linux.h (LIB_SPEC): Delete.
15432         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
15433
15434 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
15435
15436         * config/stormy16/stormy16.md (zero_extendqihi2): New.
15437
15438 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
15439
15440         * regrename.c (regrename_optimize): Don't accept a
15441         part-clobbered register if the replaced register is not part
15442         clobbered.
15443
15444         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
15445         take padding into account when computing the argument value.
15446
15447         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
15448
15449         * combine.c (try_combine): Apply substitutions in
15450         CALL_INSN_FUNCTION_USAGE too.
15451
15452 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
15453
15454         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
15455         __builtin_altivec_abs*.
15456         (bdesc_abs): New.
15457
15458         * config/rs6000/rs6000.h (rs6000_builtins): Add
15459         ALTIVEC_BUILTIN_ABS*.
15460
15461         * config/rs6000/altivec.h: Use const char for builtins expecting
15462         literals.
15463         (vec_abs): New versions for C and C++.
15464         (vec_abss): Same.
15465
15466 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15467
15468         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
15469         using Pmode.
15470
15471 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15472
15473         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
15474         constant definition from h8300.md.
15475         (FRAME_POINTER_REGNUM): Likewise.
15476         * config/h8300/h8300.md (define_constants): Add FP_REG.
15477
15478 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15479
15480         * config/h8300/h8300.c (print_operand): Remove redundant code.
15481
15482 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15483
15484         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
15485         * config/h8300/h8300.c (byte_reg): Make it static.
15486
15487 2002-02-10  Richard Henderson  <rth@redhat.com>
15488
15489         PR c/5623
15490         * c-typeck.c (incomplete_type_error): Handle flexible array members.
15491
15492 2002-02-10  Richard Henderson  <rth@redhat.com>
15493
15494         PR c++/5624
15495         * tree.c (append_random_chars): Don't abort if main_input_filename
15496         does not exist.
15497
15498 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
15499
15500         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
15501
15502 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15503
15504         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
15505         (pushhi1): Likewise.
15506
15507 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15508
15509         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
15510         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
15511
15512 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
15513
15514         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
15515         remove MASK_VIS.
15516         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
15517
15518 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15519
15520         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
15521         a half of an SImode register on H8/300.
15522
15523 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
15524
15525         * i386.md (movdi_2): Add missing '!'.
15526
15527 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15528
15529         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
15530         definitions.
15531
15532 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15533
15534         * config/h8300/h8300.md (length): Correct the distance valid
15535         for the short branch.
15536
15537 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15538
15539         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
15540
15541 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
15542
15543         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
15544         registers in SImode.
15545         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
15546         part-clobbered.
15547
15548         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
15549         patch.
15550
15551         Contribute sh64-elf.
15552         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
15553         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
15554         (sh_cannot_modify_jumps_p): New function.
15555         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
15556         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
15557         (sh_ms_bitfield_layout_p): New function.
15558         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
15559                     Zack Weinberg  <zack@codesourcery.com>
15560         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
15561         expand_simple_binop instead of expand_binop.
15562         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
15563         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
15564         use of .quad and .uaquad.
15565         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
15566         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
15567         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
15568         * config/sh/sh.md (movdi_const, movdi_const_32bit,
15569         movdi_const_16bit): Make sure all CONSTs have modes.
15570         (sym2PIC): Ditto, but by adjusting all callers.
15571         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
15572         if the prologue calls the SHmedia argument decoder or register
15573         saver.
15574         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
15575         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
15576         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
15577         (sh_expand_epilogue): Don't emit USE of return target register.
15578         (prepare_move_operands): Legitimize DImode PIC addresses.
15579         (sh_media_register_for_return): Skip tr0, used to initialize the
15580         PIC register.
15581         (sh_expand_prologue): Remove explicit USE of return register.
15582         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
15583         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
15584         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
15585         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
15586         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
15587         EXTRA_CONSTRAINT_T.
15588         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
15589         (MOVI_SHORI_BASE_OPERAND_P): New.
15590         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
15591         (EXTRA_CONSTRAINT_T): Define in terms of them.
15592         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
15593         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
15594         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
15595         alternatives supporting TARGET_REGS.
15596         (UNSPEC_GOTPLT): New constant.
15597         (movdi split): Move incrementing of LABEL_NUSES...
15598         (movdi_const, movdi_const_32bit): Here.  Use
15599         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
15600         (movdi_const_16bit): New.
15601         (call, call_value) [flag_pic]: Use GOTPLT.
15602         (call_pop, call_value_pop): New expands.
15603         (call_pop_compact, call_pop_rettramp): New insns.
15604         (call_value_pop_compact, call_value_pop_rettramp): New insns.
15605         (sibcall) [flag_pic]: Use GOT.
15606         (builtint_setjmp_receiver): Remove bogus, unused expand.
15607         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
15608         (*pt, *ptb, ptrel): New insns.
15609         (sym2GOT): Handle DImode GOT.
15610         (sym2GOTPLT, symGOTPLT2reg): New expands.
15611         (sym2PIC): New expand.
15612         (shcompact_return_tramp): Use GOTPLT to return trampoline.
15613         (shcompact_return_tramp_i): Use return register explicitly.
15614         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
15615         disable flag_reorder_blocks.
15616         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
15617         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
15618         clobbers, for clarity.
15619         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
15620         restoring of r0 in macl as MAYBE_DEAD.
15621         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
15622         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
15623         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
15624         alter_subreg all over.
15625         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
15626         reload, instead of emitting instructions that would require
15627         reloading.
15628         (casesi_load_media): Add missing modes.
15629         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
15630         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
15631         as used if the argument decoder is called.
15632         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
15633         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
15634         Pmode, then extend it to DImode if necessary.
15635         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
15636         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
15637         constants in FPU-enabled SHmedia, let them be loaded from memory.
15638         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
15639         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
15640         Adjust whitespace in assembly output templates.
15641         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
15642         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
15643         mode of if_then_else.
15644         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
15645         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
15646         sh.h.
15647         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
15648                     Joern Rennecke <amylaar@redhat.com>
15649         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
15650         (SUBTARGET_CPP_PTR_SPEC): New.
15651         (SUBTARGET_CPP_SPEC): Remove.
15652         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
15653         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
15654         Fix typo in previous checkin.
15655         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
15656         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
15657         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
15658                     Alexandre Oliva  <aoliva@redhat.com>
15659         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
15660         what single FP register can hold for SHmedia target.
15661         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
15662                     Alexandre Oliva  <aoliva@redhat.com>
15663         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
15664         Do not split into SUBREG.
15665         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
15666         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
15667         and added new functions as specified in SH5 ABI r9.
15668         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
15669         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
15670         8-byte boundary.
15671         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
15672         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
15673         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
15674         and consttable_window_ends.
15675         2001-06-03  Graham Stott  <grahams@redhat,com>
15676         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
15677         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
15678         * config/sh/sh.c (print_operand): Handle floating-point pair,
15679         vector and matrix registers.
15680         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
15681         vector modes into account.
15682         * config/sh/sh.md (movv2sf): Split move between registers into
15683         movdf.
15684         (movv4sf, movv16sf): Introduce insns that get split only after
15685         reload.
15686         * config/sh/shmedia.h: Fix Copyright dates.
15687         * config/sh/ushmedia.h: Likewise.  Move loop counter
15688         declarations into conditionals that uses them.
15689         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
15690         loop boundary.
15691         * config/sh/sshmedia.h: Fix Copyright dates.
15692         (sh_media_PUTCFG): Fix constraints.
15693         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
15694         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
15695         ptrmemfunc_vbit_in_delta for SH5.
15696         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
15697         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
15698         * invoke.texi: Likewise.
15699         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
15700         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
15701         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
15702         GCC_pop_shmedia_regs_nofpu): New global symbols.
15703         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
15704         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
15705         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
15706         compact function with nonlocal labels.
15707         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
15708         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
15709         (initial_elimination_offset): Account for their stack space.
15710         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
15711         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
15712         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
15713         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
15714         least one of the operands to be a register.
15715         (movv2sf): Likewise.  Renamed to movv2sf_i.
15716         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
15717         prepare_move_operands() before emitting SHmedia insns.
15718         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
15719         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
15720         Don't save nor initialize r12.  Don't mis-align the stack.
15721         Pad the code with a nop.
15722         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
15723         stack.
15724         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
15725         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
15726         [__SHMEDIA__]: Implement.
15727         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
15728         * config/sh/sh.md: Set latency of `pt' closer to reality.
15729         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
15730         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
15731         Set move, load and store type attributes.
15732         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
15733         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
15734         profiling.
15735         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
15736         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
15737         * config/sh/sh.c (sh_media_register_for_return): New function.
15738         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
15739         branch-target register.
15740         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
15741         * config/sh/sh.md (return_media_i): Use any call-clobbered
15742         branch-target register.
15743         (return_media): If r18 wasn't copied in the prologue, copy it
15744         here.
15745         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
15746         Clear class FP0_REGS.
15747         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
15748         from elf.h.
15749         2001-03-08  DJ Delorie  <dj@redhat.com>
15750         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
15751         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
15752         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
15753         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
15754         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
15755         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
15756         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
15757         return value correctly for call_cookie.
15758         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
15759         * config/sh/crt1.asm (start): Modified so as to call
15760         ___setup_argv_and_call_main.
15761         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
15762         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
15763         SHmedia mode.
15764         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
15765         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
15766         (STRIP_NAME_ENCODING): Use it.
15767         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
15768         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
15769         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
15770         prepare_scc_operands().
15771         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
15772         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
15773         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
15774         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
15775         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
15776         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
15777         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
15778         used in shcompact_incoming_args.
15779         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
15780         change.
15781         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
15782         mode.
15783         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
15784         Adjust accordingly.
15785         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
15786         Simplify.  Adjust.  Add sanity check.
15787         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
15788         FPU_SINGLE_BIT.
15789         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
15790         TARGET_SHCOMPACT.
15791         (udivsi3, divsi3): Use them.
15792         (force_mode_for_call): New insn.
15793         (call, call_value, sibcall_value): Emit it before SHcompact
15794         calls.
15795         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
15796         * config/sh/sh.md (call, call_value, sibcall): Make sure the
15797         call cookie is non-NULL before taking its value.
15798         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
15799         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
15800         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
15801         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
15802         block.
15803         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
15804         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
15805         temporary for stack adjusts.  Use MACL and MACH to pass
15806         arguments to shcompact_incoming_args.
15807         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
15808         clobber r1.
15809         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
15810         (nested_trampoline): Load static chain address into r1.
15811         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
15812         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
15813         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
15814         fp_arith_reg_operand().
15815         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
15816         * config/sh/sh.md (casesi): Sign-extend the first two operands,
15817         and use signed compares for them.
15818         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
15819         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
15820         ones properly aligned.
15821         (find_barrier): Account for extra alignment needed for 8-byte wide
15822         constants.
15823         (machine_dependent_reorg): Require a label for the second 4-byte
15824         constant after an 8-byte one.
15825         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
15826         change.
15827         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
15828         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
15829         last_float when switching float modes.
15830         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
15831         auto-increment for general-purpose registers.
15832         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
15833         result.
15834         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
15835         for stack adjust.
15836         * config/sh/sh.c (sh_builtin_saveregs): Support using all
15837         registers for varargs.
15838         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
15839         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
15840         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
15841         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
15842         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
15843         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
15844         call_cookie accordingly.
15845         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
15846         (SHCOMPACT_BYREF): Likewise.
15847         (SHCOMPACT_FORCE_ON_STACK): New macro.
15848         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
15849         (sh_builtin_saveregs): Likewise.
15850         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15851         shcompact_incoming_args): Use new shift values.  Support
15852         sequences of consecutive and non-consecutive pushes/pops.
15853         * config/sh/sh.md (return): Don't explicitly use PR_REG.
15854         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
15855         * config/sh/sh.h (TEXT_SECTION): Define.
15856         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
15857         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
15858         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
15859         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
15860         return values on FPU-enabled SHmedia.
15861         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
15862         FPU-enabled SHmedia.
15863         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
15864         value is returned in a non-FP reg and is not returned by
15865         reference.
15866         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
15867         jump_ind.
15868         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
15869         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
15870         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
15871         quad-aligned to be passed by callee-copy reference.
15872         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
15873         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
15874         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
15875         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
15876         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
15877         copying low-numbered FP regs to r7 and r8.
15878         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
15879         FP regs to general-purpose regs only if the copy was passed on the
15880         stack.
15881         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
15882         copying FP reg to r9.
15883         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
15884         copy FP regs to general-purpose regs only in outgoing calls.
15885         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
15886         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
15887         HOST_WIDE_INT.
15888         * config/sh/sh.h (struct sh_args): Document all fields.
15889         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
15890         passed partially on the stack should not consider making
15891         sibcalls.
15892         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
15893         stack_regs only for incoming calls.  When passing FP args,
15894         make sure there are FP regs available before modifying
15895         call_cookie.
15896         (SHCOMPACT_BYREF): Pass double args in general-purpose
15897         registers by reference.
15898         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
15899         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
15900         attempt to generate sibcalls if the caller got any arguments
15901         by reference.
15902         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
15903         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
15904         to 8-byte boundaries.
15905         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
15906         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
15907         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
15908         stored in the stack.
15909         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
15910         for the offsets to have the ISA bit set.
15911         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
15912         invocation.  Use beq instead of bgt to mark end of sequence of
15913         loads.
15914         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
15915         bgt to mark end of sequence of stores.
15916         * config/sh/sh.c (arith_operand): Don't check whether
15917         CONST_OK_FOR_J for now.
15918         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
15919         instead of long for conversion.
15920         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
15921         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
15922         before passing it to fprintf.
15923         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
15924         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
15925         Call set_fpscr before reading/writing SR.
15926         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
15927         Call set_fpscr.
15928         * config/sh/lib1funcs.asm: Add `.align 2' directives before
15929         SHmedia code.
15930         (FMOVD_WORKS): Define on SH5 with FPU.
15931         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
15932         setting.
15933         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
15934         _fpscr_values.
15935         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
15936         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
15937         address.
15938         (ia_main_table): Ditto.
15939         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
15940         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
15941         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
15942         the definitions from sh.h.
15943         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
15944         TARGET_SH5.
15945         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
15946         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
15947         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
15948         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
15949         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
15950         Increment LABEL_NUSES.
15951
15952         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
15953         TARGET_SH5.
15954         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
15955         defined.
15956         * config/sh/elf.h (SIZE_TYPE): Likewise.
15957         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
15958         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15959         shcompact_incoming_args): Load switch table addresses using
15960         datalabel.
15961         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
15962         (NO_BUILTIN_SIZE_TYPE): Define.
15963         (SIZE_TYPE): Don't define.
15964         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
15965         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
15966         definition of __SH5__=32 for -m5-compact-nofpu.
15967         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
15968         ADDR_DIFF_VEC.
15969         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
15970         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
15971         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
15972         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
15973         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
15974         (INSN_LENGTH_ALIGNMENT): Likewise.
15975         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15976         * config/sh/sh.md (call, call_value, sibcall): Simplify
15977         copying of non-branch-target register.
15978         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15979         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
15980         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
15981         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15982         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
15983         floating-point values as structs.
15984         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
15985         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
15986         general-purpose register.
15987         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
15988         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
15989         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
15990         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
15991         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
15992         (ENCODE_SECTION_INFO): Enclose variables and constants in
15993         DATALABEL unspecs.
15994         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
15995         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
15996         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
15997         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
15998         only for LABEL_REFs.  For SYMBOL_REFs, prepend
15999         SH_DATALABEL_ENCODING to the symbol name.
16000         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
16001         convert_mode().
16002         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
16003         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
16004         UNSPEC_DATALABEL.
16005         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
16006         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
16007         (DATALABEL_REF_P): Don't require CONST.
16008         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
16009         REL label.
16010         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
16011         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
16012         right.
16013         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
16014         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
16015         Use shallow_copy_rtx and PUT_MODE to change the mode of
16016         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
16017         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
16018         on SHmedia using GENERAL_REGs.
16019         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
16020         bltu_media_i): Fix reversion of conditions.
16021         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
16022         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
16023         * config/sh/sh.c (output_far_jump): Save r13 in macl.
16024         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
16025         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
16026         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
16027         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
16028         (GCC_nested_trampoline): Likewise.
16029         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
16030         * config/sh/sh.c (gen_datalabel_ref): Define.
16031         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
16032         (INITIALIZE_TRAMPOLINE): Likewise.
16033         (TRAMPOLINE_ADJUST_ADDRESS): Define.
16034         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
16035         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
16036         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
16037         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
16038         (ic_invalidate): Adjust for SH5.
16039         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
16040         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
16041         _nested_trampoline.
16042         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
16043         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
16044         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
16045         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
16046         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
16047         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
16048         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
16049         * config/sh/sh.c (target_reg_operand): Match only target-branch
16050         registers and pseudos that aren't virtual registers.
16051         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
16052         Copy operands that don't match target_reg_operand to pseudos.
16053         (call_media, call_value_media, sibcall_media): Use
16054         target_reg_operand instead of target_operand.
16055         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
16056         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
16057         * config/sh/sh.c (target_reg_operand): Match hardware registers
16058         other than branch-target registers.
16059         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
16060         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
16061         (fpscr_values) [SH5 == 32]: Define.
16062         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
16063         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
16064         Handle function addresses coming in SUBREGs.
16065         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
16066         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
16067         shcompact_return_trampoline): Use datalabel where appropriate.
16068         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
16069         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
16070         general-purpose register to copy one branch-target register to
16071         another.
16072         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
16073         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
16074         SYMBOL_REFs with VOIDmode.
16075         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
16076         bltu_media_i): New insns.
16077         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
16078         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
16079         (INIT_CUMULATIVE_ARGS): Likewise.
16080         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
16081         * machmode.def (V16SFmode): New mode.
16082         * c-common.c (type_for_mode): Support V2SF and V16SF.
16083         * tree.c (build_common_tree_nodes_2): Likewise.
16084         * tree.h (tree_index): Likewise.
16085         * calls.c (emit_call_1): Take args_so_far.  Adjust all
16086         callers.  Introduce CALL_POPS_ARGS.
16087         * tm.texi (CALL_POPS_ARGS): Document.
16088         * config/sh/crt1.asm: Implement in SHmedia mode.
16089         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
16090         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
16091         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
16092         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
16093         Implement divsi and udivsi in SHmedia mode.  Introduce
16094         SHcompact trampolines.
16095         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
16096         only in SHmedia64.
16097         (regno_reg_class): Rewrite.
16098         (fp_reg_names): Remove.
16099         (sh_register_names, sh_additional_register_names): New.
16100         (print_operand): Added `u'.  Support SUBREGs in addresses.
16101         Add parentheses around shifted CONSTs.
16102         (output_file_start): Output .mode and .abi directives.
16103         (shiftcosts, addsubcosts, multcosts): Adjust.
16104         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
16105         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
16106         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
16107         bytes, not registers.  Take into account the need for the
16108         SHcompact incoming args trampoline.  Adjust all callers.
16109         (sh_expand_prologue): Take stack_regs into account.  Call
16110         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
16111         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
16112         stack aligned as per SH5 ABI.
16113         (sh_builtin_saveregs): Support SH5 ABI.
16114         (sh_build_va_list, sh_va_start): Likewise.
16115         (initial_elimination_offset): Take alignment into account.
16116         Compute location of PR according to the SH5 stack frame.
16117         (arith_reg_operand): Reject branch-target registers.
16118         (shmedia_6bit_operand): New.
16119         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
16120         (target_reg_operand): Match DImode only.  Accept SUBREGs.
16121         (target_operand): New.
16122         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
16123         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
16124         SIBCALL_REGS for SHmedia.
16125         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
16126         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
16127         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
16128         (TARGET_SWITCHES): New SH5 flags.
16129         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
16130         VALID_REGISTER_P to disable unsupported registers.
16131         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
16132         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
16133         (FUNCTION_ARG_PADDING): Define.
16134         (FASTEST_ALIGNMENT): Adjust.
16135         (SH_REGISTER_NAMES_INITIALIZER): New.
16136         (sh_register_names): Declare.
16137         (DEBUG_REGISTER_NAMES): Define.
16138         (REGISTER_NAMES): Define based on sh_register_names.
16139         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
16140         (sh_additional_register_names): Declare.
16141         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
16142         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
16143         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
16144         (REGISTER_NATURAL_MODE): Define.
16145         (FIRST_PSEUDO_REGISTER): Adjust.
16146         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
16147         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
16148         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
16149         (VECTOR_MODE_SUPPORTED_P): Define.
16150         (REG_CLASS_CONTENTS): Adjust.
16151         (SMALL_REGISTER_CLASSES): Adjust.
16152         (REG_ALLOC_ORDER): Adjust.
16153         (INDEX_REG_CLASS): Adjust.
16154         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
16155         (CONST_OK_FOR_LETTER_P): Adjust.
16156         (PREFERRED_RELOAD_CLASS): Adjust.
16157         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
16158         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
16159         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
16160         (FIRST_FP_PARM_REG): Adjust.
16161         (CALL_POPS_ARGS): Define.
16162         (FUNCTION_ARG_REGNO_P): Adjust.
16163         (struct sh_args): New fields.
16164         (GET_SH_ARG_CLASS): Adjust.
16165         (INIT_CUMULATIVE_ARGS): Adjust.
16166         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
16167         (FUNCTION_ARG_ADVANCE): Adjust.
16168         (FUNCTION_ARG): Adjust.
16169         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
16170         (FUNCTION_ARG_CALLEE_COPIES): Define.
16171         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
16172         (STRICT_ARGUMENT_NAMING): Define.
16173         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
16174         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
16175         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
16176         (SETUP_INCOMING_VARARGS): Adjust.
16177         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
16178         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
16179         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
16180         (SUBREG_OK_FOR_INDEX_P): Adjust.
16181         (EXTRA_CONSTRAINT_S): Update.
16182         (EXTRA_CONSTRAINT_T): New.
16183         (EXTRA_CONSTRAINT): Adjust.
16184         (GO_IF_LEGITIMATE_INDEX): Adjust.
16185         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
16186         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
16187         (MOVE_MAX): Adjust.
16188         (MAX_MOVE_MAX): Define.
16189         (Pmode): Adjust.
16190         (CONST_COSTS): Adjust.
16191         (REGISTER_MOVE_COST): Adjust.
16192         (BRANCH_COST): Adjust.
16193         (TEXT_SECTION_ASM_OP): Adjust.
16194         (DBX_REGISTER_NUMBER): Adjust.
16195         (ASM_OUTPUT_DOUBLE_INT): New.
16196         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
16197         (PREDICATE_CODES): Adjust.
16198         (PROMOTE_MODE): Adjust.
16199         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
16200         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
16201         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
16202         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
16203         (DR0_REG, DR2_REG, DR4_REG): Renumber.
16204         (TR0_REG, TR1_REG, TR2_REG): New.
16205         (XD0_REG): Renumber.
16206         (UNSPEC_COMPACT_ARGS): New.
16207         (type): Added pt and ptabs.
16208         (length): Default to 4 on SHmedia.  Default pt length to 12
16209         and     20 on SHmedia32 and SHmedia64, respectively.
16210         (pt): New function unit.
16211         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
16212         Add whitespace between operands of SHmedia instructions.
16213         (movdicc): Fix.
16214         (adddi3_media, addsi3_media): Adjust constraints.
16215         (subsi3) [SHmedia]: Force operand 1 into a register.
16216         (udivsi3_i1_media, udivsi3_i4_media): New.
16217         (udivsi3): Support SHmedia.
16218         (divsi3_i1_media, divsi3_i4_media): New.
16219         (divsi3): Support SHmedia.
16220         (anddi3, iordi3, xordi3): Adjust constraints.
16221         (zero_extendhidi2, zero_extendqidi2): New.
16222         (extendsidi2, extendhidi2, extendqidi2): New.
16223         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
16224         (pop_e, pop_fpul, pop_4): Likewise.
16225         (movsi_media): Support FP and BT registers.
16226         (movsi_media_nofpu): New.  Adjust splits to DImode.
16227         (lduw, ldub): Renamed to zero_extend* above.
16228         (movqi_media): Fix typo.
16229         (movdi_media): Support FP and BT registers.
16230         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
16231         (movdi_const_32bit): New.
16232         (shori_media): Require immediate operand.  Use `u' for output.
16233         (movdf_media, movsf_media): Simplified.
16234         (movdf_media_nofpu, movsf_media_nofpu): New.
16235         (movdf, movsf): Adjust
16236         (movv2sf, movv2sf, movv16sf): New.
16237         (beq_media, beq_media_i): Adjust constraints.  Don't use
16238         scratch BT register.
16239         (bne_media, bne_media_i): Likewise.
16240         (bgt_media, bgt_media_i): Likewise.
16241         (bge_media, bge_media_i): Likewise.
16242         (bgtu_media, bgtu_media_i): Likewise.
16243         (bgeu_media, bgeu_media_i): Likewise.
16244         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
16245         bunordered): Emit jump insn.  Force operands to registers when
16246         needed.
16247         (jump_media, jump): Simplify.
16248         (call_compact, call_compact_rettramp): New.
16249         (call_value_compact, call_value_compact_rettramp): New.
16250         (call_media, call_value_media): Simplify.
16251         (sibcall_compact, sibcall_media): New.
16252         (call, call_value): Adjust for SHmedia and SHcompact.
16253         (sibcall, sibcall_value, untyped_call): Likewise.
16254         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
16255         (indirect_jump): Adjust for SHmedia.
16256         (casesi_jump_media): New.
16257         (nop): Re-enable for SHmedia.
16258         (call_site): Restrict to SH1.
16259         (casesi): Adjust for SHmedia.
16260         (casesi_shift_media, casesi_load_media): New.
16261         (return): Explicitly use PR register.  Call return trampoline
16262         on SHcompact.
16263         (return_i): Explicitly use PR register.
16264         (shcompact_return_tramp, shcompact_return_tramp_i): New.
16265         (return_media): Adjust.
16266         (shcompact_incoming_args): New.
16267         (epilogue): Adjust.
16268         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
16269         (movstrsi): Disable on SH5.
16270         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
16271         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
16272         (subsf3, subsf3_media): Likewise.
16273         (mulsf3, mulsf3_media, mac_media): Likewise.
16274         (divsf3, divsf3_media): Likewise.
16275         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
16276         (floatsisf2, fux_truncsfsi2): Likewise.
16277         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
16278         constraints.
16279         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
16280         (cmpunsf_media, cmpsf): Likewise.
16281         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
16282         (abssf2, abssf2_media): Likewise.
16283         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
16284         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
16285         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
16286         (floatsidf2, fix_truncdfsi2): Likewise.
16287         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
16288         constraints.
16289         (cmpeqdf_media, cmpgtdf_media): Likewise.
16290         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
16291         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
16292         (absdf2, absdf2_media): Likewise.
16293         (extendsfdf2, extendsfdf2_media): Likewise.
16294         (truncsfdf2, truncsfdf2_media): Likewise.
16295         * config/sh/sh64.h: New file.
16296         * config/sh/t-sh64: New file.
16297         * config/sh/shmedia.h: New file.
16298         * config/sh/ushmedia.h: New file.
16299         * config/sh/sshmedia.h: New file.
16300         * configure.in: Added sh64-*-elf.
16301         * configure: Rebuilt.
16302         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
16303         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
16304         (reg_class_from_letter): Use `b' for TARGET_REGS.
16305         (print_operand): Support `%M', `%m', `AND' and
16306         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
16307         (andcosts): Adjust for SHmedia.
16308         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
16309         Likewise.
16310         (target_reg_operand): New function.
16311         * config/sh/sh-protos.h (target_reg_operand): Declare.
16312         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
16313         FP registers on SH5.
16314         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
16315         on SH4.
16316         (TARGET_REGISTER_P): New macro.
16317         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
16318         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
16319         (EXTRA_CONSTRAINT_S): New macro.
16320         (EXTRA_CONSTRAINT): Adjust.
16321         (FLOAT_TYPE_SIZE): Define to 32.
16322         (Pmode): DImode on SHmedia.
16323         (CONST_COSTS): Adjust for SHmedia literals.
16324         (PREDICATE_CODES): Added target_reg_operand.
16325         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
16326         * config/sh/sh.md: Remove all attrs from SHmedia insns.
16327         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
16328         (cmpdi): Accept SHmedia.
16329         (movdicc_false, movdicc_true): New insns.
16330         (movdicc): New expand.
16331         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
16332         no_new_pseudos.
16333         (addsi3_media): Match `S' constraint.
16334         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
16335         (negdi2): Expand for SHmedia.
16336         (one_cmpldi2): New expand.
16337         (zero_extendsidi2): Change from expand to insn.
16338         (extendsidi2): Add constraints.
16339         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
16340         LD/ST address.  Fix SI immediate loading split.
16341         (movhi_media, movqi_media, lduw, ldub): New insns.
16342         (movhi, movqi): Accept SHmedia.
16343         (shori_media, movdi_media): Relax input constraints.  Split
16344         symbolic constants.
16345         (movdf_media, movsf_media): New insn.  New split to movdi.
16346         (movdf, movsf): Match on SHmedia.
16347         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
16348         bgeu_media): New insns and splits.  New insns with `_i' suffix.
16349         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
16350         (bunordered): New expand.
16351         (jump_compact): Renamed from `jump'.
16352         (jump_media): New insn.
16353         (jump): New expand.
16354         (call_media, call_value_media): New insns.
16355         (call, call_value): Adjust.
16356         (indirect_jump_compact): Renamed from `indirect_jump'.
16357         (indirect_jump_media): New insn.
16358         (indirect_jump): New expand.
16359         (untyped_call, return): Accept SHmedia.
16360         (return_media): New insn.
16361         (prologue, epilogue, blockage): Accept SHmedia.
16362         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
16363         (sunordered): New expand.
16364         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
16365         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
16366         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
16367         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
16368         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
16369         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
16370         abssf2_media): New insns.
16371         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
16372         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
16373         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
16374         floatdidf2, floatsidf2_media, fix_truncdfdi2,
16375         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
16376         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
16377         absdf2_media): New insns.
16378         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
16379         (extendsfdf2_media, truncdfsf2_media): New insns.
16380         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
16381         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
16382         * config/sh/sh.h (CONST_OK_FOR_J): Document.
16383         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
16384         * config/sh/sh.md (adddi3): New expand.
16385         (adddi3_media, adddi3z_media): New insns.
16386         (adddi3_compact): Renamed from adddi3.
16387         (addsi3_media): Use add.l r63 to add constant zero.
16388         (subdi3): New expand.
16389         (subdi3_media): New insn.
16390         (subdi3_compact): Renamed from subdi3.
16391         (mulsidi3): New expand.
16392         (mulsidi3_media): New insn.
16393         (mulsidi3_compact): Renamed from mulsidi3.
16394         (umulsidi3): New expand.
16395         (umulsidi3_media): New insn.
16396         (umulsidi3_compact): Renamed from umulsidi3.
16397         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
16398         (ashlsi3, ashrsi3, lshrsi3): Use them.
16399         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
16400         (ashldi3, ashrdi3, lshrdi3): Use them.
16401         (zero_extendsidi2): New expand.
16402         (extendsidi2): New insn.
16403         (movsi_media): New insn.  Split to movdi to load constants.
16404         (movsi): Enable for shmedia.
16405         (movdi_media): New insn.  Use shori_media to load wide constants.
16406         (short_media): New insn.
16407         (movdi): Enable for shmedia.
16408         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
16409         * config/sh/sh.h (CPP_SPEC): Added `m5'.
16410         (SUBTARGET_CPP_SPEC): Added `!m5'.
16411         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
16412         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
16413         to all other SH variants.
16414         (TARGET_DEFAULT): Set to SH1_BIT.
16415         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
16416         (BITS_PER_WORD): Raise to 64 on shmedia.
16417         (MAX_BITS_PER_WORD): Change to 64.
16418         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
16419         (INT_TYPE_SIZE): Keep as 32.
16420         (UNITS_PER_WORD): Raise to 8 on shmedia.
16421         (MIN_UNITS_PER_WORD): Keep as 4.
16422         (POINTER_SIZE): Raise to 64 on shmedia.
16423         (CONST_OK_FOR_J): New macro.
16424         (CONST_OK_FOR_LETTER_P): Use it.
16425         (processor_type): Add PROCESSOR_SH5.
16426         * config/sh/sh.md: Conditionalize all expands, insns and
16427         splits to TARGET_SH1.
16428         (cpu): Added sh5.
16429         (addsi3_compact): Renamed from...
16430         (addsi3): Now an expand.
16431         (addsi3_media, subsi3_media): New insns.
16432         (subsi3): Don't negate constants with SHmedia.
16433
16434         * hooks.c: New file.
16435         * hooks.h: New file.
16436         * Makefile.in (HOOKS_H): New.
16437         (TARGET_DEF_H): Added $(HOOKS_H).
16438         (OBJS): Added hooks.o.
16439         (cfgcleanup.o, bb-reorder.o): Added target.h.
16440         (hooks.o): Added dependencies.
16441         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
16442         (TARGET_INITIALIZER): this.
16443         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
16444         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
16445         * bb-reorder.c: Include target.h.
16446         (reorder_basic_blocks): Skip if cannot modify jumps.
16447         * cfgcleanup.c: Include target.h.
16448         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
16449
16450 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
16451
16452         * config/mips/mips.md (casesi_internal, casesi_internal_di):
16453         Protect jump delay slot instructions with .set noreorder and
16454         .set nomacro.
16455
16456 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
16457
16458         * config/mips/mips.md (casesi_internal_di): Calculate
16459         the index into the target offset table correctly.
16460
16461 2002-02-08  Richard Henderson  <rth@redhat.com>
16462
16463         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
16464         * final.c (output_addr_const): Accept and discard SUBREG.
16465         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
16466         mark them unknown instead.
16467         (simplify_subtraction): Handle RTX_UNKNOWN.
16468         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
16469
16470 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
16471
16472         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
16473
16474 2002-02-08  Richard Henderson  <rth@redhat.com>
16475
16476         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
16477
16478 2002-02-08  Andreas Jaeger  <aj@suse.de>
16479
16480         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
16481         * config/i386/t-linux64: New file.
16482
16483 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
16484
16485         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
16486         * c-parse.in (compstmt): Clear last_expr_type.
16487
16488 2002-02-07  Richard Henderson  <rth@redhat.com>
16489
16490         * loop.c (strength_reduce): Sink final_value when not
16491         eliminating a biv.
16492
16493 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
16494
16495         * config/sparc/freebsd.h: Fix mismatched spec {.
16496
16497 2002-02-07  Richard Henderson  <rth@redhat.com>
16498
16499         * cfgrtl.c: Include recog.h and insn-config.h.
16500         (keep_with_call_p): Fix general_operand invocation.
16501         * Makefile.in (cfgrtl.o): Update dependencies.
16502
16503 2002-02-07  Kazu Hirata  <kazu@hxi.com>
16504
16505         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
16506         comment.  Accept HImode only if TARGET_H8300.
16507
16508 2002-02-07  Eric Christopher  <echristo@redhat.com>
16509
16510         * config/mips/crtn.asm: Cleanup #ifdefs.
16511
16512 2002-02-07  Eric Christopher  <echristo@redhat.com>
16513
16514         * config/mips/crti.asm: Add changes for mips16. mips16 uses
16515         register 7 as RA instead of $31.
16516         * config/mips/crtn.asm: Ditto.
16517         * config/mips/mips.c (mips_move_2words): Add case for
16518         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
16519         (compute_frame_size): Fix typo.
16520         (save_restore_insns): Ditto.  Make documentation about using
16521         register $7 as return register more precise.
16522         (mips_expand_epilogue): Fix comment. Add code to work around not
16523         being able to add to the stack pointer directly.
16524         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
16525         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
16526         epilogue.
16527
16528 2002-02-07  Tom Rix  <trix@redhat.com>
16529
16530         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
16531         immediates in ldu and stdu DS opcode field.
16532         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
16533         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
16534         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
16535
16536 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
16537
16538         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
16539         offset for stack bias.
16540
16541 2002-02-07  H.J. Lu <hjl@gnu.org>
16542
16543         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
16544
16545 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
16546
16547         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
16548
16549 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
16550
16551         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
16552         * i386.c (x86_order_regs_for_local_alloc): New global function.
16553         * i386.h (REG_ALLOC_ORDER): CLeanup.
16554         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
16555
16556 2002-02-07  Richard Henderson  <rth@redhat.com>
16557
16558         PR optimization/2463
16559         * alias.c (find_base_value): Recall base values for fixed hard regs.
16560         * loop.c (loop_regs_update): Don't use single_set on non-insns.
16561
16562 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
16563
16564         * config/mips/mips.md (define_delay) [mips16]: Adjust required
16565         length.
16566
16567 2002-02-06  Richard Henderson  <rth@redhat.com>
16568
16569         PR c/5609
16570         * stmt.c (resolve_operand_name_1): Take more care with mixed
16571         named and unnamed operands.
16572
16573 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
16574             Jan Hubicka  <jh@suse.cz>
16575
16576         * loop.c (remove_constant_addition): Avoid clobbering a shared
16577         CONST expression.
16578
16579 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
16580
16581         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
16582         * config/s390/t-linux64: New file.
16583         * config/s390/libgcc-glibc.ver: New file.
16584
16585 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
16586
16587         * config/s390/linux64.h: Delete file.
16588         * config/s390/s390x.h: New file.
16589         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
16590         as target header file.
16591         * config/s390/linux.h (TARGET_VERSION): Define depending on
16592         DEFAULT_TARGET_64BIT.
16593         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
16594         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
16595         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
16596         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
16597         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
16598         (EXTRA_SPEC): New define.
16599         * config/s390/s390.h (TARGET_VERSION): Define depending on
16600         DEFAULT_TARGET_64BIT.
16601         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
16602
16603 2002-02-06  Jason Merrill  <jason@redhat.com>
16604
16605         * c-decl.c (finish_function): Warn about a non-void function with
16606         no return statement and no abnormal exit.
16607         (current_function_returns_abnormally): New variable.
16608         (start_function): Clear it.
16609         (struct c_language_function): Add returns_abnormally.
16610         (push_c_function_context): Save it.
16611         (pop_c_function_context): Restore it.
16612         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
16613         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
16614         an explicit return type.
16615         * c-tree.h: Declare current_function_returns_abnormally.
16616         (C_FUNCTION_IMPLICIT_INT): New macro.
16617         * c-typeck.c (build_function_call): Set it.
16618         (c_expand_return): Set current_function_returns_value even if the
16619         value is erroneous.
16620
16621 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
16622
16623         PR c/5420:
16624         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
16625         unsafe for reevaluation.
16626
16627 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
16628
16629         PR c/5482:
16630         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
16631         EXPR_STMT, but COMPOUND_STMT, recurse into it.
16632
16633 2002-02-06  Richard Henderson  <rth@redhat.com>
16634
16635         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
16636         be a general_operand.  Dest for function value must be a pseudo.
16637
16638 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
16639
16640         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
16641         as SYMBOL_REFs from the constant pool.
16642
16643 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
16644
16645         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
16646         passed by invisible reference.
16647
16648 2002-02-05  Richard Henderson  <rth@redhat.com>
16649
16650         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
16651
16652 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
16653
16654         Implement using "base addresses" in insn operands as default.
16655         * config/mmix/mmix.c (mmix_conditional_register_usage): if
16656         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
16657         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
16658         used to read the rtx value.
16659         (mmix_target_asm_function_epilogue): Fix spacing.
16660         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
16661         (mmix_legitimate_address): Ditto.
16662         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
16663         should be loaded with a GETA insn.  Don't allocate needless extra
16664         char for nul termination and fix misleading comment.
16665         (mmix_print_operand_address): Handle constants if
16666         TARGET_BASE_ADDRESSES.
16667         (mmix_output_register_setting): Use base addressing if
16668         TARGET_BASE_ADDRESSES and the number of insns is 3.
16669         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
16670         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
16671         to use R as constraint, add LDA to match s.
16672         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
16673         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
16674         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
16675         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
16676         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
16677         order with other fixed registers.
16678         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
16679         other parameter/call-clobbered registers.
16680         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
16681         -mbase-addresses, -mno-base-addresses.
16682         (MMIX Options): Ditto.
16683
16684 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16685
16686         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
16687
16688 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
16689
16690         * config/rs6000/altivec.h: Change elem to _S_elem.
16691
16692 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
16693
16694         * config/netbsd.h (WCHAR_TYPE): Define.
16695         (WCHAR_TYPE_SIZE): Ditto.
16696         (WINT_TYPE): Ditto.
16697         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
16698         (WCHAR_UNSIGNED): Ditto.
16699         (WCHAR_TYPE_SIZE): Ditto.
16700         (WINT_TYPE): Ditto.
16701         * config/arm/netbsd.h: Likewise.
16702         * config/i386/netbsd-elf.h: Likewise.
16703         * config/i386/netbsd.h: Likewise.
16704         * config/m68k/netbsd-elf.h: Likewise.
16705         * config/m68k/netbsd.h: Likewise.
16706         * config/ns32k/netbsd.h: Likewise.
16707         * config/sparc/netbsd.h: Likewise.
16708         * config/vax/netbsd.: Likewise.
16709
16710 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
16711
16712         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
16713         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
16714         (TARGET_INITIALIZER): this.
16715         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
16716         (BITFIELD_NBYTES_LIMITED): Markup fix.
16717         * tree.h (default_ms_bitfield_layout_p): Declare.
16718         (record_layout_info): Added prev_field.
16719         * tree.c (default_ms_bitfield_layout_p): New fn.
16720         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
16721         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
16722         * stor-layout.c: Include target.h.
16723         (start_record_layout): Initialize prev_field.
16724         (place_field): Handle MS bit-field layout, and disregard
16725         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
16726         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
16727         * Makefile.in (stor-layout.o): Adjust dependencies.
16728
16729 2002-02-05  Jason Merrill  <jason@redhat.com>
16730
16731         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
16732
16733 2002-02-05  Andreas Jaeger  <aj@suse.de>
16734
16735         * crtstuff.c: Fix comments.
16736
16737 2002-02-05  Richard Henderson  <rth@redhat.com>
16738
16739         PR fortran/3393
16740         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
16741         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
16742
16743         PR fortran/3392
16744         * config/mips/mips.c (function_arg): Handle TImode.
16745         (function_arg_advance): Likewise.
16746
16747 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16748
16749         * config/rs6000/altivec.h (vec_step_help): Rename to
16750         __vec_step_help.
16751
16752 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16753
16754         * config/rs6000/altivec.h: Fix typos.
16755
16756 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
16757
16758         * config/arm/netbsd.h: Correct a comment.
16759
16760 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16761
16762         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
16763         building void typed builtins.
16764
16765         * config/rs6000/altivec.h (vec_ld*): Fix typos.
16766         (vec_step): Implement for C++.
16767
16768 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16769
16770         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
16771
16772 2002-02-04  Richard Henderson  <rth@redhat.com>
16773
16774         * combine.c (nonzero_bits): Re-introduce special case for
16775         sp/fp/ap wrt REGNO_POINTER_ALIGN.
16776
16777 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16778
16779         * doc/extend.texi: Warn about unsupported usage of altivec
16780         builtins.
16781
16782         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
16783         (altivec_predicate_*): New.
16784
16785         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
16786         Add C++ version of vec_*() functions.
16787
16788         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
16789         (bdesc_2arg): Remove altivec predicates.
16790         (altivec_expand_builtin): Handle predicates.
16791         (altivec_init_builtins): Handle predicates.
16792         (altivec_expand_predicate_builtin): New.
16793
16794 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16795
16796         * pa.c (DO_FRAME_NOTES): Move forward.
16797         (store_reg): Revise handling of frame notes.
16798         (load_reg): Likewise.
16799         (set_reg_plus_d): Likewise.
16800         (hppa_expand_prologue): Likewise.
16801         (hppa_expand_epilogue): Likewise.
16802
16803 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16804
16805         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
16806
16807 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16808
16809         PR c/4475, c++/3780:
16810         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
16811         * c-common.h (SWITCH_TYPE): Define.
16812         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
16813         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
16814         Rename spareness variable to sparseness.
16815         (expand_end_case_type): Renamed from expand_end_case, use orig_type
16816         if non-NULL instead of TREE_TYPE (orig_index).
16817         * tree.h (expand_end_case_type): Renamed from expand_end_case.
16818         (expand_end_case): Define using expand_end_case_type.
16819         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
16820         to expand_end_case_type.
16821         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
16822
16823 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16824
16825         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
16826         (BIGGEST_ALIGNMENT): Change to 128.
16827
16828 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16829
16830         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
16831
16832 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16833
16834         * pa.md (call_internal_reg_64bit): Remove unused variable.
16835
16836 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
16837
16838         * config/arm/arm.h (machine_function): Add uses_anonymous_args
16839         field.
16840         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
16841         * config/arm/arm.c (current_function_anonymous_args): Delete,
16842         replace uses with cfun->machine->uses_anonymous_args.
16843         (arm_reorg): Do not reset uses_anonymous_args.
16844
16845         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
16846         any geenral register.
16847
16848 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
16849
16850         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
16851         the entry block.
16852
16853 2002-02-04  Richard Henderson  <rth@redhat.com>
16854
16855         * combine.c (force_to_mode): Remove STACK_BIAS code.
16856         (nonzero_bits): Likewise.  Replace sp/fp special case with
16857         REGNO_POINTER_ALIGN.
16858
16859         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
16860         (HARD_FRAME_POINTER_REGNUM): New.
16861         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
16862         (FIXED_REGS, CALL_USED_REGS): Update.
16863         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
16864         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
16865         (HARD_REGNO_NREGS): Update for SFP.
16866         (STACK_POINTER_OFFSET): Include bias here ...
16867         (FIRST_PARM_OFFSET): ... not here.
16868         (STACK_BIAS): Remove.
16869         (INIT_EXPANDERS): New.
16870         (STARTING_FRAME_OFFSET): Do not include bias.
16871         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
16872         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
16873         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
16874         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
16875         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
16876         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
16877         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
16878         (MUST_SAVE_REGISTER): Likewise.
16879         (sparc_flat_function_prologue): Likewise.
16880         (sparc_flat_function_epilogue): Likewise.
16881         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
16882         (sparc_init_modes): SFP is GENERAL_REGS.
16883         (sparc_builtin_saveregs): SFP does not have bias applied.
16884
16885 2002-02-04  Richard Henderson  <rth@redhat.com>
16886
16887         * config/alpha/alpha.c (current_function_is_thunk): Don't check
16888         current_function_is_thunk.
16889         (alpha_sa_mask): Distinguish between current_function_is_thunk
16890         called from ASM_OUTPUT_MI_THUNK and not.
16891         (alpha_does_function_need_gp): Thunks always need gp.
16892         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
16893         (alpha_output_mi_thunk_osf): New.
16894         * config/alpha/alpha-protos.h: Update.
16895         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
16896
16897 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
16898
16899         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
16900         function types, not when they're taken away.
16901
16902 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
16903
16904         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
16905         CODE_LABEL and jump table when replacing a table jump with a
16906         simple jump.
16907
16908 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16909
16910         * config/s390/s390-protos.h (legitimize_la_operand,
16911         s390_secondary_input_reload_class, s390_plus_operand,
16912         s390_expand_plus_operand): Add prototypes.
16913
16914         config/s390/s390.c (s390_secondary_input_reload_class,
16915         s390_plus_operand, s390_expand_plus_operand): New functions.
16916
16917         (struct s390_address): New member 'pointer'.
16918         (s390_decompose_address): Compute it.
16919         (legitimate_la_operand_p): Use it.
16920         (legitimize_la_operand): New function.
16921         (movti, movdi, movdf splitters): Call it.
16922
16923         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
16924         (PREDICATE_CODES): Add s390_plus_operand.
16925
16926         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
16927         (la_ccclobber): Allow GENERAL_REGS as output operand.
16928
16929         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
16930         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
16931         (*la_64, *la_31, reload_indi, reload_insi): ... these.
16932
16933 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16934
16935         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
16936         register names for regular asm () construct.
16937
16938 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16939
16940         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
16941         registers.
16942
16943 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16944
16945         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
16946         pat for recog.
16947
16948 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
16949
16950         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
16951         constant pool to be identical by string address and index.
16952
16953 2002-02-04  Anthony Green  <green@redhat.com>
16954
16955         * output.h (SECTION_OVERRIDE): Define.
16956         * varasm.c (named_section): Obey SECTION_OVERRIDE.
16957
16958 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
16959
16960         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
16961         by existing arm*-*-netbsd* (a.out) target.
16962         (ns32k-*-netbsdelf*): Likewise.
16963         (sparc-*-netbsdelf*): Likewise.
16964         (vax-*-netbsdelf*): Likewise.
16965
16966 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
16967
16968         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
16969         headers and libobjc headers.
16970
16971 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
16972
16973         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
16974         (_mingw.h): Remove duplicate include.
16975
16976 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
16977
16978         * config.gcc: Set cpu_type to m68k for 68010, as well.
16979         (m68010-*-netbsdelf*): New...
16980         (m68k*-*-netbsdelf*): ...targets.
16981         * config/m68k/netbsd-elf.h: New file.
16982
16983 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16984
16985         * config/h8300/h8300.c (hand_list): Move inside function_arg.
16986
16987 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16988
16989         * config/h8300/h8300.c (h8_push_ops): Move inside
16990         h8300_init_once.
16991         (h8_pop_ops): Likewise.
16992         (h8_move_ops): Likewise.
16993
16994 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16995
16996         * config/h8300/h8300.c (os_task): Make it static.
16997         (monitor): Likewise.
16998         (pragma_saveall): Likewise.
16999
17000 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
17001
17002         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
17003         constant is a valid sign-extension for Pmode.
17004
17005 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17006
17007         * config/h8300/h8300.c: Fix formatting.
17008
17009 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17010
17011         * config/h8300/h8300.md: Fix formatting.
17012
17013 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17014
17015         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
17016         predicates of operands[1].  Split the patterns for each
17017         processor variant.
17018
17019 2002-02-02  Kazu Hirata  <kazu@hxi.com>
17020
17021         * config/h8300/h8300.md (xor patterns): Tighten the predicates
17022         of operands[1] to register_operand.
17023
17024 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
17025
17026         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
17027         * cpphash.c (_cpp_init_hashtable): Similarly.
17028         * cppinit.c (cpp_create_reader): Default the signed_char flag.
17029         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
17030         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
17031         (cpp_handle_option): Handle the new options.
17032         * cpplex.c (cpp_interpret_charconst): Use new flag.
17033         * cpplib.h (struct cpp_options): New member signed_char.
17034         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
17035         (cpp_options): Handle -fsigned-char and -funsigned-char.
17036         (static_specs): Remove signed_char_spec.
17037         (do_spec1): Don't handle %c.
17038         * system.h: Poison SIGNED_CHAR_SPEC.
17039         * tradcif.y (yylex): Use flag_signed_char.
17040         * tradcpp.h (flag_signed_char): New.
17041         * tradcpp.c (flag_signed_char): New.
17042         (main): Handle new command-line options.
17043         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
17044 config:
17045         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
17046         * avr/avr.h: Remove old comments.
17047         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
17048         (CC1_SPEC): Pass -fsigned-char if -mic*.
17049         (SIGNED_CHAR_SPEC): Remove.
17050 doc:
17051         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
17052
17053 2002-02-01  Eric Christopher  <echristo@redhat.com>
17054
17055         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
17056         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
17057         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
17058         (ASM_OUTPUT_REG_POP): Ditto.
17059
17060 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
17061
17062         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
17063         patch.
17064
17065 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
17066
17067         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
17068
17069 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
17070
17071         PR c/5304:
17072         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
17073         unconditionally.
17074
17075 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
17076
17077         * cfganal.c: Include tm_p.h.
17078         (keep_with_call_p): Fix the test that determines if a register holds
17079         the return value of a call.
17080
17081 2002-02-01  DJ Delorie  <dj@redhat.com>
17082
17083         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
17084         we are given conflicting registers, switch to the other one we
17085         had allocated for us.
17086         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
17087         as TImode so we know when the "other" register is available.
17088
17089 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
17090
17091         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
17092         sparc/sparc_bi.h.
17093
17094 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
17095
17096         * cfganal.c (keep_with_call_p): New function.
17097         (flow_call_edges_add): Prevent splitting a block between a call and
17098         a single-set instruction that should be kept in the same block.
17099
17100 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17101
17102         * doc/install.texi (avr): Update outdated URL.
17103
17104 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
17105
17106         * config/stormy16/stormy16.md (pushqi): New.
17107         (popqi): New.
17108         (pushhi): New.
17109         (pophi): New.
17110         (movhi): Remove stack operands.
17111         (movqi): Likewise.
17112         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
17113         nonimmediate_nonstack_operand.
17114         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
17115         New.
17116         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
17117         New.
17118
17119 2002-01-31  Jason Merrill  <jason@redhat.com>
17120
17121         * Makefile.in (c-parse.c): Handle .output file.
17122         * objc/Make-lang.in (objc-parse.c): Likewise.
17123
17124 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
17125
17126         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
17127         the -me[lb] option is given.  Don't output the default flag
17128         twice.
17129
17130 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
17131
17132         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
17133         the primary source file; this has not been done yet.
17134         * c-decl.c (c_expand_body): Reset input_filename from
17135         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
17136
17137 2002-01-31  Kazu Hirata  <kazu@hxi.com>
17138
17139         * rtlanal.c (subreg_regno_offset): Do not use
17140         SUBREG_REGNO_OFFSET.
17141         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
17142         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
17143
17144 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
17145
17146         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
17147         version rather than GNATS version in --version output.
17148
17149 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
17150
17151         * ifcvt.c (noce_process_if_block): Make a copy of the destination
17152         when copying back from a temporary.
17153
17154 2002-01-30  Richard Henderson  <rth@redhat.com>
17155
17156         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
17157         and new_dest are the same.
17158
17159 2002-01-30  Richard Henderson  <rth@redhat.com>
17160
17161         PR opt/5076
17162         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
17163         * rtl.c (note_insn_name): Update.
17164         * emit-rtl.c (remove_unnecessary_notes): Kill it.
17165         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
17166         to perform loop rotation.
17167         (expand_exit_loop_top_cond): New.
17168         * tree.h (expand_exit_loop_top_cond): Declare it.
17169         * c-semantics.c (genrtl_while_stmt): Use it.
17170         (genrtl_for_stmt): Likewise.
17171
17172 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
17173
17174         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
17175         arguments to 64-bit boundaries on 64-bit ABIs.
17176
17177 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
17178
17179         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
17180
17181 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
17182
17183         * c-decl.c (grokdeclarator): Handle type being a typedef for an
17184         invalid type.
17185
17186 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
17187
17188         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
17189         * config/sparc/sparc_bi.h: Remove file.
17190         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
17191
17192 2002-01-30  Richard Henderson  <rth@redhat.com>
17193
17194         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
17195
17196 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
17197
17198         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
17199
17200 2002-01-30  Jason Merrill  <jason@redhat.com>
17201
17202         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
17203         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
17204         (reg_save): Use DW_CFA_offset_extended_sf instead.
17205
17206         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
17207
17208 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17209
17210         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
17211         in cselib_lookup.
17212
17213 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
17214
17215         * rs6000.md ("*call_value_local32"): Remove constraints.
17216         ("*call_value_local64"): Same.
17217         ("*call_value_indirect_nonlocal_aix32"): Same.
17218         ("*call_value_nonlocal_aix32"): Same.
17219         ("*call_value_indirect_nonlocal_aix64"): Same.
17220         ("*call_value_nonlocal_aix64"): Same.
17221         ("*call_value_nonlocal_sysv"): Same.
17222
17223 2002-01-29  Richard Henderson  <rth@redhat.com>
17224
17225         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
17226
17227 2002-01-29  Richard Henderson  <rth@redhat.com>
17228
17229         * expr.c (force_operand): Ignore flag_pic for detecting pic
17230         address loads.
17231         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
17232         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
17233         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
17234         instead of open-coded loop.
17235         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
17236         be fixed when in use.
17237
17238 2002-01-29  Richard Henderson  <rth@redhat.com>
17239
17240         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
17241         * sched-rgn.c (propagate_deps): Update them.
17242         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
17243         clobbers list when either gets too long.
17244
17245 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17246
17247         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
17248         and INDEX_REGS the same as GENERAL_REGS.
17249         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
17250
17251 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
17252
17253         * tree.c (build_nonstandard_integer_type): Correct prototype.
17254
17255 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
17256
17257         * config/s390/s390.md (movstrsico, movstrdix_64,
17258         movstrsix_31): Remove, replace by ...
17259         (movstrdi_short, movstrsi_short, movstrdi_long,
17260         movstrsi_long): ... these.  New.
17261         (movstrdi, movstrsi): Adapt.
17262
17263         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
17264         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
17265         Remove unnecessary CC clobber.
17266         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
17267         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
17268
17269         (divmoddi4): Don't partially initialize TImode register.
17270
17271 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
17272
17273         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
17274
17275 2002-01-29  Richard Henderson  <rth@redhat.com>
17276
17277         * flow.c (print_rtl_and_abort): Remove.
17278         (print_rtl_and_abort_fcn): Remove.
17279         (verify_local_live_at_start): Use dump_bb instead.
17280         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
17281         (verify_wide_reg_1): Return 2 on mode test failure.
17282
17283 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
17284
17285         PR c/3325, c/3326, c/2511, c/3347
17286         * c-decl.c (enum_decl_context): Remove BITFIELD.
17287         (grokdeclarator): Take bitfield width as an input.
17288         Ensure bitfields are given the correct type.  Perform
17289         bitfield width validation with build_bitfield_integer_type
17290         rather than waiting for finish_struct.
17291         (grok_typename, grok_typename_in_parm_context, start_decl,
17292         push_parmdecl, grokfield, start_function): Update calls to
17293         grokdeclarator.
17294         (build_bitfield_integer_type): New function.
17295         (finish_struct): Move bitfield validation to grokdeclarator
17296         and build_bitfield_integer_type.
17297         * tree.c (build_nonstandard_integer_type): New function.
17298         * tree.h (build_nonstandard_integer_type): New prototype.
17299 objc:
17300         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
17301
17302 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17303
17304         PR other/1502:
17305         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
17306         don't ignore unrecognized -W* options.
17307         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
17308         * cpplib.h (cpp_handle_option): Adjust prototype.
17309         * c-decl.c (c_decode_options): Pass 0 as last argument to
17310         cpp_handle_option.
17311
17312         PR c/2896:
17313         * gcc.c (cpp_unique_options): Split from cpp_options.
17314         (cpp_options): Source cpp_unique_options.
17315         (default_compilers): Use cpp_unique_options instead of cpp_options
17316         when used together with cc1_options.
17317         (static_specs): Add cpp_unique_options.
17318         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
17319         when used together with cc1_options.
17320
17321 2002-01-29  Kazu Hirata  <kazu@hxi.com>
17322
17323         * config/h8300/h8300-protos.h: Update the prototype of
17324         output_a_shift.
17325         * config/h8300/h8300.c (output_a_shift): Remove an unused
17326         argument 'insn'.  Remove redundant code.
17327         * config/h8300/h8300.md: Adust to the new prototype of
17328         output_a_shift.
17329
17330 2002-01-29  Kazu Hirata  <kazu@hxi.com>
17331
17332         * config/h8300/h8300-protos.h: Update the prototypes of
17333         emit_a_rotate and expand_a_rotate.
17334         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
17335         first argument to 'enum rtx_code'.
17336         (expand_a_rotate): Likewise.
17337
17338 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17339
17340         * config/h8300/h8300-protos.h: Update the prototype of
17341         output_simode_bld.
17342         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
17343         'log2'.
17344         * config/h8300/h8300.md: Adjust to the new prototype.
17345
17346 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17347
17348         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
17349         redundant code.
17350
17351 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17352
17353         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
17354         is a fixed register before returning pic_offset_table_rtx.
17355         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
17356         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
17357
17358 2002-01-28  Jason Merrill  <jason@redhat.com>
17359
17360         * dwarf2.h: Sync with src version.
17361
17362 2002-01-28  Paul Koning  <pkoning@equallogic.com>
17363
17364         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
17365         BT_FN_VOID_PTR_VAR.
17366         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
17367         * doc/extend.texi (__builtin_prefetch): Update documentation:
17368         first argument is now const void ptr.
17369
17370 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17371
17372         * config/h8300/h8300-protos.h: Remove an unused prototype.
17373
17374 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
17375
17376         * toplev.c (lang_independent_init): Round up identifier size.
17377
17378 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
17379
17380         * config.gcc: Revert previous change.
17381
17382 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
17383
17384         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
17385
17386 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
17387
17388         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
17389         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
17390         other non-elf netbsd config frags.
17391         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
17392         collect2 will does that.
17393         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
17394         shared-lib frobbing will work.
17395
17396 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17397
17398         * config/h8300/h8300.h: Fix formatting.
17399         * config/h8300/h8300.md: Likewise.
17400
17401 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
17402
17403         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
17404         the old, removed AAA_standards fix.
17405         * fixinc/fixincl.x: Rebuilt.
17406
17407 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
17408
17409         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
17410         atexit call in crtbegin, hooked in after call to frame_dummy;
17411         register EH before registering __fini__start.
17412
17413 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
17414
17415         * config/rs6000/altivec.h: Remove spurious semicolons.
17416
17417 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17418
17419         * config/h8300/h8300.md: Replace dead bit extraction patterns
17420         with ones that work.
17421
17422 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17423
17424         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
17425         if not STRICT_ALIGNMENT.
17426         * rtl.h (MEM_ALIGN): Likewise.
17427
17428 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17429
17430         * doc/invoke.texi (-fdump-translation-unit): Revert this
17431         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17432
17433 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17434
17435         * config/h8300/h8300.md (define_constants): New.
17436         (anonymous patterns) Use defined constants appropriately.
17437
17438 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17439
17440         * config/h8300/h8300.c (function_arg): Remove redundant code.
17441
17442 2002-01-26  Richard Henderson  <rth@redhat.com>
17443
17444         * sched-deps.c (reg_pending_uses_head): New.
17445         (reg_pending_barrier): Rename from reg_pending_sets_all.
17446         (find_insn_list): Don't mark inline.
17447         (find_insn_mem_list): Remove.
17448         (add_dependence_list, add_dependence_list_and_free): New.
17449         (flush_pending_lists): Replace only_write param with separate
17450         for_read and for_write parameters.  Update all callers.  Use
17451         add_dependence_list_and_free.
17452         (sched_analyze_1): Do not add reg dependencies here; just set
17453         the pending bits.  Use add_dependence_list.
17454         (sched_analyze_2): Likewise.
17455         (sched_analyze_insn): Replace schedule_barrier_found with
17456         reg_pending_barrier.  Add all dependencies for pending reg
17457         uses, sets, and clobbers.
17458         (sched_analyze): Don't add reg dependencies for calls, just
17459         set pending bits.  Use regs_invalidated_by_call.  Treat
17460         sched_before_next_call as a normal list, not a fake insn.
17461         (init_deps): No funny init for sched_before_next_call.
17462         (free_deps): Free pending mems lists.  Don't zero reg_last.
17463         (init_deps_global): Init reg_pending_uses.
17464         (finish_deps_global): Free it.
17465         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
17466         (find_insn_mem_list): Remove.
17467         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
17468         (propagate_deps): Use them.  Zero temp mem lists.
17469
17470 2002-01-26  Richard Henderson  <rth@redhat.com>
17471
17472         * Makefile.in (CRTSTUFF_CFLAGS): New.
17473         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
17474         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
17475         crtstuff.c instead of alpha assembly version.
17476         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
17477         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
17478         not FORCE_{INIT,FINI}_SECTION_ALIGN.
17479         (__do_global_dtors_aux): Mark used.
17480         (frame_dummy, __do_global_ctors_aux): Mark used.
17481         (fini_dummy, init_dummy): Remove.
17482
17483         * config/alpha/crtbegin.asm: Remove file.
17484         * config/alpha/crtend.asm: Remove file.
17485         * config/alpha/t-crtbe: Remove file.
17486         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
17487         (LINK_EH_SPEC): New.
17488
17489         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
17490         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
17491         calling constructors.
17492         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
17493
17494         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
17495         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
17496         CRT_END_INIT_DUMMY hack.
17497         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
17498         FORCE_{INIT,FINI}_SECTION_ALIGN.
17499
17500         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
17501         FORCE_{INIT,FINI}_SECTION_ALIGN.
17502
17503         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
17504         invocation sequence.
17505         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
17506
17507         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
17508         (FORCE_CODE_SECTION_ALIGN): New.
17509
17510 2002-01-26  Richard Henderson  <rth@redhat.com>
17511
17512         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
17513
17514 2002-01-26  Richard Henderson  <rth@redhat.com>
17515
17516         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
17517         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
17518
17519 2002-01-26  Kazu Hirata  <kazu@hxi.com>
17520
17521         * config/h8300/h8300.md: Remove bit extraction patterns that
17522         cannot be triggered.
17523         Restrict each bit extraction pattern to a variant on which the
17524         pattern is tested.
17525
17526 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
17527
17528         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
17529
17530 2002-01-26  Kazu Hirata  <kazu@hxi.com>
17531
17532         * config/h8300/h8300.md: Remove bit test patterns that cannot
17533         be triggered.
17534         Restrict each bit test pattern to a variant on which the
17535         pattern is tested.
17536
17537 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17538
17539         * builtins.c (expand_builtin_strncat): Remove redundant check for
17540         INTEGER_CST.
17541
17542 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
17543
17544         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
17545         default setting.
17546         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
17547         existing setting.
17548
17549 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
17550
17551         * dbxout.c (dbxout_init): Use assemble_name rather than just
17552         stripping off the first character.
17553         (dbxout_source_file): Likewise.
17554
17555 2002-01-25  DJ Delorie  <dj@redhat.com>
17556
17557         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
17558         using rtx_equal_p, not by comparing pointers.
17559
17560 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
17561
17562         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
17563         for PIC_OFFSET_TABLE_REGNUM.
17564         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
17565
17566 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
17567
17568         * config.gcc (x86_64-*-freebsd*): New target.
17569         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
17570         value.
17571         (i[34567]86-*-freebsd*): Don't include svr4.h.
17572         * config/i386/freebsd64.h: New file.
17573
17574 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
17575
17576         * config/alpha/x-vms (version): Make static.
17577
17578         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
17579         in previous checkin.
17580
17581         * Makefile.in (install-headers-cp): New target.
17582         * config.gcc (alpha-dec-*vms*): Install headers with
17583         install-headers-cp
17584
17585 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
17586
17587         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
17588         avoid it's copies.
17589
17590 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17591
17592         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
17593         of compare_tree_int.
17594         (expand_builtin_strncat): Likewise.
17595         * c-decl.c (finish_struct): Use tree_low_cst.
17596         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
17597         * tree.c (compare_tree_int): Likewise.
17598
17599 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
17600
17601         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
17602         adjustments even if they are implemented by more than two insns.
17603
17604 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
17605
17606         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
17607         * df.h (struct ref): Kill B.
17608         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
17609
17610         * basic-block.h (PROP_EQUAL_NOTES): New flag.
17611         * flow.c (propagate_one_insn): Use it.
17612         (mark_used_regs): Handle NIL.
17613
17614 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
17615
17616         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
17617         to help folding.
17618
17619 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
17620
17621         * rs6000.md (prefetch): Make address V4SI mode so that the address
17622         is restricted to legitimate form for instruction.
17623
17624 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
17625
17626         * doc/install.texi (xtensa-*-elf): New target.
17627         (xtensa-*-linux*): New target.
17628         * doc/contrib.texi: Add myself.
17629
17630 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
17631
17632         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
17633         purpose register to hold an SImode (or smaller) value.
17634
17635 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
17636
17637         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
17638         registry only.
17639         * crtstuff.c: Likewise.
17640
17641 2002-01-25  Kazu Hirata  <kazu@hxi.com>
17642
17643         * config/h8300/h8300.md (negation patterns): Tighten
17644         predicates to register_operand.
17645
17646 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
17647
17648         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
17649         mode, not Pmode.
17650
17651         * builtins.c (expand_builtin_prefetch): Same.
17652
17653 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17654
17655         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
17656         modes.
17657
17658 2002-01-24  Kazu Hirata  <kazu@hxi.com>
17659
17660         * config/h8300/h8300.c (print_operand): Remove support for
17661         operand character 'A'.
17662         * config/h8300/h8300.md (three anonymous patterns): Replace
17663         operand character 'A' with either 'T' or 'S'.
17664
17665 2002-01-24  Kazu Hirata  <kazu@hxi.com>
17666
17667         * config/h8300/h8300.c (print_operand): Remove support for
17668         operand character 'U'.
17669
17670 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
17671
17672         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
17673
17674 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
17675
17676         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
17677         values to be assigned to the stack pointer.
17678
17679 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17680
17681         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
17682         to const_double needs to be done right for big-endian systems.
17683
17684 2002-01-24  Jason Merrill  <jason@redhat.com>
17685
17686         PR c++/2432
17687         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
17688         to can_throw_internal.
17689
17690 2002-01-23  Richard Henderson  <rth@redhat.com>
17691
17692         * fold-const.c (fold): Change UINT_MAX test to check vs precision
17693         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
17694
17695 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17696
17697         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
17698         (symGOT2reg): Use them, then set as GOT value as unchanging.
17699         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
17700         as a temporary, if possible.
17701         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
17702         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
17703
17704 2002-01-23  Kazu Hirata  <kazu@hxi.com>
17705
17706         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
17707         accept to accept 0x80 as operands[2].
17708
17709 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17710
17711         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
17712
17713 2002-01-23  Richard Henderson  <rth@redhat.com>
17714
17715         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
17716
17717 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
17718
17719         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
17720         (parmlist_or_identifiers_1): Verify that only a parmlist follows
17721         an attribute.
17722
17723 2002-01-23  Richard Henderson  <rth@redhat.com>
17724
17725         * expr.c (move_by_pieces_1): Extend size before negation.
17726
17727         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
17728         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
17729         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
17730         * config/m68k/t-m68kelf: Likewise.
17731
17732 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
17733
17734         * config/xtensa/elf.h: New file.
17735         * config/xtensa/lib1funcs.asm: New file.
17736         * config/xtensa/lib2funcs.S: New file.
17737         * config/xtensa/linux.h: New file.
17738         * config/xtensa/t-xtensa: New file.
17739         * config/xtensa/xtensa-config.h: New file.
17740         * config/xtensa/xtensa-protos.h: New file.
17741         * config/xtensa/xtensa.c: New file.
17742         * config/xtensa/xtensa.h: New file.
17743         * config/xtensa/xtensa.md: New file.
17744         * config.gcc (xtensa-*-elf*): New target.
17745         (xtensa-*-linux*): New target.
17746         * cse.c (canon_hash): Compare rtx pointers instead of register
17747         numbers.  This is required for the Xtensa port.
17748         * integrate.c (copy_insn_list): Handle case where the static
17749         chain is in memory and the memory address has to be copied to
17750         a register.
17751         * doc/invoke.texi (Option Summary): Add Xtensa options.
17752         (Xtensa Options): New node.
17753         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
17754
17755 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
17756
17757         * diagnostic.c (internal_error): Do ICE suppression only
17758         when ENABLE_CHECKING is not defined.
17759
17760         * c-typeck.c (require_complete_type): Return error_mark_node
17761         if type is error_mark_node.
17762
17763 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
17764
17765         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
17766         -Os and issue a warning.
17767
17768 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
17769
17770         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
17771         current (lack of) need for host configuration by hand.
17772
17773         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
17774         references.  Documentation of some target macros moved from
17775         hostconfig.texi to tm.texi.
17776
17777 2002-01-23  Will Cohen  <wcohen@redhat.com>
17778
17779         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
17780         defined.
17781
17782 2002-01-23  Kazu Hirata  <kazu@hxi.com>
17783
17784         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
17785         operand[3].
17786
17787 2002-01-23  Jason Merrill  <jason@redhat.com>
17788
17789         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
17790
17791         * function.c (assign_parms): Don't put args of inline functions
17792         into registers when not optimizing.
17793
17794 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
17795
17796         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
17797         (prologue_use): New pattern.
17798         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
17799         preference to gen_rtx_USE.
17800         (thumb_expand_prologue): Use gen_prologue_use in preference to
17801         gen_rtx_USE.
17802         (thumb_expand_epilogue): Use gen_prologue_use in preference to
17803         gen_rtx_USE.
17804
17805 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
17806
17807         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
17808
17809 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
17810
17811         PR c/3504
17812         * doc/extend.texi: Correct documentation of __alignof__.
17813
17814 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
17815
17816         * params.h: Rename arguments of DEFPARAM so that it will be
17817         recognized as a translation keyword.
17818
17819 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17820
17821         * extend.texi: Document altivec functions.
17822         Fix N-bit adjectives in X86 builtin documentation.
17823
17824 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
17825
17826         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
17827         auto_inc_dec values.
17828
17829 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
17830
17831         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
17832         after backslash.
17833         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
17834
17835 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
17836
17837         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
17838
17839 2002-01-22  Richard Henderson  <rth@redhat.com>
17840
17841         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
17842         copy_insn not copy_rtx.
17843
17844 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
17845
17846         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
17847         "nonzero" as that might add "1" bits.  Ensure "constop" is
17848         properly sign extened.
17849         (force_to_mode): Tweak for sign extended constop.
17850
17851 2002-01-22  Richard Henderson  <rth@redhat.com>
17852
17853         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
17854         for_each_rtx instead of assuming we're already looking at the MEM.
17855         (split_small_symbolic_mem_operand): Likewise.
17856         * config/alpha/alpha.h (PREDICATE_CODES): Update.
17857         * config/alpha/alpha.md (small symbolic memory splitters): Update.
17858
17859 2002-01-22  Richard Henderson  <rth@redhat.com>
17860
17861         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
17862         sequence number for the literal.
17863         (divmoddi_internal_er): Likewise.
17864
17865 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17866
17867         PR java/4972
17868         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
17869         in LIBICONV variable.
17870         * configure: Regenerated.
17871
17872 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
17873
17874         * dependence.c (build_def_use): Remove array_idx.
17875
17876         * dwarfout.c (last_filename): Remove.
17877         (output_compile_unit_die): Remove last_filename.
17878
17879 2002-01-22  Roger Sayle  <roger@eyesopen.com>
17880             Richard Henderson  <rth@redhat.com>
17881
17882         PR opt/3640
17883         * fold-const.c (fold): Optimize unsigned comparisons against
17884         UINT_MAX (and similar unsigned constants).
17885
17886 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
17887
17888         * Makefile.in (loop.o): Depend on OPTABS_H.
17889         * loop.c (emit_prefetch_instructions): Check the prefetch operand
17890         against the predicate.
17891
17892         PR target/5379
17893         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
17894         for the address operand.
17895
17896 2002-01-22  Richard Henderson  <rth@redhat.com>
17897
17898         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
17899
17900 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17901
17902         PR other/5450
17903         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
17904         preprocessor flags.
17905
17906 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
17907
17908         * config.gcc (x86_64-*-netbsd*): New target.
17909         * config/i386/netbsd64.h: New file.
17910
17911 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17912
17913         * regrename.c (kill_value): Fix typo.
17914
17915 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17916
17917         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
17918
17919         * config/rs6000/rs6000.h: Same.
17920
17921         * function.c (instantiate_virtual_regs): Remove
17922         STARTING_FRAME_PHASE.
17923         (assign_stack_local_1): Same.
17924         Calculate frame phase.
17925
17926 2002-01-22  Nick Clifton  <nickc@redhat.com>
17927
17928         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
17929         variable declaration to outer scope in order to simplify
17930         future extensions.
17931         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
17932         arm_hard_regno_mode_ok.
17933         * config/arm/arm-protos.h: Add a prototype for
17934         arm_hard_regno_mode_ok.
17935         * config/arm/arm.c (soft_df_operand): Remove now redundant
17936         check for DImode values using IP_REGNUM.
17937         (nonimmediate_soft_df_operand): Remove now redundant check for
17938         DImode values using IP_REGNUM.
17939         (arm_hard_regno_mode_ok): New function. New check: make sure
17940         that DImode values are not stored in IP_REGNUM.
17941
17942         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
17943         note with a USE.
17944         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
17945
17946 2002-01-22  Jason Merrill  <jason@redhat.com>
17947
17948         * c-semantics.c (genrtl_compound_stmt): Only check nesting
17949         consistency if this COMPOUND_STMT is scoped.
17950
17951 2002-01-22  Kazu Hirata  <kazu@hxi.com>
17952
17953         * predict.c: Fix formatting.
17954         * print-tree.c: Likewise.
17955         * protoize.c: Likewise.
17956         * real.h: Likewise.
17957         * rtl.h: Likewise.
17958         * sbitmap.h: Likewise.
17959         * scan.c: Likewise.
17960         * sched-deps.c: Likewise.
17961         * sched-vis.c: Likewise.
17962         * sdbout.c: Likewise.
17963         * sibcall.c: Likewise.
17964         * ssa.c: Likewise.
17965         * ssa-ccp.c: Likewise.
17966         * ssa-dce.c: Likewise.
17967         * stmt.c: Likewise.
17968         * stor-layout.c: Likewise.
17969         * system.h: Likewise.
17970
17971 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17972
17973         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
17974         if fits in bounds of base type.
17975
17976         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
17977         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
17978         (add_bound_info, default): If can't find a context, make a
17979         SAVE_EXPR.
17980         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
17981
17982 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
17983
17984         * c-typeck.c (parser_build_binary_op): If result from
17985         build_binary_op is ERROR_MARK just return error_mark_node without
17986         further processing.
17987
17988 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
17989
17990         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
17991         Split a.out-specific bits into...
17992         * config/netbsd-aout.h: ...this.
17993         * config/netbsd-elf.h: New file.
17994         * config/alpha/netbsd-elf.h: Remove.
17995         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
17996         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
17997         (STARTFILE_SPEC): Remove redundant definition.
17998         (ENDFILE_SPEC): Likewise.
17999         (LINK_SPEC): Likewise.
18000         (CPP_SPEC): Likewise.
18001         (ASM_SPEC): Likewise.
18002         (LIB_SPEC): Likewise.
18003         (SWITCH_TAKES_ARG): Likewise.
18004         (TARGET_MEM_FUNCTIONS): Likewise.
18005         (CPP_PREDEFINES): Redefine.
18006         (ASM_FINAL_SPEC): Remove redefinition.
18007         (ASM_COMMENT_START): Redefine.
18008         (FUNCTION_PROFILER): Define.
18009         (TARGET_VERSION): Redefine.
18010         Comment and formatting cleanup.
18011         * config/i386/netbsd.h: Include <netbsd-aout.h>.
18012         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
18013         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
18014         big- or little-endian.
18015         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
18016         * config.gcc (*-*-netbsd*): Add definitions common to all
18017         NetBSD configs.
18018         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
18019         gnu_ld definitions.  Add netbsd-elf.h to and remove
18020         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
18021         tmake_file, and don't lose previous tmake_file contents.
18022         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
18023         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
18024         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
18025         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
18026         (mipsel-*-netbsd*): Rename this to...
18027         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
18028         mips/little.h to tm_file for mips*el-*.
18029         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
18030         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
18031         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
18032
18033 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18034
18035         * pa-protos.h (reg_before_reload_operand): New function prototype.
18036         * pa.c (reg_before_reload_operand): New function implementation.
18037         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
18038         contraints to "*m".
18039
18040 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18041
18042         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
18043
18044 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18045
18046         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
18047         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
18048         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
18049         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
18050         (ENDFILE_SPEC): Undefine.
18051         (STARTFILE_SPEC): Redefine for PA.
18052
18053 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18054
18055         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
18056
18057 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
18058
18059         * config.gcc: Add entries to supported PowerPC --with-cpu
18060         types.
18061
18062 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
18063
18064         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
18065         true for 64-bit mode only SSE registers in 32-bit mode.
18066
18067 2002-01-21  Kazu Hirata  <kazu@hxi.com>
18068
18069         * unwind-dw2.c: Fix formatting.
18070         * unwind-dw2-fde.c: Likewise.
18071         * unwind-dw2-fde.h: Likewise.
18072         * unwind-pe.h: Likewise.
18073         * varasm.c: Likewise.
18074         * varray.h: Likewise.
18075
18076 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
18077
18078         Remove workaround for register stack overwrite bug in mmix.
18079         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
18080         support for TARGET_REG_STACK_FILL_BUG.
18081         * config/mmix/mmix.h: Remove member has_call_without_parameters.
18082         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
18083         Delete.
18084         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
18085         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
18086         -mno-reg-stack-fill-bug-workaround.
18087         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
18088         machine member has_call_without_parameters.
18089         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
18090         -mreg-stack-fill-bug-workaround and
18091         -mno-reg-stack-fill-bug-workaround.
18092         (MMIX Options): Ditto.
18093
18094 2002-01-21  Kazu Hirata  <kazu@hxi.com>
18095
18096         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
18097         as appropriate.
18098         Remove redundant code.
18099
18100 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
18101
18102         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
18103         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
18104         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
18105         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
18106         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
18107         out target macro definitions and non-target-specific comments
18108         mostly taken from old versions of the manual.
18109
18110 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18111
18112         * config/h8300/h8300.h: Fix comment formatting.
18113         * config/ia64/aix.h: Likewise.
18114         * config/ia64/ia64-protos.h: Likewise.
18115         * config/ia64/ia64.c: Likewise.
18116         * config/ia64/ia64.h: Likewise.
18117         * config/ia64/ia64intrin.h: Likewise.
18118         * config/ia64/linux.h: Likewise.
18119         * config/ia64/unwind-aix.c: Likewise.
18120         * config/ia64/unwind-ia64.c: Likewise.
18121
18122 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18123
18124         * config/h8300/h8300.c: Revise comments about shift code.
18125
18126 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18127
18128         * config/h8300/h8300.c (function_arg): Update a comment.
18129
18130 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18131
18132         * config/h8300/h8300.md: Update the comments at the beginning
18133         of the file.
18134
18135 2002-01-20  Kazu Hirata  <kazu@hxi.com>
18136
18137         * config/i370/i370.c: Fix comment formatting.
18138         * config/i370/i370.h: Likewise.
18139         * config/i370/i370.md: Likewise.
18140         * config/i370/linux.h: Likewise.
18141
18142 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18143
18144         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
18145
18146         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
18147         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
18148         in incomplete case.
18149
18150 2002-01-20  Graham Stott  <grahams@redhat.com>
18151
18152         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
18153
18154 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18155
18156         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
18157
18158 2002-01-19  Tom Rix  <trix@redhat.com>
18159
18160         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
18161
18162 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
18163
18164         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
18165
18166         * function.c (assign_stack_local_1): Adjust x_frame_offset with
18167         STARTING_FRAME_PHASE.
18168         (STARTING_FRAME_PHASE): New.
18169         (instantiate_virtual_regs): Check saneness of
18170         STARTING_FRAME_PHASE.
18171
18172         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
18173
18174 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
18175
18176         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
18177
18178 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18179
18180         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
18181         be used for bootstrapping GCC 3.0.
18182
18183 2002-01-18  Kazu Hirata  <kazu@hxi.com>
18184
18185         * config/h8300/h8300.md: Fix an insn length.
18186
18187 2002-01-18  Kazu Hirata  <kazu@hxi.com>
18188
18189         * bitmap.h: Fix comment formatting.
18190         * combine.c: Likewise.
18191         * cppfiles.c: Likewise.
18192         * c-pragma.h: Likewise.
18193         * c-typeck.c: Likewise.
18194         * df.c: Likewise.
18195         * dwarf2out.c: Likewise.
18196         * function.c: Likewise.
18197         * gcc.c: Likewise.
18198         * genattrtab.c: Likewise.
18199         * gthr-win32.h: Likewise.
18200         * haifa-sched.c: Likewise.
18201         * predict.c: Likewise.
18202         * rtlanal.c: Likewise.
18203         * rtl.h: Likewise.
18204         * unwind-dw2-fde.h: Likewise.
18205         * unwind-pe.h: Likewise.
18206         * vmsdbgout.c: Likewise.
18207
18208 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18209
18210         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
18211         if type_required and passed decl.
18212
18213 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
18214
18215         * config.gcc (cpu_type): Include altivec.h in powerpc
18216         extra_headers.
18217         Same for darwin.
18218
18219         * config/rs6000/altivec.h: New.
18220
18221 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
18222
18223         * doc/install.texi (*-ibm-aix*): Update assembler and exception
18224         handling information.
18225         * doc/trouble.texi (Interoperation): Add libstdc++ information
18226         for AIX.
18227         (Misunderstandings): Add template instantiation and static template
18228         member information for AIX.
18229
18230 2002-01-17  Jason Merrill  <jason@redhat.com>
18231
18232         * dbxout.c (dbxout_type): Support const and volatile.
18233
18234         * except.c (add_partial_entry): Remove backwards compatibility code.
18235         (end_protect_partials): Likewise.
18236
18237 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
18238
18239         * config/ia64/ia64.md (prologue_use): New.
18240         * config/ia64/ia64.c (ia64_expand_prologue): Use
18241         gen_prologue_use instead of gen_rtx_USE.
18242         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
18243         as CODE_FOR_pred_rel_mutex.
18244         (ia64_sched_reorder2): Likewise.
18245
18246 2002-01-16  Eric Christopher  <echristo@redhat.com>
18247
18248         * config/mips/r3900.h: Reformat.
18249         (SUBTARGET_CPP_SIZE_SPEC): Remove.
18250         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
18251         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
18252         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
18253         * config/mips/t-elf: Remove mips3 multilib.
18254
18255 2002-01-16  H.J. Lu <hjl@gnu.org>
18256
18257         * config/mips/linux.h: Include "mips/abi64.h".
18258
18259 2002-01-16  H.J. Lu <hjl@gnu.org>
18260
18261         * config/mips/t-linux: New.
18262
18263         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
18264
18265         * config/mips/linux.h: Don't include "gofast.h".
18266         (INIT_SUBTARGET_OPTABS): Removed.
18267
18268 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18269
18270         * config/h8300/h8300-protos.h: Replace emit_a_shift with
18271         output_a_shift.
18272         * config/h8300/h8300.c: Likewise.
18273         * config/h8300/h8300.md: Likewise.
18274
18275 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18276
18277         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
18278         spaces after an opcode name.
18279         (pushqi1_h8300hs): Likewise.
18280         (pushhi1_h8300hs): Likewise.
18281
18282 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18283
18284         * doc/extend.texi: Replace "option" with "attribute"
18285         appropriately.
18286
18287 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18288
18289         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
18290         (and:DI () (const_int -8)).
18291         (split_small_symbolic_mem_operand): Split
18292         (mem (and:DI () (const_int -8)).
18293
18294 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18295
18296         PR target/5309:
18297         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
18298         same way as TYPE_IMUL.
18299         (ultrasparc_sched_reorder): Likewise.
18300         * config/sparc/sparc.md (type): Add comment to update
18301         ultrasparc_sched_reorder when making changes.
18302
18303 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18304
18305         * doc/invoke.texi: Change the dump file name of block
18306         reordering pass from 28.bbro to 29.bbro.
18307         Mention -dk option.
18308
18309 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18310
18311         * i386.md (minsf splitter): Fix pasto.
18312
18313 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
18314
18315         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
18316         to frame pointer initialisation instruction.
18317         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
18318         initialisation instruction.
18319         (soft_df_operand): Do not accept the IP register.
18320         (nonimmediate_soft_df_operand): Do not accept the IP register.
18321
18322 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18323
18324         PR target/5357:
18325         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
18326         MASK_V8 being both set.
18327
18328 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
18329
18330         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
18331         insn for GOT register; add REG_MAYBE_DEAD notes instead.
18332         config/s390/s390.md (call, call_value): Add GOT register to
18333         CALL_INSN_FUNCTION_USAGE where needed.
18334         (call_exp, call_value_exp): New.
18335
18336 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
18337
18338         * config/arm/arm.c: General formatting tidy up.
18339
18340 2002-01-16  Graham Stott  <grahams@redhat.com>
18341
18342         * calls.c (try_to_integrate): Use "(size_t)" intermediate
18343         cast and when casting an integer literal to "rtx" pointer.
18344         (expand_call): Likewise.
18345         * flow.c (try_pre_increment): Likewise.
18346         (find_use_as_address): Likewise.
18347         * integrate.c (expand_iline_function): Likewise.
18348         * regmove.c (try_auto_increment): Likewise.
18349
18350 2002-01-16  Graham Stott  <grahams@redhat.com>
18351
18352         * sched-rgn.c (passed): Use sbitmap_free.
18353         (header): Likewise.
18354         (inner): Likewise.
18355         (in_queue): Likewise.
18356         (in_stack): Likewise.
18357
18358 2002-01-15  Eric Christopher  <echristo@redhat.com>
18359
18360         * flow.c (propagate_one_insn): Change to use fatal_insn.
18361
18362 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18363
18364         * expmed.c (extract_fixed_bit_field): Remove unused code.
18365         * system.h: Poison SLOW_ZERO_EXTEND.
18366         * doc/tm.texi: Remove.
18367         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
18368         * config/arm/arm.h: Likewise.
18369         * config/avr/avr.h: Likewise.
18370         * config/clipper/clipper.h: Likewise.
18371         * config/convex/convex.h: Likewise.
18372         * config/d30v/d30v.h: Likewise.
18373         * config/dsp16xx/dsp16xx.h: Likewise.
18374         * config/elxsi/elxsi.h: Likewise.
18375         * config/fr30/fr30.h: Likewise.
18376         * config/h8300/h8300.h: Likewise.
18377         * config/i370/i370.h: Likewise.
18378         * config/i386/i386.h: Likewise.
18379         * config/m68k/m68k.h: Likewise.
18380         * config/mips/mips.h: Likewise.
18381         * config/ns32k/ns32k.h: Likewise.
18382         * config/pdp11/pdp11.h: Likewise.
18383         * config/pj/pj.h: Likewise.
18384         * config/s390/s390.h: Likewise.
18385         * config/sh/sh.h: Likewise.
18386         * config/stormy16/stormy16.h: Likewise.
18387         * config/v850/v850.h: Likewise.
18388         * config/vax/vax.h: Likewise.
18389         * config/we32k/we32k.h: Likewise.
18390
18391 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
18392
18393         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
18394         (altivec_lvsl): Change constraint to b.
18395         (altivec_lvsr): Same.
18396         (altivec_lvebx): Same.
18397         (altivec_lvehx): Same.
18398         (altivec_lvewx): Same.
18399         (altivec_lvxl): Same.
18400         (altivec_lvx): Same.
18401         (altivec_stvx): Add parallel.
18402         (altivec_stvxl): Same.
18403         (altivec_stvehx): Same.
18404         (altivec_stvebx): Same.
18405         (altivec_stvebx): Same.
18406
18407 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
18408
18409         * config.gcc: Change altivec.h to altivec-defs.h.
18410
18411         * config/rs6000/altivec.h: Delete.
18412
18413         * config/rs6000/altivec-defs.h: Add.
18414
18415 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18416
18417         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
18418         and UMOD modes.
18419
18420         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
18421         less than or equal to eight bytes.
18422
18423         * vax.md (andsi3): Remove constraints and change SET destination
18424         operand type to nonimmediate_operand.
18425         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
18426         when it is a CONST_INT.
18427
18428 2002-01-15  Jason Merrill  <jason@redhat.com>
18429
18430         * c-common.def (FILE_STMT): New code.
18431         * c-common.c (statement_code_p): It's a statement.
18432         * c-common.h (stmt_tree_s): Add x_last_filename.
18433         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
18434         (last_expr_filename): New macro.
18435         * c-semantics.c (begin_stmt_tree): Initialize it.
18436         (add_stmt): If the filename changed, also insert a
18437         FILE_STMT.
18438         (expand_stmt): Handle seeing one.
18439
18440 2002-01-15  Eric Christopher  <echristo@redhat.com>
18441
18442         * flow.c (propagate_one_insn): Add error message and print out
18443         insn for debugging.
18444
18445 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
18446
18447         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
18448         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
18449         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
18450         TRAMPOLINE_ALIGNMENT.
18451         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
18452         to be in bits.
18453         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
18454         PCC_BITFIELD_TYPE_MATTERS.
18455         * config/interix.h (STDC_VALUE): Remove.  Use
18456         STDC_0_IN_SYSTEM_HEADERS.
18457         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
18458         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
18459         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
18460
18461 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18462
18463         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
18464         not work on this platform currently.
18465
18466 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
18467
18468         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
18469         readonly_warning in _().
18470
18471 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
18472
18473         * gcc.c (delete_if_ordinary): Backout previous change.
18474
18475 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18476
18477         * config/h8300/h8300.c (print_operand): Remove support for
18478         unused operand characters.
18479
18480         * read-rtl.c: Fix formatting.
18481         * real.c: Likewise.
18482         * recog.c: Likewise.
18483         * regclass.c: Likewise.
18484         * regmove.c: Likewise.
18485         * reg-stack.c: Likewise.
18486         * reload1.c: Likewise.
18487         * rtlanal.c: Likewise.
18488
18489 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18490
18491         * config/i386/i386.c: Fix formatting.
18492
18493 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
18494
18495         * c-typeck.c (process_init_element): Don't save_expr
18496         COMPOUND_LITERAL_EXPR if just its initializer will be used.
18497
18498 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
18499
18500         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
18501         emit optional traceback table if optimize_size or TARGET_ELF.
18502         * config/rs6000/rs6000.md (prefetch): New.
18503
18504 2002-01-15  Andreas Jaeger  <aj@suse.de>
18505
18506         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
18507
18508 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18509
18510         * mips-tfile.c: Fix formatting.
18511
18512 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
18513
18514         * unroll.c (final_reg_note_copy): Fix previous commit.
18515
18516 2002-01-14  Kazu Hirata  <kazu@hxi.com>
18517
18518         * config/h8300/h8300-protos.h: Remove the prototype for
18519         eq_operator.
18520         * config/h8300/h8300.c (eq_operator): Remove.
18521
18522 2002-01-14  Richard Henderson  <rth@redhat.com>
18523
18524         * config/i386/i386.md (prefetch): Tidy.
18525         (prefetch_3dnow): Fix locality operand.
18526
18527 2002-01-14  Richard Henderson  <rth@redhat.com>
18528
18529         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
18530         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
18531
18532 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
18533
18534         * reload1.c (reload_combine): Pass reg_sum replacement through
18535         copy_rtx in loop performing multiple changes.
18536
18537 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
18538
18539         * except.c (remove_unreachable_regions): New.
18540         (free_eh_status): Clear exception_handler_labels.
18541         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
18542         (find_exception_handler_labels): Don't add the same label more than
18543         once.
18544         (remove_exception_handler_label): Don't die if
18545         find_exception_handler_labels hasn't been called for the current
18546         function yet.
18547
18548 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
18549
18550         * toplev.c (rest_of_compilation): Rebuild jump labels after
18551         gcse.
18552
18553 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
18554
18555         * doc/extend.texi: Move documentation of X86 built-in functions
18556         here.
18557         * doc/invoke.texi: From here.
18558         * doc/sourcebuild.texi: Document location of documentation for
18559         machine built-in functions.
18560
18561 2002-01-13  Christopher Faylor  <cgf@redhat.com>
18562
18563         * cppfiles.c (TEST_THRESHOLD): New macro.
18564         (SHOULD_MMAP): Ditto.
18565         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
18566         be used.
18567
18568 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
18569
18570         * unroll.c (final_reg_note_copy): Properly handle
18571         REG_LABEL
18572         (unroll_loops): Fix LOOP_CONDITION heuristics.
18573
18574 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
18575
18576         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
18577         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
18578
18579 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
18580
18581         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
18582         threaded loop.
18583
18584 2002-01-14  Tom Rix  <trix@redhat.com>
18585
18586         * config/rs6000/rs6000.md: Fix typo with sradi.
18587
18588 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
18589
18590         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
18591         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
18592         (clrstrdi, clrstrsi): Adapt callers.
18593
18594         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
18595
18596         (movti splitter): Never use register 0 as base register.
18597
18598 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
18599
18600         * combine.c (simplify_shift_const): Always generate new rtx
18601         for shift expression instead of reusing given expression.
18602
18603 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18604
18605         * config/alpha/alpha.c (alpha_expand_mov): Don't call
18606         alpha_legitimize_address unless mode is Pmode.
18607
18608 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
18609
18610         * doc/md.texi (Modifiers): Document the '*' constraint for the
18611         user.
18612
18613         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
18614         * doc/extend.texi (Function Attributes): 'interrupt' is valid
18615         for xstormy16 too.
18616
18617 2002-01-13  Richard Henderson  <rth@redhat.com>
18618
18619         * reload.c (find_reloads): Use a hard reg destination as reload reg
18620         for an input reload of the source.
18621
18622 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18623
18624         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
18625         more generic.
18626
18627 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
18628
18629         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
18630         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
18631
18632         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
18633
18634 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18635
18636         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
18637
18638 2002-01-12  Tom Rix  <trix@redhat.com>
18639
18640         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
18641         TARGET_POWERPC64.
18642
18643 2002-01-12  Richard Henderson  <rth@redhat.com>
18644
18645         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
18646
18647         * doc/invoke.texi: Update Alpha options.
18648
18649         * doc/invoke.texi: Update i386 built-in function lists.
18650
18651 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
18652
18653         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
18654         referencing outside.
18655
18656 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18657
18658         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
18659         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
18660         offsets, and change line folding.
18661         * optabs.c (expand_binop): Remove warnings.
18662         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
18663
18664 2002-01-12  Graham Stott <grahams@redhat.com>
18665
18666         * attribs.c (handle_deprecated_attribute): constify WHAT.
18667         * diagnostic.c (warn_deprecated_use): Add braces, fixes
18668         dangling else warning and constify WHAT.
18669         * except.h (struct function, struct inline_remap): Move
18670         struct tag forward defs before all prototypes.
18671         (duplicate_eh_regions): Whitespace.
18672
18673 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
18674
18675         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
18676         MODE_BASE_REG_CLASS.
18677         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
18678
18679 2002-01-12  Richard Henderson  <rth@redhat.com>
18680
18681         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
18682         (ix86_expand_vector_move): New.
18683         (bdesc_2arg): Remove andps, andnps, orps, xorps.
18684         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
18685         Remove old prefetch builtins.  Special case the logicals removed above.
18686         (ix86_expand_builtin): Likewise.
18687         (safe_vector_operand): Use V4SFmode, not TImode.
18688         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
18689         (ix86_expand_timode_binop_builtin): New.
18690         * config/i386/i386-protos.h: Update.
18691         * config/i386/i386.h (enum ix86_builtins): Update.
18692         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
18693         Use ix86_expand_vector_move in vector move expanders.
18694         (movti_internal, movti_rex64): Add xorps alternative.
18695         (sse_clrv4sf): Rename and adjust from sse_clrti.
18696         (prefetch): Don't work so hard.
18697         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
18698         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
18699         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
18700
18701 2002-01-11  Richard Henderson  <rth@redhat.com>
18702
18703         * config/i386/mmintrin.h: New file.
18704         * config/i386/xmmintrin.h: New file.
18705         * config.gcc (i?86-*-*): Add extra_headers.
18706         * simplify-rtx.c (simplify_unary_operation): Handle saturating
18707         truncation codes.
18708         (simplify_binary_operation): Handle saturating arithmetic codes.
18709         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
18710         not the lowpart subreg.
18711         (ix86_expand_builtin): Return a TImode dummy register instead of 0
18712         on error.
18713         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
18714
18715 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18716
18717         * conflict.c (conflict_graph_compute): Free regsets when finished.
18718         * ssa.c (compute_coalesced_reg_partition): Likewise.
18719
18720 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18721
18722         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
18723         every where we allocate a register.
18724
18725 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18726
18727         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
18728         * lcm.c (compute_earliest, compute_farthest): Likewise.
18729
18730 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
18731
18732         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
18733
18734 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
18735
18736         * doc/rtl.texi (Insns): Fix 2 typos.
18737
18738 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
18739
18740         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
18741         options.  Use @table @gcctabopt for MMIX options.  Add index
18742         entries for MMIX options.  Start new paragraph with first
18743         heading of the machine-dependent options.
18744
18745 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18746
18747         PR other/5299
18748         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
18749         * combine.c (force_to_mode): Same.
18750         * reload1.c (clear_reload_reg_in_use): Same.
18751
18752 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
18753
18754         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
18755         and 'subtargets'.
18756
18757 2002-01-11  Andreas Jaeger  <aj@suse.de>,
18758             Brad Lucier <lucier@math.purdue.edu>
18759
18760         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
18761         mcpu.
18762
18763 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
18764
18765         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
18766         Protect with IN_LIBGCC.
18767         (LINK_EH_SPEC): Add required trailing space.
18768
18769 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
18770
18771         * c-tree.h: Move function declarations so that they are listed
18772         under the filename which contains them.
18773         (check_identifier, finish_decl_top_level,
18774         lookup_name_current_level_global, shadow_record_fields): Remove.
18775
18776 2002-01-11  Andreas Jaeger  <aj@suse.de>
18777
18778         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
18779         march.
18780
18781 2002-01-10  Richard Henderson  <rth@redhat.com>
18782
18783         * config/alpha/alpha.c (print_operand): Add 'J'.
18784         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
18785         new operand with the sequence number for the lituse.  When splitting
18786         the insns, use gen_movdi_er_high_g and generate a sequence number.
18787         (gen_movdi_er_high_g): Print the sequence number if non-zero.
18788
18789 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
18790
18791         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
18792         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
18793         stvxl.
18794         (altivec_expand_builtin): Same.
18795         (altivec_expand_stv_builtin): New.
18796
18797         * config/rs6000/rs6000.h (rs6000_builtins): Same.
18798
18799         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
18800         ("altivec_lvehx"): New.
18801         ("altivec_lvewx"): New.
18802         ("altivec_lvxl"): New.
18803         ("altivec_lvx"): New.
18804         ("altivec_stvx"): New.
18805         ("altivec_stvebx"): New.
18806         ("altivec_stvehx"): New.
18807         ("altivec_stvewx"): New.
18808         ("altivec_stvxl"): New.
18809
18810 2002-01-10  Richard Henderson  <rth@redhat.com>
18811
18812         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
18813         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
18814         care not to delete instructions twice.
18815
18816 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
18817
18818         * toplev.c: Don't declare environ (it's not used anywhere).
18819         * configure.in: Don't check for declaration of environ.
18820         * config/i386/xm-mingw32.h: Don't #define environ.
18821         * config.in, configure: Regenerate.
18822
18823 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
18824
18825         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
18826         * configure: Regenerate.
18827
18828         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
18829         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
18830         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
18831         alpha/xm-vms.h.
18832         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
18833         LIMITS_H_TEST here, not in m68k/x-next.
18834         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
18835         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
18836
18837         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
18838         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
18839         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
18840
18841         * config/i386/x-djgpp: Renamed i386/t-djgpp.
18842         * config/m88k/x-dolph: Renamed m88k/t-dolph.
18843         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
18844         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
18845         replacement of quadlib.asm with quadlib.c.
18846
18847         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
18848         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
18849         config/rs6000/xm-beos.h: Delete file.
18850
18851         * config.gcc: Update to match above changes.
18852
18853 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18854
18855         * config/h8300/h8300.h: Fix comment typos.
18856         * config/h8300/h8300.md: Likewise.
18857         * config/h8300/lib1funcs.asm: Likewise.
18858
18859 2002-01-10  Dale Johannesen  <dalej@apple.com>
18860
18861         PR optimization/5269
18862         * unroll.c (precondition_loop_p): Make *increment be the correct
18863         sign when n_iterations known, to avoid confusing caller.
18864
18865 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18866
18867         * doc/extend.texi (deprecated): Fix a typo.
18868
18869 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
18870
18871         * basic-block.h (update_br_prob_note): Declare.
18872         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
18873         (try_forward_edges): Care negative frequencies and update note.
18874         (outgoing_edges_match): Tweek conditional merging heuristics.
18875         (try_crossjump_to_edge): use update_br_prob_note.
18876         * cfglayout.c (fixup_reorder_chain): Likewise.
18877         * cfrtl.c (update_br_prob_note): New.
18878         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
18879
18880         * i386.c (ix86_decompose_address): Return -1 if address contains
18881         shift.
18882         (legitimate_address_p): Require ix86_decompose_address to return 1.
18883
18884         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
18885         (cprop_insn): Likewise.
18886
18887 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18888
18889         * toplev.c: Fix formatting.
18890         * tree.c: Likewise.
18891         * tree-dump.c: Likewise.
18892         * unroll.c: Likewise.
18893         * unwind-dw2.c: Likewise.
18894         * unwind-dw2-fde.c: Likewise.
18895         * unwind-dw2-fde-glibc.c: Likewise.
18896         * unwind-sjlj.c: Likewise.
18897
18898 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
18899
18900         * doc/invoke.texi: Document PDP-11 options.
18901
18902 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18903
18904         * config/h8300/h8300.h: Fix formatting.
18905
18906 2002-01-10  Ira Ruben   <ira@apple.com>
18907
18908         Add __attribute__ ((deprecated)).
18909         * extend.texi: Document __attribute__ ((deprecated)).
18910         * invoke.texi: Document -Wno-deprecated-declarations.
18911         * testsuite/g++.dg/other/deprecated.C: New C++ test.
18912         * testsuite/gcc.dg/deprecated.c: New C test.
18913         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
18914         (c_common_attribute_table): Add "deprecated" entry.
18915         (handle_deprecated_attribute): New function.
18916         * c-decl.c (deprecated_states): New enum.
18917         deprecated_state: State of "deprecated" handling.
18918         (start_decl): Set deprecated_state based on attributes.
18919         (grokdeclarator): Test for deprecated uses, propagate attribute.
18920         * c-typeck.c (build_component_ref): Test for deprecated fields.
18921         (build_external_ref): Test for deprecated primaries.
18922         * diagnostic.c (warn_deprecated_use) New function to issue
18923         warnings about __attribute__ ((depricated)) references.
18924         * flags.h (warn_deprecated_decl): Extern declared for
18925         -W[no-]deprecated-declarations option.
18926         * print-tree.c (print_node): Show deprecated flag status.
18927         * toplev.c (warn_deprecated_decl): Defined.
18928         (W_options): Added "deprecated-declaration".
18929         * toplev.h (warn_deprecated_use): Extern declared.
18930         * tree.h (struct tree_common): Define deprecated_flag.
18931         (TREE_DEPRECATED): New macro to access flag.
18932         * cp/call.c (build_call): Test for deprecated calls.
18933         * cp/class.c (add_implicitly_declared_members): Set global
18934         flag to tell grokdeclarator to not issue deprecated warnings.
18935         * cp/cp-tree.h: Add extern for adding_implicit_members.
18936         * cp/decl.c (deprecated_states): New enum.
18937         (start_decl): Set deprecated_state based on attributes.
18938         (grokdeclarator): Test for deprecated uses, propagate attribute.
18939         * cp/lex.c (do_identifier): Test for deprecated primaries.
18940         * cp/typeck.c (build_component_ref): Test for deprecated fields.
18941
18942 2002-01-10  Ira Ruben   <ira@apple.com>
18943
18944         Fix to assign attributes to inline member functions.
18945         * cp/decl.c (start_method): Handle attrlist.
18946
18947 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18948
18949         * combine.c (expand_field_assignment): Use subreg_lsb().
18950
18951 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
18952
18953         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
18954         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
18955         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
18956         Recurse for any operand of AND as long as constant is non-zero.
18957
18958 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18959
18960         * config/h8300/h8300.md: Remove constraints from expanders.
18961
18962 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18963
18964         * varasm.c: Fix formatting.
18965         * varray.c: Likewise.
18966         * vmsdbgout.c: Likewise.
18967         * xcoffout.c: Likewise.
18968
18969 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
18970
18971         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
18972         update edge probabilities to match.
18973
18974 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
18975
18976         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
18977         dependencies.
18978         * doc/languages.texi, doc/sourcebuild.texi: New files.
18979         * doc/configfiles.texi: Make a subsubsection.  Update.
18980         * doc/configterms.texi: Add @node.  Remove warning that this isn't
18981         instructions for building GCC.
18982         * doc/makefile.texi: Make a subsection.
18983         * doc/gccint.texi: Update.
18984
18985 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
18986
18987         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
18988
18989 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
18990
18991         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
18992
18993 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
18994
18995         * optabs.c (expand_fix): Look for wider integer modes first.
18996
18997         * i386.md (mov?f): Avoid the fake const double trick for medium
18998         memory model.
18999         (min?f*/max?f*): Prohibit memory operands for i387 variant.
19000         (fop_df_4): Disable for SSE compilation.
19001
19002 2002-01-10  Graham Stott  <grahams@redhat.com>
19003
19004         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
19005         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
19006
19007 2002-01-10  Richard Henderson  <rth@redhat.com>
19008
19009         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
19010
19011 2002-01-10  Richard Henderson  <rth@redhat.com>
19012
19013         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
19014         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
19015
19016 2002-01-10  Kazu Hirata  <kazu@hxi.com>
19017
19018         * combine.c (can_combine_p): Fix a comment typo.
19019
19020 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
19021
19022         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
19023         empty list correctly.  Change loop index $t to $f for
19024         consistency with rest of Makefile.
19025
19026 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
19027
19028         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
19029         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
19030
19031         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
19032         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
19033         (altivec_init_builtins): Same.
19034         (altivec_expand_unop_builtin): Return NULL_RTX on error.
19035         (altivec_expand_binop_builtin): Same.
19036         (altivec_expand_ternop_builtin): Same.
19037         (bdesc_dst): New.
19038
19039         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
19040         ("altivec_vctuxs"): Fix typo.
19041         ("altivec_vnmsubfp"): Same.
19042         ("altivec_dssall"): New.
19043         ("altivec_mfvscr"): New.
19044         ("altivec_dss"): New.
19045         ("altivec_lvsl"): New.
19046         ("altivec_lvsr"): New.
19047         ("altivec_dstt"): New.
19048         ("altivec_dstst"): New.
19049         ("altivec_dststt"): New.
19050         ("altivec_dst"): New.
19051
19052         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
19053         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
19054
19055 2002-01-09  Richard Henderson  <rth@redhat.com>
19056
19057         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
19058
19059 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
19060
19061         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
19062         function.
19063         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
19064         prototype.
19065         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
19066
19067 2002-01-09  Kazu Hirata  <kazu@hxi.com>
19068
19069         * read-rtl.c: Fix formatting.
19070         * real.c: Likewise.
19071         * regclass.c: Likewise.
19072         * regrename.c: Likewise.
19073         * reg-stack.c: Likewise.
19074         * reload1.c: Likewise.
19075         * reload.c: Likewise.
19076         * rtl.c: Likewise.
19077
19078 2002-01-09  Kazu Hirata  <kazu@hxi.com>
19079
19080         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
19081         to extract items in the expr_list chain.
19082
19083 2002-01-09  Richard Henderson  <rth@redhat.com>
19084
19085         * config/vax/vax.c (vax_rtx_cost): Never abort.
19086
19087         * config/vax/vax.h (REAL_ARITHMETIC): Define.
19088
19089 2002-01-09  Jan Hubicka  <jh@suse.cz>
19090
19091         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
19092
19093 2002-01-09  Richard Henderson  <rth@redhat.com>
19094
19095         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
19096         Unify code from various alternatives.
19097
19098 2002-01-09  Richard Henderson  <rth@redhat.com>
19099
19100         * regrename.c (copy_value): Ignore the copy if the source register
19101         is present in the value chain with a narrower mode.
19102
19103 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
19104
19105         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
19106         for the c4x target. Also improve layout.
19107
19108 2002-01-09  Richard Henderson  <rth@redhat.com>
19109
19110         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
19111         * config/m32r/m32r.md (and ior xor splitters): Swap operands
19112         to match insn patterns.
19113
19114 2002-01-09  Richard Henderson  <rth@redhat.com>
19115
19116         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
19117         (copyprop_hardreg_forward_1): Likewise.
19118
19119 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19120
19121         * pa.md (decrement_and_branch_until_zero): Change predicate for
19122         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
19123
19124 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
19125
19126         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
19127         gets undefined. For Darwin.
19128
19129 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
19130
19131         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
19132
19133 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19134
19135         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
19136
19137 2002-01-08  Richard Henderson  <rth@redhat.com>
19138
19139         * regrename.c (copy_value): Ignore overlapping copies.
19140
19141 2002-01-08  Richard Henderson  <rth@redhat.com>
19142
19143         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
19144         as needed to avoid shared structure.
19145
19146 2002-01-08  Kazu Hirata  <kazu@hxi.com>
19147
19148         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
19149         H8/300H and H8/S.
19150
19151 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
19152
19153         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
19154         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
19155         documentation of obsolete macros.
19156         * system.h: Poison these macros.
19157         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
19158         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
19159         config/c4x/c4x.h, config/clipper/clipper.h,
19160         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
19161         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
19162         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
19163         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
19164         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
19165         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
19166         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
19167         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
19168         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
19169         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
19170         config/sparc/sparc.h, config/stormy16/stormy16.h,
19171         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
19172         definitions and commented out definitions of obsolete macros.
19173         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
19174         of MAX_INT_TYPE_SIZE.
19175
19176 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
19177
19178         * config/s390/s390.c (s390_preferred_reload_class): Never
19179         return ADDR_REGS if it isn't a subset of the given class.
19180         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
19181         FP_REGS, but all superclasses as well.
19182
19183         * config/s390/s390.c (s390_function_profiler): Fix thinko.
19184
19185         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
19186         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
19187         must not be a const_int.
19188
19189 2002-01-08  Richard Henderson  <rth@redhat.com>
19190
19191         * Makefile.in (toplev.o): Depend on options.h.
19192         (gcc.o): Depend on specs.h.
19193
19194 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
19195
19196         * expr.c (store_expr): Convert VOIDmode constants back to target's
19197         mode.
19198
19199 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19200
19201         * doc/invoke.texi: Markup gcc as @command.  Refer to
19202         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
19203         of http://gcc.gnu.org/thanks.html.
19204
19205 2002-01-08  Dale Johannesen  <dalej@apple.com>
19206
19207         * config/rs6000/rs6000.md: Add missing int register
19208         target case to movdf_low.
19209
19210 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
19211
19212         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
19213         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
19214         (cppinit.o): Depend on except.h.
19215         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
19216         s-specs): New rules.
19217
19218         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
19219         Don't create specs.h/options.h/gencheck.h here.  Remove
19220         unnecessary variable settings from last argument of AC_OUTPUT.
19221         * config.in, configure: Regenerate.
19222         * intl.c: Hardcode package name as "gcc".
19223
19224         * cppinit.c: Include except.h.
19225         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
19226         appropriate.
19227         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
19228         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
19229         (!)USING_SJLJ_EXCEPTIONS.
19230         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
19231
19232 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
19233
19234         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
19235         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
19236         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
19237         documentation of obsolete macros.
19238         * system.h: Poison these macros.
19239         * config/d30v/d30v.h, config/ns32k/encore.h,
19240         config/stormy16/stormy16.h: Remove definitions and commented out
19241         definitions of obsolete macros.
19242
19243 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
19244
19245         * objc/objc-act.c (handle_class_ref): Mark the declaration of
19246         %sobjc_class_ref_%s as used - to prevent unwanted compiler
19247         warnings.
19248
19249 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
19250
19251         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
19252         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
19253         to insn adjusting stack/frame pointer.
19254         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
19255         accept operands that cause the insn to be non-splittable.
19256
19257 2002-01-08  Graham Stott  <grahams@redhat.com>
19258
19259         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
19260         (C_TYPE_FIELDS_VOLATILE): Likewise.
19261         (C_TYPE_BEING_DEFINED): Likewise.
19262         (C_IS_RESERVED_WORD): Likewise.
19263         (C_TYPE_VARIABLE_SIZE): Likewise.
19264         (C_DECL_VARIABLE_SIZE): Likewise.
19265         (C_MISSING_PROTOTYPE_WARNED): Likewise.
19266         (C_SET_EXP_ORIGINAL_CODE): Likewise.
19267         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
19268         parenthesis.
19269         (C_DECL_ANTICIPATED): Likewise.
19270         (c_build_type_variant): Add parenthesis.
19271
19272 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
19273
19274         * gcc.c (option_map): Remove --version.
19275         (process_command): Handle -fversion following the GNU Coding
19276         Standards.  Partially addresses PR other/704.
19277
19278 2002-01-08  Graham Stott  <grahams@redhat.com>
19279
19280         * combine.c (combine_instructions): Fix typo.
19281
19282 2002-01-08  Graham Stott  <grahams@redhat.com>
19283
19284         * debug.h: Use "tree" and "rtx" throughout.
19285
19286         * debug.c: Likewise.
19287
19288 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
19289
19290         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
19291         constant pool, use the pool's version of the symbol instead.
19292
19293 2002-01-07  Richard Henderson  <rth@redhat.com>
19294
19295         * regrename.c (find_oldest_value_reg): Ignore the value chain if
19296         the original register was copied in a mode with a fewer number of
19297         hard registers than the desired mode.
19298         (copyprop_hardreg_forward_1): Likewise.
19299         (debug_value_data): Fix loop test.
19300         * toplev.c (parse_options_and_default_flags): Reenable
19301         -fcprop-registers at -O1.
19302
19303 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19304
19305         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
19306         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
19307
19308         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
19309         predicates.
19310
19311         * config/rs6000/rs6000.md: Add altivec predicate patterns.
19312
19313 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19314
19315         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
19316         (pa_output_function_prologue): Output local label at the beginning of
19317         the prologue when profiling.
19318         (hppa_profile_hook): Use the local label rather than the function label.
19319         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
19320
19321 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19322
19323         * config/rs6000/rs6000.c (print_operand): Remove extra space.
19324         (altivec_expand_unop_builtin): Fix thinko.
19325         (altivec_expand_binop_builtin): Same.
19326         (altivec_expand_ternop_builtin): Same.
19327         (altivec_expand_builtin): Same.
19328
19329 2002-01-07  Richard Henderson  <rth@redhat.com>
19330
19331         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
19332
19333 2002-01-07  Jason Merrill  <jason@redhat.com>
19334
19335         * unwind-dw2.c (execute_cfa_program): Use < again.
19336
19337 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
19338
19339         * predict.c (combine_predictions_for_insn): Avoid division by zero.
19340
19341 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
19342
19343         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
19344         Don't allow -1 - x -> ~x simplifications in the first pass.
19345
19346 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19347
19348         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
19349         arguments.
19350         (altivec_expand_binop_builtin): Same.
19351         (altivec_expand_unop_builtin): Same.
19352         (print_operand): Fix typo.
19353         (bdesc_1arg): Add vupk* variants.
19354
19355         * rs6000.h (rs6000_builtins): Add vupk* enums.
19356
19357         * rs6000.md: Add altivec_vupk* variants.
19358
19359 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
19360
19361         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
19362         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
19363         and last update dates.
19364
19365 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
19366
19367         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
19368
19369 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
19370
19371         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
19372         * config/avr/avr.h (CPP_SPEC): Likewise.
19373         (LINK_SPEC): Likewise.
19374         (CRT_BINUTILS_SPECS): Likewise.
19375         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
19376         * doc/invoke.texi (AVR Options): Document them.
19377
19378 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
19379
19380         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
19381         LABEL_NUSES.
19382
19383 2002-01-07  Graham Stott  <grahams@redhat.com>
19384
19385         * config/i386/i386.h: Update copyright date.
19386         (HALF_PIC_PTR): Add parenthesis.
19387         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
19388         (CONSTANT_ALIGNMENT): Add parenthesis.
19389         (DATA_ALIGNMENT): Likewise.
19390         (LOCAL_ALIGNMENT): Likewise.
19391         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
19392         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
19393         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
19394         (HARD_REGNO_NREGS): Add paranethesis.
19395         (VALID_SSE_REG_MODE): Whitespace.
19396         (VALID_MMX_REG_MODE): Whitespace.
19397         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
19398         (ix86_hard_regno_mode_ok): Add parenthesis.
19399         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
19400         (RETURN_IN_MEMORY): Whitespace.
19401         (N_REG_CLASSES): Add parenthesis.
19402         (INTEGER_CLASS_P): Add parenthesis and wrap.
19403         (FLOAT_CLASS_P): Likewise.
19404         (SSE_CLASS_P): Likewise.
19405         (MMX_CLASS_P): Likewise.
19406         (MAYBE_INTEGER_CLASS_P): Likewise.
19407         (MAYBE_FLOAT_CLASS_P): Likewise.
19408         (MAYBE_SSE_CLASS_P): Likewise.
19409         (MAYBE_MMX_CLASS_P): Likewise.
19410         (Q_CLASS_P): Likewise.
19411         (GENERAL_REGNO_P): Uppercase macro parameter.
19412         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
19413         (FP_REGNO_P): Likewise.
19414         (ANY_FP_REGNO_P): Uppercase macro parameter.
19415         (SSE_REGNO_P): Likewise.
19416         (SSE_REGNO): Likewise.
19417         (SSE_REG_P): Likewise.
19418         (SSE_FLOAT_MODE_P): Likewise.
19419         (MMX_REGNO_P): Likewise.
19420         (MMX_REG_P):Likewise.
19421         (STACK_REG_P): Likewise.
19422         (NON_STACK_REG_P): Likewise.
19423         (STACK_TOP_P): Likewise.
19424         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
19425         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
19426         (SECONDARY_MEMORY_NEEDED): Likewise.
19427         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
19428         (MD_ASM_CLOBBERS): Whitespace and wrap.
19429         (MUST_PASS_IN_STACK): Whitespace and wrap.
19430         (RETURN_POPS_ARGS): Add parenthesis.
19431         (INIT_CUMULATIVE_ARGS): Likewise.
19432         (FUNCTION_ARG): Likewise.
19433         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
19434         (SETUP_INCOMING_VARARGS): Likewise.
19435         (BUILD_VA_LIST_TYPE):  Add parenthesis.
19436         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
19437         parenthsis.
19438         (EXPAND_BUILTIN_VA_ARG): Likewise.
19439         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
19440         (INITIALIZE_TRAMPOLINE): Add parenthesis.
19441         (INITIAL_ELIMINATION_OFFSET): Likewise.
19442         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
19443         (REGNO_OK_FOR_BASE_P): Likewise.
19444         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
19445         (REGNO_OK_FOR_DIREG_P): Likewise.
19446         (REG_OK_FOR_INDEX_P): Whitespace.
19447         (REG_OK_FOR_BASE_P): Whitespace.
19448         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
19449         parenthesis.
19450         (FIND_BASE_TERM): Fix typo.
19451         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
19452         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
19453         (SYMBOLIC_CONST; Whitespace.
19454         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
19455         (ENCODE_SECTION_INFO): Whitespace.
19456         (FINALIZE_PIC): Remove do { ... } while (0).
19457         (PROMOTE_MODE): Wrap in do { ... } while (0).
19458         (CONST_COSTS): Whitespace.
19459         (RTX_COSTS): Add paramethesis, whitespace and wrap.
19460         (REGISTER_MOVE_COST): Add parenthesis.
19461         (MEMORY_MOVE_COST): Likewise.
19462         (EXTRA_CC_MODES): Whitespace.
19463         (SELECT_CC_MODE): Add parenthesis and whitespace.
19464         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
19465         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
19466         (ASM_OUTPUT_LABEL): Add paramethesis.
19467         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
19468         (ASM_OUTPUT_REG_POP): Likewise.
19469         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
19470         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19471
19472         * config/i386/i386.c: Update copyright.
19473         (CHECK_STACK_LIMIT): Add parenthesis.
19474         (AT_BP): Uppercase macro parameter.
19475         (x86_64_int_parameter_registers): Constify.
19476         (x86_64_int_return_registers): Likewise.
19477         (ix86_compare_op0): Use rtx.
19478         (construct_container): Constify INTREG parameter.
19479         (function_arg): Use rtx.
19480
19481         * diagnostic.h: Update copyright date.
19482         (output_buffer_state): Add parenthesis.
19483         (output_buffer_format_args): Likewise.
19484
19485         * combine.c (combine_instructions): Replace XEXP (links, 0)
19486         with link.
19487
19488 2002-01-06  H.J. Lu <hjl@gnu.org>
19489
19490         * cfgcleanup.c (thread_jump): Fix 2 typos.
19491
19492 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
19493
19494         * config.gcc: Add support for --enable-altivec.
19495
19496 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19497
19498         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
19499
19500 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
19501
19502         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
19503         __objc_class_name_*.
19504
19505 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19506
19507         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
19508
19509 2002-01-06  Richard Henderson  <rth@redhat.com>
19510
19511         * reorg.c (emit_delay_sequence): Remove death notes, not merely
19512         nop them out.  Increment label reference count for REG_LABEL.
19513         (fill_slots_from_thread): Frob label reference count around
19514         delete_related_insns.
19515
19516 2002-01-05  Richard Henderson  <rth@redhat.com>
19517
19518         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
19519         jump threading.
19520
19521 2002-01-05  Richard Henderson  <rth@redhat.com>
19522
19523         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
19524         * integrate.c (output_inline_function): Likewise.
19525         * toplev.c (rest_of_compilation): Do it here instead.  Move call
19526         to remove_unnecessary_notes after emitting abstract instance.
19527         Force an emitted nested function to have its parent emited as well.
19528         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
19529         for null.
19530         (rtl_for_decl_location): Do not look at reload data structures
19531         before reload has run.
19532
19533 2002-01-05  Kazu Hirata  <kazu@hxi.com>
19534
19535         * cse.c: Fix formatting.
19536         * dwarf2asm.c: Likewise.
19537         * dwarf2out.c: Likewise.
19538         * explow.c: Likewise.
19539         * expmed.c: Likewise.
19540         * function.c: Likewise.
19541         * gcov.c: Likewise.
19542         * gencheck.c: Likewise.
19543         * genrecog.c: Likewise.
19544         * ggc-common.c: Likewise.
19545         * ggc-page.c: Likewise.
19546         * global.c: Likewise.
19547
19548 2002-01-05  Kazu Hirata  <kazu@hxi.com>
19549
19550         * combine.c: Fix formatting.
19551
19552 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
19553
19554         PR middle-end/1557
19555         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
19556
19557 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
19558
19559         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
19560         as 1 for __powerpc64__ as well.
19561
19562         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
19563
19564         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
19565         return it.
19566
19567 2002-01-05  Daniel Berlin  <dan@dberlin.org>
19568
19569         * lcm.c: Revert change, due to performance regression it causes on
19570         SPEC because it's slightly more conservative (sigh, I hate
19571         edge-based LCM).
19572
19573 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
19574
19575         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
19576
19577 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
19578
19579         * doc/cppinternals.texi: Update.
19580
19581 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
19582
19583         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
19584         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
19585         negatives.
19586         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
19587         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
19588         kludge for pre-october-14th mmix versions to handle new-found bug
19589         with PUSHJ/PUSHGO and the register stack.
19590         * config/mmix/mmix.h (struct machine_function): Rename member
19591         has_call_value_without_parameters to has_call_without_parameters.
19592         All referers changed.
19593         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
19594         TARGET_MASK_BRANCH_PREDICT): New macros.
19595         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
19596         -mno-reg-stack-fill-bug-workaround.
19597         * config/mmix/mmix.md ("call"): Set struct machine member
19598         has_call_without_parameters.
19599
19600 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
19601
19602         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
19603
19604 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
19605
19606         * cfgcleanup.c: Include tm_p.h
19607         (mark_effect): Fix handling of hard register; fix handling of SET
19608
19609 2002-01-04  Kazu Hirata  <kazu@hxi.com>
19610
19611         * config/h8300/h8300.md (anonymous patterns): Check that
19612         operands are registers before using REGNO on them.
19613
19614 2002-01-03  Roland McGrath  <roland@frob.com>
19615
19616         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
19617
19618 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
19619
19620         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
19621         * c-common.h (genrtl_expr_stmt_value): Likewise.
19622         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
19623         (expand_expr_stmt_value): Add maybe_last argument.
19624         Don't warn about statement with no effect if it is the last statement
19625         in expression statement.
19626         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
19627         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
19628         expand_expr_stmt_value.
19629         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
19630         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
19631         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
19632         as maybe_last to expand_expr_stmt_value.
19633
19634 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
19635
19636         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
19637         be passed in, do not build it.
19638         (c_begin_if_stmt): New function.
19639         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
19640         * c-common.h (c_expand_start_cond): Update prototype.
19641         (c_begin_if_stmt): Prototype new function.
19642         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
19643         * c-parse.in (if_prefix): Use c_begin_if_stmt,
19644         c_begin_while_stmt and c_finish_while_stmt_cond.
19645
19646 2002-01-04  William Cohen  <wcohen@redhat.com>
19647
19648         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
19649         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
19650         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
19651         * config/pa/som.h (ASM_FILE_START): Likewise.
19652
19653 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
19654
19655         * lcm.c: Include df.h.
19656         Add available_transfer_function prototype.
19657         (compute_available): Rework to use iterative dataflow framework.
19658         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
19659         with bb_info in df.h
19660         (available_transfer_function): New function.
19661
19662         * Makefile.in (lcm.o): add df.h to dependencies.
19663
19664 2002-01-04  Richard Henderson  <rth@redhat.com>
19665
19666         * config/alpha/alpha.c (some_operand): Accept HIGH.
19667         (input_operand): Likewise; accept simple references to globals.
19668         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
19669         (alpha_const_double_ok_for_letter_p): Likewise.
19670         (alpha_extra_constraint): Likewise.
19671         (alpha_preferred_reload_class): Likewise.  Do not force
19672         symbolic constants to memory.
19673         (alpha_legitimate_address_p): Accept simple references
19674         to small_symbolic_operand.
19675         (alpha_legitimize_address): New arg scratch.  Be prepared to be
19676         called when no_new_pseudos.  Emit simple symbolic references.
19677         Split integers into low, high, and rest.
19678         (alpha_expand_mov): Use alpha_legitimize_address.
19679         (some_small_symbolic_mem_operand): New.
19680         (split_small_symbolic_mem_operand): New.
19681         * config/alpha/alpha-protos.h: Update.
19682         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
19683         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
19684         (EXTRA_CONSTRAINT): Likewise.
19685         (PREFERRED_RELOAD_CLASS): Likewise.
19686         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
19687         (PREDICATE_CODES): Update.
19688         * config/alpha/alpha.md: New post-reload splitters to convert
19689         simplfied symbolic operands to the form that references $29.
19690         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
19691         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
19692
19693 2002-01-03  Richard Henderson  <rth@redhat.com>
19694
19695         * local-alloc.c (function_invariant_p): Update commentary.
19696
19697 2002-01-04  H.J. Lu <hjl@gnu.org>
19698
19699         * toplev.c (rest_of_compilation): Fix a typo when calling
19700         cleanup_cfg.
19701
19702 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19703
19704         * c-common.c: Fix formatting.
19705         * diagnostic.c: Likewise.
19706         * doloop.c: Likewise.
19707         * dwarf2out.c: Likewise.
19708
19709 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19710
19711         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
19712         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
19713
19714 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19715
19716         * cpperror.c: Update comments and copyright.
19717         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
19718         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
19719
19720 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19721
19722         * collect2.c (main): Use strcmp when testing for "-shared".
19723
19724 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19725
19726         * cppmacro.c: Don't include intl.h.  Update comments.
19727         (new_number_token): Allocate enough buffer for 64-bit unsigned
19728         integers; update prototype.
19729         * cppmain.c: Update comments.
19730
19731 2002-01-03  William Cohen  <wcohen@redhat.com>
19732
19733         * function.h (struct function): Add profile.
19734         (current_function_profile): New.
19735         doc/extend.texi: Update documentation.
19736         * final.c (final_start_function): Use current_function_profile
19737         instead of profile_flag.
19738         (profile_after_prologue): Likewise.
19739         * function.c (expand_function_start): Likewise.
19740         (expand_function_start): Likewise.
19741         * config/alpha/alpha.c (direct_call_operand):
19742         (alpha_does_function_need_gp): Likewise.
19743         (alpha_expand_prologue): Likewise.
19744         * config/arm/arm.c (arm_expand_prologue): Likewise.
19745         thumb_expand_prologue: Likewise.
19746         * config/d30v/d30v.c (d30v_stack_info): Likewise.
19747         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
19748         (fr30_expand_prologue): Likewise.
19749         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
19750         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
19751         * config/i386/i386.h (FINALIZE_PIC): Likewise.
19752         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
19753         * config/i960/i960.c (i960_output_function_prologue): Likewise.
19754         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
19755         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
19756         (m32r_expand_prologue): Likewise.
19757         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
19758         (m88k_expand_prologue): Likewise.
19759         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
19760         * config/mips/mips.c (compute_frame_size): Likewise.
19761         (mips_expand_prologue): Likewise.
19762         (mips_can_use_return_insn): Likewise.
19763         * config/pa/elf.h (ASM_FILE_START): Likewise.
19764         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
19765         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
19766         * config/pa/som.h (ASM_FILE_START): Likewise.
19767         * config/romp/romp.c (romp_using_r14): Likewise.
19768         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
19769         (rs6000_stack_info): Likewise.
19770         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19771         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
19772         * config/v850/v850.c (compute_register_save_size): Likewise.
19773
19774 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
19775
19776         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
19777         gen_lowpart_common fails, use gen_lowpart_SUBREG.
19778
19779 2002-01-03  Turly O'Connor  <turly@apple.com>
19780
19781         * darwin.c (machopic_output_possible_stub_label): Don't generate
19782         stub routines for pseudo-stubs which we've just defined.
19783
19784 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19785
19786         * builtins.c: Fix formatting.
19787         * c-typeck.c: Likewise.
19788         * combine.c: Likewise.
19789         * expr.c: Likewise.
19790         * loop.c: Likewise.
19791
19792 2002-01-03  Andreas Schwab  <schwab@suse.de>
19793
19794         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
19795         and return true if _cpp_push_next_buffer pushed a new include
19796         file.
19797         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
19798         _cpp_pop_file_buffer did not push a new file.
19799         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
19800
19801 2002-01-02  Eric Christopher  <echristo@redhat.com>
19802
19803         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
19804         FIND_REG_INC_NOTE call. Update copyright.
19805         * loop.c (canonicalize_condition): Ditto.
19806         * reorg.c (delete_scheduled_jump): Ditto.
19807
19808 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19809
19810         * gcse.c: Fix formatting.
19811
19812 2002-01-03  Graham Stott  <grahams@redhat.com>
19813
19814         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
19815         forward defs for struct tags rtx_def, union_tree, rtvec_def
19816         also output corresponding typedefs for rtx, tree, and rtvec.
19817
19818         * system.h: Move forward defs for struct tags rtx_def, union_tree,
19819         rtvec_def along with corresponding typedefs for rtx, tree, and
19820         rtvec to config.h, hconfig.h, tconfig.h.
19821
19822 2002-01-03  Graham Stott  <grahams@redhat.com>
19823
19824         * tree.h: Update copyright date.
19825         (IS_EXPR_CODE_CLASS): Add parenthesis.
19826         (TREE_SET_CODE): Add whitespace.
19827         (TREE_CHECK): Add parenthesis.
19828         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
19829         (CST_OR_CONSTRUCTOR_CHECK):
19830         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
19831         (TREE_SYMBOL_REFERENCED): Whitespace.
19832         (INT_CST_LT): Likewise.
19833         (INT_CST_LT_UNSIGNED): Likewise.
19834         (tree_real_cst): Unwrap comment.
19835         (tree_string): Likewise.
19836         (tree_complex): Likewise.
19837         (IDENTIFIER_POINTER): correct cast.
19838         (SAVE_EXPR_CONTEXT): Whitespace.
19839         (EXPR_WFL_FILENAME_NODE): Likewise.
19840         (EXPR_WFL_FILENAME): Remove parenthesis.
19841         (DECL_ORIGIN): Add parenthesis.
19842         (DECL_FROM_INLINE): Use NULL_TREE.
19843         (build_int_2): Whitespace.
19844         (build_type_variant): Add parenthesis.
19845
19846         * gcc/jcf-parse.c: Update copyright date.
19847         (yyparse): Constify resource_filename.
19848
19849 2002-01-03  Graham Stott  <grahams@redhat.com>
19850
19851         * rtl.h: Update copyright date.
19852         (RTL_CHECK1): Wrap long line.
19853         (RTL_CHECK2): Likewise.
19854         (RTL_CHECKC1): Wrap long line and whitespace.
19855         (RTL_CHECKC2): Likewise.
19856         (XWINT): Whitespace.
19857         (XINT): Likewise.
19858         (XSTR): Likewise.
19859         (XEXP): Likewise.
19860         (XVEC): Likewise.
19861         (XMODE): Likewise.
19862         (XBITMAP): Likewise.
19863         (XTREE): Likewise.
19864         (XBBDEF): Likewise.
19865         (XTMPL): Likewise.
19866         (X0WINT): Likewise.
19867         (X0INT):Likewise.
19868         (X0UINT): Likewise.
19869         (X0STR): Likewise.
19870         (X0EXP): Likewise.
19871         (X0VEC): Likewise.
19872         (X0MODE): Likewise.
19873         (X0BITMAP): Likewise.
19874         (X0TREE): Likewise.
19875         (X0BBDEF): Likewise.
19876         (X0ADVFLAGS): Likewise.
19877         (X0CSELIB): Likewise.
19878         (X0MEMATTR): Likewise.
19879         (XCWINT): Likewise.
19880         (XCINT): Likewise.
19881         (XCUINT): Likewise.
19882         (XCSTR): Likewise.
19883         (XCEXP): Likewise.
19884         (XCVEC): Likewise.
19885         (XCMODE): Likewise.
19886         (XCBITMAP): Likewise.
19887         (XCTREE): Likewise.
19888         (XCBBDEF): Likewise.
19889         (XCADVFLAGS): Likewise.
19890         (XCCSELIB): Likewise.
19891         (XC2EXP): Likewise.
19892         (INSN_UID): Likewise.
19893         (PREV_INSN): Likewise.
19894         (PATTERN): Likewise.
19895         (INSN_CODE): Likewise.
19896         (PUT_REG_NOTE_KIND): Likewise.
19897         (CODE_LABEL_NUMBER): Likewise.
19898         (NOTE_SOURCE_FILE): Likewise.
19899         (NOTE_BLOCK): Likewise.
19900         (NOTE_EH_HANDLER): Likewise.
19901         (NOTE_RANGE_INFO): Likewise.
19902         (NOTE_LIVE_INFO): Likewise.
19903         (NOTE_BASIC_BLOCK): Likewise.
19904         (NOTE_EXPECTED_VALUE): Likewise.
19905         (NOTE_LINE_NUMBER): Likewise.
19906         (LABEL_NAME): Likewise.
19907         (LABEL_NUSES): Likewise.
19908         (LABEL_ALTERNATE_NAME): Likewise.
19909         (ADDRESSOF_DECL): Likewise.
19910         (JUMP_LABEL): Likewise.
19911         (LABEL_NEXTREF): Likewise.
19912         (REGNO): Likewise.
19913         (ORIGINAL_REGNO: Likewise.
19914         (HARD_REGISTER_NUM_P): Add parenthesis.
19915         (SUBREG_REG): Whitespace.
19916         (SUBREG_BYTE): Likewise.
19917         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
19918         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
19919         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
19920         (ASM_OPERANDS_INPUT_VEC): Likewise.
19921         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
19922         (ASM_OPERANDS_INPUT): Likewise.
19923         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
19924         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
19925         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
19926         (ASM_OPERANDS_INPUT_MODE): Likewise.
19927         (ASM_OPERANDS_SOURCE_FILE): Likewise.
19928         (ASM_OPERANDS_SOURCE_LINE): Likewise.
19929         (MEM_SET_IN_STRUCT_P): Minor reformat.
19930         (TRAP_CONDITION): Whitespace.
19931         (TRAP_CODE): Likewise.
19932         (COND_EXEC_TEST): Likewise.
19933         (COND_EXEC_CODE): Likewise.
19934         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
19935         (PHI_NODE_P): Add parenthesis.
19936         (plus_constant): Whitespace and add parenthesis.
19937
19938 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19939
19940         * config/avr/avr.c: Fix comment typos.
19941         * config/c4x/c4x.md: Likewise.
19942         * config/dsp16xx/dsp16xx.h: Likewise.
19943         * config/dsp16xx/dsp16xx.md: Likewise.
19944         * config/i386/i386.md: Likewise.
19945         * config/ia64/ia64.c: Likewise.
19946         * config/m32r/m32r.h: Likewise.
19947         * config/m68hc11/m68hc11.md: Likewise.
19948         * config/mmix/mmix.c: Likewise.
19949         * config/mn10200/mn10200.c: Likewise.
19950         * config/romp/romp.c: Likewise.
19951         * config/sh/sh.c: Likewise.
19952         * config/stormy16/stormy16.c: Likewise.
19953         * config/stormy16/stormy16.h: Likewise.
19954         * config/stormy16/stormy16.md: Likewise.
19955
19956 2002-01-03  Graham Stott  <grahams@redhat.com>
19957
19958         * loop.h: Update copyright date.
19959         (LOOP_MOVABLES): Fix typo.
19960         (LOOP_REGS): Likewise.
19961         (LOOP_IVS): Likewise.
19962
19963 2002-01-03  Graham Stott  <grahams@redhat.com>
19964
19965         * cppinit.c: Update copyright date.
19966         Don't include output.h
19967         * Makefile.in: Update copyright date.
19968         Update dependency.
19969
19970 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19971
19972         PR c/5226
19973         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
19974         (-pthread) Add to RS/6000 options.
19975
19976 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19977
19978         * except.c: Fix comment typos.
19979         * loop.c: Likewise.
19980         * varasm.c: Likewise.
19981         * doc/tm.texi: Fix a typo.
19982
19983 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
19984
19985         * c-typeck.c (output_init_element): Allow initializing static storage
19986         duration objects with compound literals.
19987
19988 2002-01-02  Richard Henderson  <rth@redhat.com>
19989
19990         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
19991         after abusing it.
19992
19993 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19994
19995         * gcc.c (default_compilers): Const-ify.
19996         * mips-tdump.c (stab_names): Likewise.
19997         * mips-tfile.c (map_coff_types, map_coff_storage,
19998         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
19999         pseudo_ops_t, pseudo_ops): Likewise.
20000         * protoize.c (default_include): Likewise
20001
20002         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
20003         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
20004         Add array size in declaration.
20005         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
20006         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
20007         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
20008         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
20009         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
20010         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
20011         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
20012         emtens, make_nan): Const-ify.
20013         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
20014         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
20015
20016 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
20017
20018         * config.gcc (ia64-*-*): Set extra_headers.
20019         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
20020         * config/alpha/t-osf: Remove.
20021         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
20022
20023 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
20024
20025         * config/rs6000/t-aix43: Revert previous change.
20026
20027 2002-01-02  Jason Merrill  <jason@redhat.com>
20028
20029         * c-decl.c (c_expand_body): Call outlining_inline_function when
20030         emitting an inline function out of line.
20031
20032 2002-01-02  Richard Henderson  <rth@redhat.com>
20033
20034         * dwarf2out.c (limbo_die_node): Add created_for member.
20035         (new_die): New argument created_for.  Update all callers.
20036         (mark_limbo_die_list): New.
20037         (dwarf2out_init): Register limbo_die_list as a root.
20038         (dwarf2out_finish): Force insert limbo dies into their function
20039         context.
20040
20041 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
20042
20043         PR c++/5089
20044         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
20045
20046 2002-01-02  Kazu Hirata  <kazu@hxi.com>
20047
20048         * config/h8300/fixunssfsi.c: Update copyright.
20049         Fix comment typos.
20050         Fix formatting.
20051         * config/h8300/h8300.c: Update copyright.
20052         Eliminate warnings.
20053
20054 2002-01-02  Kazu Hirata  <kazu@hxi.com>
20055
20056         * config/romp/romp.c: Fix comment formatting.
20057         * config/romp/romp.h: Likewise.
20058         * config/romp/romp.md: Likewise.
20059         * config/s390/s390.c: Likewise.
20060         * config/stormy16/stormy16.c: Likewise.
20061         * config/stormy16/stormy16.h: Likewise.
20062
20063 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
20064
20065         * c-common.h (genrtl_expr_stmt_value): Declare.
20066         * c-semantics.c (genrtl_goto_stmt): Redirect to...
20067         (genrtl_goto_stmt_value): ... this new function.  Pass new
20068         argument down to expand_expr_stmt_value, taking
20069         TREE_ADDRESSABLE into account.
20070         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
20071         STMT_EXPR as addressable, i.e., one whose result we want.
20072         * expr.c (expand_expr): Don't save expression statement value
20073         of labeled_blocks or loop_exprs.
20074         * stmt.c (expand_expr_stmt): Redirect to...
20075         (expand_expr_stmt_value): ... this new function.  Use new
20076         argument to tell whether to save expression value.
20077         (expand_end_stmt_expr): Reset last_expr_type and
20078         last_expr_value if we don't have either.
20079         * tree-inline.c (declare_return_variable): Mark its use
20080         statement as addressable.
20081         * tree.h: Document new use of TREE_ADDRESSABLE.
20082         (expand_expr_stmt_value): Declare.
20083
20084 2002-01-01  Tom Rix  <trix@redhat.com>
20085
20086         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
20087         rs6000_emit_allocate_stack.
20088
20089 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
20090
20091         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
20092         ${srcdir}/ginclude/ to every entry in extra_headers.
20093         * configure: Regenerate.
20094         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
20095         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
20096         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
20097         * ginclude/proto.h: Rename to config/convex/proto.h.
20098
20099 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20100
20101         * attribs.c (handle_vector_size_attribute): Use host_integerp
20102         and tree_int_cst; remove warnings.
20103         * caller-save.c (insert_restore): Add cast to get rid of warning.
20104         (insert_save): Likewise.
20105         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
20106         * regmove.c (find_matches): Add temporary var to kill a warning.
20107
20108 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
20109
20110         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
20111         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
20112         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
20113         (vms-dwarf2eh.o): Add Makefile rule.
20114         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
20115         * config/alpha/vms-dwarf2eh.asm: New file.
20116
20117         * gcc.c (delete_if_ordinary): Delete all versions.
20118
20119 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20120
20121         * config/mmix/mmix.md: Update FIXME to not mention
20122         define_constants.
20123         (MMIX_rJ_REGNUM): New define_constants constant.
20124         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
20125         "*movdicc_real"): Adjust contraints formatting.
20126         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
20127         for branch prediction.
20128         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
20129         output template.
20130         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
20131         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
20132         number.  Delete related FIXMEs.
20133         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
20134         from number to MMIX_rJ_REGNUM.
20135         (TARGET_MASK_BRANCH_PREDICT): New.
20136         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
20137         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
20138         value.  Add -mbranch-predict and -mno-branch-predict.
20139         (TARGET_VERSION): Drop date.
20140         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
20141         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
20142         for finding out global symbols.
20143         (mmix_asm_output_labelref): Revert condition for global symbol.
20144         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
20145         (mmix_print_operand_punct_valid_p): A '+' is valid.
20146
20147 See ChangeLog.6 for earlier changes.