OSDN Git Service

* defaults.h (EH_FRAME_SECTION_NAME): Don't define if
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-11  Richard Henderson  <rth@redhat.com>
2
3         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if 
4         DWARF2_UNWIND_INFO is false.
5
6 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
7
8         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
9
10 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
11
12         * config/s390/s390.c (emit_prologue): gen_store_multiple
13         returns an insn now, not a pattern.
14
15 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16
17         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
18         $(TEXI2DVI) -o.
19
20 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
21
22         * i386.c (x86_promote_QImode): Set for Athlon
23         (x86_fast_prefix): New global variable.
24         (x86_arch_always_fancy_math_387): Fix formating.
25         * i386.h (x86_fast_prefix): Declare
26         (TARGET_FAST_PREFIX): define.
27         * i386.md (and to strict_low_part, HI to SI
28         promoting splitter): Use new macro.
29
30         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
31
32 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
33
34         * Makefile.in (distclean): Delete junk left in testsuite
35         directory, too.
36
37 2002-06-11  Jeffrey Law <law@redhat.com>
38
39         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
40         RETURN insns.
41
42         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
43
44         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
45         not the pattern.  So extract the pattern from the insn.
46
47         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
48
49 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
50
51         * config/s390/s390.md (movsi): Only use floating point
52         register alternatives when operands are already fprs.
53         (movdi_31, movdi_64): Likewise.
54
55 2002-06-11  David S. Miller  <davem@redhat.com>
56
57         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
58         Only run RTX equality checks on INSN_P rtl.
59
60 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
61
62         * config/s390/s390.md (reload_base, ltorg): Remove.
63         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool, 
64         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
65         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool, 
66         s390_asm_output_pool_prologue): Likewise.
67         * s390.h (s390_pool_start_insn): Likewise.
68
69         * s390.c (s390_output_symbolic_const): Remove support for 
70         old-style pool chunks.
71         (s390_function_epilogue): Likewise.
72         (s390_output_constant_pool): Likewise.  Also, fix incorrect 
73         alignment for 64-bit literal pools.
74         (print_operand_address): Remove 'y' and 'Y' format flags.
75         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for 
76         old-style pool chunks.
77         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
78         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
79         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
80
81         * s390.c (consttable_operand): New function.
82         * s390-protos.h (consttable_operand): Declare it.
83         * s390.h (PREDICATE_CODES): Add consttable_operand.
84         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di, 
85         consttable_sf, consttable_df, pool_start_31, pool_end_31, 
86         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
87         * s390.c (struct constant, struct constant_pool): New data types.
88         (constant_modes, gen_consttable): New variables.
89         (s390_start_pool, s390_end_pool, s390_add_pool, 
90         s390_dump_pool, s390_free_pool): New functions.
91         (s390_chunkify_pool): Completely reimplement literal pool 
92         overflow handling.
93
94         * s390.c (s390_pool_overflow): New variable.
95         * s390.h (s390_pool_overflow): Declare it.
96         * s390.md (cjump, icjump): Use it to adapt length for out-of-range 
97         jumps in literal pool overflow situations.
98
99         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
100         (s390_frame_info): Account for possible use of RETURN_REGNUM 
101         by new literal pool overflow code.
102         (s390_emit_prologue): Likewise.
103
104 2002-06-05  David S. Miller  <davem@redhat.com>
105
106         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
107         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
108         emit_insns_before_scope, emit_insns_after,
109         emit_insns_after_scope): Delete declaration.
110         * ada/misc.c (insert_code_for): Use emit_insn* instead of
111         emit_insns_foo.
112         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
113         (alpha_set_memflags): Fix comment.
114         (set_frame_related_p): Use get_insns instead of gen_sequence.
115         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
116         emitting no insns.
117         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
118         gen_sequence.
119         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
120         * config/fr30/fr30.c (fr30_move_double): Likewise.
121         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
122         Likewise.
123         * config/ia64/ia64.c (spill_restore_mem): Likewise.
124         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
125         no insns.
126         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
127         instead of gen_sequence.
128         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
129         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
130         * config/sh/sh.c (sh_need_epilogue): Likewise.
131         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
132         attributes.
133         (setjmp pattern and split): Use them to avoid splitter which emits
134         no RTL.
135         * genattrtab.c (main): Emit include of function.h
136         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
137         get_insns instead of gen_sequence.
138         * config/cris/cris.c (cris_split_movdx): Likewise.
139         * emit-rtl.c (emit_insns*): Kill.
140         (try_split): Expect insn list instead of SEQUENCE.
141         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
142         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
143         Make them abort if a SEQUENCE is given and RTL checking is
144         enabled.
145         (emit_*_scope): Don't forget to set scope on final insn.
146         (gen_sequence): Move from here...
147         * ssa.c (gen_sequence): To here as private function.
148         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
149         comments.
150         (expand_builtin_return, expand_builtin_mathfn): Likewise.
151         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
152         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
153         (expand_builtin_expect_jump): Use get_insns and fix comments.
154         * calls.c (try_to_integrate): Use emit_insn_foo.
155         (expand_call, emit_library_call_value_1): Likewise.
156         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
157         (emit_move_insn_1): Use get_insns instead of gen_sequence.
158         (expand_expr): Use emit_insn_foo.
159         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
160         * except.c (build_post_landing_pads): Likewise.
161         * flow.c (attempt_auto_inc): Likewise.
162         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
163         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
164         * function.c (fixup_var_refs_insn): Use get_insns instead of
165         gen_sequence.
166         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
167         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
168         (fixup_stack_1, purge_addressof_1, expand_main_function,
169         get_arg_pointer_save_area): Likewise.
170         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
171         expand_function_end): Use emit_insn_foo.
172         (record_insns, keep_stack_depressed): Work with insn list instead
173         of SEQUENCE, fix comments.
174         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
175         noce_try_store_flag_constants, noce_try_store_flag_inc,
176         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
177         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
178         (noce_process_if_block): Use get_insns instead of gen_sequence.
179         * optabs.c (add_equal_note): Work with insn list, fix comments.
180         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
181         (expand_unop, expand_complex_abs, expand_unop_insn,
182         expand_no_conflict_block): Likewise.
183         (gen_move_insn): Use get_insns instead of gen_sequence.
184         (gen_cond_trap): Likewise.
185         * integrate.c (copy_rtx_and_substitute): Likewise.
186         (emit_initial_value_sets): Use emit_insn_foo.
187         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
188         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
189         now that RTL generators give insn lists.
190         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
191         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
192         instead of gen_sequence.
193         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
194         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
195         instead of gen_sequence.
196         * loop.c (move_movables, emit_prefetch_instructions,
197         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
198         Likewise.
199         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
200         (product_cheap_p): Likewise, and add commentary about RTL wastage
201         here.
202         * lcm.c (optimize_mode_switching): Use get_insns instead of
203         gen_sequence.
204         * profile.c (gen_edge_profiler): Likewise.
205         * regmove.c (copy_src_to_dest): Likewise.
206         * reg-stack.c (compensate_edge): Likewise and fix comment.
207         * gcse.c (process_insert_insn): Likewise.
208         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
209         * jump.c (delete_prior_computation): Update comment.
210         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
211         of gen_sequence, update comments to match.
212         * recog.c (peephole2_optimize): Work with insn lists instead of
213         SEQUENCE rtl.
214         * sched-vis.c (print_pattern): Abort on SEQUENCE.
215         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
216         Use get_insns instead of gen_sequence.
217         (copy_loop_body): Likewise and don't emit dummy NOTE.
218         * genrecog.c: Don't mention SEQUENCE rtl in comments.
219         * combine.c (try_combine): Expect insn lists from split generator.
220         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
221         hand.
222         
223 2002-06-11  Roger Sayle  <roger@eyesopen.com>
224             Andreas Jaeger <aj@suse.de>
225
226         * cfgbuild.c: Update copyright years.
227
228 2002-06-11  Andreas Schwab  <schwab@suse.de>
229
230         * config/m68k/m68k.h (PREDICATE_CODES): Define. 
231
232 2002-06-11  Eric Christopher  <echristo@redhat.com>
233
234         * doc/tm.texi (Run-time Target): Add comment about flag_iso
235         and strict ANSI.
236         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
237         * config/mips/ecoffl.h: Ditto.
238         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
239         (CPP_PREDEFINES): Ditto.
240         * config/mips/elfl64.h: Ditto.
241         * config/mips/elfl.h: Ditto.
242         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
243         out until irix header consolidation.
244         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
245         with SUBTARGET_OS_CPP_BUILTINS.
246         * config/mips/iris6.h: Ditto.
247         (CPLUSPLUS_CPP_SPEC): Remove.
248         * config/mips/linux.h: Ditto.
249         * config/mips/netbsd.h: Ditto.
250         * config/mips/openbsd.h: Ditto.
251         * config/mips/rtems.h: Ditto.
252         * config/mips/rtems64.h: Ditto.
253         * config/mips/sni-svr4.h: Ditto.
254         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
255         ISA_MIPS32, ISA_MIPS64): New defines.
256         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
257         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
258         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
259         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
260         (TARGET_CPU_CPP_BUILTINS): Define.
261         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
262         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
263         (movdicc): Remove check for ISA_MIPS32.
264          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
265         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
266         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
267         sunge_sf, sunle_df, sunle_sf): New patterns.
268
269 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
270
271         * Makefile.in: Update cppmain.o.
272         * cpphash.h (struct cpp_reader): Move some members to a
273         nested structure.
274         (trad_line): Rename saved_line.
275         (_cpp_read_logical_line_trad): Update.
276         (_cpp_remove_overlay): New.
277         * cppinit.c (cpp_create_reader): No need to set saved_line.
278         (cpp_destroy): Update.
279         (cpp_read_main_file): Only overlay if compiling.
280         * cpplex.c (continue_after_nul): Return false if in directive.
281         * cpplib.c (EXPAND): New.
282         (directive_table, SEEN_EOL): Update.
283         (end_directive): Remove overlay if traditional; don't skip
284         line in traditional #define.
285         (prepare_directive_trad): New.
286         (_cpp_handle_directive, run_directive): Update for traditional
287         directives.
288         (lex_macro_node): Simplify, don't use lex_identifier_trad.
289         * cpplib.h (struct options): Add preprocess_only.
290         * cppmain.c: Don't include intl.h.
291         (cpp_preprocess_file): Set options->preprocess_only.
292         (scan_translation_unit_trad): Fix, and print line numbers.
293         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
294         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
295         save_replacement_text, _cpp_create_trad_definition): Update for
296         variable renaming.
297         (_cpp_overlay_buffer): Save line number.
298         (_cpp_remove_overlay): Rename from restore_buff, restore line.
299         (_cpp_read_logical_line_trad): Don't handle overlays here.
300         (scan_out_logical_line): Process directives.
301
302 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
303
304         * gthr-win32.h: Wrap functions in extern "C".
305         (__gthread_key_t): Typedef as unsigned long,
306         not win32 DWORD.
307         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
308         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
309         (__gthr_win32_once, __gthr_win32_key_create,
310         __gthr_win32_key_delete, __gthr_win32_getspecific,
311         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
312         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
313         __gthr_win32_mutex_unlock): Declare.
314         (__gthread_once,__gthread_key_create,
315         __gthread_key_delete, __gthread_getspecific,
316         __gthread_setspecific, __gthread_mutex_init_function,
317         __gthread_mutex_lock,__gthread_mutex_trylock,
318         __gthread_mutex_unlock): Call corresponding
319         __gthr_win32_* extern implementations if #defined
320         __GTHREAD_HIDE_WIN32API.
321         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
322         $(srcdir)/config/i386/gthr-win32.c
323         * config/i386/gthr-win32.c: New implementation file.
324         (__gthr_win32_once, __gthr_win32_key_create,
325         __gthr_win32_key_delete, __gthr_win32_getspecific,
326         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
327         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
328         __gthr_win32_mutex_unlock): New functions, based on
329         static inlines in gthr-win32.h.
330
331 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
332
333         * config/xtensa/xtensa.c (override_options): Don't warn about
334         using -fpic or -fPIC when PIC is enabled by default.
335
336 2002-06-10  Roger Sayle  <roger@eyesopen.com>
337
338         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
339
340 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
341
342         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
343         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
344         exists, substitute its pathname as @extra_modes_file@, define
345         EXTRA_MODES_FILE to be an appropriate string to #include it
346         with, and define EXTRA_CC_MODES to 1.
347
348         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
349         it's defined.  Get rid of redundancy in calling sequence for
350         CC; don't use it to define CCmode, to avoid a warning.
351         * libgcc2.c: Include symcat.h for the sake of machmode.def.
352
353         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
354         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
355         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
356         New files.
357         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
358         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
359
360         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
361         defining extra CC modes.
362
363 2002-06-10  Roger Sayle  <roger@eyesopen.com>
364             Andreas Jaeger <aj@suse.de>
365
366         * cfgrtl.c (create_basic_block_structure):  Remove index argument
367         and use last_basic_block++ instead.  (create_basic_block): Update.
368         * cfgbuild.c (find_basic_blocks_1): Likewise.
369
370         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
371         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
372         * sched-ebb.c (schedule_ebbs): Likewise.
373         * sched-rgn.c (schedule_insns): Likewise.
374         * ssa-ccp.c (ssa_const_prop): Likewise.
375         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
376         * toplev.c (rest_of_compilation): Likewise.
377         * config/ia64/ia64.c (ia64_reorg): Likewise.
378
379 2002-06-10  Roger Sayle  <roger@eyesopen.com>
380
381         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
382         of matching registers.
383
384 2002-06-10  Roger Sayle  <roger@eyesopen.com>
385
386         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
387         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
388
389 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
390
391         * config/mmix/mmix.h: Improve comments.
392         (CPP_SPEC, CPP_PREDEFINES): Don't define.
393         (TARGET_CPU_CPP_BUILTINS): Define.
394         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
395         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
396         unused predicate.
397         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
398         compiler warning.
399         (mmix_constant_address_p): Remove another
400         redundant test before case.
401         (mmix_canonicalize_comparison): Remove unused function.
402         (mmix_print_operand_address): Don't test and adjust for operand in
403         non-canonical format.
404         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
405         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
406
407 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
408
409         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
410         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
411         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
412         (gen_compare): Use CCmode unconditionally.
413
414 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
415
416         PR optimization/6759
417         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
418         the REQ_EQUAL note.
419
420 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
421
422         PR c/6660
423         * c-decl.c (grokfield): Allow user defined types if they declare
424         structs or unions for unnamed fields.
425
426 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
427
428         PR c/6809
429         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
430
431 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
432
433         PR optimization/6842
434         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
435         operand subreg cannot be simplified.
436
437 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
438
439         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
440         (compare_constant): Likewise.
441         (output_addressed_constants): Likewise.
442
443 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
444
445         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
446         merge bb with itself.
447
448 2002-06-10  Richard Henderson  <rth@redhat.com>
449
450         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
451         (builtin_zapnot): Likewise.
452
453         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
454         reservation.
455
456 2002-06-10  Eric Christopher  <echristo@redhat.com>
457
458         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
459         prototype and function.
460         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
461         (call_insn_operand): Remove half pic references.
462         (legitimate_address_p): Ditto.
463         * config/i386/i386.h: Remove half pic defines.
464
465 2002-06-10  Eric Christopher  <echristo@redhat.com>
466
467         * doc/extend.texi (Return Address): Add note explaining the side-
468         effects of inlining on __builtin_return_address.
469
470 2002-06-10  Tom Tromey  <tromey@redhat.com>
471
472         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
473         (c-common.o): Depend on langhooks.h.
474
475 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
476
477         * cpphash.h (_cpp_read_logical_line_trad,
478         _cpp_expansions_different_trad): Update prototypes.
479         * cpplex.c (continue_after_nul): New.
480         * cppmain.c: Include cpphash.h.
481         (scan_translation_unit_trad): New.
482         (cpp_preprocess_file): Call it.
483         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
484         overlay.
485         (_cpp_expansions_different_trad): Update prototype.
486
487 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
488
489         Fix cfi generation for SH[1-4]:
490
491         * sh.c (frame_insn): New function.
492         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
493         (push): Now returns rtx.  Use frame_insn.
494         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
495         of a DF register.
496         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
497
498 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
499
500         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
501         and gtype-desc.c.
502         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
503         (distclean): ... not here.  But do delete all testsuite/*.log,
504         testsuite/*.sum files here.  Delete mkheaders.  Delete
505         po/*.gmo and the testsuite directory in a split tree build.
506
507 2002-06-10  Jeffrey Law  <law@redhat.com>
508
509         * alias.c (static_reg_base_value): New to hold RTL for
510         items allocated once per function for the aliasing code.
511         (init_alias_once_per_function): Initialize static_reg_base_value.
512         (init_alias_analysis): Avoid throw-away allocations of RTL by
513         using pre-computed values in static_reg_base_value.
514         * function.c (prepare_function_start): Call
515         init_alias_once_per_function appropriately.
516         * rtl.h (init_alias_once_per_function): Declare.
517         * caller-save (init_caller_save): Restructure slightly to
518         avoid lots of silly RTL generation.
519         * expr.c (init_expr_once): Likewise.
520         * reload1.c (reload_cse_regs_1): Allocate throw-away register
521         RTL object here.  Pass it into children.
522         (reload_cse_simplify_operands): Use passed-in register RTL
523         object.
524         (reload_cse_simplify): Pass through throw-away register
525         RTL object.
526
527 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
528
529         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
530
531 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
532
533         * gcc.c (process_command): Avoid assignment to read-only location.
534         Fix sizeof calculation.
535
536 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
537
538         * cpphash.h (struct cpp_macro): Put comments on their own lines.
539         (_cpp_expansions_different_trad): New.
540         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
541         * cpptrad.c (canonicalize_text): New.
542         (scan_out_logical_line): Handle no arguments correctly.
543         (save_replacement_text): Commit memory when finished.
544         (_cpp_expansions_different_trad): New.
545
546 2002-06-10  Tim Josling  <tej@melbpc.org.au>
547
548         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
549         TREELANG and COBOL.
550         (lang_names): Add treelang and cobol.
551         (get_file_basename): Add code to support treelang and cobol as
552         4th and 5th users of c-common.c.
553
554 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
555
556         * Makefile.in (install-driver): Install driver as
557         $(target_alias)-gcc-$(version).
558         * gcc.c (spec_version): Make const.
559         (process_command): Handle -V and -b by using exec.
560         * doc/invoke.texi (Target Options): Restore -V option,
561         update docs for -b option.
562
563 2002-06-10  Tim Josling  <tej@melbpc.org.au>
564
565         * configure.in (remaining_languages_check):
566         Added check that all languages specified were found.
567         Exit if not found. Previous behaviour was silent failure.
568         * configure: Regenerated.
569
570 2002-06-10  Tim Josling  <tej@melbpc.org.au>
571
572          First steps to making treelang documentation compliant, based on
573          instructions in sourcebuild.texi. Also add to gcc.c list of
574          default languages.
575
576         * doc/contrib.texi: Add self as contributor of treelang.
577
578         * doc/frontends.texi: Add mention of treelang.
579
580         * doc/invoke.texi (Overall Options): Add mention of treelang.
581
582         * doc/standards.texi:  Add mention of treelang.
583
584 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
585
586         * config/cris/cris.c: Include ggc.h
587
588 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
589
590         * cpphash.h (_cpp_push_text_context): Update.
591         (_cpp_arguments_ok): New.
592         * cppmacro.c (_cpp_arguments_ok): New, split out from...
593         (collect_args): ...here.
594         (_cpp_push_text_context): Change inputs.
595         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
596         replace_args_and_push): New.
597         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
598         Don't use IS macros directly.
599         (scan_out_logical_line): Handle function-like macro argument
600         collection.
601         (push_replacement_text): Update.
602         (replacement_length): Remove.
603         (_cpp_create_trad_definition): Don't skip whitespace before
604         checking for '('.
605
606 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
607
608         * config/avr/avr.c (avr_mcu_types): Update for new devices.
609         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
610         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
611         * config/avr/avr.md ("type" and "length" attributes): New type
612         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
613         output a single "call" or "rcall" insn depending on device size.
614         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
615
616 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
617
618         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
619         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
620         assembler option.
621         (CPP_CPU_SPEC): Add power3 and power4.
622         (PROCESSOR_DEFAULT): Change to 604e.
623         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
624         (CPP_CPU_SPEC): Similar additions.
625         (enum process_type): Add POWER4.
626         (RTX_COSTS): Add POWER4.
627         (CPP_CPU_SPEC): Similar additions.
628         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
629         (PROCESSOR_DEFAULT64): Define.
630         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
631         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
632         branch adjustment.
633         (rs6000_issue_rate): Add Power4.
634         * config/rs6000/rs6000.md (cpu attr): Add power4.
635         (iu compare): Remove 604, 604e, 620, 630.
636         Add basic Power4 scheduling information.
637         (mfcr/mtcrf): Change type attribute to cr_logical.
638
639 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
640
641         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
642         ATTRIBUTE_PRINTF_2.
643         * gengtype-lex.l: Fix format specifier warning.
644
645         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
646         not isspace.
647         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
648         lieu of isspace/IDchar.
649         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
650         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
651         ISSPACE.
652
653 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
654
655         * Makefile.in (LIBCPP_OBJS): Take out version.o.
656         * cpphash.h (cpp_reader): Take out print_version member.
657         * cppinit.c: (cpp_handle_option): Don't do anything with
658         -version.  Just set help_only for --version, --target-help.
659         Just set verbose option for -v.
660         (cpp_post_options): Don't print a version string.
661
662 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
663
664         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
665         (avr_section_type_flags): New, handle .noinit* sections.
666
667 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
668
669         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
670         and include netbsd_entry_point.
671         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
672         (NETBSD_ENTRY_POINT): Define.
673
674 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
675
676         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
677         if not already defined.
678         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
679
680 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
681
682         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
683         in a noreturn function.
684         (avr_output_function_prologue, avr_output_function_epilogue):
685         Correct function size calculation.  Do not crash on empty function.
686         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
687
688 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
689
690         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
691         netbsd_link_spec and netbsd_entry_point.
692         (LINK_SPEC): Use %(netbsd_link_spec).
693         (NETBSD_ENTRY_POINT): Define.
694
695 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
696
697         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
698         linker emulation.
699         (LINK_ARCH64_SPEC): Likewise.
700         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
701         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
702
703 2002-06-08  Marc Espie  <espie@openbsd.org>
704
705         * lists.c (free_list):  Fix typo in comment.
706
707 2002-06-08  Andreas Jaeger  <aj@suse.de>
708
709         * lcm.c (optimize_mode_switching): Add unused attribute for
710         variable.
711
712         * sched-deps.c (sched_analyze): Remove unused variable.
713
714 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
715
716         * diagnostic.def: Don't capitalize diagnostict descriptors.
717
718 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
719
720         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
721         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
722         (NETBSD_ENTRY_POINT): Define.
723
724 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
725
726         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
727         NETBSD_LINK_SPEC_ELF.
728         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
729         (NETBSD_ENTRY_POINT): Define.
730         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
731         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
732         netbsd_entry_point.
733         (NETBSD_ENTRY_POINT): Define.
734
735 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
736
737         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
738         netbsd_link_spec and netbsd_entry_point.
739         (LINK_SPEC): Use %(netbsd_link_spec).
740         (NETBSD_ENTRY_POINT): Define.
741
742 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
743
744         * config/netbsd-elf.h (LINK_SPEC): Rename to...
745         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
746         to specify program entry point.
747
748 2002-06-07  Jeff Law <law@redhat.com
749
750         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
751         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
752         than creating a new register.
753         (distribute_notes): Likewise.
754         * df.c (df_reg_use_gen): Likewise.
755         (df_reg_clobber_gen): Likewise.
756         (df_ref_record): Likewise.
757         * expr.c (use_regs): Likewise.
758         * flow.c (propagate_one_insn): Likewise.
759         (mark_set_1): Likewise.
760         (mark_used_reg): Likewise.
761         * reload.c (emit_reload_insns): Likewise.
762
763 2002-06-07  Roger Sayle  <roger@eyesopen.com>
764
765         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
766         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
767         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
768         comparison code comp can be reversed.
769
770 2002-06-07  Roger Sayle  <roger@eyesopen.com>
771
772         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
773         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
774         equivalent x > -1.0 when -ffast-math.
775
776 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
777
778         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
779         * config/mips/t-netbsd: New file.
780
781 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
782
783         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
784         options their own entries.
785         (parse_option): Clarify comment.
786         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
787         special case.  Replace if/strcmp chain for -W options with
788         use of new OPT_* entries for them.
789         (cpp_handle_options): Update to match.
790         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
791         * c-decl.c: Update call to cpp_handle_option.
792
793 2002-06-07  Akim Demaille  <akim@epita.fr>
794
795         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
796         Whitespace changes.
797
798 2002-06-07  Jeffrey Law  <law@redhat.com>
799
800         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
801         on empty lists.
802
803 2002-06-07  H.J. Lu  (hjl@gnu.org)
804
805         * configure.in: Add --enable-__cxa_atexit.
806         * configure: Regenerated.
807         * config.in: Likewise.
808
809         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
810         not defined.
811
812 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
813
814         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
815
816 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
817
818         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
819
820 2002-06-07  Jason Merrill  <jason@redhat.com>
821
822         * cppexp.c (num_equality_op): Use a temporary variable to work
823         around gcc 3.0.4 bug.
824
825 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
826
827         * diagnostic.c (diagnostic_build_prefix): Tidy.
828
829 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
830
831         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
832         scan_parameters, save_replacement_text, replacement_length): New.
833         (scan_out_logical_line): Take a macro and save parameters if
834         non-NULL.
835         (_cpp_logical_line_trad): Update.
836         (_cpp_create_trad_definition): Update to handle function-like
837         macros.
838         * cpplex.c (new_buff): Update.
839         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
840         * cpphash.h: ...here.
841         (CPP_ALIGN2, _cpp_save_parameter): New.
842         * cppmacro.c (save_parameter): Rename, export.
843         (parse_params): Update.
844
845 2002-06-07  Andreas Jaeger  <aj@suse.de>
846
847         * config/mmix/mmix.c: Remove extra broken prototype for
848         mmix_init_machine_status.
849
850 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
851
852         * gengtype.c: Add comments before all the routines.
853
854 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
855
856         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
857         from and add t-sh64 to ${tmake_file}.
858         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
859         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
860         * config/sh/t-netbsd-sh5-32: Remove.
861         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
862         MULTILIB_ENDIAN.
863         (MULTILIB_DIRNAMES): Define.
864
865 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
866
867         * i386.md (and promoting splitters): Disable QI to SImode promoting
868         when doing so changes immediate to be 32bit.
869
870         * rtl.h (emit_*_scope): Declare.
871         * emit-rtl.c (emit_*_scope): New global functions.
872         (try_split): Copy scope.
873         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
874         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
875         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
876         noce_process_if_block, find_cond_trap): Copy scopes.
877         * recog.c (peephole2_optimize): likewise.
878
879 2002-06-06  Jeffrey Law  <law@redhat.com>
880
881         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
882
883 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
884
885         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
886
887 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
888
889         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
890         ($(docdir)/gccinstall.info): New target.
891         (info): Depend on it.
892         (gccinstall.dvi): New target.
893         (dvi): Depend on it.
894         * doc/.cvsignore: Ignore new info files.
895         * doc/install.texi (@setfilename): Reflect new info filename.
896
897 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
898
899         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
900         on an UNSPEC.
901
902 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
903
904         PR objc/6834
905         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
906         c_common_get_alias_set.
907         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
908
909 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
910
911         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
912         functions.
913         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
914         * avr/avr.c (avr_output_function_epilogue): Use above to determine
915         function size.
916         * pa/pa.c (pa_output_function_prologue): Likewise.
917
918 2002-06-05  David S. Miller  <davem@redhat.com>
919
920         * integrate.c (subst_constants): Handle 'B' RTL format.
921
922 2002-06-05  Eric Christopher  <echristo@redhat.com>
923
924         * varasm.c (make_decl_rtl): Fix comment for removed
925         halfpic.c.
926
927 2002-06-05  Eric Christopher  <echristo@redhat.com>
928
929         * Makefile.in: Remove missed halfpic bits.
930
931 2002-06-05  Eric Christopher  <echristo@redhat.com>
932
933         * toplev.c: Remove half-pic.
934         * config/mips/mips.c: Ditto.
935         * config/mips/mips.h: Ditto. Remove unused defines.
936         * config/mips/openbsd.h: Update comment to reflect above.
937         * config/mips/mips.md: Remove half-pic constraints.
938         * halfpic.h: Delete.
939         * halfpic.c: Ditto.
940
941 2002-06-05  Jeffrey Law  <law@redhat.com>
942
943         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
944         rejects (mem (lo_sum (reg) (unspec))), but will allow
945         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
946
947 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
948
949         * cpphash.h (_cpp_create_definition): Update prototype.
950         (_cpp_push_text_context, _cpp_create_trad_definition): New.
951         ( cpp_lex_identifier_trad): New.
952         (_cpp_set_trad_context): New.
953         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
954         * cpplib.c (SEEN_EOL): Update.
955         (lex_macro_node): Update for -traditional.
956         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
957         * cppmacro.c (_cpp_create_definition): Split into
958         create_iso_definition() and _cpp_create_trad_definition().
959         (warn_of_redefinition): Update prototype; handle traditional
960         macros.
961         (_cpp_push_text_context): New.
962         * cpptrad.c (skip_whitespace, push_replacement_text): New.
963         (lex_identifier): Call ht_lookup with correct start.
964         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
965         _cpp_set_trad_context): New.
966         (scan_out_logical_line): Update to handle changing contexts.
967
968 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
969
970         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
971         (shl*-*-elf*): Add.
972         * config/sh/t-be (MULTILIB_ENDIAN): Set.
973         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
974         * t-sh (MULTILIB_ENDIAN): Set.
975         (MULTILIB_OPTIONS): Use it.
976         * t-sh64 (MULTILIB_OPTIONS): Likewise.
977         (MULTILIB_DIRNAMES): Likewise.
978
979 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
980
981         * toplev.h (report_error_function): Remove.
982
983         * diagnostic.h (location_t): New datatype.
984         (text_info): Likewise.
985         (diagnostic_info): Likewise.
986         (output_prefix): New macro.
987         (diagnostic_last_function_changed): Likewise.
988         (diagnostic_set_last_function): Likewise.
989         (diagnostic_last_module_changed): Likewise.
990         (diagnostic_set_last_module): Likewise.
991         (report_diagnostic): Now macro.
992         (diagnostic_set_info): Declare.
993
994         * diagnostic.c (report_problematic_module): Rename to
995         diagnostic_repor_current_module.
996         (set_diagnostic_context): Remove.
997         (count_error): Rename to diagnostic_error_count.
998         (error_function_changed): Remove.
999         (record_last_error_function): Likewise.
1000         (error_module_changed): Likewise.
1001         (record_last_error_module): Likewise.
1002         (context_as_prefix): Rename to diagnostic_build_prefix.
1003         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
1004         (diagnostic_set_info): New function.
1005
1006         * objc/objc-act.c: #include diagnostic.h
1007         (error_with_ivar): Adjust call to count_error.
1008         (warn_with_method): Likewise.
1009         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
1010
1011 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
1012
1013         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
1014         lang_hooks.types.make_type instead of make_node; set up
1015         __va_list_tag type decl.
1016         (xtensa_builtin_saveregs): Remove broken use of
1017         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
1018         for saved registers; add varargs alias set.
1019
1020 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1021
1022 config:
1023         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
1024         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1025         CPP_PREDEFINES and part of CPP_SPEC.
1026         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
1027         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
1028
1029 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
1030
1031         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
1032
1033 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
1034
1035         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
1036
1037 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
1038
1039         * gengtype-yacc.y: Make sure all rules end with a semicolon.
1040
1041 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
1042
1043         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
1044         typo in function prototype and include "ggc.h" header.
1045
1046 2002-06-04  Richard Henderson  <rth@redhat.com>
1047
1048         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
1049         (print_operand) ['U']: Likewise.
1050         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
1051         (alpha_expand_unaligned_store_words): Likewise.
1052         (alpha_expand_builtin_vector_binop): Fix typo.
1053         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
1054         umulh, and cix insns.
1055         (one_arg_builtins): Add cix builtins.
1056         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
1057         (alpha_expand_builtin): Fix typo in arity.
1058         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
1059         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
1060         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
1061         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
1062         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
1063         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
1064         builtin_ctlz, builtin_ctpop): New.
1065         * doc/extend.texi (Alpha Built-in Functions): Update.
1066
1067 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
1068
1069         * gengtype.c (write_gc_root): Don't unnecessarily prevent
1070         global variable-length arrays being roots.
1071
1072         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
1073         * configure.in (config_gtfiles): New variable.
1074         (all_gtfiles): Initialise from config_gtfiles.
1075         * configure: Regenerate.
1076
1077 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1078
1079 config/i386:
1080         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
1081         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
1082         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
1083         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
1084         win32.h (CPP_SPEC): Remove cpp_cpu.
1085         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
1086         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
1087
1088 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
1089
1090         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
1091
1092 2002-06-04  Jeff Law <law@redhat.com.
1093             David Edelsohn <edelsohn@gnu.org>
1094             Michael Matz <matz@kde.org>
1095
1096         * sched-int.h (struct deps): New field libcall_block_tail_insn.
1097         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
1098         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
1099         is set, then mark the current insn as being part of a libcall
1100         scheduling group.
1101         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
1102
1103         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
1104         insns against the issue rate.
1105
1106 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
1107
1108         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
1109         * final.c (final_scan_insn): Likewise.
1110         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
1111         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
1112         * haifa-sched.c (unlink_other_notes): Likeewise.
1113         (reemit_notes): Likewise.
1114         * print-rtl.c (print_rtx): Likewise.
1115         * sched-deps (sched-analyze): Likewise.
1116         * rtl.c (note_insn_name): Likewise.
1117         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
1118         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
1119         (RANGE_*): Kill.
1120
1121 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1122
1123         * varasm.c (mark_constants): Handle RTX format 'B'.
1124
1125 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1126
1127         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
1128         (struct cpp_context): Add traditional fields.
1129         * cppmacro.c (paste_all_tokens, push_ptoken_context,
1130         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
1131         * cpptrad.c (skip_comment, lex_identifier,
1132         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
1133
1134 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
1135
1136         * gbl-ctors.h: Fix formatting.
1137         * gcc.c: Likewise.
1138         * gccspec.c: Likewise.
1139         * gcov.c: Likewise.
1140         * gcov-io.h: Likewise.
1141         * gcse.c: Likewise.
1142         * ggc-common.c: Likewise.
1143         * ggc.h: Likewise.
1144         * ggc-page.c: Likewise.
1145         * ggc-simple.c: Likewise.
1146         * global.c: Likewise.
1147         * graph.h: Likewise.
1148         * gthr-dce.h: Likewise.
1149         * gthr.h: Likewise.
1150         * gthr-posix.h: Likewise.
1151         * gthr-rtems.h: Likewise.
1152         * gthr-solaris.h: Likewise.
1153         * gthr-win32.h: Likewise.
1154
1155 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
1156
1157         Merge from pch-branch:
1158
1159         * gengtype.h (UNION_OR_STRUCT_P): New macro.
1160         * gengtype.c (write_gc_structure_fields): Use it.
1161         (write_gc_root): Use it here too.
1162
1163         * gengtype.c (write_gc_structure_fields): Assume that lengths
1164         of typenames fit into an 'int'; don't pass a size_t to "%d" in
1165         printf.
1166         (write_gc_marker_routine_for_structure): Likewise.
1167         (write_gc_types): Likewise.
1168         (write_gc_root): Likewise.
1169
1170         * varray.h (VARRAY_CLEAR): New.
1171         (varray_clear): Prototype.
1172         * varray.c (varray_clear): New.
1173         * cselib.c (reg_values_old): New.
1174         (used_regs_old): New.
1175         (cselib_init): Use cached varrays if available to avoid
1176         generating large amounts of garbage.
1177         (cselib_finish): Don't throw away old varrays.
1178
1179         * final.c (insn_addresses_): Move out of ifdef.
1180
1181         * varray.c (uses_ggc): Make more varray kinds GCable.
1182         * varray.h (union varray_data_tag): Let gengtype see
1183         fields 'generic' and 'te'.
1184         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
1185         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
1186         (reg_to_stack): Don't call VARRAY_FREE.
1187         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
1188         (insn_addresses_): Use gengtype to mark.
1189         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
1190         pointers; handle generic pointers in unused union fields.
1191         (get_output_file_with_visibility): Include cselib.h,
1192         insn-addr.h in gtype-desc.c.
1193         * function.c (prologue): Use gengtype to mark.
1194         (epilogue): Likewise.
1195         (sibcall_epilogue): Likewise.
1196         * dependence.c: Include gt-dependence.h, ggc.h.
1197         (struct def_use): Use gengtype to mark.
1198         (struct loop): Likewise.
1199         (struct induction): Likewise.
1200         (struct dependence): Likewise.
1201         (def_use_chain): Likewise.
1202         (dep_chain): Likewise.
1203         (loop_chain): Likewise.
1204         (induction_chain): Likewise.
1205         (init_dependence_analysis): Don't free anything, just clear pointers.
1206         (build_def_use): Use GGC to allocate def_use.
1207         (add_loop): Use GGC to allocate loop.
1208         (find_induction_variable): Use GGC to allocate induction.
1209         (check_node_dependence): Use GGC to allocate induction, dependence.
1210         (dump_node_dependence): Don't free varrays.
1211         (end_dependence_analysis): Likewise.
1212         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
1213         (struct elt_loc_list): Likewise.
1214         (struct elt_list): Likewise.
1215         * cselib.c: Don't include obstack.h.
1216         (hash_table): Use gengtype to mark.
1217         (reg_values): Use gengtype to mark.
1218         (used_regs): Use gengtype to mark.
1219         (cselib_obstack): Delete.
1220         (cselib_startobj): Delete.
1221         (empty_vals): Mark as deletable.
1222         (empty_elt_lists): Mark as deletable.
1223         (empty_elt_loc_lists): Mark as deletable.
1224         (new_elt_list): Use GGC to allocate struct elt_list.
1225         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
1226         (clear_table): Don't delete obstack; don't unnecessarily clear
1227         deletable variables.
1228         (new_cselib_val): Use GGC to allocate struct cselib_val.
1229         (cselib_init): Don't set up obstacks.  Use GGC to allocate
1230         hash table.
1231         (cselib_finish): Just clear variables, don't free anything.
1232         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
1233         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
1234         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
1235         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
1236         (gt-reg-stack.h): New rule.
1237         (gt-dependence.h): New rule.
1238         (gtype-desc.o): Add cselib.h, insn-addr.h.
1239
1240         * varray.c: Use only necessary headers.
1241         (element_size): New.
1242         (uses_ggc): New.
1243         (varray_init): Take type, not size.  Use GGC if appropriate.
1244         (varray_grow): Update for change to struct varray_head_tag.
1245         Use GGC if appropriate.
1246         * varray.h (struct const_equiv_data): Use gengtype.
1247         (enum varray_data_enum): New.
1248         (union varray_data_tag): Use gengtype.
1249         (struct varray_head_tag): Use gengtype.  Replace size field with
1250         enum varray_data_enum.
1251         (varray_init): Update prototype.
1252         (VARRAY_SCHED_INIT): Delete.
1253         (VARRAY_*_INIT): Update for change to varray_init.
1254         (VARRAY_SCHED): Delete.
1255         (VARRAY_PUSH_SCHED): Delete.
1256         (VARRAY_TOP_SCHED): Delete.
1257         * tree.h: Update for change to length specifier.
1258         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
1259         (clone_body): Likewise.
1260         * ssa.h (ssa_definition): Use gengtype to mark.
1261         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
1262         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
1263         * rtl.h (struct rtvec_def): Update for change to length specifier.
1264         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
1265         (struct initial_value_struct): Update for change to length specifier.
1266         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
1267         (ggc_add_tree_varray_root): Delete prototype.
1268         (ggc_mark_rtx_varray): Delete prototype.
1269         (ggc_mark_tree_varray): Delete prototype.
1270         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
1271         (ggc_add_tree_varray_root): Delete.
1272         (ggc_mark_rtx_varray): Delete.
1273         (ggc_mark_tree_varray): Delete.
1274         (ggc_mark_rtx_varray_ptr): Delete.
1275         (ggc_mark_tree_varray_ptr): Delete.
1276         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
1277         (create_varray): Delete prototype.
1278         * gengtype.c (varrays): Delete.
1279         (create_varray): Delete.
1280         (adjust_field_type): Detect array of string pointers.
1281         (process_gc_options): Remove code to handle varray_type option.
1282         (set_gc_used_type): Remove TYPE_VARRAY case.
1283         (output_escaped_param): New.
1284         (write_gc_structure_fields): Use output_escaped_param on all
1285         parameters.  Handle 'skip' with 'use_param' option.  Handle
1286         arrays of strings.  Remove TYPE_VARRAY handling.
1287         (write_gc_roots): Use boolean to detect 'length' option.
1288         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
1289         (struct_fields): Call adjust_field_type on array fields.
1290         (type): Remove VARRAY_TYPE case.
1291         (type_option): Likewise.
1292         * gengtype-lex.l: Don't consider varray_type a keyword.
1293         * function.h: Update for change to length specifier.
1294         (free_eh_status): Delete prototype.
1295         * function.c (free_after_compilation): Don't call free_eh_status.
1296         (reorder_blocks): Don't use VARRAY_FREE.
1297         * except.c (struct eh_status): Update for change to length specifier.
1298         remove varray_type specifier.
1299         (free_eh_status): Delete.
1300         * dwarf2out.c: Include gt-dwarf2out.h.
1301         (used_rtx_varray): Use gengtype to mark, move
1302         outside ifdefs.
1303         (incomplete_types): Likewise.
1304         (decl_scope_table): Likewise.
1305         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
1306         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
1307         * c-tree.h (struct lang_type): Update for change to length specifier.
1308         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
1309         * c-objc-common.c: Include gt-c-objc-common.h.
1310         (deferred_fns): Mark for gengtype.
1311         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
1312         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
1313         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
1314         (gtype-desc.o): Update dependencies.
1315         (dwarf2out.o): Add gt-dwarf2out.h.
1316         (varray.o): Update dependencies.
1317         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
1318         (gt-c-objc-common.h): New rule.
1319         (gt-dwarf2out.h): New rule.
1320         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
1321
1322         * doc/gty.texi (GTY Options): Correct spelling.
1323         (GGC Roots): Likewise.
1324         * Makefile.in (TEXI_CPP_FILES): New.
1325         (TEXI_GCC_FILES): New.
1326         (TEXI_GCCINT_FILES): New.
1327         (TEXI_CPPINT_FILES): New.
1328         ($(docdir)/cpp.info): Use new macros.
1329         ($(docdir)/gcc.info): Likewise.
1330         ($(docdir)/gccint.info): Likewise.
1331         ($(docdir)/cppinternals.info): Likewise.
1332         (cpp.dvi): Likewise.
1333         (gcc.dvi): Likewise.
1334         (gccint.dvi): Likewise.
1335         (cppinternals.dvi): Likewise.
1336
1337         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
1338         * doc/gccint.texi (Top): Include gty.texi.
1339         * doc/gty.texi: New file.
1340
1341         * bitmap.c: Include ggc.h, gt-bitmap.h.
1342         (bitmap_ggc_free): New.
1343         (bitmap_elem_to_freelist): New.
1344         (bitmap_element_free): Use bitmap_elem_to_freelist.
1345         (bitmap_element_allocate): Allow use of GGC.
1346         (bitmap_clear): Use bitmap_elem_to_freelist.
1347         (bitmap_copy): Update for change to bitmap_element_allocate.
1348         (bitmap_set_bit): Likewise.
1349         (bitmap_operation): Update for changes elsewhere.
1350         (bitmap_initialize): Allow to create bitmaps that will use GGC.
1351         * bitmap.h (struct bitmap_element_def): Use gengtype.
1352         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
1353         (bitmap_initialize): Add extra parameter.
1354         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
1355         (BITMAP_ALLOCA): Delete.
1356         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
1357         (BITMAP_GGC_ALLOC): New.
1358         * Makefile.in (gtype-desc.o): Add bitmap.h.
1359         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
1360         (GTFILES): Add bitmap.c.
1361         (gt-bitmap.h): New rule.
1362         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
1363         * basic-block.h: Update for changes to bitmap_initialize.
1364         * except.c (exception_handler_label_map): Move into...
1365         (struct eh_status): Here.
1366         (struct eh_region): Make 'aka' GCable.
1367         (free_eh_status): Don't need to specially handle
1368         exception_handler_label_map.
1369         (add_ehl_entry): Update for changes to exception_handler_label_map.
1370         (find_exception_handler_labels): Likewise.
1371         (remove_exception_handler_label): Likewise.
1372         (maybe_remove_eh_handler): Likewise.
1373         (for_each_eh_label): Likewise.
1374         (remove_eh_handler): Allocate 'aka' using GGC.
1375         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
1376         to list of includes.
1377
1378         * gengtype.c (write_gc_marker_routine_for_structure): Name
1379         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
1380         (write_gc_types): Arrange for the tests with NULL to be inlined.
1381         (write_gc_roots): Update uses of procedure pointers.
1382         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
1383
1384         * Makefile.in (explow.o): Add dependency on gt-explow.h.
1385         (sdbout.o): Add dependency on gt-sdbout.h.
1386
1387         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
1388         (mem_attrs_htab): Likewise.
1389         (init_emit_once): Don't call ggc_add_deletable_htab.
1390         * fold-const.c (size_htab): Use gengtype to clear unused entries.
1391         (size_int_type_wide): Don't call ggc_add_deletable_htab.
1392         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
1393         parameters, use them, change callers.
1394         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
1395         (write_gc_roots): Handle 'if_marked' option.
1396         (main): Don't need to call set_gc_used_type any more.
1397         * ggc.h (ggc_htab_marked_p): Delete.
1398         (ggc_htab_mark): Delete.
1399         (struct ggc_cache_tab): New.
1400         (gt_ggc_cache_rtab): New declaration.
1401         * ggc-common.c (struct d_htab_root): Delete.
1402         (d_htab_roots): Delete.
1403         (ggc_add_deletable_htab): Delete.
1404         (ggc_htab_delete): Handle new htab-deleting mechanism.
1405         (ggc_mark_roots): Use new htab-deleting mechanism.
1406         * tree.c (type_hash_table): Use gengtype to clear unused entries.
1407         Make static.
1408         (init_obstacks): Don't call ggc_add_deletable_htab.
1409
1410         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
1411         (struct hashed_entry): Likewise.
1412         (nst_method_hash_list): Likewise.
1413         (cls_method_hash_list): Likewise.
1414         (HASH_ALLOC_LIST_SIZE): Delete.
1415         (ATTR_ALLOC_LIST_SIZE): Delete.
1416         * objc/objc-act.c (hash_init): Use ggc to allocate
1417         nst_method_hash_list, cls_method_hash_list.
1418         (hash_enter): Use ggc to allocate; allocate one entry at a time.
1419         (hash_add_attr): Likewise.
1420         (ggc_mark_hash_table): Delete.
1421         (objc_act_parse_init): Delete.
1422         (objc_init): Delete reference to objc_act_parse_init.
1423         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
1424         obstack.h.  Replace references to 'struct hash_table' with htab_t.
1425         (struct symbol_hash_entry): Replace hash header with key field.
1426         (struct file_hash_entry): Replace hash header with key field.
1427         (struct demangled_hash_entry): Replace hash header with key field.
1428         (hash_string_eq): New.
1429         (hash_string_hash): New.
1430         (symbol_hash_newfunc): Delete.
1431         (symbol_hash_lookup): Modify to use htab_t.
1432         (file_hash_newfunc): Delete.
1433         (file_hash_lookup): Modify to use htab_t.
1434         (demangled_hash_newfunc): Delete.
1435         (demangled_hash_lookup): Modify to use htab_t.
1436         (tlink_init): Modify to use htab_t.
1437         * hash.h: Delete.
1438         * hash.c: Delete.
1439         * ggc.h: Delete forward structure declarations.
1440         Delete prototypes for deleted functions.
1441         * ggc-common.c: Don't include hash.h.
1442         (ggc_add_tree_hash_table_root): Delete.
1443         (ggc_mark_tree_hash_table_entry): Delete.
1444         (ggc_mark_tree_hash_table): Delete.
1445         (ggc_mark_tree_hash_table_ptr): Delete.
1446         * gengtype.c (write_gc_structure_fields): Allow param_is option.
1447         (write_gc_marker_routine_for_structure): Use visibility of
1448         the parameter if there is one.
1449         * function.c: Replace hash.h with hashtab.h.  Replace references
1450         to 'struct hash_table *' with htab_t.
1451         (struct insns_for_mem_entry): Include a plain key.
1452         (fixup_var_refs_insns_with_hash): Update to use htab_t.
1453         (insns_for_mem_newfunc): Delete.
1454         (insns_for_mem_hash): Update to use htab_t.
1455         (insns_for_mem_comp): Likewise.
1456         (insns_for_mem_walk): Likewise.
1457         * c-lang.c: Include ggc.h.
1458         * Makefile.in (OBJS): Remove hash.o.
1459         (c-lang.o): Add GGC_H.
1460         (COLLECT2_OBJS): Remove hash.o.
1461         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
1462         (ggc-common.o): Remove hash.h.
1463         (function.o): Remove hash.h, add HASHTAB_H.
1464         (genautomata.o): Remove hash.h, add HASHTAB_H.
1465
1466         * varasm.c (mark_const_str_htab_1): Delete.
1467         (mark_const_str_htab): Delete.
1468         (const_str_htab_del): Delete.
1469         (const_str_htab): Use gengtype to mark.
1470         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
1471         allocate them.
1472         * tree.c (mark_tree_hashtable_entry): Delete.
1473         (mark_tree_hashtable): Delete.
1474         * tree.h (mark_tree_hashtable): Delete prototype.
1475         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
1476         (ggc_mark): Likewise.
1477         (ggc_calloc): New.
1478         (htab_create_ggc): New.
1479         * ggc-common.c (ggc_calloc): New.
1480         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
1481         (struct type): Add param_struct structure.
1482         * gengtype.c (param_structs): New.
1483         (adjust_field_type): Handle param_is option.
1484         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
1485         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
1486         (write_gc_structure_fields): Add new PARAM parameter.  Update
1487         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
1488         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
1489         Use it to generate function name.  Update callers.
1490         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
1491         Process them.
1492         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
1493         option.
1494         (main): Define PTR as pointer-to-scalar.  Don't specially
1495         mark deferred_string or ehl_map_entry.
1496         * gengtype-yacc.y (PARAM_IS): Add new token.
1497         (externstatic): Use adjust_field_type.
1498         (type_option): Add PARAM_IS.
1499         * gengtype-lex.l: Add rule for typedef of function pointers.
1500         Add rule for PARAM_IS.
1501         (IWORD): Add size_t.
1502         * except.c (exception_handler_label_map): Use gengtype to mark.
1503         (type_to_runtime_map): Likewise.
1504         (mark_ehl_map_entry): Delete.
1505         (mark_ehl_map): Delete.
1506         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
1507         (t2r_mark_1): Delete.
1508         (t2r_mark): Delete.
1509         * Makefile.in (gtype-desc.o): Correct dependencies.
1510         (GTFILES): Add hashtab.h.
1511         (genautomata.o): Actually uses hashtab.h.
1512
1513         * Makefile.in (stringpool.o): Add $(GGC_H).
1514         (dwarf2asm.o): Likewise.
1515         (GTFILES): Add hashtable.h.
1516         * c-common.h (struct c_common_identifier): Use gengtype.
1517         * c-decl.h (c_mark_tree): Delete.
1518         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1519         * c-tree.h (struct lang_identifier): Use gengtype.
1520         (union lang_tree_node): New.
1521         (c_mark_tree): Delete prototype.
1522         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
1523         dwarf2_debug_hooks.
1524         * gengtype-lex.l (IWORD): Allow 'bool'.
1525         (ptr_alias): Match.
1526         * gengtype-yacc.y (ALIAS): New token.
1527         (type_option): New rule.
1528         (option): Use type_option.
1529         * gengtype.c (process_gc_options): New.
1530         (set_gc_used_type): Use it.
1531         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
1532         Add new variable 't' to hold the type of the field being processed.
1533         Add more error checking.  Use UNION_P when looking at 'desc' option.
1534         Handle language-specific structures containing other
1535         language-specific structures.
1536         (write_gc_types): Handle 'ptr_alias' option.
1537         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
1538         * ggc-common.c (ggc_pending_trees): Delete.
1539         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
1540         (ggc_mark_trees): Delete.
1541         (gt_ggc_m_tree_node): Delete.
1542         * ggc.h (ggc_pending_trees): Delete.
1543         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
1544         * hashtable.h (ht_identifier): Use gengtype.
1545         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
1546         * langhooks.h (struct lang_hooks): Delete mark_tree.
1547         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
1548         anyway.
1549         * system.h: Poison LANG_HOOKS_MARK_TREE.
1550         * tree.c (tree_node_structure): New.
1551         * tree.h (struct tree_common): Use gengtype.
1552         (struct tree_int_cst): Likewise.
1553         (struct tree_real_cst): Likewise.
1554         (struct tree_string): Likewise.
1555         (struct tree_complex): Likewise.
1556         (struct tree_vector): Likewise.
1557         (struct tree_identifier): Likewise.
1558         (struct tree_list): Likewise.
1559         (struct tree_vec): Likewise.
1560         (struct tree_exp): Likewise.
1561         (struct tree_block): Likewise.
1562         (struct tree_type): Likewise.
1563         (struct tree_decl): Likewise.
1564         (enum tree_structure_enum): New.
1565         (union tree_node): Use gengtype, with an alias.
1566         (tree_node_structure): Prototype.
1567         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
1568
1569         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
1570         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
1571         to LANG_HOOKS_FUNCTION_FINAL.
1572         * Makefile.in (GTFILES): Add bitmap.h.
1573         * except.c (struct eh_region): Mark field 'aka' to be skipped.
1574
1575         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
1576         (alpha_init_machine_status): Give proper type.
1577         * Makefile.in (c-lang.o): Depend on gtype-c.h.
1578         (optabs.o): Depend on gt-optabs.h.
1579         (GTFILES): Add optabs.o.
1580         (gt-optabs.h): Add rule.
1581         * optabs.c: Include gt-optabs.h.
1582
1583         * gengtype.c (set_gc_used_type): Correct some errors in last change.
1584         (write_gc_structure_fields): If a field which should be NULL is
1585         not, abort.
1586         * c-pragma.c: Move struct align_stack and variable alignment_stack
1587         out from the ifdef.
1588
1589         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
1590         * config/xtensa/xtensa.c: Include gt-cris.h.
1591         (struct machine_function): Use gengtype to mark.
1592         * config/mmix/mmix.h (struct machine_function): Use gengtype
1593         to mark.
1594         * config/cris/t-cris: Add dependencies for gt-cris.h.
1595         * config/cris/cris.c: Include gt-cris.h.
1596         (struct machine_function): Use gengtype to mark.
1597         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
1598         to mark.
1599         * doc/tm.texi (Per-Function Data): Delete references to
1600         mark_machine_status.
1601         * config/ia64/ia64.c (ia64_override_options): Don't set
1602         mark_machine_status.
1603         * config/i386/i386.c (override_options): Likewise.
1604         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
1605         * config/arm/arm.c (arm_init_expanders): Likewise.
1606         * config/alpha/alpha.c (override_options): Likewise.
1607         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
1608         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
1609         (write_gc_structure_fields): Don't handle 'really' option.
1610         Handle 'maybe_null' option.
1611         (write_gc_types): Handle 'maybe_null' option.
1612         * function.h (struct function): Don't use "really".
1613         (mark_machine_status): Delete declaration.
1614         (mark_lang_status): Delete declaration.
1615         (gt_ggc_mr_machine_function): Delete prototype.
1616         (gt_ggc_mr_language_function): Delete prototype.
1617         * function.c (mark_machine_status): Delete.
1618         (mark_lang_status): Delete.
1619         (gt_ggc_mr_machine_function): Delete.
1620         (gt_ggc_mr_language_function): Delete.
1621         * c-tree.h (mark_c_function_context): Delete prototype.
1622         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
1623         * c-decl.c (struct language_function): Rename from struct
1624         c_language_function.  Update uses.  Use gengtype to mark.
1625         (mark_c_function_context): Delete.
1626         * c-common.h (struct c_language_function): Rename from struct
1627         language_function.
1628         (mark_stmt_tree): Delete prototype.
1629         (c_mark_lang_decl): Delete prototype.
1630         (mark_c_language_function): Delete prototype.
1631         * c-common.c (mark_stmt_tree): Delete.
1632         (c_mark_lang_decl): Delete.
1633         (mark_c_language_function): Delete.
1634
1635         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
1636         (lang_bitmap): New typedef.  Use where appropriate.
1637         (struct type): Add gc_used field, lang_struct field.
1638         (UNION_P): New macro.
1639         (new_structure): New prototype.
1640         (find_structure): Remove 'pos' parameter.  Change all callers.
1641         * gengtype-lex.l: Update for changes to find_structure.
1642         * gengtype-yacc.y (typedef_struct): Use new_structure.
1643         (yacc_ids): Suppress warning.
1644         (type): Use new_structure.
1645         * gengtype.c (string_type): Update for changes to struct type.
1646         (find_structure): Just find a structure, don't worry about
1647         creating one.
1648         (new_structure): New.
1649         (note_yacc_type): Use new_structure.
1650         (set_gc_used_type): New.
1651         (set_gc_used): New.
1652         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
1653         (write_gc_types): Handle TYPE_LANG_STRUCT.
1654         (write_gc_marker_routine_for_structure): New.
1655         (main): Call set_gc_used.  Add some calls to set_gc_used_type
1656         for places where GCC doesn't use gengtype properly yet.
1657         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
1658         (gt_ggc_m_tree_node): Likewise.
1659
1660         * varasm.c (copy_constant): Call expand_constant if we hit
1661         something we can't recognise.
1662
1663         * ggc-common.c (ggc_mark_rtvec_children): Delete.
1664         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
1665         (lang_mark_false_label_stack): Delete.
1666         * rtl.h (struct rtvec_def): Use gengtype to mark.
1667         * ggc.h (ggc_mark_rtvec): Delete.
1668         (gt_ggc_m_rtvec_def): Delete.
1669         (ggc_mark_nonnull_tree): Delete.
1670         (ggc_mark_rtvec_children): Delete prototype.
1671         (lang_mark_false_label_stack): Delete declaration.
1672
1673         * gengtype.h (note_yacc_type): Add prototype.
1674         * gengtype.c (note_yacc_type): New function.
1675         * gengtype-lex.l: Add lexer support for yacc files.
1676         * gengtype-yacc.y (start): Extract union from yacc files.
1677         (yacc_union): New rule.
1678         (yacc_typematch): New rule.
1679         (yacc_ids): New rule.
1680         (enum_items): Tweak for efficiency.
1681         (optionseq): Likewise.
1682
1683         * c-common.h (struct language_function): Use gengtype.
1684         (struct c_lang_decl): Likewise.
1685         * c-tree.h (struct lang_decl): Likewise.
1686         (struct lang_type): Likewise.
1687         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
1688         tree language substructures.
1689
1690         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
1691         ggc_mark_tree.
1692         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
1693
1694         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
1695
1696         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
1697         mark. Remove 'data.block.cleanup_ptr' field.
1698         (struct stmt_status): Use usual technique to mark struct nesting.
1699         (gt_ggc_mr_nesting_cond): Delete.
1700         (gt_ggc_mr_nesting_loop): Delete.
1701         (gt_ggc_mr_nesting_block): Delete.
1702         (gt_ggc_mr_nesting_case_stmt): Delete.
1703         (expand_start_cond): Set discriminator.
1704         (expand_start_loop): Likewise.
1705         (expand_start_null_loop): Likewise.
1706         (expand_start_bindings_and_block): Set discriminator.  Don't set
1707         deleted fields.
1708         (expand_decl_cleanup): Replace 'cleanup_ptr' with
1709         &thisblock->data.block.cleanups.
1710         (expand_start_case): Set discriminator.
1711         (expand_start_case_dummy): Set discriminator.
1712
1713         * ggc-callbacks.c: Remove.
1714
1715         * gengtype.h (struct type): Add 'u.s.bitmap' field.
1716         (find_structure): Add 'pos' parameter.
1717         * gengtype-lex.l: Update callers to find_structure.
1718         * gengtype-yacc.y: Likewise.
1719         * gengtype.c (find_structure): Allow for structures to be defined
1720         in multiple language backends.
1721         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
1722         (counter): Rename to gc_counter.
1723         (write_gc_structure_fields): Fail when writing out fields for
1724         an incomplete structure.  Ignore arrays of scalars.  Handle
1725         'tree_vec' special.
1726         (write_gc_types): Reset counter for each procedure written.
1727
1728         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
1729         (free_case_nodes): Delete.
1730         (expand_end_case_type): Delete call to free_case_nodes.
1731
1732         * Makefile.in (cselib.o): Include gt-<filename>.h.
1733         (gcse.o): Likewise.
1734         (profile.o): Likewise.
1735         (alias.o): Likewise.
1736         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
1737         alphabetize backend files.
1738         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
1739         * alias.c: Use gengtype for roots.
1740         * c-common.h (struct stmt_tree_s): Use gengtype.
1741         * c-decl.c: Use gengtype for roots.
1742         * cselib.c: Use gengtype for roots.
1743         * expr.c: Use gengtype for roots.
1744         * fold-const.c: Use gengtype for roots.
1745         * gcse.c: Use gengtype for roots.
1746         * gengtype-lex.l: Handle typedefs of function types.
1747         Allow for empty array bounds.
1748         Allow processing to stop on initialisers.
1749         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
1750         (semiequal): New rule.
1751         * gengtype.c (create_file): Tidy output files.
1752         (get_output_file_with_visibility): Fix paren warning.  Fix bug
1753         involving multiple input files mapping to one output file.
1754         (write_gc_structure_fields): Skip arrays of scalars.
1755         (write_gc_types): Tidy output files.
1756         (write_gc_root): New function.
1757         (write_gc_roots): Fix bugs, add support for roots that are
1758         structures.
1759         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
1760         (ggc_mark_tree_ptr): Delete.
1761         (ggc_add_rtx_root): Delete.
1762         (ggc_add_tree_root): Delete.
1763         (ggc_del_root): Delete.
1764         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
1765         allocate struct initial_value_struct.
1766         * profile.c: Use gengtype for roots.
1767         * sdbout.c: Use gengtype for roots.
1768         * varasm.c (mark_weak_decls): Delete unused prototype.
1769         (mark_const_hash_entry): Delete unused function.
1770         * config/darwin-protos.h: Use gengtype for roots.
1771         (machopic_add_gc_roots): Delete.
1772         * config/arm/arm.c: Use gengtype for roots.
1773         * config/arm/arm.h: Use gengtype for roots.
1774         * config/c4x/c4x-protos.h: Use gengtype for roots.
1775         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
1776         * config/d30v/d30v-protos.h: Use gengtype for roots.
1777         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
1778         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
1779         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
1780         * config/ia64/ia64-protos.h: Use gengtype for roots.
1781         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
1782         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
1783         * config/m68hc11/m68hc11.c (z_reg): Make global.
1784         (z_reg_qi): Make global.
1785         (m68hc11_add_gc_roots): Delete.
1786         * config/mcore/mcore-protos.h: Use gengtype for roots.
1787         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
1788         * config/mips/mips.c (mips_add_gc_roots): Delete.
1789         * config/mips/mips.h: Use gengtype for roots.
1790         * config/mmix/mmix.c (override_options): Use gengtype for roots.
1791         * config/mmix/mmix.h: Use gengtype for roots.
1792         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
1793         * config/mn10200/mn10200.h: Use gengtype for roots.
1794         * config/pa/pa.c: Use gengtype for roots, marking.
1795         (struct deferred_plabel): Use GGC, gengtype.
1796         (pa_add_gc_roots): Delete.
1797         (mark_deferred_plabels): Delete.
1798         * config/pj/pj-protos.h: Use gengtype for roots.
1799         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
1800         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
1801         machopic_add_gc_roots.
1802         * config/rs6000/rs6000.h: Use gengtype for roots.
1803         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
1804         (gt-darwin.h): Add rule.
1805         * config/sh/sh.c: Use gengtype for roots.
1806         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
1807         (gt-sh.h): Add rule.
1808         * config/sparc/sparc.c: Use gengtype for roots.
1809         (sparc_add_gc_roots): Delete.
1810         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
1811         (mark_ultrasparc_pipeline_state): Delete.
1812         * config/sparc/sparc.h: Use gengtype for roots.
1813
1814         * Makefile.in (c-parse.o): Update dependencies.
1815         (c-common.o): Likewise.
1816         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
1817         Add dependencies for the files they generate.
1818         * c-common.c: Replace ggc_add_* uses with GTY annotations.
1819         * c-common.h: Likewise.
1820         * c-decl.c: Likewise.
1821         (gt_ggc_mp_binding_level): Delete.
1822         * c-lang.c: Include gtype-c.h.
1823         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
1824         gt-c-parse.h.
1825         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
1826         (gt_ggc_mp_align_stack): Delete.
1827         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
1828         * function.c: Replace ggc_add_* uses with GTY annotations.
1829         (gt_ggc_mp_function): Delete.
1830         * function.h: Replace ggc_add_* uses with GTY annotations.
1831         * gengtype.c (lang_names): New.
1832         (NUM_BASE_FILES): New.
1833         (open_base_files): Create language base files.
1834         (startswith): New.
1835         (get_file_basename): New.
1836         (get_base_file_bitmap): New.
1837         (get_output_file_with_visibility): Rename from get_output_file.
1838         Add more mappings for various C/Objc filenames.
1839         (finish_root_table): New.
1840         (write_gc_roots): Handle dependencies and scoping properly.
1841         * gengtype.h: Add prototypes for new functions.
1842         * ggc-common.c (struct deletable_root): Delete.
1843         (deletables): Delete.
1844         (ggc_add_deletable_root): Delete.
1845         (ggc_mark_roots): No need to deal with deleted functionality.
1846         * ggc.h (ggc_add_deletable_root): Delete prototype.
1847         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
1848         (gtype-objc.h): Add rule to create.
1849         * objc/config-lang.in (gtfiles): New.
1850         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
1851         ggc_add_* with GTY markers.  Include gtype-objc.h.
1852         (ggc_mark_imp_list): Delete.
1853         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
1854         * objc/objc-lang.c: Random Whitespace Change.
1855
1856         * except.h (exception_handler_labels): Delete.
1857         (get_exception_handler_labels): New.
1858         * except.c (exception_handler_labels): Delete.
1859         (struct eh_status): Add exception_handler_labels field.
1860         (doing_eh): Don't add exception_handler_labels as root.
1861         (free_eh_status): Don't need to free exception_handler_labels.
1862         (get_exception_handler_labels): New.
1863         (find_exception_handler_labels): Update for move of
1864         exception_handler_labels.
1865         (remove_exception_handler_label): Likewise.
1866         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
1867         * jump.c (rebuild_jump_labels): Likewise.
1868         * loop.c (find_and_verify_loops): Likewise.
1869         * sched-rgn.c (is_cfg_nonregular): Likewise.
1870
1871         * gengtype.c (write_gc_structure_fields): Handle variable-length
1872         TYPE_ARRAYs.
1873
1874         * varasm.c (struct weak_syms): Use GGC, gengtype.
1875         (mark_weak_decls): Delete.
1876         (weak_decls): Likewise.
1877         (add_weak): Likewise.
1878         (remove_from_pending_weak_list): Likewise.
1879         (init_varasm_once): Likewise.
1880
1881         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
1882         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
1883         stor-layout.c, regclass.c, and lists.c.
1884         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
1885         gt-regclass.h and gt-lists.h on s-gtype.
1886         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
1887         * except.c: Use gengtype for roots.
1888         * explow.c: Use gengtype for roots.  Include gt-explow.h.
1889         * expr.h (init_stor_layout_once): Delete prototype.
1890         * function.c: Use gengtype for roots.
1891         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
1892         * gengtype-yacc.y (start): Can also be an externstatic.
1893         (externstatic): New production.
1894         (struct_fields): Correct array bounds inversion for 2-d arrays.
1895         * gengtype.c (variables): New variable.
1896         (note_variable): New function.
1897         (get_output_file): Include libfuncs.h into gtype-desc.c.
1898         (get_output_file_name): New function.
1899         (write_gc_structure_fields): Suppress warnings.
1900         (write_gc_types): Make static.
1901         (put_mangled_filename): New function.
1902         (write_gc_roots): New function.
1903         (main): Call write_gc_roots.
1904         * gengtype.h (note_variable): Prototype.
1905         (get_output_file_name): Prototype.
1906         (write_gc_types): Delete prototype.
1907         * ggc.h: Clean up unnecessary structure predefinitions.
1908         (struct ggc_root_tab): Define.
1909         (gt_ggc_m_rtx_def): Make function, not macro.
1910         (gt_ggc_m_tree_node): Likewise.
1911         * libfuncs.h: Use gengtype for roots.
1912         * lists.c: Use gengtype for roots.  Include gt-lists.h.
1913         (init_EXPR_INSN_LIST_cache): Delete.
1914         * optabs.c: Use gengtype for roots.
1915         (gt_ggc_mp_optab): Delete.
1916         * optabs.h: Use gengtype for roots.
1917         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
1918         * rtl.h: Use gengtype for roots.
1919         (init_EXPR_INSN_LIST_cache): Delete prototype.
1920         * stor-layout.c: Use gengtype for roots.
1921         Include gt-stor-layout.h.
1922         (init_stor_layout_once): Delete.
1923         * toplev.c: Use gengtype for roots.  Delete calls to deleted
1924         routines.
1925         * tree.c: Use gengtype for roots.
1926         * tree.h: Use gengtype for roots.
1927         * varasm.c: Use gengtype for roots.
1928
1929         * Makefile.in (GTFILES): Add @all_gtfiles@.
1930         * configure: Regenerate.
1931         * configure.in: Construct all_gtfiles from the gtfiles definitions
1932         in config-lang.in.
1933         * gengtype-yacc.y (type): Warn about duplicate structure names.
1934         * gengtype.c (get_output_file): Handle .c files in language
1935         subdirectories.
1936
1937         * Makefile.in (GTFILES): Run gengtype on all the config files
1938         and on the target .c file.
1939         * except.c (mark_eh_region): Delete.
1940         (init_eh_for_function): Use GGC on struct eh_status.
1941         (mark_eh_status): Delete.
1942         (free_eh_status): Use GGC.
1943         (expand_eh_region_start): Use GGC to
1944         (collect_eh_region_array): Allocate last_region_number using GGC.
1945         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
1946         (remove_eh_handler): Let GGC free struct eh_region.
1947         (add_call_site): Use GGC to reallocate call_site_record array.
1948         * function.c (init_machine_status): Update calling sequence.
1949         (mark_machine_status): Likewise.
1950         (mark_lang_status): Likewise.
1951         (prepare_function_start): Update init_machine_status call.
1952         (mark_function_status): Delete.
1953         (maybe_mark_struct_function): Delete.
1954         (ggc_mark_struct_function): Delete.
1955         (gt_ggc_mp_function): New.
1956         (gt_ggc_mr_machine_function): New.
1957         (gt_ggc_mr_language_function): New.
1958         (init_function_once): Use canonical names.
1959         * function.h (struct function): Use gengtype.
1960         (init_machine_status): Return the structure.
1961         (mark_machine_status): Take a 'void *'.
1962         (mark_lang_status): Likewise.
1963         * ggc-common.c (ggc_mark_trees): Use canonical name for
1964         ggc_mark_struct_function.
1965         * tree.h (ggc_mark_struct_function): Delete prototype.
1966         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
1967         (alpha_init_machine_status): Likewise.
1968         (override_options): Use canonical name for alpha_mark_machine_status.
1969         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
1970         * config/arm/arm.h (struct machine_function): Use gengtype.
1971         * config/arm/arm.c (arm_mark_machine_status): Delete.
1972         (arm_init_machine_status): Update calling sequence.
1973         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
1974         * config/cris/cris.c (cris_init_machine_status): Update
1975         calling sequence.
1976         * config/d30v/d30v.h (struct machine_function): Use gengtype.
1977         * config/d30v/d30v.c (d30v_init_machine_status): Update
1978         calling sequence.
1979         (d30v_mark_machine_status): Delete.
1980         * config/i386/i386.c: Include gt-i386.h.
1981         (struct machine_function): Use gengtype.
1982         (ix86_init_machine_status): Update calling sequence.
1983         (ix86_mark_machine_status): Delete.
1984         (override_options): Use canonical namke for ix86_mark_machine_status.
1985         * config/ia64/ia64.h (struct machine_function): Use gengtype.
1986         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
1987         sequence.
1988         (ia64_mark_machine_status): Delete.
1989         (ia64_override_options): Use canonical name for
1990         ia64_mark_machine_status.
1991         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
1992         sequence.
1993         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
1994         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1995         * gengtype.c (get_output_file): Fix warning.
1996         (main): Add prototype to suppress warning.
1997         * tree.c: Remove tree_hash_mark prototype.
1998
1999         * tree.h (init_stmt): Delete prototype.
2000         * toplev.c (lang_independent_init): Don't call init_stmt.
2001         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
2002         (stmt_obstack): Delete.
2003         (POPSTACK): No need to free 'struct nesting'.
2004         (gt_ggc_mr_nesting_cond): Use canonical names.
2005         (gt_ggc_mr_nesting_loop): Use canonical names.
2006         (gt_ggc_mr_nesting_block): Use canonical names.
2007         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
2008         (mark_stmt_status): Delete.
2009         (init_stmt): Delete.
2010         (clear_last_expr): Clear both last_expr_type and last_expr_value.
2011         Use it everywhere that last_expr_type was cleared.
2012         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
2013         (zap_lists): Delete.
2014         * ggc.h (ggc_add_deletable_root): Prototype.
2015         (mark_stmt_status): Remove prototype.
2016         * ggc-common.c (ggc_add_deletable_root): New.
2017         (ggc_mark_roots): Handle deletable roots.
2018         * function.c (ggc_mark_struct_function): Use canonical name
2019         for mark_stmt_status.
2020         * emit-rtl.c (free_sequence_stack): New.
2021         (start_sequence): Use a freelist for sequences.
2022         (end_sequence): Likewise.
2023         (init_emit_once): Add free_sequence_stack as a deleteable root.
2024         * c-pragma.c Include gt-c-pragma.h.
2025         (struct align_stack): Use gengtype.
2026         (push_alignment): Use GGC for struct align_stack.
2027         (mark_align_stack): Delete.
2028         (gt_ggc_mp_align_stack): New.
2029         (init_pragma): Use canonical name for mark_align_stack.
2030         * c-decl.c: Include gt-c-decl.h.
2031         (struct binding_level): Use gengtype.
2032         (make_binding_level): Use GGC; handle the freelist here.
2033         (pop_binding_level): New.
2034         (pushlevel): Move code into make_binding_level.
2035         (push_label_level): Likewise.
2036         (poplevel): Move code into pop_binding_level.
2037         (pop_label_level): Likewise.
2038         (mark_binding_level): Delete.
2039         (gt_ggc_mp_binding_level): New.
2040         (c_init_decl_processing): Use canonical name for mark_binding_level.
2041         Add free_binding_level as deletable root.
2042         (mark_c_function_context): Use canonical name for mark_binding_level.
2043         * Makefile.in (c-decl.o): Add gt-c-decl.h.
2044         (c-pragma.o): Add gt-c-pragma.h.
2045         (GTFILES): Add c-decl.c and c-pragma.c.
2046         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
2047
2048         * tree.c (struct type_hash): Use gengtype.
2049         (init_obstacks): Use canonical name for type_hash_mark.
2050         (type_hash_mark): Delete.
2051         Include gt-tree.h.
2052         * rtl.h (struct mem_attrs): Use gengtype.
2053         * optabs.h (struct optab): Use gengtype.
2054         * optabs.c (expand_binop): Squish signed/unsigned warning.
2055         (mark_optab): Make local, use canonical name, use autogenerated
2056         marker procedure.
2057         (init_optabs): Use canonical name for mark_optab.
2058         (new_optab): Use GGC to allocate optabs.
2059         * ggc.h: Delete mark_optab prototype.
2060         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
2061         mem_attrs marker procedure.
2062         * gengtype.c (get_output_file): Include headers in gtype-desc.c
2063         explicitly rather than deducing them from file names.
2064         (write_gc_structure_fields): Handle arrays of structures.
2065         (main): Return non-zero exit code if errors occur during output.
2066         * emit-rtl.c (mem_attrs_mark): Delete.
2067         (init_emit_once): Use canonical name for mem_attrs marker procedure.
2068         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
2069         (tree.o): Depend on gt-tree.h.
2070         (GTFILES): Add rtl.h, optabs.h, tree.c.
2071         (gt-tree.h): Add it to s-gtype rule.
2072
2073         * .cvsignore: Ignore gengtype flex/bison generated files.
2074         * Makefile.in (GGC_H): Add gtype-desc.h.
2075         (OBJS): Add gtype-desc.o.
2076         (GEN): Add gengtype.
2077         (STAGESTUFF): Add gengtype.
2078         (varasm.o): Add gt-varasm.h.
2079         (stmt.o): Add gt-stmt.h.
2080         (except.o): Add gt-except.h.
2081         (integrate.o): Add gt-integrate.h.
2082         (GTFILES): New.
2083         Add new rules for new files.
2084         * configure: Regenerate.
2085         * configure.in: Correct defaults.h paths.
2086         * emit-rtl.c (mark_sequence_stack): Delete.
2087         (mark_emit_status): Delete.
2088         (start_sequence): Allocate sequence structures using GGC.
2089         (end_sequence): Allocate sequence structures using GGC.
2090         * except.c: Use gengtype for various structures.  Include
2091         gt-except.h.
2092         * expr.c (mark_expr_status): Delete.
2093         * function.c: Use gengtype for various structures.  Include
2094         gt-function.h.
2095         (mark_function_status): Use standard gt_ggc names for marker functions.
2096         (ggc_mark_struct_function): Likewise.
2097         * function.h: Use gengtype for various structures.
2098         * gengtype-lex.l: New file.
2099         * gengtype-yacc.y: New file.
2100         * gengtype.c: New file.
2101         * gengtype.h: New file.
2102         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
2103         the standard names.  Remove some now-unnecessary prototypes.
2104         * integrate.c: Use gengtype for various structures.  Include
2105         gt-integrate.h.
2106         (mark_hard_reg_initial_vals): Delete.
2107         * integrate.h (mark_hard_reg_initial_vals): Delete.
2108         * stmt.c: Use gengtype for various structures.  Include
2109         gt-stmt.h.
2110         (mark_case_node): Delete.
2111         (mark_goto_fixup): Delete.
2112         (mark_stmt_status): Use standard gt_ggc names for marker functions.
2113         * system.h: Define GTY to empty.   In flex/bison files,
2114         don't poison malloc or realloc, instead just define them to
2115         xmalloc and xrealloc.
2116         * varasm.c: Use gengtype for various structures.  Include
2117         gt-varasm.h.  Use standard gt_ggc names for marker functions.
2118         (mark_pool_constant): Delete.
2119         (mark_varasm_status): Delete.
2120         (decode_rtx_const): #if 0 out non-typesafe hack.
2121
2122         * function.h (free_lang_status): Mark as obsolete.
2123         * function.c (free_lang_status): Mark as obsolete.
2124         * c-decl.c (push_c_function_context): Use GC to allocate and free
2125         struct language_function.
2126         (pop_c_function_context): Likewise.
2127         * c-common.c (mark_c_language_function): Mark struct
2128         language_function.
2129
2130         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
2131         Document that the machine_function structures must be allocated
2132         using GC.  Update mark_machine_status documentation.
2133         * function.h: Don't declare free_machine_status.
2134         * function.c (free_machine_status): Don't define.
2135         (free_after_compilation): Don't call free_machine_status.
2136         (ggc_mark_struct_function): Mark f->machine.  Call
2137         mark_machine_status only on non-NULL pointers.
2138         * system.h: Poison free_machine_status.
2139         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
2140         struct machine_function.
2141         (xtensa_free_machine_status): Delete.
2142         (override_options): Don't set free_machine_status.
2143         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
2144         free_machine_status.
2145         (rs6000_init_machine_status): Use GC on struct machine_function.
2146         (rs6000_free_machine_status): Delete.
2147         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
2148         machine_function.
2149         (ia64_mark_machine_status): Likewise.
2150         (ia64_free_machine_status): Delete.
2151         (ia64_override_options): Don't set free_machine_status.
2152         * config/i386/i386.c (override_options): Don't set
2153         free_machine_status.
2154         (ix86_init_machine_status): Use GC on struct machine_function.
2155         (ix86_mark_machine_status): Likewise.
2156         (ix86_free_machine_status): Delete.
2157         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
2158         machine_function.
2159         (d30v_mark_machine_status): Likewise.
2160         (d30v_free_machine_status): Delete.
2161         (d30v_init_expanders): Don't set free_machine_status.
2162         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
2163         machine_function.
2164         (arm_init_machine_status): Likewise.
2165         (arm_free_machine_status): Delete.
2166         (arm_init_expanders): Don't set free_machine_status.
2167         * config/alpha/alpha.c (override_options): Don't set
2168         free_machine_status.
2169         (alpha_init_machine_status): Use GC on struct machine_function.
2170         (alpha_mark_machine_status): Likewise.
2171         (alpha_free_machine_status): Delete.
2172
2173         * varasm.c (compare_constant): Fix typo.
2174
2175         * varasm.c: Don't include obstack.h.
2176         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
2177         (struct rtx_const): Give substructures names, improve formatting.
2178         (struct constant_descriptor): Delete.
2179         (struct constant_descriptor_tree): New, based on constant_descriptor.
2180         (const_hash_table): Is a hash table of trees.
2181         (mark_const_hash_entry): Is used for hashes of trees.  Mark
2182         constant_descriptor_tree structure.
2183         (mark_const_str_htab_1): Mark deferred_string structure.
2184         (compare_constant): Rewrite to compare trees.
2185         (compare_constant_1): Delete.
2186         (record_constant): Delete.
2187         (record_constant_1): Delete.
2188         (output_constant_def): Use struct constant_descriptor_tree.
2189         Don't duplicate trees twice.
2190         (struct constant_descriptor_rtx): New.
2191         (struct pool_constant): Used for rtx constants.
2192         (init_varasm_status): Update for change to struct varasm_status.
2193         (mark_varasm_status): Likewise.
2194         (free_varasm_status): Delete.
2195         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
2196         (record_constant_rtx): Likewise.
2197         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
2198         (force_const_mem): Likewise.
2199         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
2200         * function.c (free_after_compilation): Don't use free_varasm_status.
2201         * function.h: Don't prototype free_varasm_status.
2202
2203         * ggc-common.c (ggc_realloc): Handle X being NULL.
2204
2205         * ggc-common.c (ggc_realloc): New function.
2206         * ggc.h: Prototype it.
2207         * emit-rtl.c (free_emit_status): Delete.
2208         (init_emit): Allocate emit subarrays using GC.
2209         (gen_reg_rtx): Reallocate subarrays using GC.
2210         (init_emit): Use GC to allocate 'struct emit_status' and its
2211         subarrays.
2212         (mark_emit_status): Mark structure and its subarrays.
2213         * stmt.c (free_stmt_status): Delete.
2214         * expr.c (free_expr_status): Delete.
2215         * function.h: Remove prototypes for deleted functions.
2216         * function.c (free_after_compilation): Don't use deleted functions.
2217         Don't call free() on x_parm_reg_stack_loc.
2218         (free_after_parsing): Don't use free_stmt_status.
2219         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
2220         (mark_function_status): Mark x_parm_reg_stack_loc.
2221
2222         * varasm.c (init_varasm_status): Use GC to allocate
2223         'struct varasm_status' and its fields x_const_rtx_hash_table
2224         and x_const_rtx_sym_hash_table.
2225         (mark_varasm_status): Mark them.
2226         (free_varasm_status): Use GC to free them.
2227         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
2228         (mark_expr_status): Mark the structure itself.
2229         (free_expr_status): Use GC to free the structure.
2230         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
2231         (mark_stmt_status): Mark the 'struct stmt_status' itself.
2232         (init_stmt_for_function): Allocate the structure for GC.
2233
2234         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
2235         (equate_type_number_to_die): Likewise.
2236         * tree.h (TYPE_SYMTAB_DIE): New macro.
2237         (struct die_struct): Predeclare.
2238         (struct tree_type): Add field symtab.die.   Add a tag
2239         to the union type of field symtab.
2240
2241         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
2242         'struct rtvec_def *', not 'struct rtvec_def'.
2243
2244         * function.h (original_arg_vector): Make a real rtvec.
2245         * function.c (ggc_mark_struct_function): Adjust.
2246         * integrate.c (expand_inline_function): Adjust.
2247
2248 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
2249
2250         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
2251         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
2252         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
2253         (TARGET_VERSION_CPU): Define according to the
2254         default target.
2255         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
2256         TARGET_VERSION_CPU.
2257         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
2258         if TARGET_SHMEDIA64.
2259         (LINK_DEFAULT_CPU_EMUL): Define according to the
2260         default target.
2261         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
2262         (SUBTARGET_LINK_SPEC): Define.
2263         (LINK_SPEC): Use SH_LINK_SPEC.
2264         (ASM_SPEC): Remove.
2265         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
2266         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
2267         and TARGET_SHMEDIA64 which abort, for now.
2268         * config/sh/t-netbsd-sh5: New file.
2269         * config/sh/t-netbsd-sh5-32: New file.
2270         * config/sh/t-netbsd-sh5-64: New file.
2271
2272 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
2273             Richard Henderson  <rth@redhat.com>
2274
2275         * config/alpha/alpha.c (reg_or_const_int_operand): New.
2276         (some_operand, input_operand): Accept CONST_VECTOR.
2277         (alpha_extra_constraint): Add 'W'.
2278         (alpha_expand_zap_mask): New.
2279         (alpha_expand_builtin_vector_binop): New.
2280         (enum alpha_builtin): New.
2281         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
2282         (alpha_init_builtins, alpha_expand_builtin): New.
2283         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
2284         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
2285         (PREDICATE_CODES): Update.
2286         * config/alpha/alpha-protos.h: Update.
2287         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
2288         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
2289         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
2290         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
2291         (movv2si, movv2si_fix, movv2si_nofix): New.
2292         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
2293         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
2294         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
2295         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
2296         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
2297         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
2298         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
2299         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
2300         builtin_unpkbw, unpkbw): New.
2301         * doc/extend.texi (Alpha Built-in Functions): New.
2302
2303 2002-06-03  Richard Henderson  <rth@redhat.com>
2304
2305         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
2306         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
2307
2308 2002-06-03  Richard Henderson  <rth@redhat.com>
2309
2310         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
2311
2312         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
2313         (const0_operand): New.
2314         (reg_or_fp0_operand, fp0_operand): Remove.
2315         * config/alpha/alpha.h (PREDICATE_CODES): Update.
2316         * config/alpha/alpha-protos.h: Update.
2317         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
2318         and fp0_operand with reg_or_0_operand and const0_operand.
2319
2320 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
2321
2322         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
2323
2324 2002-06-03  Roger Sayle  <roger@eyesopen.com>
2325
2326         * gcse.c (cprop_jump): Use single_set to get the pattern
2327         from the setcc argument.
2328
2329 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
2330
2331         * diagnostic.h (diagnostic_count): Move from output_buffer to
2332         diagnostic_context.
2333         (diagnostic_kind_count): Adjust definition.
2334
2335 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
2336
2337         * except.c (except.c): Do not rebuild CFG.
2338         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
2339         optimization.
2340
2341 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
2342
2343         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
2344         * toplev.c: Include cfglahout.h
2345         * Makefile.in (toplev.c): Add dependnecy.
2346
2347 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2348
2349         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
2350         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
2351         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
2352
2353 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
2354
2355         * config/ns32k/netbsd.h: Update copyright years.
2356         (TARGET_OS_CPP_BUILTINS): Define.
2357         (CPP_PREDEFINES): Remove.
2358         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
2359         (TARGET_CPU_CPP_BUILTINS): Define.
2360
2361 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2362
2363         * emit-rtl.c: Fix formatting.
2364         * errors.h: Likewise.
2365         * except.c: Likewise.
2366         * explow.c: Likewise.
2367         * expmed.c: Likewise.
2368         * expr.c: Likewise.
2369         * expr.h: Likewise.
2370
2371 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
2372
2373         * config/h8300/elf.h: Fix formatting.
2374         * config/h8300/rtems.h: Likewise.
2375
2376 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
2377
2378         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
2379
2380 2002-06-02  Tom Tromey  <tromey@redhat.com>
2381
2382         * fixinc/fixincl.x: Rebuilt.
2383         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
2384
2385 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2386
2387 config/i370:
2388         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
2389         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
2390         * mvs.h: Similarly.
2391         * oe.h: Similarly.
2392
2393 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
2394
2395         * final.c (final):  Allow notes to not have computed addresses;
2396         kill no longer needed STACK_REGS ifdef.
2397
2398 2002-06-02  Richard Henderson  <rth@redhat.com>
2399
2400         * gcse.c (bypass_conditional_jumps): Fix typo last change.
2401
2402 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2403
2404         * loop.c (emit_prefetch_instructions): Properly place the address
2405         computation.
2406
2407 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
2408
2409         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
2410         (set_block_for_insn): Turn into macro.
2411         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
2412         * cfglayout.c (insn_scopes): Kill.
2413         (scope_to_insns_initialize): Do not use insn_scopes.
2414         (scope_to_insns_finalize): Likewise.
2415         (duplicate_insn_chain): Likewise.
2416         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
2417         * cfgrtl.c (basic_block_for_insn): Kill.
2418         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
2419         (create_basic_block_structure): Use reorder_insns.
2420         (compute_bb_for_insn): Do not use basic_block_for_insn.
2421         (merge_blocks_nomove): Likewise.
2422         (update_bb_for_insn): Likewise.
2423         (verify_flow_info): Likewise.
2424         (set_block_for_insn): Kill.
2425         * combine.c (try_combine): Update gen_rtx_INSN call.
2426         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
2427         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
2428         scopes and BBs.
2429         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
2430         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
2431         Clear BB.
2432         (emit_insns_after): Simplify.
2433         (emit_copy_of_insn_after): Copy scope.
2434         * final.c (final_start_function): Lower scopes.
2435         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
2436         * integrate.c (copy_insn_list): Cope scopes.
2437         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
2438         * loop.c (loop_optimize): Do not care block notes.
2439         * print-rtl.c (print_rtx): Print BB.
2440         * recog.c (apply_change_group): Simplify.
2441         * rtl.c (copy_rtx): Handle 'B'.
2442         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
2443         * rtl.h (Field accessors): Update indexes.
2444         * sched-ebb.c (schedule_ebbs): Do not lower notes.
2445         * sched-rgn.c (schedule_insns): Likewise.
2446         * toplev.c (rest_of_compilation): Lower notes.
2447         * unroll.c (unroll_loop): Do not care scoping notes.
2448         (copy_loop_body): Copy scopes.
2449
2450 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2451
2452 config/h8300:
2453         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
2454         SUBTARGET_SPEC.
2455         * rtems.h: Similarly.
2456         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
2457         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
2458         (TARGET_CPU_CPP_BUILTINS): Use.
2459
2460 2002-06-02  Richard Henderson  <rth@redhat.com>
2461
2462         * alias.c: Include target.h.
2463         (mark_constant_function): Use targetm.binds_local_p instead
2464         of checking TREE_PUBLIC ourselves.
2465         * Makefile.in (alias.o): Add TARGET_H.
2466
2467 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2468
2469         * c-lex.c: Update copyright and file description.
2470
2471 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2472
2473         * config/fr30/fr30.h: Update to new CPP macros.
2474
2475 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2476
2477         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
2478
2479 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2480             Zack Weinberg <zack@codesourcery.com>
2481
2482         * c-common.c (c_common_init): Override cpplib's default
2483         warn_long_long setting.
2484         * c-lex.c (lex_number): Replace with interpret_integer,
2485         interpret_float, narrowest_unsigned_type and
2486         narrowest_signed_type, taking advantage of the new
2487         cpplib functionality.
2488         * cpperror.c (_cpp_begin_message): If a warning is turned
2489         into an error, avoid printing "warning:".
2490         * cppexp.c (cpp_num_sign_extend): New.
2491         * cppinit.c: Update comment.
2492         * cpplib.h (cpp_num_sign_extend): New.
2493         * tree.h: Update comment.
2494
2495 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
2496
2497         * diagnostic.h (struct diagnostic_context):  Add new member
2498         internal_error.
2499         (internal_error_function): Remove declaration.
2500         * diagnostic.c (internal_error_function): Remove definition..
2501         (internal_error): Adjust use.
2502
2503 2002-06-02  Richard Henderson  <rth@redhat.com>
2504
2505         * rtl.h (CC0_P): New.
2506         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
2507         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
2508         (bypass_block): Save old dest block for dump text.
2509         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
2510         Allow only true SET insns, not single_set.
2511
2512 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
2513
2514         * diagnostic.c (diagnostic_finish): Rename to output_flush.
2515         (clear_disgnostic_info): Rename to output_clear_data.  Use false
2516         instead of 0 for boolean value.
2517         Adjust function call throughout.
2518
2519 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2520
2521         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
2522         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
2523
2524 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2525
2526         * d30v.h (CPP_PREDEFINES): Replace with
2527         (TARGET_CPU_CPP_BUILTINS): New.
2528
2529 2002-06-02  Roger Sayle  <roger@eyesopen.com>
2530
2531         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
2532
2533 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
2534
2535         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
2536
2537 2002-06-02  Richard Henderson  <rth@redhat.com>
2538
2539         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
2540
2541 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2542
2543         Support for C++ constructors/destructors.
2544         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
2545         instead of looping if main() returns.
2546         (asm_file_start): Output global symbols that cause .data and .bss
2547         initialization code to be linked in, unconditionally for now.
2548         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
2549         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
2550         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2551         (LIBSTDCXX): New.
2552         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
2553         (__tablejump__): New.
2554         (__do_copy_data, __do_clear_bss): New.
2555         (__do_global_ctors, __do_global_dtors): New.
2556         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
2557         _ctors, _dtors.
2558
2559 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2560
2561         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
2562         (CPP_SPEC, CPP_PREDEFINES): Kill.
2563         * c4x/rtems.h (CPP_PREDEFINES): Kill.
2564         (TARGET_OS_CPP_BUILTINS): New.
2565
2566 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
2567
2568         * Makefile.in (tracer.o): New.
2569         * params.def (TRACER_*): New options.
2570         * rtl.h (tracer): Declare.
2571         * timevar.def (TV_TRACER): New.
2572         * toplev.c (dump_file_index): Add DFI_tracer.
2573         (dump_file_info): Add tracer.
2574         (flag_tracer): New.
2575         (lang_indepdenent_options): Add tracer.
2576         (rest_of_compilation): Call tracer.
2577         * tracer.c: New file.
2578         * invoke.texi (-ftracer): Document.
2579         (--param tracer-*): Document.
2580
2581 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
2582
2583         * tree-inline.c (expand_call_inline): Make the statement
2584         expression we generate have a COMPOUND_STMT.
2585
2586 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2587
2588         * gcse.c (cprop_cc0_jump): Function deleted.
2589         (cprop_jump): Take an additional argument which is the possibly
2590         NULL cc setting insn immediately before the conditional jump.
2591         When a MODE_CC set is present, substitute it into the JUMP_INSN
2592         before attempting the constant propagation.
2593         (cprop_insn):  Recognize cc setters followed by conditional jumps
2594         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
2595         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
2596         (find_bypass_set): New function based upon find_avail_set used by
2597         cprop, but finds constant expressions available at the end of
2598         basic blocks.
2599         (bypass_block): New function.  Given a basic block that begins
2600         with a conditional jump and multiple incoming edges, perform
2601         the jump bypass optimization.
2602         (bypass_conditional_jumps): New function.  Call bypass_block with
2603         each suitable basic block in the CFG using a simple single pass.
2604
2605 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2606
2607         * tree.c (real_minus_onep): New function to test for -1.0.
2608         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
2609
2610 2002-06-01  Roger Sayle  <roger@eyesopen.com>
2611
2612         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
2613         and "!p && !q" into "(p|q) == 0" under suitable conditions.
2614
2615 2002-06-01  Andreas Jaeger  <aj@suse.de>
2616
2617         * cppexp.c (cpp_classify_number): Cast precission to int for
2618         correct printf format.
2619
2620 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2621
2622         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
2623         expected, but don't really exist: atmega83, atmega85, attiny10.
2624         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
2625         emulations for all devices.
2626         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
2627         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
2628
2629 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
2630
2631         * config/h8300/h8300-protos.h: Add a prototype for
2632         h8300_shift_needs_scratch_p.
2633         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
2634         * config/h8300/h8300.h (OK_FOR_R): New.
2635         (OK_FOR_S): Likewise.
2636         (OK_FOR_T): Likewise.
2637         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
2638         * config/h8300/h8300.md (anonymous shift patterns): Use
2639         constraints R, S, and T.
2640
2641 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2642
2643         * basic-block.h (struct basic_block_def): New field loop_father.
2644         (BB_VISITED): New flag.
2645         (struct loop): New field pred, removed field shared.
2646         (struct loops): New field parray.
2647         (LOOP_EXITS_DOMS): Removed.
2648         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
2649         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
2650         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
2651         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
2652         verify_loop_structure): Declare.
2653         * cfg.c (entry_exit_blocks): Initialize loop_father field.
2654         * cfganal.c (dfs_enumerate_from): New function.
2655         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
2656         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2657         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
2658         flow_loop_dump, flow_loops_dump, flow_loops_free,
2659         flow_loop_tree_node_add, flow_loop_level_compute,
2660         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
2661         flow_loop_outside_edge_p): Modified for new infrastructure.
2662         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
2663         redirect_edge_with_latch_update, flow_loop_free): New static functions.
2664         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
2665         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
2666         find_common_loop, verify_loop_structure, loop_latch_edge,
2667         loop_preheader_edge): New functions.
2668         (flow_loops_cfg_dump): Do not show dominators, as this information
2669         does not remain up to date long.
2670         (flow_loops_find): Store results in new format.
2671         * predict.c (propagate_freq, estimate_probability,
2672         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
2673         infrastructure.
2674
2675 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
2676
2677         * except.c (nothrow_function_p): Walk epilogue delay list
2678         checking the insn, not the chain for potential throws.
2679
2680 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
2681
2682         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
2683         (install): Refer to install-cpp directly.
2684         (uninstall-cpp): Folded into uninstall rule.
2685         * configure.in: Delete all code relating to --disable-cpp.
2686         * configure: Regenerate.
2687         * config/t-install-cpp: Delete.
2688
2689 2002-05-31  Richard Henderson  <rth@redhat.com>
2690
2691         * configure.in (HAVE_AS_TLS): Add alpha tests.
2692         * configure: Rebuild.
2693         * config/alpha/alpha.c (TARGET_AS_TLS): New.
2694         (alpha_tls_size, alpha_tls_size_string): New.
2695         (overide_options): Set it.  Always install machine_status hooks.
2696         (input_operand): Accept got tls predicates.
2697         (local_symbol_p): Merge into ...
2698         (local_symbolic_operand): ... here.  Reject tls symbols.
2699         (global_symbolic_operand): Likewise.
2700         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
2701         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
2702         (tp16_symbolic_operand, tp32_symbolic_operand): New.
2703         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
2704         (alpha_encode_section_info): Handle TLS symbols.
2705         (alpha_strip_name_encoding): Likewise.
2706         (alpha_legitimate_address_p): Likewise.
2707         (alpha_legitimize_address): Likewise.
2708         (alpha_expand_mov): Early exit to avoid nop moves.
2709         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
2710         (alpha_init_machine_status, alpha_mark_machine_status,
2711         alpha_free_machine_status): Always define.
2712         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
2713         (print_operand, print_operand_address): Add TLS relocs.
2714         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
2715         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
2716         (TARGET_SWITCHES): Add -mtls-kernel.
2717         (alpha_tls_size, alpha_tls_size_string): New.
2718         (TARGET_OPTIONS): Add -mtls-size=.
2719         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
2720         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
2721         (ASM_OUTPUT_LABELREF): Skip %.
2722         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
2723         (PREDICATE_CODES): Update.
2724         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
2725         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
2726         UNSPEC_TP, UNSPECV_SET_TP): New.
2727         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
2728         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
2729         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
2730         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
2731         (call_value_osf_2_er): Accept anything as op4.
2732         * config/alpha/alpha-protos.h: Update.
2733         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
2734
2735 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
2736
2737         * cppinit.c (append_include_chain): Always pay attention to
2738         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
2739         marker on argument.
2740
2741 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2742
2743         * target.h: Fix formatting.
2744         * timevar.h: Likewise.
2745         * tlink.c: Likewise.
2746         * toplev.c: Likewise.
2747         * toplev.h: Likewise.
2748         * tree.c: Likewise.
2749         * tree-dump.h: Likewise.
2750         * tree.h: Likewise.
2751         * tree-inline.h: Likewise.
2752         * unroll.c: Likewise.
2753         * unwind-dw2.c: Likewise.
2754         * unwind-dw2-fde.c: Likewise.
2755         * unwind-dw2-fde-glibc.c: Likewise.
2756         * unwind-dw2-fde.h: Likewise.
2757         * unwind.h: Likewise.
2758         * unwind-sjlj.c: Likewise.
2759         * varasm.c: Likewise.
2760         * varray.h: Likewise.
2761         * vmsdbg.h: Likewise.
2762         * vmsdbgout.c: Likewise.
2763         * xcoffout.h: Likewise.
2764
2765 2002-05-31  Igor Shevlyakov <igor@microunity.com>
2766
2767         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
2768         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
2769
2770 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
2771
2772         * gcc.c (cpp_unique_options): Remove "-d" options.
2773         (cpp_debug_options): New spec string.
2774         (default_compilers): Use it.
2775         * objc/lang-specs.h: Likewise.
2776
2777 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
2778
2779         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
2780         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
2781         * gcc/mklibgcc.in: Likewise.
2782         * gcc/config/arc/t-arc: Likewise.
2783         * gcc/configure.in: Likewise.
2784         * gcc/configure: Regenerate.
2785
2786 2002-05-31  Stan Shebs  <shebs@apple.com>
2787             Turly O'Connor  <turly@apple.com>
2788
2789         * c-decl.c (struct binding_level): Change int field n_incomplete
2790         to tree list incomplete_list.
2791         (clear_binding_level): Init field with NULL.
2792         (pushdecl): Add incomplete type to list.
2793         (mark_binding_level): Mark the incomplete list.
2794         (finish_struct): Scan the incomplete list for types instead
2795         of all decls in the current binding level.
2796
2797 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2798
2799         * pa.c (output_millicode_call): Add missing '%' characters.
2800         (output_call): Likewise.
2801
2802 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
2803
2804         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
2805         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2806
2807 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
2808
2809         * varasm.c (mark_constant_pool): Walk epilogue delay list
2810         checking the insn, not the chain for potential constants.
2811
2812 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
2813
2814         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
2815
2816 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
2817
2818         * i386.c (classify_argument): Properly handle base types.
2819
2820         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
2821         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
2822         registers.
2823
2824 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
2825
2826         * gcse.c (gcse_emit_move_after): New.
2827         (pre_delete, hoist_store): Use it.
2828
2829         * reload1.c (emit_input_reload_insns): Use constrain_operands
2830         instead of constraint_accepts_reg_p to verify optimization.
2831         (constraint_accepts_reg_p): Kill
2832
2833         * reload1.c (reload_cse_delete_noop_set): Kill.
2834         (reload_cse_simplify): use delte_insn_and_edges.
2835
2836 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2837
2838         * cfgloop.c (flow_loops_find): Initialize first and last fields
2839         correctly.
2840
2841 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
2842
2843         * c-common.c (builtin_define_std): Correct logic.
2844
2845 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2846
2847         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
2848         (output_call): Likewise.
2849
2850 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2851
2852         * pa.c: Move output.h include after tree.h include.
2853         (pa_asm_output_mi_thunk): Constify identifier lab.
2854
2855 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
2856
2857         * config/ns32k/ns32k.h: Define named constants for the
2858         bits in target_flags and use them.
2859         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
2860
2861 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2862
2863         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
2864         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
2865         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
2866         default scheduling model.
2867         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
2868         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
2869         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
2870         * doc/install.texi (hppa*-*-*): Document default scheduling.
2871
2872 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2873
2874         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
2875
2876 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
2877
2878         * config.gcc (ns32k-*-netbsd*): Set tm_file to
2879         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
2880         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
2881         netbsd.h, or netbsd-aout.h.
2882
2883 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
2884
2885         * longlong.h (count_trailing_zeros): Add missing \, and clean up
2886         whitespace in __ns32000__ case.
2887
2888 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
2889
2890         * expr.c (expand_expr): Output partially zeroed out vectors with
2891         output_constant_def.
2892
2893 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
2894
2895         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
2896         (sh-*-netbsdelf*)
2897         (shl*-*-netbsdelf*): New targets.
2898         * config/sh/netbsd-elf.h: New file.
2899         * config/sh/t-netbsd: New file.
2900
2901 2002-05-30  Richard Henderson  <rth@redhat.com>
2902             Eric Botcazou  <ebotcazou@multimania.com>
2903
2904         PR optimization/6822
2905         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
2906         to unsigned int for op1 comparisons.  Use gen_int_mode.
2907
2908 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
2909
2910         * expmed.c (const_mult_add_overflow_p): New.
2911         * expr.h: Declare it.
2912         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
2913         Don't eliminate the biv if the giv has a constant multiplier and
2914         the rhs argument of the comparison does satisfy the predicate.
2915         Use expand_mult_add to compute the replacement constant.
2916
2917 2002-05-30  Osku Salerma  <osku@iki.fi>
2918
2919         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
2920         (c_common_get_alias_set): Handle it.
2921         * doc/extend.texi: Document it.
2922
2923 2002-05-30  Richard Henderson  <rth@redhat.com>
2924
2925         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
2926         * toplev.c (process_options): Don't check it.
2927         * doc/tm.texi: Don't document it.
2928         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
2929         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
2930         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
2931         frame pointer optimization if current_function_profile.
2932
2933 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2934
2935         * langhooks.c: Fix formatting.
2936         * langhooks.h: Likewise.
2937         * lcm.c: Likewise.
2938         * libgcc2.c: Likewise.
2939         * lists.c: Likewise.
2940         * local-alloc.c: Likewise.
2941         * loop.c: Likewise.
2942         * loop.h: Likewise.
2943
2944 2002-05-30  Marc Espie <espie@openbsd.org>
2945
2946         * config.gcc (sparc64-*-openbsd*): New.
2947         * config/sparc/openbsd1-64.h: New.
2948         * config/sparc/openbsd64.h: New.
2949
2950 2002-05-30  Jeff Law <law@redhat.com>
2951
2952         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
2953         a dead insn with a REG_RETVAL note when the entire libcall is not
2954         dead and remove the associated REG_LIBCALL note at the same time.
2955
2956 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
2957
2958         * lcm.c (output.h): #include.
2959         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
2960         as an ordinary block.
2961         (optimize_mode_switching): Don't pretend that the exit block is
2962         an ordinary block, or handle sucessors of entry block specially.
2963         Instead, split edges from entry block and to exit block, and
2964         put a computing definition on the thus gained post-entry-block,
2965         and a need on the pre-exit-block.
2966
2967 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
2968
2969         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
2970         * rtl.texi: Document 'B'
2971
2972 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
2973
2974         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
2975         at run-time.
2976         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
2977
2978 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
2979
2980         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
2981         const0_rtx instead of NULL_RTX when in error.
2982         (altivec_expand_abs_builtin): Same.
2983         (rs6000_expand_binop_builtin): Same.
2984         (altivec_expand_predicate_builtin): Same.
2985         (altivec_expand_stv_builtin): Same.
2986         (rs6000_expand_ternop_builtin): Same.
2987         (altivec_expand_builtin): Same.
2988
2989 2002-05-29  David S. Miller  <davem@redhat.com>
2990
2991         * rtl.h (clear_emit_caches): Delete.
2992         * integrate.c (output_inline_function): Don't call it.
2993         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
2994         (clear_emit_caches): Delete definition.
2995         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
2996
2997 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
2998
2999         * config/mmix/mmix.c: Include real.h.
3000         (mmix_constant_address_p): Remove redundant test before switch.
3001
3002 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3003
3004         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
3005         only if not already defined.
3006
3007 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3008
3009         * config/h8300/h8300-protos.h: Remove prototypes for
3010         ok_for_bclr and small_power_of_two.
3011         * config/h8300/h8300.c (small_power_of_two): Remove.
3012         (ok_for_blcr): Likewise.
3013         (fix_bit_operand): Make WHAT deal with an integer instead of a
3014         constraint character.
3015         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
3016         (CONST_OK_FOR_P): Likewise.
3017         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
3018         CONST_OK_FOR_P any more.
3019         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
3020         of fix_bit_operand.
3021         (iorqi3): Likewise.
3022         (xorqi3): Likewise.
3023
3024 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3025
3026         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3027         (CPP_PREDEFINES): Make sure this is undefined.
3028         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
3029         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
3030         or -U__MIPSEB__ before defining one or the other.  Instead,
3031         use %(subtarget_endian_default) if neither -EB nor -EL are
3032         specified.
3033         (SUBTARGET_EXTRA_SPECS): Define.
3034         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
3035         %(netbsd_cpp_spec).
3036
3037 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
3038
3039         * doc/md.texi (Patterns): Note pattern condition pitfall
3040         for unnamed insn.
3041
3042 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
3043
3044         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
3045         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
3046         ternary operations from here...
3047         (rs6000_expand_builtin): ...to here.
3048         New argument expandedp.
3049         Change all instances of altivec_expand_binop_builtin to
3050         rs6000_expand_binop_builtin.
3051         (altivec_expand_unop_builtin): Rename to
3052         rs6000_expand_unop_builtin.
3053         (altivec_expand_binop_builtin): Rename to
3054         rs6000_expand_binop_builtin.
3055         (altivec_expand_ternop_builtin): Rename to
3056         rs6000_expand_ternop_builtin.
3057
3058 2002-05-29  Richard Henderson  <rth@redhat.com>
3059
3060         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
3061         (TARGET_BI_ARCH): Likewise.
3062         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
3063         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
3064         (TARGET_64BIT_DEFAULT): Default to 0.
3065         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
3066
3067 2002-05-29  Richard Henderson  <rth@redhat.com>
3068
3069         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
3070         (get_pc_thunk_name): New.
3071         (output_set_got): Use it.
3072         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
3073         into linkonce sections.
3074
3075 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3076
3077         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3078         (CPP_PREDEFINES): Make sure this is undefined.
3079         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
3080         (CPP_SUBTARGET_SPEC): Don't provide different versions for
3081         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
3082         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
3083         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
3084         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3085         (CPP_PREDEFINES): Make sure this is undefined.
3086         (SUBTARGET_EXTRA_SPECS): Define.
3087         (CPP_SPEC): Use %(netbsd_cpp_spec).
3088
3089 2002-05-29  Jeff Law <law@redhat.com>
3090
3091         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
3092
3093         * flow.c (propagate_one_insn): Do not remove a dead insn if it
3094         contains a REG_RETVAL note.
3095
3096         * haifa-sched (sched_analyze): Remove another useless clearing
3097         of SCHED_GROUP_P I missed yesterday.
3098
3099         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
3100         * pa.c (pa_asm_output_mi_thunk): New function.
3101         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
3102
3103 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3104             Marek Michalkiewicz  <marekm@amelek.gda.pl>
3105
3106         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
3107         (avr_asm_only_p): Make non-static.
3108         (enum avr_arch): Remove.
3109         (avr_arch_types): New.
3110         (avr_mcu_types): Update.
3111         (avr_override_options): Use avr_arch_types table instead of switch.
3112         * avr.h (CPP_PREDEFINES): Die.
3113         (avr_base_arch_macro, avr_extra_arch_macro): New.
3114         (TARGET_CPU_CPP_BUILTINS): New.
3115         (CPP_SPEC, EXTRA_SPECS): Simplify.
3116         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
3117         CPP_AVR5_SPEC): Die.
3118
3119 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3120
3121         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
3122         NETBSD_OS_CPP_BUILTINS_AOUT.
3123         (SUBTARGET_EXTRA_SPECS): Define.
3124         (CPP_SPEC): Use %(netbsd_cpp_spec).
3125
3126 2002-05-29  Richard Henderson  <rth@redhat.com>
3127
3128         * config/i386/i386.c (ix86_output_function_epilogue): New.
3129         (TARGET_ASM_FUNCTION_EPILOGUE): New.
3130         (pic_label_name): Remove.
3131         (pic_labels_used): New.
3132         (ix86_asm_file_end): Emit one pc load stub for each register used.
3133         (output_set_got): Generate deep pc load to any register.
3134         (ix86_select_alt_pic_regnum): New.
3135         (ix86_save_reg): Don't save pic register if we can find a valid
3136         call-clobbered replacement.
3137         (ix86_expand_prologue): If we found a valid replacement, renumber
3138         pic_offset_table_rtx.
3139         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
3140         pic_offset_table_rtx after reload.
3141         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
3142         * config/i386/i386.md (set_got): Make insn, not expander.
3143         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
3144
3145 2002-05-29  Richard Henderson  <rth@redhat.com>
3146
3147         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
3148         alignment for alloca.
3149
3150 2002-05-29  Richard Henderson  <rth@redhat.com>
3151
3152         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
3153         (print_operand_address): Only add rip for symbolic addresses
3154         for which we do not have another relocation type.
3155
3156 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3157
3158         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3159         (EXTRA_SPECS): Add netbsd_cpp_spec.
3160         (CPP_SPEC): Use %(netbsd_cpp_spec).
3161         (CPP_PREDEFINES): Remove.
3162         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3163         (EXTRA_SPECS): Define.
3164         (CPP_SPEC): Use %(netbsd_cpp_spec).
3165         (CPP_PREDEFINES): Remove.
3166
3167 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3168
3169         PR preprocessor/6844
3170         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
3171         NUL.
3172
3173 2002-05-29  Eric Christopher  <echristo@redhat.com>
3174
3175         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
3176         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
3177
3178 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
3179
3180         * config/fr30/fr30.md: Remove previous restriction on splits.
3181         Enforce conformance through gen_lowpart and cont_int_operand.
3182         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
3183         as the assembler does not support ".bss".
3184
3185 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3186
3187         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3188         (CPP_PREDEFINES): Remove.
3189         (SUBTARGET_EXTRA_SPECS): Define.
3190         (CPP_SPEC): Use %(netbsd_cpp_spec).
3191         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
3192         (CPP_PREDEFINES): Remove.
3193         (SUBTARGET_EXTRA_SPECS): Define.
3194         (CPP_SPEC): Use %(netbsd_cpp_spec).
3195         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
3196         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
3197         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
3198         Add netbsd_cpp_spec.
3199         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
3200
3201 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3202             Zack Weinberg <zack@codesourcery.com>
3203
3204         * cppexp.c (cpp_num): Move to cpplib.h.
3205         (CPP_ERROR): Remove.
3206         (interpret_float_suffix, interpret_int_suffix): New.
3207         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
3208         (cpp_classify_number, cpp_interpret_integer): New.
3209         (interpret_number): Remove.
3210         (eval_token): Update to use new routines.
3211         * cpphash.h (cpp_num_part): Move to cpplib.h.
3212         * cppinit.c (cpp_post_options): Set warn_long_long.
3213         * cpplib.h (struct cpp_options): Add warn_long_long.
3214         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
3215         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
3216         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
3217         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
3218         cpp_interpret_integer): New.
3219
3220 2002-05-29  Joel Sherrill <joel@OARcorp.com>
3221
3222         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
3223
3224 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
3225
3226         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
3227         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
3228         (CPP_SUBTARGET_SPEC): Define.
3229         (SUBTARGET_EXTRA_SPECS): Define.
3230         (CPP_SPEC): Remove.
3231
3232 2002-05-29  Chris Lattner  <sabre@nondot.org>
3233
3234         * ssa.c (rename_insn_1): Rename uses of undefined registers to
3235         prevent confusion if/when the register is defined.
3236
3237 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
3238
3239         PR target/6838
3240         * config/cris/cris.md: Fix typos and thinkos in comments.
3241         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
3242         second alternative.
3243         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
3244         ("*mov_sideqi_mem"): Similar, but for operand 3.
3245         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
3246         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
3247         Remove spurious mode specifier on operand 2.
3248
3249 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3250
3251         * config/h8300/h8300-protos.h: Remove the prototype for
3252         o_operand.
3253         Add prototypes for single_one_operand and single_zero_operand.
3254         * config/h8300/h8300.c (o_operand): Remove.
3255         (single_one_operand): New.
3256         (single_zero_operand): Likewise.
3257         (print_operand): For 'V' operand, and the operand with 0xff.
3258         For 'V' and 'W' operands, do not and the bit position with 7.
3259         * config/h8300/h8300.md (various anonymous patterns): Replace
3260         use of exact_log2 with single_one_operand/single_zero_operand.
3261
3262 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
3263
3264         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
3265
3266 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
3267
3268         * config/s390/s390.c (legitimate_pic_operand_p): Do not
3269         accept symbolic LARL operands.
3270         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
3271         epilogue insns.
3272
3273 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
3274
3275         * config/s390/s390.md (cmpstr_64/31): Mark whole
3276         input registers as used.
3277
3278 2002-05-28  Richard Henderson  <rth@redhat.com>
3279
3280         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
3281         not current_function_uses_pic_offset_table and
3282         current_function_uses_const_pool; examine current_function_profile.
3283         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
3284         input to blockage if needed.
3285         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
3286         (legitimize_pic_address): Likewise.  Set regs_ever_live for
3287         pic_offset_table_rtx when invoked during reload.
3288         * config/i386/i386.h (FINALIZE_PIC): Remove.
3289         * config/i386/i386.md (tablejump): Reformat.  Do not set
3290         current_function_uses_pic_offset_table.
3291         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
3292         (blockage): Accept anything as operand 0.
3293
3294 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
3295
3296         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
3297         common CPP built-ins for all NetBSD a.out targets.
3298         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
3299         common CPP built-ins for all NetBSD ELF targets.
3300         * config/netbsd.h: Add missing notice.
3301         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
3302         for all NetBSD targets.
3303         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
3304         for all NetBSD targets using an LP64 code model.
3305         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
3306         NetBSD targets.
3307
3308 2002-05-28  Richard Henderson  <rth@redhat.com>
3309
3310         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
3311         update if UPDATE_LIFE_LOCAL.
3312
3313 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3314
3315         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
3316
3317 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
3318                           Jason R. Thorpe <thorpej@wasabisystems.com>
3319
3320         config/sh reorganization to factor out endianness and coff:
3321
3322         * config/sh/little.h: New file.
3323         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
3324         defined, define to 0 to select big-endian.
3325         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
3326         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
3327         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
3328         * config/sh/t-be: New file.
3329         * config/sh/t-le: New file.
3330
3331         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
3332         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
3333         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
3334         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
3335         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
3336         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
3337         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
3338         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
3339         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
3340         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
3341         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
3342         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
3343         (LINK_SPEC): Define to SH_LINK_SPEC.
3344         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
3345         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
3346         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
3347         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
3348         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
3349         * config/sh/coff.h: New file.
3350         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
3351         (TARGET_OBJFMT_CPP_BUILTINS): Define.
3352         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
3353         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
3354         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
3355         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
3356         (PTRDIFF_TYPE): Likewise.
3357         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
3358         (CPP_PREDEFINES): Don't define.
3359         (TARGET_OBJFMT_CPP_BUILTINS): Define.
3360         (LINK_SPEC): Define to SH_LINK_SPEC.
3361         (LINK_EMUL_PREFIX): Redefine.
3362         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
3363         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
3364         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
3365         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
3366         (TARGET_OS_CPP_BUILTINS): Define.
3367         (TARGET_DEFAULT): Redefine.
3368         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
3369         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
3370         (LINK_SPEC): Don't redefine.
3371         (LINK_DEFAULT_CPU_EMUL): Redefine.
3372         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
3373         * sh.c (sh_asm_named_section): Don't declare / define.
3374         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
3375         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
3376         (sh64-*-elf* tm_file): Likewise.
3377         (sh-*-rtemself* tm_file): Likewise.
3378         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
3379         (sh-*-linux* tmake_file): Add sh/t-le.
3380         (sh-*-rtems* tm_file): Add sh/coff.h
3381         (sh-*-* tm_file): Likewise.
3382
3383 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
3384
3385         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
3386         CONSTANT_POOL_ADDRESS_P.
3387
3388         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
3389
3390 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
3391             Jeff Law <law@redhat.com>
3392
3393         * optabs.c (expand_binop): Fix nwords sign warnings.
3394         generate pseudo for add_optab.
3395
3396         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
3397         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
3398
3399 2002-05-28      Marc Espie <espie@openbsd.org>
3400
3401         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
3402         inherited from gas.h.
3403         (ASM_QUAD):  Undef.  OpenBSD does not support it.
3404
3405 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
3406
3407         * doc/install.texi (binaries): Change mingw binaries
3408         link to www.mingw.org.
3409
3410 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3411
3412         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
3413
3414 2002-05-28  Richard Henderson  <rth@redhat.com>
3415
3416         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
3417         bottom alignment for leaf functions.
3418
3419 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3420
3421         * config/pa/milli32.S, config/pa/lib1funcs.asm,
3422         config/sparc/sol2-g1.asm: Delete unused files.
3423
3424 2002-05-28  Richard Henderson  <rth@redhat.com>
3425
3426         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
3427
3428         * flow.c (calculate_global_regs_live): Rename call_used to
3429         invalidated_by_call.  Initialize from regs_invalidated_by_call
3430         instead of call_used_regs.
3431
3432         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
3433         DECL_EXTERNAL.
3434
3435 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3436
3437         * tree.h: Don't include real.h.
3438         Forward-declare struct realvaluetype.
3439         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
3440         contain it.
3441         (TREE_REAL_CST_PTR): New accessor.
3442         (TREE_REAL_CST): Update.
3443         * real.h: Include machmode.h.
3444         (realvaluetype): Make it struct realvaluetype, not a typedef.
3445         (build_real): Prototype here.
3446
3447         * tree.c: Include real.h.
3448         (build_real): Allocate the REAL_VALUE_TYPE as a separate
3449         object in GC memory, set TREE_REAL_CST_PTR to point to it.
3450         (build_real_from_int_cst): Use build_real.
3451         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
3452         REAL_CST.
3453
3454         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
3455         fold-const.c, print-tree.c, real.c: Include real.h.
3456         * Makefile.in: Update dependency lists.
3457
3458 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3459
3460         * basic-block.h (last_basic_block): Declare.
3461         (expunge_block_nocompact): Declaration removed.
3462         (compact_blocks): Declare.
3463         * cfg.c (last_basic_block): New variable.
3464         (expunge_block_nocompact): Removed.
3465         (expunge_block): Do not compact basic blocks.
3466         (compact_blocks): New.
3467         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
3468         longer change.
3469         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
3470         last_basic_block.
3471         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
3472         real positions of blocks.
3473         (delete_unreachable_blocks): Simplified -- quadratic behavior now
3474         cannot occur.
3475         (cleanup_cfg): Compact blocks.
3476         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
3477         basic_block_info varray.
3478         (flow_delete_block): Comment update.
3479         (back_edge_of_syntactic_loop_p): Modify position check code.
3480         (verify_flow_info): Update checking.
3481         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
3482         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
3483         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
3484         indices no longer change.
3485         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
3486         last_basic_block.
3487         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
3488         * profile.c (branch_prob): Compact blocks.
3489         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
3490         last_basic_block.
3491
3492 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3493
3494         * config/h8300/h8300.md (two anonymous patterns): New.
3495
3496 2002-05-28  David S. Miller  <davem@redhat.com>
3497
3498         * config/sparc/sparc.md (cpu): Tidy.
3499         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
3500         'trap'.
3501         (in_call_delay): Delete reference to 'return' type.
3502         (eligible_for_return_delay, in_return_delay, define_delay
3503         referencing those): Delete.
3504         (rest of file): Use new type attributes as appropriate.
3505         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
3506         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
3507         * config/sparc/ultra1_2.md (us1_single): New reservation.
3508         (us1_ialuX): Likewise.
3509         * config/sparc/ultra3.md (us3_single): Likewise.
3510         (us3_ialuX): Likewise.
3511         (us3_imul, us3_idiv): Tweak.
3512
3513 2002-05-28  Richard Henderson  <rth@redhat.com>
3514
3515         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
3516         STRING_CST.
3517
3518 2002-05-28  Richard Henderson  <rth@redhat.com>
3519
3520         * config.gcc: Obsolete mn10200.
3521
3522 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3523
3524         * cppexp.c (interpret_number): Optimize for single-digit
3525         and less-than-half-precision cases.
3526         (num_trim, num_positive, num_div_op): Cast constants.
3527
3528 2002-05-27  Bo Thorsen  <bo@suse.de>
3529
3530         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
3531         3.1 branch. The file was made by Jakub Jelinek.
3532         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
3533         support so multilib doesn't break. And don't define this at all
3534         when -Dinhibit_libc is used.
3535         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
3536         * config/i386/t-linux64: Implement full multilib support. Patch
3537         originally done by Andreas Jaeger and Jakub Jelinek.
3538
3539 2002-05-27  Roger Sayle  <roger@eyesopen.com>
3540
3541         * c-common.c: Add support for __attribute__((nothrow)) to specify
3542         that a function cannot throw an exception (using TREE_NOTHROW).
3543         (handle_nothrow_attribute): New function to process this attribute.
3544
3545         * doc/extend.texi: Document the new nothrow function attribute.
3546
3547 2002-05-27  H.J. Lu  (hjl@gnu.org)
3548
3549         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
3550         (num_positive): Likewise.
3551         (num_div_op): Likewise.
3552
3553 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3554
3555         * c-common.c (c_common_init): Always use intmax_t.
3556
3557 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3558
3559         * c-common.c (c_common_init): Use intmax_t for now.
3560
3561 2002-05-24  Andrew Haley  <aph@redhat.com>
3562
3563         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
3564         if T is a boolean type.
3565
3566 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3567
3568         * basic-block.h (last_basic_block): Defined as synonym for
3569         n_basic_blocks.
3570         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
3571         flow_depth_first_order_compute, flow_preorder_transversal_compute,
3572         flow_dfs_compute_reverse_init): Replaced relevant occurences of
3573         n_basic_blocks with last_basic_block.
3574         * cfgbuild.c (make_edges): Likewise.
3575         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
3576         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
3577         * combine.c (combine_instructions): Likewise.
3578         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
3579         iterative_dataflow_bitmap): Likewise.
3580         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
3581         calc_idoms, idoms_to_doms): Likewise.
3582         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
3583         Likewise.
3584         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
3585         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
3586         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
3587         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
3588         delete_null_pointer_checks, compute_code_hoist_vbeinout,
3589         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
3590         compute_store_table, build_store_vectors): Likewise.
3591         * haifa-sched.c (sched_init): Likewise.
3592         * ifcvt.c (if_convert): Likewise.
3593         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3594         pre_edge_lcm, compute_available, compute_nearerout,
3595         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
3596         Likewise.
3597         * predict.c (estimate_probability, process_note_prediction,
3598         note_prediction_to_br_prob): Likewise.
3599         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
3600         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3601         * regrename.c (copyprop_hardreg_forward): Likewise.
3602         * resource.c (init_resource_info): Likewise.
3603         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
3604         init_regions, schedule_insns): Likewise.
3605         * ssa-ccp.c (ssa_const_prop): Likewise.
3606         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3607         * ssa.c (compute_dominance_frontiers,
3608         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
3609
3610         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
3611         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
3612         sizes consistently.
3613
3614 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
3615
3616         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
3617         new.
3618         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
3619         hoist_insn_after, hoist_insn_to_edge): New.
3620
3621 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
3622
3623         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
3624         (PROP_FINAL): Include.
3625         * flow.c (life_analysis, update_life_info,
3626         init_propagate_block_info, mark_set_1, mark_used_rgs):
3627         Support SCAN_DEAD_STORE.
3628
3629 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3630
3631         * c-common.c (c_common_init): Set CPP arithmetic precision.
3632         * cppexp.c (cpp_num_part): Move typedef ...
3633         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
3634         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
3635         (sanity_checks): Update.
3636
3637 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
3638
3639         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
3640         (mkheaders): New rule.
3641         (install-mkheaders): New rule.
3642         * configure.in (all_outputs): Add mkheaders.
3643         * configure: Regenerate.
3644         * mkheaders.in: New file.
3645
3646 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
3647
3648         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
3649
3650 2002-05-26  Andreas Jaeger  <aj@suse.de>
3651
3652         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
3653
3654 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3655
3656         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
3657         right_shift): Remove.
3658         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
3659         HIGH_PART): New.
3660         (struct op): Use cpp_num.
3661         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
3662         num_part_mul, num_unary_op, num_binary_op, num_negate,
3663         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
3664         num_div_op, num_lshift, num_rshift, append_digit): New.
3665         (interpret_number, parse_defined, eval_token, reduce): Update
3666         for two-integer arithmetic.
3667         (binary_handler): New typedef.
3668         (optab): Update.
3669         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
3670         (_cpp_parse_expr, reduce): Update to handle two-integers.
3671         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
3672
3673 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3674
3675         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
3676         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
3677         branch insn into account, do not assume 1.
3678         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
3679         over single word insn.  Handle upper half of I/O space too.
3680         * config/avr/avr.md (*sbrx_branch): Use it.
3681         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
3682         (*sbix_branch, *sbix_branch_bit7): Likewise.
3683         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
3684         Use RTL peepholes to optimize register operand sign tests.
3685
3686 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3687
3688         * config/avr/avr.c (avr_asm_only_p): New variable.
3689         (avr_override_options): Set it here if AVR1.
3690         (asm_file_start): Test it here, report an error if set.
3691
3692 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
3693
3694         * alias.c: Fix formatting.
3695         * attribs.c: Likewise.
3696         * bb-reorder.c: Likewise.
3697         * bitmap.c: Likewise.
3698         * bitmap.h: Likewise.
3699         * builtins.c: Likewise.
3700
3701 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
3702
3703         * reload.c (find_valid_class): Accept new argument DEST,
3704         choose class accordingly.
3705         (push_reload): Update callers.
3706
3707 2002-05-26  Andreas Jaeger  <aj@suse.de>
3708
3709         * combine.c (combine_instructions): Do not indent #if for
3710         traditional C.
3711
3712 2002-05-25  Richard Henderson  <rth@redhat.com>
3713
3714         * c-pragma.c (apply_pragma_weak): Convert value identifier to
3715         string for decl_attributes.
3716         (handle_pragma_weak): Call assemble_alias if we're modifying
3717         an existing decl.
3718
3719 2002-05-25  Richard Henderson  <rth@redhat.com>
3720
3721         PR target/6788
3722         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
3723         using rtl instead of fprintf.
3724         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
3725         * config/sparc/sparc-protos.h: Update.
3726
3727 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3728
3729         * Makefile.in (C_COMMON_H): Fix.
3730         Update other targets.
3731         * c-common.c: Don't include c-lex.h.
3732         (builtin_define_with_value): Make static and prototype.
3733         (builtin_define_std): Move from c-lex.h.
3734         * c-common.h (init_c_lex): Move from c-lex.h.
3735         * c-decl.c: Don't include c-lex.h.
3736         (make_pointer_declarator): Move from c-parse.in.
3737         * c-lex.c: Don't include c-lex.h.
3738         * c-lex.h: Remove.
3739         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
3740         (make_pointer_declarator): Move to c-decl.c.
3741         * c-pragma.c: Don't include c-lex.h.
3742         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
3743         * c-tree.h (make_pointer_declarator): New.
3744 doc:
3745         * passes.texi, tm.texi: Update.
3746 objc:
3747         * Make-lang.in: Update and correct.
3748         * objc-act.c: Don't include c-lex.h or cpplib.h.
3749 treelang:
3750         * treetree.c: Don't include c-lex.h.
3751 config:
3752         * darwin-c.c: Don't include c-lex.h.
3753         * c4x/c4x-c.c: Don't include c-lex.h.
3754         * c4x/t-c4x: Update.
3755         * i370/i370-c.c: Don't include c-lex.h.
3756         * i370/t-i370: Update.
3757         * i960/i960-c.c: Don't include c-lex.h.
3758         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
3759         * i960/t-960bare: Update.
3760         * i960/t-vxworks: Update.
3761         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
3762         * rs6000/t-darwin: Update.
3763         * rs6000/t-rs6000-c-rule: Update.
3764         * v850/v850-c.c: Don't include c-lex.h.
3765         * v850/v850.c: Don't include c-lex.h or cpplib.h.
3766
3767
3768 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
3769
3770         * tree.def: Fix typos.
3771         * doc/install.texi: Likewise.
3772
3773 2002-05-25  Richard Henderson  <rth@redhat.com>
3774
3775         * configure.in (HAVE_AS_TLS): Add ia64 test.
3776         * configure: Rebuild.
3777         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
3778         (override_options): Set it.
3779         (TARGET_HAVE_TLS): New.
3780         (sdata_symbolic_operand): Look for 's'.
3781         (tls_symbolic_operand): New.
3782         (ia64_expand_load_address): Abort for tls symbols.
3783         (gen_tls_get_addr): New.
3784         (gen_thread_pointer): New.
3785         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
3786         (rtx_needs_barrier): Add new unspecs.
3787         (ia64_encode_section_info): Handle tls symbols.
3788         (ia64_strip_name_encoding): Strip two encoding chars.
3789         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
3790         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
3791         (TARGET_OPTIONS): Add tls-size.
3792         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
3793         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
3794         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
3795         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
3796         (movsf, movdf): Likewise.
3797         (movdi_symbolic): Use match_scratch.  Don't split if we won't
3798         have a scratch availiable.
3799         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
3800         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
3801         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
3802         * config/ia64/ia64-protos.h: Update.
3803         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
3804         sdata_symbolic_operand.
3805         (ASM_OUTPUT_LABELREF): Strip two characters.
3806
3807 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
3808
3809         * combine.c (simplify_set): Remove an unnecessary subreg.
3810
3811 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3812
3813         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
3814
3815         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
3816
3817 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
3818
3819         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
3820
3821 2002-05-25  Roger Sayle  <roger@eyesopen.com>
3822
3823         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
3824         (cond (compare x y) 0) into the equivalent (cond x y).
3825
3826 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
3827
3828         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
3829
3830 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
3831
3832         * config.gcc: Remove all stanzas for previously obsoleted
3833         systems.  Where necessary, add explicit error stanzas to
3834         prevent removed systems from being misidentified as something
3835         else.  Begin a fresh obsoletions list, with the systems that
3836         were reprieved last round.
3837         * doc/install.texi: Remove all mention of dead targets.
3838         * fixinc/mkfixinc.sh: Likewise.
3839
3840         * config/arm/arm.h: Bit 31 of target_flags is no longer
3841         reserved.
3842
3843         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
3844         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
3845         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
3846         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
3847         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
3848         config/alpha/osf12.h, config/alpha/osf2or3.h,
3849         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
3850         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
3851         config/clipper/clipper-protos.h, config/clipper/clipper.c,
3852         config/clipper/clipper.h, config/clipper/clipper.md,
3853         config/clipper/clix.h, config/convex/convex-protos.h,
3854         config/convex/convex.c, config/convex/convex.h,
3855         config/convex/convex.md, config/convex/fixinc.convex,
3856         config/convex/proto.h, config/elxsi/elxsi-protos.h,
3857         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
3858         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
3859         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
3860         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
3861         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
3862         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
3863         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
3864         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
3865         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
3866         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
3867         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
3868         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
3869         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
3870         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
3871         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
3872         config/m68k/altos3068.h, config/m68k/apollo68.h,
3873         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
3874         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
3875         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
3876         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
3877         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
3878         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
3879         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
3880         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
3881         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
3882         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
3883         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
3884         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
3885         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
3886         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
3887         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
3888         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
3889         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
3890         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
3891         config/mips/dec-osf1.h, config/mips/elflorion.h,
3892         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
3893         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
3894         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
3895         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
3896         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
3897         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
3898         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
3899         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
3900         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
3901         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
3902         config/ns32k/sequent.h, config/ns32k/tek6000.h,
3903         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
3904         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
3905         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
3906         config/sparc/rtems.h, config/we32k/we32k-protos.h,
3907         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
3908         Delete file.
3909
3910 2002-05-24  Richard Henderson  <rth@redhat.com>
3911
3912         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
3913         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
3914         * config/i386/i386.c (tls_model_chars): Add leading space.
3915         (tls_symbolic_operand): Don't bias by 1.
3916         (legitimize_address): Don't unbias by 1.
3917
3918 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3919
3920         * lcm.c (optimize_mode_switching): Change bb used as indices
3921         to bb->index.
3922
3923 2002-05-24  Richard Henderson  <rth@redhat.com>
3924
3925         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
3926         of update_life_info_in_dirty_blocks.
3927
3928 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
3929
3930         PR other/6782
3931         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
3932
3933 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3934
3935         PR preprocessor/6780
3936         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
3937
3938 2002-05-24  Jim Blandy  <jimb@redhat.com>
3939
3940         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
3941         entry with a type code of zero, marking the end of the compilation
3942         unit's macro info.
3943
3944 2002-05-24  Richard Henderson  <rth@redhat.com>
3945
3946         * varasm.c (asm_output_bss): Always output one byte.
3947         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3948
3949 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3950
3951         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
3952         namespace.
3953
3954 2002-05-24  Andreas Jaeger  <aj@suse.de>
3955
3956         * ggc-page.c (alloc_page): Cast variables of type size_t to
3957         unsigned long, adjust printf format string.
3958         (ggc_alloc): Likewise.
3959         (ggc_print_statistics): Likewise.
3960         (ggc_print_statistics): Correct printf format string for SCALE to
3961         use unsigned long.
3962
3963 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
3964
3965         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
3966
3967 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
3968             Zack Weinberg     <zack@codesourcery.com>
3969
3970         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
3971         quoted strings.
3972         * dwarf2out.c (lookup_filename): Properly quote filename in .file
3973         directive in assembly file.
3974         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
3975         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
3976         * config/pj/pj.h (ASM_FILE_START): Likewise.
3977         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
3978         * config/avr/avr.c (asm_file_end): Likewise.
3979         * toplev.c (output_quoted_string): Handle possibly signed plain
3980         char.
3981         * toplev.h (output_clean_symbol_name): Declare
3982         * toplev.c (output_clean_symbol_name): Define.
3983         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
3984         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
3985
3986 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
3987
3988         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
3989
3990 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
3991
3992         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
3993         of size of unsigned.
3994
3995 2002-05-23  Richard Henderson  <rth@redhat.com>
3996
3997         * configure.in (HAVE_AS_TLS): New test.
3998         * config.in, configure: Rebuild.
3999         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
4000         (ix86_tls_dialect_string, ix86_tls_dialect): New.
4001         (override_options): Set it.
4002         (tls_model_chars, tls_symbolic_operand): New.
4003         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
4004         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
4005         (local_exec_symbolic_operand): New.
4006         (get_pic_label_name): Merge into output_set_got.
4007         (ix86_asm_file_end): Emit pic_label_name if defined.
4008         (legitimate_constant_p, constant_address_p): New.
4009         (legitimate_pic_operand_p): New.
4010         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
4011         (legitimate_address_p): Likewise.
4012         (ix86_encode_section_info): Rename from i386_; handle tls decls.
4013         (ix86_strip_name_encoding): New.
4014         (get_thread_pointer): New.
4015         (legitimize_address): Handle tls symbols.
4016         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
4017         Remove UNSPEC_PLT.
4018         (struct machine_function): Add some_ld_name.
4019         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
4020         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
4021         (output_addr_const_extra): New.
4022         (maybe_get_pool_constant): New.
4023         (ix86_split_to_parts): Use it.
4024         (ix86_expand_move): Handle tls symbols.
4025         (ix86_tls_get_addr): New.
4026         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
4027         (TARGET_OPTIONS): Add tls-dialect.
4028         (CONSTANT_ADDRESS_P): Use new out-of-line function.
4029         (LEGITIMATE_CONSTANT_P): Likewise.
4030         (LEGITIMATE_PIC_OPERAND_P): Likewise.
4031         (TARGET_STRIP_NAME_ENCODING): New.
4032         (ASM_OUTPUT_LABELREF): New.
4033         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
4034         (OUTPUT_ADDR_CONST_EXTRA): New.
4035         (PREDICATE_CODES): Update.
4036         (ix86_tls_dialect, ix86_tls_dialect_string): New.
4037         * config/i386/i386.md: Regroup and renumber unspec constants.
4038         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
4039         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
4040         (tls_global_dynamic, tls_local_dynamic_base): New.
4041         (tls_local_dynamic_once): New.
4042         * config/i386/i386-protos.h: Update.
4043
4044 2002-05-23  Richard Henderson  <rth@redhat.com>
4045
4046         * genemit.c (gen_insn): Print file:lineno comment before function.
4047         (main): likewise.
4048         * gensupport.c (struct queue_elem): Add filename member.
4049         (queue_pattern): Initialize it; update all callers.
4050         (process_include): Don't free filename.
4051         (read_md_rtx): Set read_rtx_filename.
4052
4053 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
4054
4055         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
4056
4057 2002-05-23  Richard Henderson  <rth@redhat.com>
4058
4059         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
4060
4061 2002-05-23  Richard Henderson  <rth@redhat.com>
4062
4063         * doc/extend.texi (C++98 Thread-Local Edits): Update with
4064         commentary from Mark.
4065
4066 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4067
4068         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
4069         Use FOR_EACH_BB macros to iterate over basic block chain.
4070         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
4071         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
4072         Likewise.
4073         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
4074         find_unreachable_blocks, create_edge_list, verify_edge_list,
4075         remove_fake_edges, add_noreturn_fake_exit_edges,
4076         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
4077         Likewise.
4078         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
4079         find_sub_basic_blocks): Likewise.
4080         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
4081         Likewise.
4082         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
4083         Likewise.
4084         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
4085         Likewise.
4086         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
4087         commit_edge_insertions, commit_edge_insertions_watch_calls,
4088         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
4089         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
4090         * conflict.c (conflict_graph_compute): Likewise.
4091         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4092         df_modified_p, df_refs_unlink, df_dump): Likewise.
4093         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
4094         * final.c (compute_alignments): Likewise.
4095         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
4096         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
4097         count_or_remove_death_notes): Likewise.
4098         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
4099         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
4100         classic_gcse, compute_transp, cprop, compute_pre_data,
4101         compute_transpout, invalidate_nonnull_info,
4102         delete_null_pointer_checks_1, delete_null_pointer_checks,
4103         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
4104         compute_store_table, build_store_vectors, store_motion): Likewise.
4105         * global.c (global_conflicts, mark_elimination): Likewise.
4106         * graph.c (print_rtl_graph_with_bb): Likewise.
4107         * haifa-sched.c (sched_init): Likewise.
4108         * ifcvt.c (if_convert): Likewise.
4109         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
4110         compute_available, compute_nearerout, compute_rev_insert_delete,
4111         optimize_mode_switching): Likewise.
4112         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
4113         * predict.c (estimate_probability, note_prediction_to_br_prob,
4114         propagate_freq, counts_to_freqs, expensive_function_p,
4115         estimate_bb_frequencies): Likewise.
4116         * profile.c (instrument_edges, get_exec_counts,
4117         compute_branch_probabilities, compute_checksum, branch_prob,
4118         find_spanning_tree): Likewise.
4119         * recog.c (split_all_insns, peephole2_optimize): Likewise.
4120         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
4121         Likewise.
4122         * regclass.c (scan_one_insn, regclass): Likewise.
4123         * regmove.c (mark_flags_life_zones, regmove_optimize,
4124         record_stack_memrefs): Likewise.
4125         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
4126         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
4127         * resource.c (find_basic_block): Likewise.
4128         * sched-ebb.c (schedule_ebbs): Likewise.
4129         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
4130         find_single_block_region, find_rgns, schedule_insns)
4131         * sibcall.c (optimize_sibling_and_tail_recursive_call)
4132         * ssa-ccp.c (optimize_unexecutable_edges,
4133         ssa_ccp_df_delete_unreachable_insns): Likewise.
4134         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
4135         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
4136         rename_block, convert_to_ssa, compute_conservative_reg_partition,
4137         compute_coalesced_reg_partition, rename_equivalent_regs,
4138         convert_from_ssa): Likewise.
4139         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
4140         process_for_unwind_directive): Likewise.
4141
4142         * df.c (FOR_ALL_BBS): Removed.
4143         * gcse.c (struct null_pointer_info): Type of current_block field
4144         changed.
4145         (struct reg_avail_info): Type of last_bb field changed.
4146         * config/ia64/ia64.c (block_num): Removed.
4147         (need_copy_state): Type changed.
4148         (last_block): New.
4149
4150 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4151
4152         * cppinit.c (mark_named_operators): Split out from init_builtins.
4153         (cpp_finish_options): Call it from here instead.
4154
4155 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
4156
4157         * builtin-attrs.def: Update copyright years.
4158         (ATTR_NONNULL): New attribute identifier.
4159         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
4160         attribute tree lists.
4161         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
4162         format operand.
4163         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
4164         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
4165         attribute lists.  Chain the appropriate nonnull attribute.
4166         * c-format.c (check_format_arg): Remove null format string
4167         warning.
4168         * testsuite/gcc.dg/format/null-1.c: New test.
4169
4170 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4171
4172         * Makefile.in (ADAC): Define.
4173         (SYSLIBS): Define.
4174         (.SUFFIXES): Move before language makefile fragments.
4175         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
4176
4177 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
4178
4179         * varasm.c (make_decl_rtl): Don't allow weak variables to be
4180         placed in common.
4181
4182 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4183
4184         * cfg.c (dump_flow_info): Print results of
4185         maybe_hot/probably_never_executed predicates.
4186         * toplev.c (open_dump_file): Print function frequency.
4187
4188 2002-05-23  David S. Miller  <davem@redhat.com>
4189
4190         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
4191         regsets.
4192
4193 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
4194
4195         * c-common.c (warn_nonnull): Declare.
4196         (c_common_attribute_table): Add "nonnull" attribute.
4197         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
4198         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
4199         check_function_arguments_recurse): New functions.
4200         * c-common.h (warn_nonnull): Declare extern.
4201         (check_function_arguments, check_function_arguments_recurse): New
4202         prototypes.
4203         * c-decl.c (c_decode_option): Add -Wnonnull option.
4204         * c-format.c (set_Wformat): Set warn_nonnull if enabling
4205         format checking.
4206         (format_check_context): New structure.
4207         (check_format_info_recurse): Remove recursion and rename to...
4208         (check_format_arg): ...this.  Update comment.
4209         (check_format_info): Use check_function_arguments_recurse.
4210         * c-typeck.c (build_function_call): Call check_function_arguments
4211         instead of check_function_format.
4212         * doc/extend.texi: Document "nonnull" attribute.
4213         * doc/invoke.texi: Docuemnt -Wnonnull option.
4214         * testsuite/gcc.dg/nonnull-1.c: New test.
4215         * testsuite/gcc.dg/nonnull-2.c: New test.
4216
4217 2002-05-23  David S. Miller  <davem@redhat.com>
4218
4219         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
4220         * cfgcleanup.c (cleanup_cfg): If it is set do not
4221         attempt to delete trivially dead insns.
4222         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
4223         * toplev.c (rest_of_compilation): Document non-trivial aspect
4224         the RTL before optimize_save_area_alloca is run.
4225
4226 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4227
4228         * c-lex.c (indent_level): Remove.
4229         (cb_file_change, c_lex): Remove indent level handling.
4230         * c-lex.h (indent_level): Remove.
4231         * input.h (struct file_stack): Remove indent_level.
4232         * toplev.c (push_srcloc): Remove indent_level handling.
4233
4234 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
4235
4236         PR target/6753
4237         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
4238         of x in constraints for clarity.
4239         (sse_mov?fcc split): abort if op2 == op3.
4240         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
4241         sse_movsfcc_const0_4): Add earlyclobber.
4242         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
4243         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
4244         Use Y instead of x in constraints.
4245
4246 2002-05-23  Richard Henderson  <rth@redhat.com>
4247
4248         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
4249         (C++98 Thread-Local Edits): New subsection.
4250
4251         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
4252         (ix86_arch): Set type to enum processor_type.
4253
4254         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
4255         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
4256
4257 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
4258
4259         * configure.in: Fix as version test for binutils 2.12.1 releases
4260         (without dates).
4261         * configure: Rebuilt.
4262
4263 2002-05-23  Richard Henderson  <rth@redhat.com>
4264
4265         * config/i386/i386.c (get_pic_label_name): New.
4266         (load_pic_register): Remove.
4267         (output_set_got): New.
4268         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
4269         * config/i386/i386.md (UNSPEC_SET_GOT): New.
4270         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
4271         (prologue_set_got, prologue_get_pc): Remove.
4272         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
4273         (builtin_setjmp_receiver): Use gen_set_got.
4274         * config/i386/i386-protos.h: Update.
4275
4276 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
4277
4278         * gcse.c (hash_expr): Do not use alias set for hashing.
4279
4280 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
4281
4282         * dbxout.c (dbxout_class_name_qualifiers): New function.
4283         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
4284
4285 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4286
4287         * cpperror.c (_cpp_begin_message): No special casing
4288         of CPP_FATAL_LIMIT.
4289         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
4290         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
4291         * cpplib.c (do_include_common): Use DL_ERROR.
4292         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
4293         (DL_ICE): Renumber.
4294         * fix-header.c (read_scan_file): Update.
4295
4296 2002-05-22  Richard Henderson  <rth@redhat.com>
4297
4298         * config/i386/i386.c (ix86_expand_call): New function, extracted
4299         from md call patterns.  Add pic_offset_table_rtx to
4300         CALL_INSN_FUNCTION_USAGE when needed.
4301         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
4302         (call_value_pop, call_value, untyped_call): Likewise.
4303         (call_exp, call_value_exp): Remove.
4304         * config/i386/i386-protos.h: Update.
4305
4306 2002-05-22  Richard Henderson  <rth@redhat.com>
4307
4308         * varasm.c (default_section_type_flags): Check for VAR_DECL
4309         before using DECL_THREAD_LOCAL.
4310
4311 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
4312
4313         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
4314         (STARTFILE_SPEC): Delete PE crt0.o.
4315         * config/rs6000/aix51.h: Same.
4316         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
4317         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
4318         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
4319         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
4320         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
4321
4322 2002-05-22  Richard Henderson  <rth@redhat.com>
4323
4324         * varasm.c (default_section_type_flags): Handle tls data and
4325         default sections.
4326         (default_unique_section): Handle tls sections.
4327
4328 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
4329
4330         * configure.in (CROSS): Define NATIVE_CROSS.
4331         * configure: Regenerate.
4332         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
4333         (startfile_prefix_spec): New var.
4334         (static_specs): Add startfile_prefix_spec.
4335         (do_spec_2): Split out from..
4336         (do_spec): ..here.
4337         (main): Process startfile_prefix_spec.
4338         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
4339         dynamic linker.
4340         (STARTFILE_PREFIX_SPEC): Define.
4341         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
4342         absolute paths.
4343
4344 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
4345
4346         * cpperror.c: Fix formatting.
4347         * cppexp.c: Likewise.
4348         * cppfiles.c: Likewise.
4349         * cpphash.c: Likewise.
4350         * cpphash.h: Likewise.
4351         * cppinit.c: Likewise.
4352         * cpplex.c: Likewise.
4353         * cpplib.c: Likewise.
4354         * cppmacro.c: Likewise.
4355         * cppmain.c: Likewise.
4356         * cppspec.c: Likewise.
4357
4358 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
4359
4360         * combine.c (force_to_mode): Use gen_int_mode.
4361         Don't clear CONST_INT bits outside of mode.
4362
4363 2002-05-22  Richard Henderson  <rth@redhat.com>
4364
4365         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
4366         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
4367
4368 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
4369
4370         PR c/6643
4371         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
4372         if DECL_SIZE_UNIT is INTEGER_CST.
4373
4374 2002-05-22  Richard Henderson  <rth@redhat.com>
4375
4376         * flow.c (life_analysis): Delete broken reg_label check.
4377
4378 2002-05-22  Richard Henderson  <rth@redhat.com>
4379
4380         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
4381         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
4382
4383 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
4384
4385         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
4386         (embed-bb.c): New rule.
4387         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
4388         * config/sh/embed_bb.c: Delete.
4389
4390 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
4391
4392         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
4393
4394 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
4395
4396         * config/h8300/h8300.md (*andorqi3): New.
4397
4398 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4399
4400         PR preprocessor/6517
4401         * Makefile.in: Update.
4402         * c-common.c (c_common_post_options): Add preprocessor
4403         errors to the error count.
4404         * c-lang.c (c_post_options): Kill.
4405         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4406         * hooks.h: Add header guards.
4407         * langhooks-def.h: Include hooks.h.
4408         (LANG_HOOKS_POST_OPTIONS): Update.
4409         * langhooks.h (struct lang_hooks): Update post_options.
4410         * toplev.c (parse_options_and_default_flags): Update.
4411 objc:
4412         * objc-lang.c (objc_post_options): Kill.
4413         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4414
4415 2002-05-21  Bruce Korb  <bkorb@gnu.org>
4416
4417         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
4418         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
4419         * fixinc/fixincl.x: regen.
4420
4421 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
4422
4423         * cfgbuild.c: Fix formatting.
4424         * cfg.c: Likewise.
4425         * cfgcleanup.c: Likewise.
4426         * cfglayout.c: Likewise.
4427         * cfgloop.c: Likewise.
4428         * cfgrtl.c: Likewise.
4429
4430 2002-05-21  Richard Henderson  <rth@redhat.com>
4431
4432         * c-common.h (enum rid): Add RID_THREAD.
4433         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
4434         (grokdeclarator): Grok __thread.
4435         * c-parse.in (reswords): Add __thread.
4436         (rid_to_yy): Add RID_THREAD.
4437
4438         * tree.h (DECL_THREAD_LOCAL): New.
4439         (struct tree_decl): Add thread_local_flag.
4440         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
4441         * tree.c (staticp): TLS variables are not static.
4442
4443         * target-def.h (TARGET_HAVE_TLS): New.
4444         * target.h (have_tls): New.
4445         * output.h (SECTION_TLS): New.
4446         * varasm.c (assemble_variable): TLS variables can't be common for now.
4447         (default_section_type_flags): Handle .tdata and .tbss.
4448         (default_elf_asm_named_section): Handle SECTION_TLS.
4449         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
4450
4451         * flags.h (flag_tls_default): Declare.
4452         * toplev.c (flag_tls_default): Define.
4453         (display_help): Display help for it.
4454         (decode_f_option): Set it.
4455
4456         * doc/extend.texi (Thread-Local): New node describing language-level
4457         thread-local storage.
4458         * doc/invoke.texi (-ftls-model): Document.
4459
4460         * fixinc/inclhack.def (thread_keyword): New.
4461         * fixinc/fixincl.x: Rebuild.
4462
4463 2002-05-21  Jeffrey A Law  <law@redhat.com>
4464
4465         * optabs.c (expand_binop): For double-word integer multiplies,
4466         do not compute intermediate results into something that is
4467         not a register (such as a SUBREG or MEM).
4468
4469         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
4470         (ix86_sched_reorder): Make sure to initialize scheduling
4471         data even when there's only one insn in the ready queue.
4472
4473 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
4474
4475         * genautomata.c (reserv_sets_hash_value): Fix a typo.
4476
4477 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
4478
4479         * genautomata.c (reserv_sets_hash_value): Define hash_value as
4480         set_el_t.  Transform the hash value into unsigned.
4481         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
4482         (transform_3): Add code to process `(A,B)+(D,E)'.
4483
4484 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
4485
4486         * reload1.c (do_output_reload): Run delete_output_reload
4487         only if optimizing.
4488
4489 2002-05-21  Roger Sayle  <roger@eyesopen.com>
4490
4491         PR middle-end/6600
4492         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
4493         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
4494         (can_store_by_pieces): ... and here to limit the largest mode used.
4495         Add a comment to document this function.
4496
4497 2002-05-21  Richard Henderson  <rth@redhat.com>
4498
4499         * flow.c (life_analysis): Fix test for deleted label.
4500
4501 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4502
4503         * doc/tm.texi: Fix typo.
4504
4505 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
4506
4507         * c-common.c (c_common_init): Set options->unsigned_char from
4508         flag_signed_char.
4509         (cb_register_builtins): Define __STRICT_ANSI__ and
4510         __CHAR_UNSIGNED__ here...
4511         * cppinit.c (init_builtins): Not here.
4512         (cpp_create_reader): unsigned_char option defaults to 0, not
4513         !DEFAULT_SIGNED_CHAR.
4514         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
4515         and -funsigned-char.
4516
4517         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
4518         * cpphash.c (_cpp_init_hashtable): Don't set it.
4519         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
4520         directly.  Clarify comment.
4521
4522 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4523
4524         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
4525         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
4526         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
4527         BASIC_BLOCK (n_basic_blocks - 1).
4528         * cfganal.c (can_fallthru, flow_call_edges_add,
4529         flow_preorder_transversal_compute): Too.
4530         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
4531         find_sub_basic_blocks): Too.
4532         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
4533         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
4534         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
4535         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
4536         * combine.c (this_basic_block): Type changed to basic_block.
4537         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
4538         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4539         get_last_value, distribute_notes, distribute_links): Too.
4540         * final.c (compute_alignments): Too.
4541         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
4542         * function.c (thread_prologue_and_epilogue_insns): Too.
4543         * gcse.c (compute_code_hoist_vbeinout): Too.
4544         * global.c (build_insn_chain): Too.
4545         * ifcvt.c (find_if_block, find_cond_trap): Too.
4546         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
4547         * regmove.c (regmove_optimize): Too.
4548         * resource.c (find_basic_block): Too.
4549         * sched-ebb.c (schedule_ebbs): Too.
4550         * ssa-dce.c (find_control_dependence, find_pdom): Too.
4551
4552 2002-05-21  Andreas Jaeger  <aj@suse.de>
4553
4554         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
4555
4556 2002-05-21  Richard Henderson  <rth@redhat.com>
4557
4558         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
4559         unspec names, not numbers.
4560
4561 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4562
4563         * doc/sourcebuild.texi: Mention snapshot-README and
4564         snapshot-index.html as needing updating for new front ends.
4565
4566 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4567
4568         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
4569         disabling checking, and avoid multiple evaluation of RTX.
4570
4571 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
4572
4573         * bitmap.c (bitmap_find_bit): Return early if we have the correct
4574         element cached.
4575
4576 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
4577
4578         * profile.c (gen_edge_profiler):  Set alias set before the memory is
4579         used.
4580
4581 2002-05-20  David S. Miller  <davem@redhat.com>
4582
4583         * cselib.c (max_value_regs): New.
4584         (cselib_lookup, cselib_invalidate_regno): Initialize it when
4585         adding new entries to the REG_VALUES table and we are dealing with
4586         a hard register.
4587         (clear_table): Initialize it.
4588         (cselib_invalidate_regno): Use it to determine which hard
4589         registers to scan when mode is not VOIDmode.
4590
4591 2002-05-20  Duraid Madina   <duraid@fl.net.au>
4592
4593         * tradcpp.c (fixup_newlines): Use old-style function header.
4594
4595 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
4596
4597         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
4598
4599 2002-05-20  H.J. Lu  (hjl@gnu.org)
4600
4601         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
4602
4603         * config/mips/mips.h (DFMODE_NAN): Defined.
4604         (SFMODE_NAN): Likewise.
4605
4606 2002-05-20  Dale Johannesen  <dalej@apple.com>
4607
4608         * combine.c (cant_combine_insn_p):  Back out my
4609         previous patch.
4610
4611 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
4612
4613         * params.c: Fix formatting.
4614         * params.h: Likewise.
4615         * predict.c: Likewise.
4616         * prefix.c: Likewise.
4617         * print-rtl.c: Likewise.
4618         * print-tree.c: Likewise.
4619         * profile.c: Likewise.
4620
4621 2002-05-20  H.J. Lu  (hjl@gnu.org)
4622
4623         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
4624
4625 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
4626
4627         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
4628         switches straight on to the assembler, do not abbreviate them.
4629         * config/arm/elf.h (ASM_SPEC): As above.
4630         * config/arm/semi.h (ASM_SPEC): As above.
4631         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
4632         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
4633         -mcpu=xscale on to the assembler by default.
4634         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
4635
4636 2002-05-20  Richard Henderson  <rth@redhat.com>
4637
4638         * cse.c (canon_hash): Reorder do_not_record test.  Always
4639         allow pic_offset_table_rtx.
4640
4641 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
4642
4643         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
4644         (expand_binop): Ditto (3 times).
4645
4646 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
4647
4648         * Makefile.in (distclean): Remove QMTest stuff.
4649         (QMTEST_PATH): New variable.
4650         (QMTESTFLAGS): Likewise.
4651         (QMTESTRUNFLAGS): Likewise.
4652         (QMTEST): Likewise.
4653         (QMTEST_GPP_TESTS): Likewise.
4654         (QMTEST_DIR): Likewise.
4655         (QMTEST_DIR/context): New target.
4656         (qmtest-g++): Likeise.
4657         (qmtest-gui): Likewise.
4658         (QMTEST_DIR/gpp-expected.qmr): Likewise.
4659
4660 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
4661
4662         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
4663         an altivec register if TARGET_ALTIVEC.
4664
4665         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
4666         to ALTIVEC_VECTOR_MODE.
4667         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
4668         (rs6000_va_arg): Vectors may go in registers if they are not
4669         altivec vectors.
4670
4671 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
4672
4673         * protoize.c: Fix formatting.
4674
4675 2002-05-19  Richard Henderson  <rth@redhat.com>
4676
4677         * gensupport.c (init_include_reader): Merge into ...
4678         (process_include): ... here.  Simplify composite path creation.
4679         Plug memory leaks.  Fix file/line number tracking.  Do not
4680         process_define_cond_exec.  Return void.
4681         (process_rtx): Don't check process_include return value.
4682
4683 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4684
4685         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
4686         fields.
4687         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4688         traversing basic block chain.
4689         (create_basic_block_structure, create_basic_block): Declaration changed.
4690         (link_block, unlink_block): Declare.
4691         * cfg.c (entry_exit_blocks): Initialize new fields.
4692         (link_block, unlink_block): New.
4693         (expunge_block_nocompact): Unlink basic block.
4694         (dump_flow_info): Print prev_bb/next_bb fields.
4695         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
4696         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
4697         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
4698         * cfgrtl.c (create_basic_block_structure, create_basic_block,
4699         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
4700         (verify_flow_info): Check that list agrees with numbering.
4701
4702 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4703
4704         * c-common.c (preprocessing_asm): New macro.
4705         * c-lex.h (builtin_define, builtin_assert): Use pfile.
4706 doc:
4707         * tm.texi: Update.
4708 config/alpha:
4709         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
4710         (CPP_SPEC): Simplify.
4711         (TARGET_CPU_CPP_BUILTINS): Update.
4712         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
4713         (CPP_SPEC): Simplify.
4714         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
4715         (TARGET_OS_CPP_BUILTINS): Update.
4716         * osf.h (CPP_XFLOAT_SPEC): Kill.
4717         (TARGET_OS_CPP_BUILTINS): Update.
4718         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
4719         * osf5.h (CPP_XFLOAT_SPEC): Kill.
4720         * vms.h (CPP_SUBTARGET_SPEC): Kill.
4721         (TARGET_OS_CPP_BUILTINS): Update.
4722
4723 2002-05-19  Richard Henderson  <rth@redhat.com>
4724
4725         * varasm.c (default_binds_local_p): Fix typo.
4726
4727 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4728
4729         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
4730         CONST_INT operand to the correct mode after adding 1 to it.
4731
4732 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
4733
4734         * config.gcc (powerpc-wrs-windiss*): New target.
4735
4736 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4737
4738         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
4739         (ashrdi3): Use it.
4740
4741 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
4742
4743         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
4744         alphasort.
4745         * config.in: Regenerated.
4746         * configure: Regenerated.
4747
4748 2002-05-19  Richard Henderson  <rth@redhat.com>
4749
4750         * target-def.h (TARGET_BINDS_LOCAL_P): New.
4751         * target.h (struct gcc_target): Move boolean fields to the end.
4752         Add binds_local_p.
4753         * varasm.c (default_binds_local_p): New.
4754         * output.h: Declare it.
4755
4756         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
4757         * config/cris/cris.c (cris_encode_section_info): Likewise.
4758         * config/i386/i386.c (i386_encode_section_info): Likewise.
4759         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
4760         * config/sh/sh.c (sh_encode_section_info): Likewise.
4761
4762         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
4763         (TARGET_BINDS_LOCAL_P): New.
4764
4765 2002-05-19  Richard Henderson  <rth@redhat.com>
4766
4767         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
4768         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
4769         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
4770
4771         * toplev.c (display_help): Kill -a -ax help.
4772
4773         * config/1750a/1750a.h, config/alpha/alpha.h,
4774         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
4775         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
4776         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
4777         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
4778
4779         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
4780         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
4781
4782         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
4783         (ix86_output_function_block_profiler): Kill.
4784         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
4785         (m68hc11_function_block_profiler): Kill.
4786         * config/m68hc11/m68hc11-protos.h: Update.
4787         * config/m88k/m88k.c (output_block_profiler): Kill.
4788         (output_function_block_profiler): Kill.
4789         * config/m88k/m88k-protos.h: Update.
4790
4791 2002-05-19  Richard Henderson  <rth@redhat.com>
4792
4793         * system.h (STRIP_NAME_ENCODING): Poison it.
4794         * output.h (STRIP_NAME_ENCODING): Remove.
4795         (default_strip_name_encoding): Declare.
4796         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
4797         * target.h (strip_name_encoding): New.
4798         * varasm.c (default_strip_name_encoding): New.
4799
4800         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
4801         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
4802         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
4803         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
4804         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
4805         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
4806         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
4807         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
4808         config/v850/v850.h: Use the hook, not the macro.
4809
4810         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
4811         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
4812         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
4813         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
4814         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
4815         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
4816         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
4817         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
4818         config/v850/v850.c, config/v850/v850.h:
4819         Move STRIP_NAME_ENCODING to out-of-line function and add
4820         TARGET_STRIP_NAME_ENCODING.
4821
4822         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
4823         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
4824         with TARGET_STRIP_NAME_ENCODING referencing existing function;
4825         make function static.
4826
4827         * xcoffout.c: Include target.h
4828         * Makefile.in (xcoffout.o): Update.
4829
4830         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
4831         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
4832         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
4833         reloc argument unused.
4834         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
4835
4836         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
4837         STRIP_NAME_ENCODING docs.
4838
4839 2002-05-19  Andreas Jaeger  <aj@suse.de>
4840
4841         * gengenrtl.c: Add prototype for excluded_rtx.
4842
4843         * real.h: Add prototype for exact_real_truncate.
4844
4845 2002-05-18  Richard Henderson  <rth@redhat.com>
4846
4847         * system.h (ENCODE_SECTION_INFO): Poison it.
4848         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
4849         * target.h (encode_section_info): New.
4850         * varasm.c (make_decl_rtl, output_constant_def): Use it.
4851         * hooks.c (hook_tree_int_void): New.
4852         * hooks.h: Declare it.
4853
4854         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4855         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
4856         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
4857         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
4858         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
4859         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
4860         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
4861         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
4862         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
4863         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4864         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
4865         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
4866         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
4867         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
4868         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
4869         referencing existing function.  Make function static.
4870
4871         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
4872         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
4873         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
4874         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
4875         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
4876         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
4877         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
4878         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
4879         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
4880         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
4881         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
4882         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
4883         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
4884         Move ENCODE_SECTION_INFO to out-of-line function and add
4885         TARGET_ENCODE_SECTION_INFO.
4886
4887         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
4888         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4889
4890         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
4891         from SUBTARGET_*
4892         (switch_to_section): Replace in_rdata case with in_readonly_data.
4893
4894         * config/h8300/h8300.c (h8300_encode_label): Make static.
4895         * config/h8300/h8300-protos.h: Update.
4896
4897         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
4898         from rs6000_encode_section_info; make static.
4899         (rs6000_xcoff_encode_section_info): New.
4900
4901         * config/v850/v850.c (v850_encode_data_area): Make static.
4902         * config/v850/v850-protos.h: Update.
4903
4904         * config/vax/vax.c: Include flags.h.
4905         (vms_select_section): Fix typo.
4906
4907         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
4908         ENCODE_SECTION_INFO docs.
4909
4910 2002-05-18  Richard Henderson  <rth@redhat.com>
4911
4912         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
4913         REGISTER_TARGET_PRAGMAS.
4914         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
4915
4916         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
4917
4918 2002-05-18  Richard Henderson  <rth@redhat.com>
4919
4920         * system.h (SELECT_RTX_SECTION): Poison.
4921         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
4922         * target.h (select_rtx_section): New.
4923         * varasm.c (output_constant_pool): Use it.
4924         (default_select_rtx_section, default_elf_select_rtx_section): New.
4925         * output.h: Declare them.
4926
4927         * config/darwin.h (SELECT_RTX_SECTION): Move ...
4928         * config/darwin.c (machopic_select_rtx_section): ... here.
4929         * config/darwin-protos.h: Update.
4930
4931         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
4932         * config/nextstep.c (machopic_select_rtx_section): ... here.
4933         (nextstep_select_section): Rename variable to avoid macro clash.
4934         * config/nextstep-protos.h: Update.
4935
4936         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
4937         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
4938         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
4939         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
4940         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
4941         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
4942         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
4943         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
4944         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
4945         (SELECT_RTX_SECTION): Remove.
4946
4947         * config/darwin.h, config/elfos.h, config/nextstep.h,
4948         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
4949         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
4950         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
4951         config/sparc/lynx.h, config/xtensa/xtensa.c
4952         (TARGET_ASM_SELECT_RTX_SECTION): New.
4953
4954         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
4955         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
4956         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
4957         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
4958         (ia64_aix_select_rtx_section): New.
4959         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
4960         redefining.
4961         * config/mips/mips.c (mips_select_rtx_section): Make static.
4962         Support ELF SHF_MERGE features.
4963         * config/mips/mips-protos.h: Update.
4964         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
4965         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
4966         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
4967         make static, fall back to default_elf_select_rtx_section.
4968         * config/rs6000/rs6000-protos.h: Update.
4969         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
4970         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
4971         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
4972         * config/romp/romp.c (romp_select_rtx_section): New.
4973         * config/s390/s390.c (s390_select_rtx_section): New.
4974         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
4975         declarations before target macro definition.
4976         (xtensa_emit_call): Use static buffer.
4977         (xtensa_select_rtx_section): New.
4978         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
4979         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
4980         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
4981
4982         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
4983         SELECT_RTX_SECTION docs.
4984
4985 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
4986
4987         * i386.md (movsi/movdi): Fix template.
4988         (sse2 patterns): Set attributes consistently.
4989
4990         * i386.md (pushqi2, ashrqi_*): Fix constraint.
4991
4992 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
4993
4994         * optabs.c (complex_part_zero_p): New.
4995         * (expand_cmplxdiv_straight): Use it.
4996         * (expand_cmplxdiv_wide): Ditto.
4997         * (expand_binop): Ditto.
4998
4999 2002-05-18  Richard Henderson  <rth@redhat.com>
5000
5001         * final.c (HAVE_READONLY_DATA_SECTION): New.
5002         (shorten_branches): Use it instead of ifdefs.
5003         * varasm.c (enum in_section): Add in_readonly_data.
5004         (text_section, data_section): Tidy.
5005         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
5006
5007         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
5008         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
5009         (READONLY_DATA_SECTION): Don't undef.
5010
5011         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
5012         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
5013         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
5014
5015         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
5016         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
5017         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
5018         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
5019
5020         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
5021         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
5022         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
5023         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
5024         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
5025         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
5026         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
5027         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
5028         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
5029
5030         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
5031         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
5032         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
5033         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
5034         config/pa/pa64-hpux.h, config/sparc/litecoff.h
5035         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
5036
5037         * config/elfos.h, config/netware.h, config/svr3.h,
5038         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
5039         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
5040         config/h8300/h8300.h, config/i386/i386-interix.h,
5041         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
5042         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
5043
5044         * config/elfos.h, config/netware.h, config/svr3.h,
5045         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
5046         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
5047         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
5048         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
5049
5050         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
5051         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
5052         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
5053         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
5054         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
5055         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
5056         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
5057         config/rs6000/sysv4.h, config/v850/v850.h
5058         (EXTRA_SECTIONS): Remove in_const/in_rdata.
5059         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
5060
5061         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
5062         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
5063         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
5064         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
5065         * config/alpha/alpha.c (alpha_start_function): Likewise.
5066         (alpha_write_linkage): Likewise.
5067         * config/m32r/m32r.c (m32r_select_section): Likewise.
5068         * config/m88k/m88k.c (m88k_select_section): Likewise.
5069         * config/mips/mips.c (mips_select_rtx_section): Likewise.
5070         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
5071         (rs6000_elf_select_section): Likewise.
5072         * config/v850/v850.c (v850_select_section): Likewise.
5073
5074         * config/1750a/1750a.h, config/i860/sysv3.h
5075         (READONLY_DATA_SECTION_ASM_OP): New.
5076         READONLY_DATA_SECTION_ASM_OP.
5077         * config/i386/interix.c, config/i386/winnt.c
5078         (i386_pe_unique_section): Always use .rdata prefix.
5079         * config/pa/som.h (readonly_data): Always switch to read-only section.
5080         (READONLY_DATA_SECTION): Predicate on flag_pic.
5081         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
5082         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
5083         (READONLY_DATA_SECTION): Update.
5084
5085 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
5086
5087         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
5088         is used without -Wformat.
5089         * c-common.h (warn_format_zero_length): Declare extern.
5090         * c-decl.c (warn_options): Add "format-zero-length".
5091         * c-format.c (warn_format_zero_length): Declare.
5092         (set_Wformat): Set warn_format_zero_length for -Wformat.
5093         (check_format_info): Only warn about zero-length formats if
5094         warn_format_zero_length is true.  Include the format type
5095         name in the warning message.
5096         * doc/invoke.texi: Document -Wformat-zero-length.
5097         * testsuite/gcc.dg/format/zero-length-1.c: New test.
5098
5099 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
5100
5101         * timevar.c: Fix formatting.
5102         * tlink.c: Likewise.
5103         * toplev.c: Likewise.
5104         * tree-dump.c: Likewise.
5105         * tree-inline.c: Likewise.
5106
5107 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5108
5109         * cppinit.c (cpp_post_options): If preprocessed, turn off
5110         traditional.  If traditional, turn off column numbers.
5111         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
5112         * cpptrad.c (handle_newline): Update line_base.
5113         (skip_comment): Handle -Wcomment.
5114
5115 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
5116
5117         * cppinit.c (struct builtin): Remove unused fields.
5118         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
5119         (operator_array): New - was second half of builtin_array.
5120         (init_builtins): Simplify loop over builtin_array/operator_array.
5121
5122 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5123
5124         * defaults.h (UNIQUE_SECTION): Remove.
5125         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
5126
5127 2002-05-17  Richard Henderson  <rth@redhat.com>
5128
5129         * expr.c (init_expr_once): Don't use start/end_sequence.
5130         Use rtx_alloc instead of emit_insn.
5131         * toplev.c (lang_dependent_init): Run init_expr_once here ...
5132         (lang_independent_init): ... not here.
5133
5134 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
5135
5136         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
5137
5138 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5139
5140         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
5141         for fixed registers, possibly used for global register variables.
5142         (initial_elimination_offset, avr_output_function_prologue,
5143         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
5144
5145 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5146
5147         * Makefile.in: Update for cpptrad.c.
5148         * cpphash.h (struct cpp_buffer): New members for buffer
5149         overlays.
5150         (struct cpp_reader): New members for traditional output.
5151         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
5152         * cppinit.c (cpp_create_reader): Set trad_line.
5153         (cpp_destroy): Free trad_out_base if used.
5154         (cpp_read_main_file): Overlay an empty buffer if traditional.
5155         (cpp_finish_options): Don't do builtins.
5156         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
5157         (cpp_handle_option): Handle it.
5158         * cpplex.c (continue_after_nul): New.
5159         (_cpp_lex_direct): Use handle_nul.
5160         * cpplib.h (struct cpp_options): New traditional option.
5161         * cpptrad.c: New file.
5162
5163 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5164
5165         * c-common.c (c_common_init_options): Use C89 for Objective-C,
5166         and set the options flag.
5167         * cppinit.c (lang_flags): Remove objc.
5168         (lang_defaults): Remove OBJC and OBJCXX.
5169         (set_lang): Update.
5170         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
5171         (cpp_handle_option): Remove -+ and -lang-objc++.
5172         For ObjC, just set a flag.
5173         (print_help): Update.
5174         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
5175
5176 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5177
5178         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
5179         bootstrap with -mips3.
5180
5181 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
5182
5183         * final.c: Fix formatting.
5184         * fix-header.c: Likewise.
5185         * flow.c: Likewise.
5186         * fold-const.c: Likewise.
5187         * function.c: Likewise.
5188
5189 2002-05-17  David S. Miller  <davem@redhat.com>
5190
5191         PR c/6689, PR optimization/6615
5192         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
5193         and make it a pointer to rtx.  Update comments.
5194         (update_equiv_regs): When scanning for equivalences, record
5195         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
5196         it while making the equiv replacements.
5197
5198 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5199
5200         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
5201
5202 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
5203
5204         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
5205         when encoding visibility into SYMBOL_REF_FLAG.
5206
5207 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
5208
5209         * expr.c (force_operand): Fix reversed move.
5210
5211 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
5212
5213         * doc/install.texi (Testing): Mention two common DejaGnu warnings
5214         that can be ignored.
5215
5216 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5217
5218         * doc/install.texi (Final install): Recommend to install into a
5219         "clean" target directory.
5220
5221 2002-05-17  Richard Henderson  <rth@redhat.com>
5222
5223         * config/ia64/ia64.md: Use braced strings instead of quoted strings
5224         for code blocks.  Tidy whitespace.
5225
5226 2002-05-17  Richard Henderson  <rth@redhat.com>
5227
5228         * hooks.c (hook_tree_bool_false): New.
5229         * hooks.h: Declare it.
5230         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
5231         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
5232         * target.h (select_section, unique_section): New.
5233         (in_small_data_p): New.
5234         * varasm.c (resolve_unique_section): Use hooks instead of macros.
5235         (variable_section, output_constant_def_contents): Likewise.
5236         (default_select_section, default_unique_section): New.
5237         (categorize_decl_for_section, default_elf_select_section): New.
5238         * output.h: Declare them.
5239
5240         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
5241         (TARGET_ASM_SELECT_SECTION): New.
5242         (SELECT_SECTION): Move ...
5243         * config/darwin.c (machopic_select_section): ... here.
5244         * config/darwin-protos.h: Update.
5245
5246         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
5247         (SELECT_SECTION): Move ...
5248         * config/nextstep.c (nextstep_select_section): ... here.
5249         * config/nextstep-protos.h: Update.
5250
5251         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
5252         (TARGET_ASM_SELECT_SECTION): New.
5253         * config/svr3.h (SELECT_SECTION): Remove.
5254
5255         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
5256         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
5257         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
5258         (alpha_encode_section_info): Use it.
5259         * config/alpha/alpha-protos.h: Update.
5260         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
5261         (SELECT_SECTION, UNIQUE_SECTION): Remove.
5262         (TARGET_ASM_SELECT_SECTION): New.
5263         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
5264
5265         * config/arm/pe.h (UNIQUE_SECTION): Remove.
5266         (TARGET_ASM_UNIQUE_SECTION): New.
5267
5268         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
5269         (avr_unique_section): Rename from unique_section; make static.
5270         * config/avr/avr-protos.h: Update.
5271         * config/avr/avr.h (UNIQUE_SECTION): Remove.
5272
5273         * config/c4x/c4x.h (SELECT_SECTION): Remove.
5274
5275         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
5276         (TARGET_ASM_UNIQUE_SECTION): New.
5277         * config/i386/i386-interix.h: Likewise.
5278         * config/i386/win32.h: Likewise.
5279         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
5280         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
5281         * config/i386/sco5.h (SELECT_SECTION): Remove.
5282         (TARGET_ASM_SELECT_SECTION): New.
5283         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
5284
5285         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
5286         instead of SELECT_SECTION.
5287         * config/m68k/dpx2.h: Likewise.
5288         * config/rs6000/lynx.h: Likewise.
5289
5290         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
5291         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
5292         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
5293         (ia64_in_small_data_p): New.
5294         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
5295         (ia64_aix_select_section, ia64_aix_unique_section): New.
5296         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
5297         (SELECT_SECTION, UNIQUE_SECTION): Remove.
5298
5299         * config/m32r/m32r.h (SELECT_SECTION): Remove.
5300         (TARGET_ASM_SELECT_SECTION): New.
5301         * config/m32r/m32r.c (m32r_select_section): Take align argument.
5302         * config/m32r/m32r-protos.h: Update.
5303
5304         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
5305         (SELECT_SECTION): Move ...
5306         * config/m88k/m88k.c (m88k_select_section): ... here.
5307
5308         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
5309         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
5310         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
5311         (mcore_unique_section): Make static.
5312         * config/mcore/mcore-protos.h: Update.
5313
5314         * config/mips/elf.h (UNIQUE_SECTION): Remove.
5315         (TARGET_ASM_UNIQUE_SECTION): New.
5316         * config/mips/elf64.h: Likewise.
5317         * config/mips/iris6gld.h: Likewise.
5318         * config/mips/linux.h: Likewise.
5319         * config/mips/mips-protos.h: Update.
5320         * config/mips/mips.c (mips_select_section): Add align argument.
5321         * config/mips/mips.h (SELECT_SECTION): Remove.
5322         (TARGET_ASM_SELECT_SECTION): New.
5323
5324         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
5325         * config/mmix/mmix.c (mmix_select_section): Remove.
5326         (mmix_unique_section): Remove.
5327         * config/mmix/mmix-protos.h: Update.
5328
5329         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
5330         (SELECT_SECTION): Move ...
5331         * config/pa/pa.c (pa_select_section): ... here.
5332         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
5333
5334         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
5335         from rs6000_select_section and make static.
5336         (rs6000_elf_unique_section): Similarly.
5337         (rs6000_xcoff_select_section): From xcoff.h.
5338         (rs6000_xcoff_unique_section): Likewise.
5339         * config/rs6000/rs6000-protos.h: Update.
5340         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
5341         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
5342         * config/rs6000/xcoff.h: Likewise.
5343
5344         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
5345         (SELECT_SECTION): Move ...
5346         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
5347
5348         * config/v850/v850.h (SELECT_SECTION): Move ...
5349         * config/v850/v850.c (v850_select_section): ... here.
5350         (TARGET_ASM_SELECT_SECTION): New.
5351
5352         * config/vax/vms.h (SELECT_SECTION): Move ...
5353         * config/vax/vax.c (vms_select_section): ... here.
5354         (TARGET_ASM_SELECT_SECTION): New.
5355
5356         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
5357         for the target hooks.
5358
5359 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
5360
5361         * config/arm/arm.c (emit_multi_reg_push): Do not set
5362         RTX_FRAME_RELATED_P on the SEQUENCE.
5363
5364 2002-05-16  Richard Henderson  <rth@redhat.com>
5365
5366         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
5367         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
5368
5369 2002-05-16  Richard Henderson  <rth@redhat.com>
5370
5371         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
5372
5373         * config/ia64/ia64.c (saveable_obstack): Do not declare.
5374
5375 2002-05-16  Richard Henderson  <rth@redhat.com>
5376
5377         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
5378         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
5379         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
5380         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
5381         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
5382         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
5383         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
5384         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
5385         Revert "Basic block renumbering removal", and two followup patches.
5386
5387 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
5388
5389         * lcm.c (optimize_mode_switching): Revert previous change.
5390
5391 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5392
5393         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
5394         with only extant block numbers.
5395
5396 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
5397
5398         * lcm.c (optimize_mode_switching): Fix typo.
5399
5400 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5401
5402         * flow.c (calculate_global_regs_live): Queue blocks in program order.
5403
5404 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5405
5406         * doc/install.texi (Configuration): Document PWDCMD.
5407
5408 2002-05-16  Dale Johannesen  <dalej@apple.com>
5409
5410         * combine.c (cant_combine_insn_p):  Reenable combinations
5411         involving hard regs unless CLASS_LIKELY_SPILLED_P.
5412
5413 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5414
5415         * c-common.c (cb_register_builtins): Handle more built-ins
5416         here rather than in gcc.c specs.
5417         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
5418         (cpp_options): Pass -O flags even when only preprocessing.
5419         * toplev.c (set_fast_math_flags): New prototype.
5420         (fast_math_flags_set_p): New.
5421         (set_no_fast_math_flags): Remove.
5422         (decode_f_option): Update.
5423         * toplev.h (set_fast_math_flags): Update.
5424         (fast_math_flags_set_p): New.
5425         (set_no_fast_math_flags): Remove.
5426 config:
5427         * c4x/c4x.c (c4x_override_options): Update.
5428
5429 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
5430
5431         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
5432         Default-define here.
5433         (builtin_define_with_value): Can now wrap the expansion in
5434         quotation marks if such is wanted.
5435         (cb_register_builtins): Update calls to builtin_define_with_value.
5436         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
5437         here.
5438         (c_common_init): Set options->stdc_0_in_system_headers.
5439         * c-lex.h: Update prototype of builtin_define_with_value.
5440         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
5441         and REGISTER_PREFIX.
5442
5443         * cppinit.c (VERS, ULP, C, X): Kill.
5444         (builtin_array): Remove entries for __VERSION__,
5445         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
5446         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
5447         a constant.
5448         (init_builtins): Kill off a bunch of now-dead code.
5449         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
5450         -fno-leading-underscore.
5451         (cpp_handle_option): Remove code to set user_label_prefix.
5452         (cpp_post_options): Likewise.
5453
5454         * cpplib.h (struct cpp_options): Remove user_label_prefix.
5455         (stdc_0_in_system_headers): New.
5456         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
5457         stdc_0_in_system_headers) too to decide the value of __STDC__.
5458
5459         * tradcpp.c (user_label_prefix): Kill.
5460         (main): Remove code handling -f(no-)leading-underscore.
5461         (initialize_builtins): Don't define __REGISTER_PREFIX__
5462         or __USER_LABEL_PREFIX__.
5463         (install_value): Wrap compound statement in dummy loop so the
5464         macro works properly in an if statement.
5465
5466
5467 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
5468
5469         * loop.h (struct loop_info): Add member has_prefetch.
5470         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
5471         (prescan_loop): Initialize has_prefetch.
5472         (struct prefetch_info): Change prefetch_in_loop and
5473         prefetch_before_loop from bit fields to ints.
5474         (emit_prefetch_instructions): Several small fixes.
5475         (check_dbra_loop): Don't reverse loop that uses prefetch.
5476
5477 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5478
5479         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
5480         * configure.in: Likewise.
5481         * fixinc/check.tpl: Likewise.
5482         * fixinc/fixinc.dgux: Likewise.
5483         * fixinc/fixinc.svr4: Likewise.
5484         * fixinc/fixinc.winnt: Likewise.
5485         * fixinc/fixincl.sh: Likewise.
5486         * fixproto: Likewise.
5487         * configure: Regenerate.
5488
5489 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5490
5491         Basic block renumbering removal:
5492         * basic_block.h (struct basic_block_def): Renamed index to sindex,
5493         added prev_bb and next_bb fields.
5494         (n_basic_blocks): Renamed to num_basic_blocks.
5495         (last_basic_block): New, index of last basic block.
5496         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
5497         traversing basic block chain.
5498         (BLOCK_NUM): index -> sindex.
5499         (create_basic_block_structure, create_basic_block): Declaration changed.
5500         (debug_num2bb): Declare.
5501         (expunge_block_nocompact): Declaration removed.
5502         (link_block, unlink_block, compact_blocks): Declare.
5503         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
5504         * cfg.c (entry_exit_blocks): Initialize new fields.
5505         (clear_edges, alloc_block, expunge_block, cached_make_edge,
5506         redirect_edge_pred, dump_flow_info, dump_edge_info,
5507         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
5508         free_aux_for_edges): Modified.
5509         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
5510         (expunge_block_nocompact): Removed.
5511         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
5512         find_unreachable_blocks, create_edge_list, print_edge_list,
5513         verify_edge_list, flow_edge_list_print, remove_fake_successors,
5514         remove_fake_edges, flow_reverse_top_sort_order_compute,
5515         flow_depth_first_order_compute, flow_preorder_transversal_compute,
5516         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
5517         flow_dfs_compute_reverse_execute): Modified.
5518         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
5519         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
5520         Modified.
5521         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5522         merge_blocks_move_predecessor_nojumps,
5523         merge_blocks_move_successor_nojumps, merge_blocks,
5524         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
5525         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
5526         * cfglayout.c (skip_insns_after_block, label_for_bb,
5527         record_effective_endpoints, scope_to_insns_finalize,
5528         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
5529         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
5530         cfg_layout_duplicate_bb): Modified.
5531         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
5532         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5533         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
5534         flow_loops_find, flow_loop_outside_edge_p): Modified.
5535         * cfgrtl.c (create_basic_block_structure, create_basic_block,
5536         flow_delete_block, compute_bb_for_insn, split_block,
5537         try_redirect_by_replacing_jump, redirect_edge_and_branch,
5538         force_nonfallthru_and_redirect, tidy_fallthru_edge,
5539         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
5540         commit_edge_insertions, commit_edge_insertions_watch_calls,
5541         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
5542         purge_all_dead_edges): Modified.
5543         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
5544         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
5545         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
5546         Modified.
5547         * conflict.c (conflict_graph_compute): Modified.
5548         * df.c (FOR_ALL_BBS): Removed.
5549         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
5550         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
5551         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
5552         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
5553         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
5554         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
5555         * final.c (compute_alignments, final_scan_insn): Modified.
5556         * flow.c (verify_local_live_at_start, update_life_info,
5557         update_life_info_in_dirty_blocks, free_basic_block_vars,
5558         delete_noop_moves, calculate_global_regs_live,
5559         initialize_uninitialized_subregs, allocate_bb_life_data,
5560         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
5561         mark_used_reg, count_or_remove_death_notes): Modified.
5562         * function.c (thread_prologue_and_epilogue_insns): Modified.
5563         * gcse.c (struct null_pointer_info): Change typo of current_block
5564         to basic_block.
5565         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
5566         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
5567         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
5568         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
5569         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
5570         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
5571         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
5572         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
5573         pre_delete, one_pre_gcse_pass, compute_transpout,
5574         invalidate_nonnull_info, delete_null_pointer_checks_1,
5575         free_code_hoist_mem, compute_code_hoist_vbeinout,
5576         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
5577         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
5578         compute_store_table, build_store_vectors, insert_insn_start_bb,
5579         insert_store, replace_store_insn, free_store_memory, store_motion):
5580         Modified.
5581         * global.c (global_alloc, global_conflicts, mark_elimination,
5582         build_insn_chain): Modified.
5583         * graph.c (print_rtl_graph_with_bb): Modified.
5584         * haifa-sched.c (sched_init): Modified.
5585         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
5586         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
5587         if_convert): Modified.
5588         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
5589         compute_insert_delete, pre_edge_lcm, compute_available,
5590         compute_farthest, compute_nearerout, compute_rev_insert_delete,
5591         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
5592         Modified.
5593         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
5594         * loop.c (loop_dump_aux): Modified.
5595         * predict.c (combine_predictions_for_insn, estimate_probability,
5596         last_basic_block_p, process_note_prediction, process_note_predictions,
5597         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
5598         expensive_function_p, estimate_bb_frequencies,
5599         compute_function_frequency): Modified.
5600         * print-rtl.c (print_rtx): Modified.
5601         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
5602         get_exec_counts, compute_branch_probabilities, compute_checksum,
5603         branch_prob, find_spanning_tree): Modified.
5604         * recog.c (split_all_insns, peephole2_optimize): Modified.
5605         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
5606         convert_regs_1, convert_regs_2, convert_regs): Modified.
5607         * regclass.c (scan_one_insn, regclass): Modified.
5608         * regmove.c (mark_flags_life_zones, regmove_optimize,
5609         combine_stack_adjustments): Modified.
5610         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
5611         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
5612         * reorg.c (dbr_schedule): Modified.
5613         * resource.c (find_basic_block, init_resource_info): Modified.
5614         * sbitmap.c (sbitmap_intersection_of_succs,
5615         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
5616         sbitmap_union_of_preds): Modified.
5617         * sched-deps.c (init_dependency_caches): Modified.
5618         * sched-ebb.c (schedule_ebbs): Modified.
5619         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
5620         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
5621         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
5622         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
5623         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
5624         ssa_const_prop): Modified.
5625         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
5626         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
5627         * ssa.c (remove_phi_alternative, find_evaluations,
5628         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
5629         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
5630         make_regs_equivalent_over_bad_edges,
5631         make_equivalent_phi_alternatives_equival,
5632         compute_conservative_reg_partition,
5633         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
5634         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
5635         Modified.
5636
5637 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
5638
5639         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
5640
5641 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
5642
5643         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
5644         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
5645         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
5646         calling CONSTANT_POOL_ADDRESS_P.
5647         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
5648         to decide whether to define __arm__ or __thumb.
5649         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
5650         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
5651
5652 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5653
5654         * config/arc/arc.h (CPP_PREDEFINES): Remove.
5655         (CPP_SPEC): Update.
5656         (TARGET_CPU_CPP_BUILTINS): New.
5657
5658 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5659
5660         * cpphash.h (cpp_macro): Move here, and make expansion a union.
5661         * cppmacro.c (cpp_macro): Remove.
5662         (enter_macro_context, replace_args, warn_of_redefinition,
5663         _cpp_create_definition, cpp_macro_definition): Update.
5664
5665 2002-05-16  Jason Merrill  <jason@redhat.com>
5666
5667         * config/mips/mips.c (mips_output_external): Don't do sdata
5668         optimization for a variable with DECL_COMDAT set.
5669
5670 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5671
5672         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
5673         Cleanups for accepting modifiers on pointers.
5674         Fix predicate typos.
5675         Allow long pointers as well as int pointers.
5676
5677 2002-05-15  Richard Henderson  <rth@redhat.com>
5678
5679         * varasm.c (merge_weak): Remove special case for extern and common.
5680
5681 2002-05-15  Matt Hiller  <hiller@redhat.com>
5682
5683         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
5684         XFAILing.
5685         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
5686         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
5687         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
5688         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
5689         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
5690         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
5691
5692 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5693
5694         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
5695
5696 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
5697
5698         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
5699         ("altivec_mfvscr"): Read from VSCR.
5700
5701         Add vscr sets for the following insns: altivec_vctuxs,
5702         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
5703         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
5704         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
5705         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
5706         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
5707         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
5708         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
5709         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
5710         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
5711         altivec_vsum2sws, altivec_vsumsws.
5712
5713         * config/rs6000/rs6000.h: Add VSCR fixed register.
5714         (CALL_REALLY_USED_REGISTERS): Add vscr.
5715         (CALL_USED_REGISTERS): Same.
5716         (FIXED_REGISTERS): Same.
5717         (REG_ALLOC_ORDER): Same.
5718         (reg_class): Add VSCR_REGS.
5719         (REG_CLASS_NAMES): Same.
5720         (REG_CLASS_CONTENTS): Same.
5721         (VSCR_REGNO): New.
5722         (REGISTER_NAMES): Add vscr.
5723         (DEBUG_REGISTER_NAMES): Same.
5724         (ADDITIONAL_REGISTER_NAMES): Same.
5725         (FIRST_PSEUDO_REGISTER): Increment.
5726         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
5727
5728 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
5729
5730         * fold-const.c (fold): Fix a typo.
5731
5732 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
5733
5734         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
5735         comparison against the highest or lowest integer value before
5736         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
5737         transformation and that of an unsigned comparison against 0
5738         right after.
5739
5740 2002-05-15  Richard Henderson  <rth@redhat.com>
5741
5742         * varasm.c (merge_weak): Error for any weakening after definition.
5743         Adjust weakening after use warning to catch more cases.
5744         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
5745         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
5746
5747 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
5748
5749         * invoke.texi (-malign-double): Re-add lost warning.
5750
5751         * i386-protos.h (x86_output_mi_thunk): Declare.
5752         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
5753         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
5754
5755         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
5756         when flag_asynchronous_unwind_tables is set.
5757
5758         * flags.h (flag_reorder_functions): Declare.
5759         * function.c (prepare_function_start): Initialize frequnecy.
5760         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
5761         * Makefile.in (predict.o): Add dependency on target.h and params.h
5762         * defaults.h (HOT_TEXT_SECTION_NAME,
5763         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
5764         * predict.c (choose_function_section): New function.
5765         (estimate_bb_frequencies): Use it.
5766         * toplev.c (flag_reorder_functions): New global variable.
5767         (lang_independent_options): New.
5768         (parse_options_and_default_flags): Set.
5769         * varasm.c (assemble_start_function): Bypass functdion alignment
5770         for never executed functions.
5771         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
5772         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
5773         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5774         Document.
5775
5776         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
5777
5778         * predict.c: Inlude profile.h
5779         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
5780         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
5781         Use the information about maximal counter in the program.
5782
5783         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
5784
5785         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
5786         probably_never_executed_bb_p): New functions.
5787         * cfgcleanup.c (outgoing_edges_match): Use them.
5788         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
5789         (maybe_hot_bb_p, probably_cold_bb_p,
5790         probably_never_executed_bb_p): New functions.
5791
5792         * function.h (function): Add new field function_frequency.
5793         * predict.c (compute_function_frequency): New function.
5794         (estimate_probability): Call it.
5795
5796 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
5797
5798         PR optimization/5172, optimization/5200
5799         * gcse.c (gcse_main): Disable store_motion.
5800
5801 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
5802
5803         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
5804         (c_common_nodes_and_builtins): Use it.
5805         (builtin_define_with_value): New function.
5806         (cb_register_builtins): Define __SIZE_TYPE__,
5807         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
5808         using builtin_define_with_value.  Use consistent notation when
5809         defining __GXX_WEAK__.
5810         (WCHAR_TYPE_SIZE): Don't redefine.
5811         (combine_strings): Don't use WCHAR_TYPE_SIZE.
5812
5813         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
5814         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
5815         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
5816         * tradcpp.c (initialize_builtins): Likewise.
5817         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
5818
5819         * c-lex.h (builtin_define_with_value): Prototype.
5820         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
5821         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
5822         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
5823
5824         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
5825         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
5826         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
5827         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
5828         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
5829         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
5830         config/sparc/sol2-bi.h, config/sparc/sparc.h:
5831         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
5832         to __SIZE_TYPE__ etc from all spec strings. When this makes
5833         extra specs empty, delete them.
5834
5835 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5836
5837         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
5838         for PA8000 or generating dwarf2 call frame information.
5839         (output_call): Remove DO_FRAME_NOTES check from return pointer
5840         optimization.
5841         (following_call): Return 0 when scheduling for PA8000 or generating
5842         dwarf2 call frame information.  Revise comment.
5843
5844 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5845
5846 config/alpha:
5847         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
5848         and __IEEE_FP_INEXACT as appropriate.
5849         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
5850         (CPP_SPEC): Remove ieee defines.
5851         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
5852
5853 2002-05-14  Richard Henderson  <rth@redhat.com>
5854
5855         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
5856         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
5857
5858 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5859
5860         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
5861         (CPP_SPEC): Update.
5862         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
5863         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
5864         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
5865         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
5866         (EXTRA_SPECS): Update.
5867         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
5868         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
5869         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
5870         define TARGET_OS_CPP_BUILTINS if necessary.
5871
5872 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5873
5874         * gcc.c (cpp_options): Must pass -m* and -f* options
5875         to the front end even when only preprocessing.
5876         (cc1_options): Remove redundant -lang-c.
5877         * tradcpp.c (main): Ignore -m options.
5878 objc:
5879         * lang-specs.h: Similarly.
5880
5881 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
5882
5883         * genautomata.c (transform_3): Add code for transformation
5884         `(A,B,...)+C -> A+C,B,...'.
5885
5886 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
5887
5888         * final.c (end_final): Do not output profile_arcs constructor, when
5889         no functions are instrumented.
5890
5891 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
5892
5893         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
5894
5895 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5896
5897         * doc/install.texi: Remove special markup originally required for
5898         HTML generation with texi2html.
5899
5900 2002-05-14  Andreas Schwab  <schwab@suse.de>
5901
5902         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
5903         SELECT_SECTION.
5904         (UNIQUE_SECTION): Define to get small data correctly.
5905
5906         * varasm.c (resolve_unique_section): Add third parameter
5907         flag_function_or_data_sections and use it instead of
5908         flag_function_sections.
5909         (assemble_start_function): Pass flag_function_sections.
5910         (asm_emit_uninitialised): Pass flag_data_sections.
5911         (assemble_variable): Likewise.
5912
5913 2002-05-14  Richard Henderson  <rth@redhat.com>
5914
5915         * config/i386/i386.md: Use define_constants for unspec numbers.
5916         * config/i386/i386.c: Likewise.
5917
5918 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5919
5920         * doc/contrib.texi: Update my entry.
5921
5922 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
5923
5924         * fixinc/inclhack.def (winidss_valist): Limit applicability.
5925         * fixinc/fixincl.x: Regenerated.
5926         * fixinc/tests/base/math.h: Update.
5927         * fixinc/tests/base/testing.h: Likewise.
5928
5929 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
5930
5931         * genattr.c (gen_attr): Don't emit a comma after the last
5932         enumerator.
5933
5934 2002-05-13  Richard Henderson  <rth@redhat.com>
5935
5936         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
5937         by non-local gotos.
5938         * recog.c (peephole2_optimize): Likewise.
5939
5940 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
5941
5942         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
5943         input to O_BINARY.
5944
5945 2002-05-13  Jeffrey A Law  (law@redhat.com)
5946
5947         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
5948         Update prototype and callers.
5949         (propagate_one_insn): Stack pointer adjustments kill MEMs on
5950         the mem_set_list which reference the stack pointer, as do
5951         calls to constant functions as they may clobber outgoing
5952         argument space.
5953
5954         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
5955
5956         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
5957         (ia32_multipass_dfa_lookahead): New function.
5958
5959 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5960
5961         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
5962         (translate_options): Remove 'V'.
5963         (process_command): Similarly.
5964 doc:
5965         * invoke.texi: Remove documentation of 'V'.
5966
5967 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
5968
5969         * config/s390/linux.h: Revert 2002-04-22 changes.
5970
5971 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
5972
5973         * config/fr30/fr30.md: Only allow splits of immediate loads
5974         if the destination is a register.
5975
5976 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5977
5978         * Makefile.in (c-common.o, cppinit.o): Update.
5979         * c-common.c: Include except.h.
5980         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
5981         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
5982         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
5983         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
5984         CPP_PREDEFINES): Handle here.
5985 config:
5986         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
5987         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
5988         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
5989         TARGET_OS_CPP_BUILTINS.
5990         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
5991         (CPP_SPEC, EXTRA_SPECS): Update.
5992         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
5993         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
5994         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
5995         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
5996         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
5997 doc:
5998         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
5999         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
6000
6001 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
6002
6003         * emit-rtl.c (global_rtl): Update comment.
6004         (const_double_htab, const_double_htab_hash,
6005         const_double_htab_hash, lookup_const_double): New.
6006         (const_int_htab_hash, const_int_htab_eq): Remove const
6007         qualifiers, which cause tons of warnings with RTL checking on.
6008         (gen_rtx_CONST_DOUBLE): Deleted.
6009         (const_double_from_real_value): New function - bears some
6010         resemblance to the former immed_real_const_1.
6011         (immed_double_const): Moved here from varasm.c and
6012         simplified.
6013         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
6014         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
6015         (gen_rtx): Use immed_double_const.
6016         (init_emit_once): Initialize the const_double_htab.  Use
6017         REAL_VALUE_FROM_INT where possible.  Can now use
6018         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
6019         * varasm.c (struct varasm_status): Remove x_const_double_chain.
6020         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
6021         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
6022         (init_varasm_status, mark_varasm_status): Don't touch
6023         x_const_double_chain.
6024
6025         * output.h: Delete prototype for clear_const_double_mem.
6026         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
6027         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
6028         const_double_from_real_value, not immed_real_const_1, and use
6029         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
6030         CONST_DOUBLE_ATOF.
6031         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
6032         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
6033         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
6034         (gen_rtx_REG): Second arg is unsigned.
6035
6036         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
6037         (excluded_rtx): New, return true for CONST_DOUBLE.
6038         (genmacro): Write nothing for excluded codes.
6039         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
6040         * expr.c (expand_expr): Likewise.
6041         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
6042         CONST_DOUBLE_CHAIN.
6043         * toplev.c (rest_of_compilation): Don't call
6044         clear_const_double_mem.
6045
6046         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
6047         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
6048         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
6049         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
6050         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
6051         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
6052         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
6053         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
6054
6055 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6056
6057         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
6058
6059 2002-05-12  Tom Tromey  <tromey@redhat.com>
6060
6061         * tree.h (copy_node): Don't mention TREE_PERMANENT.
6062
6063 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
6064
6065         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
6066         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
6067         * gensupport.h: Prototype new routines.
6068         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
6069         use of printf.
6070         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
6071         (next_comma_elt): Use scan_comma_elt.
6072
6073         * config/i386/i386.md: Use new attribute notation to break up
6074         long lines in define_attr forms.
6075
6076 2002-05-12  Richard Henderson  <rth@redhat.com>
6077
6078         * expr.c (compress_float_constant): New.
6079         (emit_move_insn): Use it.
6080         (float_extend_from_mem): New.
6081         (init_expr_once): Initialize it.
6082         * real.c (exact_real_truncate): New.
6083
6084         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
6085         dropped into memory; penalize for size.
6086         (RTX_COSTS): FLOAT_EXTEND is free.
6087         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
6088         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
6089
6090 2002-05-12  Richard Henderson  <rth@redhat.com>
6091
6092         * profile.h (profile_info): Add missing extern to declaration.
6093         * profile.c (profile_info): Define it.
6094
6095 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6096
6097         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
6098         used for DImode and TImode.
6099
6100 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6101
6102         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
6103         fake a newline.
6104
6105 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
6106
6107         * config/rs6000/rs6000.c (rs6000_default_long_calls,
6108         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
6109         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
6110         (rs6000_override_options): Handle -m(no-)longcall.
6111         (init_cumulative_args, output_mi_thunk): Check for both
6112         longcall and shortcall attributes on the function.
6113         (rs6000_attribute_table): Add "shortcall".
6114         (rs6000_handle_longcall_attribute): Update comment.
6115         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
6116         altivec_expand_ternop_builtin): Add default clauses to switches
6117         to silence warnings.
6118
6119         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
6120         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
6121         (TARGET_OPTIONS): Add longcall and no-longcall.
6122
6123         * config/rs6000/rs6000.md (call_nonlocal_sysv,
6124         call_value_nonlocal_sysv): Split by alternatives.  One pair
6125         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
6126         the call cookie.  The other pair accepts only LR/CTR and has
6127         no restriction.
6128
6129         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
6130         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
6131         tmake_file.
6132         * config/rs6000/rs6000-c.c: New file.
6133         * config/rs6000/t-rs6000-c-rule: New file.
6134         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
6135         Prototype rs6000_pragma_longcall.
6136
6137         * doc/extend.texi: Document shortcall attribute.
6138         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
6139
6140 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6141
6142         * reorg.c (dbr_schedule): Remove unnecessary test.
6143
6144 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
6145
6146         * i386.md (testsi to testqi spliters): New.
6147
6148         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
6149
6150         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
6151
6152         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
6153
6154         * basic-block.h: New flag EDGE_CAN_FALLTHRU
6155         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
6156         that can be made fallthru.
6157
6158         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
6159
6160         * cfglayout.c (cleanup_unconditional_jumps): New static function.
6161         (cfg_layout_initialize): Use it.
6162
6163 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6164
6165         * config/avr/avr.c (avr_mcu_types): Update supported devices.
6166         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6167         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6168
6169 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
6170
6171         * dbxout.c: Fix formatting.
6172         * dependence.c: Likewise.
6173         * df.c: Likewise.
6174         * diagnostic.c: Likewise.
6175         * doloop.c: Likewise.
6176         * dominance.c: Likewise.
6177         * doschk.c: Likewise.
6178         * dwarf2asm.c: Likewise.
6179         * dwarf2out.c: Likewise.
6180         * dwarfout.c: Likewise.
6181
6182 2002-05-10  Richard Henderson  <rth@redhat.com>
6183
6184         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
6185         Convert integers constants as needed.  Replace "nwords" field with
6186         "sizeof_bb".
6187         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
6188         * function.h: Fix typo in comment.
6189         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
6190
6191 2002-05-10  Roger Sayle  <roger@eyesopen.com>
6192
6193         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
6194         into the equivalent (signed char)c > 0.
6195
6196 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
6197
6198         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
6199         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
6200         (struct prefetch_info): Fix spelling of member bytes_accessed.
6201         (emit_prefetch_instructions): Make dump messages more regular;
6202         restructure code to add more dump messages; use new macros for
6203         heuristics. (There are no code generation changes in any of this).
6204
6205 2002-05-10  David S. Miller  <davem@redhat.com>
6206
6207         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
6208         (struct rtx_def): Update unchanging flag comment.
6209         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
6210         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
6211         to be handled to INSN too.
6212         (dbr_schedule): Likewise.
6213         * resource.c (next_insn_no_annul): Likewise.
6214
6215         * cse.c (rtx_cost): Remove multiplication by power of 2 special
6216         casing.
6217
6218 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6219
6220         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
6221         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
6222         (possibly) work around broken /bin/sh.
6223
6224 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6225
6226         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
6227         . as N64/N32 libgcc_s.so subdirs.
6228
6229 2002-05-10  David S. Miller  <davem@redhat.com>
6230
6231         * config/sparc/sparc.md: Use define_constants for unspec numbers.
6232
6233         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
6234         more accurately.
6235         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
6236         comment.
6237         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
6238         * doc/rtl.texi: Document these macros more accurately.
6239         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
6240         JUMP_INSNs and CALL_INSNs.
6241         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
6242         or INSN_FROM_TARGET_P if the code is appropriate.
6243
6244 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6245
6246         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
6247         before using SYMBOL_REF_FLAG (addr).
6248
6249         * config/avr/avr-protos.h (avr_io_address_p): Declare.
6250         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
6251         Make non-static.  Update all callers.
6252         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
6253         New insns to clear/set/test a single bit in I/O address space.
6254
6255 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6256
6257         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
6258
6259 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6260
6261         * Makefile.in: Update.
6262         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
6263         builtin_define_std): New.
6264         (c_common_init): Register CPP builtins callback.
6265         * c-common.h (flag_iso, flag_undef): New.
6266         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
6267         * c-lex.c: Don't include target.h.
6268         (cb_register_builtins): Move to c-common.c.
6269         (init_c_lex): Don't register hook here.
6270         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
6271         (cpp_define, cpp_assert): Remove.
6272         * gcc.c (cc1_options): Pass -undef to front end.
6273         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
6274         (TARGET_INITIALIZER): Update.
6275         * target.h (struct cpp_reader): Don't predeclare.
6276         (struct gcc_target): Remove cpp builtin hook.
6277         * tree.c (default_register_cpp_builtins): Remove.
6278 doc:
6279         * tm.texi: Update.
6280
6281 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6282
6283         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
6284
6285 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6286
6287         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
6288         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
6289
6290 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
6291
6292         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
6293         * config/sparc/libgcc-sparc-glibc.ver: New file.
6294         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
6295         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
6296
6297 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
6298
6299         PR target/6429
6300         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
6301         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
6302         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
6303         base multilibs.
6304         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
6305         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
6306         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
6307         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
6308
6309 2002-05-09  Richard Henderson  <rth@redhat.com>
6310
6311         * config/ia64/ia64.md: Use define_constants for unspec numbers.
6312         * config/ia64/ia64.c: Likewise.
6313
6314 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
6315
6316         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
6317         (save_restore_insns): Likewise.
6318         (mips_expand_prologue, mips_expand_epilogue): Update callers.
6319         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
6320
6321 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
6322
6323         * athlon.md, k6.md, pentium.md, ppro.md): New files.
6324         * i386.md: Move scheduling information into new files.
6325
6326         * i386.md (type attribute): Add "rotate" for rotate insns.
6327         (rotate insns): Set type to "rotate".
6328         (various attributes and function units): Treat rotate like shift.
6329         (pent_pair attribute): Only rotates by one bit position are
6330         pairable.
6331         (sbb insns): Explicitly set pent_pair attribute on a couple
6332         that were missing it.
6333
6334 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
6335
6336         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
6337         make sure that buffer starts on odd word address.
6338         (sh_va_arg): Skip odd fp registers when reading a double precision
6339         value.
6340
6341 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6342
6343         * tree.h (preserve_data, object_permanent_p, type_precision):
6344         Remove.
6345
6346 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6347
6348         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
6349         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
6350 doc:
6351         * cpp.texi: Update for removal of obsolete features.
6352
6353 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
6354                           Jeffrey A Law  (law@redhat.com)
6355
6356         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
6357         the DFA interface for Pentium processors.
6358         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
6359         (attr_pent_pair, ix86_pent_find_pair): Remove.
6360         (ix86_sched_reorder_pentium): Remove.
6361         (ix86_sched_reorder): Remove reordering for Pentium.
6362         * i386.md (Pentium scheduling): Rewrite using DFA description.
6363
6364 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
6365
6366         * cfganal.c (can_fallthru): Fix fast path.
6367         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
6368         with edges to the next block.
6369
6370 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
6371                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
6372
6373         * final.c (end_final): Use C trees to output data structures for profiling.
6374
6375         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
6376         (profile.o): New dependency profile.h
6377         (final.o): New dependency profile.h
6378         * profile.h: New file. New global structure profile_info.
6379         * final.h (count_edges_instrumented_now): Declare.
6380         (current_function_cfg_checksum): Declare.
6381         (function_list): New structure.
6382         (functions_head, functions_tail): New static variables.
6383         (end_final): Emits more data, removed some -ax stuff.
6384         (final): Stores function names and chcksums.
6385         * gcov-io.h (__write_gcov_string): New function.
6386         (__read_gcov_string): New function.
6387         * gcov.c (read_profile): New function.
6388         (create_program_flow_graph): Uses read_profile instead of reading
6389         da_file.
6390         (read_files): Removed da_file checking, it's done by read_profile now.
6391         * libgcc2.c (bb_function_info): New structure.
6392         (bb): New field in structure, removed some -ax stuff.
6393         (__bb_exit_func): Changed structure of da_file.
6394         * profile.c (count_edges_instrumented_now): New global variable.
6395         (current_function_cfg_checksum): New global variable.
6396         (max_counter_in_program): New global variable.
6397         (get_exec_counts): New function.
6398         (compute_checksum): New function.
6399         (instrument_edges): Sets count_edges_instrumented_now.
6400         (compute_branch_probabilities): Uses get_exec_counts instead of
6401         reading da_file.
6402         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
6403         (init_branch_prob): Removed da_file checking, done in get_exec_counts
6404         now.
6405         (end_branch_prob): Removed da_file checking, done in get_exec_counts
6406         now.
6407         * gcov.texi: Updated information about gcov file format.
6408
6409 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6410
6411         * sbitmap.c: Fix formatting.
6412         * scan.c: Likewise.
6413         * scan-decls.c: Likewise.
6414         * sched-deps.c: Likewise.
6415         * sched-ebb.c: Likewise.
6416         * sched-rgn.c: Likewise.
6417         * sched-vis.c: Likewise.
6418         * sdbout.c: Likewise.
6419         * sibcall.c: Likewise.
6420         * simplify-rtx.c: Likewise.
6421         * ssa.c: Likewise.
6422         * ssa-ccp.c: Likewise.
6423         * ssa-dce.c: Likewise.
6424         * stmt.c: Likewise.
6425         * stor-layout.c: Likewise.
6426         * stringpool.c: Likewise.
6427
6428 2002-05-09  David S. Miller  <davem@redhat.com>
6429
6430         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
6431
6432 2002-05-07  David S. Miller  <davem@redhat.com>
6433
6434         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
6435         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
6436         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
6437         library implementation clobbers the output before the inputs
6438         are fully consumed, use stack temporary for the output.
6439
6440 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
6441
6442         * config/netbsd.h (CPP_SPEC): Remove.
6443         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
6444         * config/i386/netbsd.h (CPP_SPEC): Define.
6445         * config/ns32k/netbsd.h (CPP_SPEC): Define.
6446         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
6447         * config/sparc/netbsd.h (CPP_SPEC): Define.
6448         * config/vax/netbsd.h (CPP_SPEC): Define.
6449
6450 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6451
6452         * read-rtl.c: Fix formatting.
6453         * real.c: Likewise.
6454         * recog.c: Likewise.
6455         * regclass.c: Likewise.
6456         * regmove.c: Likewise.
6457         * reg-stack.c: Likewise.
6458         * reload1.c: Likewise.
6459         * reload.c: Likewise.
6460         * resource.c: Likewise.
6461         * rtlanal.c: Likewise.
6462         * rtl.c: Likewise.
6463         * rtl-error.c: Likewise.
6464
6465 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6466
6467         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
6468         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
6469
6470 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
6471
6472         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
6473         use __SSE2__ macro instead.
6474         * config/i386/xmmintrin.h: Likewise.
6475
6476 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
6477
6478         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
6479         and use it in all invocations of these macros.  Clean up comments.
6480         * rtl.c (rtl_check_failed_flag): Add an argument for the name
6481         of the flag access macro whose check failed.
6482         * doc/rtl.texi (Flags): Document additional flag uses.
6483
6484 2002-05-08  Robert Spier <rspier@pobox.com>
6485             Neil Booth  <neil@daikokuya.demon.co.uk>
6486
6487         PR preprocessor/6521
6488         * cppfiles.c (handle_missing_header): Don't do anything
6489         different for <> includes.
6490 doc:
6491         * cppopts.texi: Update documentation for -MG.
6492
6493 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6494
6495         * cpplex.c (cpp_interpret_charconst): Truncate as well as
6496         sign-extend.
6497 doc:
6498         * cpp.texi: Clarify multichar charconst valuation.
6499
6500 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
6501
6502         * doc/invoke.texi: Document -mwindiss option.
6503
6504 2002-05-08  Jason Merrill  <jason@redhat.com>
6505
6506         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
6507
6508         * dwarf2out.c (gen_type_die): Abort on broken recursion.
6509
6510         PR c++/6381
6511         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
6512         REAL_CST.
6513
6514 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
6515
6516         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
6517         little-endian multilibs to override arm/thumb multilibs.
6518         Do not build hardware floating point multilibs, nor apcs-26
6519         multilibs for the Thumb.
6520
6521 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
6522
6523         PR c/6569.
6524         * varasm.c (mark_weak): New function.
6525         (merge_weak): Use it.  Do not call declare_weak.
6526         (declare_weak): Use merge_weak.
6527
6528 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
6529
6530         * cse.c (dead_libcall_p): Update counts.
6531         (delete_trivially_dead_insns): Update call of dead_libcall_p.
6532
6533 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
6534
6535         * cfglayout.c (function_tail_eff_head): Rename to ...
6536         (function_footer): ... this one.
6537         (unlink_insn_chain): New functions.
6538         (label_for_bb): Only call block_label and emit debug message.
6539         (record_effective_endpoints): Actually unlink the headers and footers.
6540         (fixup_reorder_cahin): Re-insert the unlinked sequences.
6541         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
6542         * cfglayout.h (struct reorder_block_def): New fields footer/header;
6543         remove eff_head/eff_end.
6544         * rtl.h (set_first_insn): Declare.
6545         * emit-rtl.c (set_first_insn): New function.
6546
6547         * cfglayout.c (fixup_reorder_chain): Dump duplicated
6548         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
6549         cfg_layout_duplicate_bb): New global function.
6550         (duplicate_insn_chain): New static function.
6551         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
6552         cfg_layout_duplicate_bb): Declare.
6553         (struct reorder_block_def): Add "original" field.
6554         * emit-rtl.c (emit_copy_of_insn_after): New function.
6555         * rtl.h (emit_copy_of_insn_after): Declare.
6556
6557         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
6558         (fixup_reorder_chain): properly handle edges to exit block.
6559
6560 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6561                                Jan Hubicka  <jh@suse.cz>
6562
6563         * basic-block.h (note_prediction_to_br_prob): declare.
6564         * c-semantics.c: Inlucde predit.h
6565         (expand_stmt): predict GOTO_STMT as not taken.
6566         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
6567         (cleanup_cfg): Do not free tail_recursion_list.
6568         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
6569         (flow_delete_block): Kill predictions past end of basic block.
6570         * output.h (delete_unreachable_blocks): Declare.
6571         * predict.c (predicted_by_p, process_note_predictions,
6572         process_note_prediction, last_block_p): New function.
6573         (estimate_probability): Bypass loop on PRED_CONTINUE;
6574         do not handle noreturn heuristics; kill PRED_RETURN; add
6575         PRED_EARLY_RETURN.
6576         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
6577         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
6578         * predict.h (IS_TAKEN): New constant.
6579         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
6580         * rtl.c (NOTE_INSN_PREDICTION): New.
6581         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
6582         New macro.
6583         (insn_note): add NOTE_INSN_PREDICTION.
6584         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
6585         CFG; free tail_recursion_label_list.
6586         * stmt.c: Include predict.h;
6587         (return_prediction): New.
6588         (expand_value_return): Use it.
6589         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
6590
6591 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
6592
6593         * config/mips/mips.md: Name the unspecs with define_constant.
6594         (*HILO_delay): Rename to 'hilo_delay' (no star).
6595         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
6596         (reload_outdi, reload_outsi): Likewise.
6597
6598 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
6599
6600         * toplev.c: Fix formatting.
6601
6602 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
6603
6604         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
6605         * configure.in (ac_rtlflag_checking): New.
6606         * doc/install.texi (--enable-checking): Document RTL flag checking.
6607
6608 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6609
6610         * c-common.c (c_common_init): Set options->unsigned_wchar.
6611         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
6612         group target dependencies.
6613         (init_builtins, cpp_handle_option): Update.
6614         * cpplex.c (cpp_interpret_charconst): Update.
6615         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
6616         signed_char to unsigned_char, group target dependencies.
6617         * defaults.h (WCHAR_UNSIGNED): Remove.
6618         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
6619 config:
6620         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
6621         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
6622         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
6623         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
6624         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
6625 doc:
6626         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
6627
6628 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
6629
6630         * fixinc/inclhack.def (windiss_math1): New fix.
6631         (windiss_math2): Likewise.
6632         (windiss_valist): Likewise.
6633         * fixinc/fixincl.x: Regenerated.
6634
6635 2002-05-07  Andreas Jaeger  <aj@suse.de>
6636
6637         * genautomata.c (output_internal_min_issue_delay_func): Add
6638         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
6639         (output_internal_trans_func): Likewise.
6640
6641 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
6642
6643         * pa.c (hppa_profile_hook): Use force_reg to get the address
6644         of the profile hook into an appropriate pseudo register.
6645
6646 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
6647
6648         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
6649         (LINK_START_SPEC): Handle it.
6650         (LINK_OS_SPEC): Likewise.
6651         (CPP_SPEC): Likewise.
6652         (STARTFILE_SPEC): Likewise.
6653         (LIB_SPEC): Likewise.
6654         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
6655         all platforms.
6656         (CRTSAVRES_DEFAULT_SPEC): New macro.
6657         (LIB_WINDISS_SPEC): New macro.
6658         (CPP_OS_WINDISS_SPEC): Likewise.
6659         (STARTFILE_WINDISS_SPEC): Likewise.
6660         (ENDFILE_WINDISS_SPEC): Likewise.
6661         (LINK_START_WINDISS_SPEC): Likewise.
6662         (LINK_OS_WINDISS_SPEC): Likewise.
6663         * config/rs6000/windiss.h: New file.
6664
6665 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
6666
6667         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
6668
6669 2002-05-06  David S. Miller  <davem@redhat.com>
6670
6671         * config/sparc/sparc.md (shift insns): Do not mask off
6672         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
6673         take care of it.
6674
6675 2002-05-06  Richard Henderson  <rth@redhat.com>
6676
6677         PR c++/6212
6678         * expr.c (highest_pow2_factor_for_type): New.
6679         (expand_assignment): Use it.
6680
6681 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
6682
6683         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
6684         unspec_volatile.
6685         ("altivec_mfvscr"): Same.
6686
6687 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
6688
6689         * rtl.h (struct rtx_def): Update comments.
6690         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
6691         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
6692         RTL_FLAG_CHECK macros with list of expected RTL codes.
6693         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
6694         (rtl_check_failed_flag): New.
6695         * reload1.c (reload): Use REG macro before changing rtx to MEM.
6696         (reload_cse_noop_set_p): Check rtx code before using access macro.
6697         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
6698         before using access macro.
6699
6700 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
6701
6702         * doc/rtl.texi (Flags): Update to reflect current usage.
6703
6704 2002-05-06  Roger Sayle  <roger@eyesopen.com>
6705
6706         PR opt/3995
6707         * fold-const.c (sign_bit_p): New function.
6708         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
6709         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
6710         Reapply fold when converting (A & C) == C into (A & C) != 0.
6711         (fold_binary_op_with_conditional_arg): Fix typo in comment.
6712
6713 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6714
6715         * c-common.c (warn_multichar): New.
6716         (c_common_init): Set CPP's warn_multichar.
6717         * c-common.h (warn_multichar): New.
6718         * c-decl.c (warn_multichar): Remove.
6719         * c-lex.c (lex_charconst): Update.
6720         * c-tree.h (warn_multichar): Remove.
6721         * cppexp.c (eval_token): Sign-extend charconst value.
6722         * cppinit.c (cpp_create_reader): Set warn_multichar.
6723         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
6724         each character.  Update prototype.  Sign-extend the result.
6725         * cpplib.h: Fix conditions.
6726         (struct cpp_options): Add new warning flag.
6727         (cpp_interpret_charconst): Update prototype.
6728 doc:
6729         * cpp.texi: Update documentation.
6730
6731 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
6732
6733         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
6734         Fix typo in usage of allof instead of unit.
6735
6736 2002-05-06  Richard Henderson  <rth@redhat.com>
6737
6738         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
6739         and any jump or call for IN.
6740
6741 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
6742
6743         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
6744         -msse2.
6745         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
6746
6747 2002-05-06  Roger Sayle  <roger@eyesopen.com>
6748
6749         * fold-const.c (lshift-double): Cast the high word to an unsigned
6750         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
6751         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
6752         avoid compiler warning.  (fold): Remove redundant code from
6753         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
6754
6755 2002-05-06  Jeff Law  <law@redhat.com>
6756
6757         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
6758         * pa.c (pa_adjust_cost): Remove all true dependency cost
6759         adjustments.  Also remove support for non-DFA scheduling.
6760         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
6761         to adjust true dependency costs.  Update various comments.
6762         (7100lc, 7200, 7300 scheduling): Simplify by combining the
6763         FP ALU & MPY units into a single unit.
6764
6765 2002-05-06  Catherine Moore  <clm@redhat.com>
6766
6767         * config/v850/v850.c (compute_register_save_size): Make sure
6768         to count all of the registers that will be saved.
6769
6770 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
6771
6772         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
6773
6774 2002-05-06  David S. Miller  <davem@redhat.com>
6775
6776         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
6777         allow result to overlap input operands in memory.
6778
6779 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6780
6781 doc:
6782         * cpp.texi: Update multichar charconst docs.
6783
6784 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6785
6786         * cpplex.c (cpp_interpret_charconst): Sign-extend each
6787         character.  Don't ignore excess characters.  Treat
6788         multicharacter character constants as signed.
6789         (cpp_parse_escape): Clarify diagnostic.
6790
6791 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
6792
6793         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
6794         use add instead of shift.
6795         (ashldi3_sp64): Likewise.
6796         (ashlsi3_const1, ashldi3_const1): Remove.
6797         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
6798         * config/sparc/sparc.c (const1_operand): New.
6799
6800 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
6801
6802         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
6803
6804 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
6805
6806         PR target/6561
6807         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
6808
6809 2002-05-05  Richard Henderson  <rth@redhat.com>
6810
6811         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
6812         memory latency adjustments.
6813         (alpha_variable_issue): Remove.
6814         (alpha_use_dfa_pipeline_interface): New.
6815         (alpha_multipass_dfa_lookahead): New.
6816         * config/alpha/alpha.md: Remove define_function_unit scheduling;
6817         include new dfa scheduling.
6818         (attr type): Add none.
6819         (blockage): Use it.
6820         * config/alpha/ev4.md: New.
6821         * config/alpha/ev5.md: New.
6822         * config/alpha/ev6.md: New.
6823
6824 2002-05-05  David S. Miller  <davem@redhat.com>
6825
6826         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
6827
6828 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
6829
6830         * cse.c: Fix formatting.
6831         * emit-rtl.c: Likewise.
6832
6833 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
6834
6835         * genautomata.c (initiate_states): Add additional guard to
6836         initialize `units_array'.
6837
6838 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
6839
6840         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
6841         process_unit_to_form_the_same_automaton_unit_lists,
6842         form_the_same_automaton_unit_lists
6843         check_unit_distributions_to_automata): New prototypes and
6844         functions.
6845         (check_automata): Rename it into `check_automata_insn_issues'.
6846         (unit_decl): New fields `the_same_automaton_unit' and
6847         `the_same_automaton_message_reported_p'.
6848         (unit_decl_t): New typedef.
6849         (the_same_automaton_lists): New gloval variable.
6850         (unit_regexp, unit_set_el, units_array, units_cmp,
6851         output_get_cpu_unit_code_func): Use the typedef.
6852         (evaluate_max_reserv_cycles): Increment
6853         `description->max_insn_reserv_cycles'.
6854         (initiate_states): Don't increment `max_cycles_num'.
6855         (transform_insn_regexps): Move code around transformation of
6856         regexps from `generate'.
6857         (generate): Remove call of `transform_insn_regexps'.
6858         (expand_automata): Call `transform_insn_regexps' and
6859         `check_unit_distributions_to_automata'.  Check errors before
6860         `generate'.
6861
6862         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
6863         automaton `ultrasparc3_1'.
6864
6865 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6866
6867         * c-common.c (c_common_init): Set up CPP arithmetic.
6868         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
6869         something reasonable for the host.
6870         (sanity_checks): Add checks.
6871         (cpp_read_main_file): Call sanity_checks() from here...
6872         (cpp_post_options): ... not here.
6873         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
6874         * cpplib.h (struct cpp_options): New member int_precision.
6875
6876 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6877
6878         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
6879
6880 2002-05-04  David S. Miller  <davem@redhat.com>
6881
6882         * config/sparc/linux.h, config/sparc/linux64.h
6883         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
6884
6885         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
6886         more RTX codes.
6887         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
6888
6889         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
6890         of SETs.
6891
6892 2002-05-05  Tim Josling  <tej@melbpc.org.au>
6893
6894         * treelang; New directory for new sample language treelang.
6895
6896 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6897
6898         * Makefile.in (c-lex.o): Update.
6899         * c-lex.c: Include target.h.
6900         (cb_register_builtins): New.
6901         (init_c_lex): Set builtins callback.
6902         * c-lex.h (cpp_define, cpp_assert): New prototypes.
6903         * cppinit.c (init_builtins): Use callback, including for
6904         GXX_WEAK.
6905         * cpplib.h (struct cpp_callbacks): New member.
6906         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
6907         (TARGET_INITIALIZER): Update.
6908         * target.h (struct gcc_target): New hook.
6909         * tree.c (default_register_cpp_builtins): New.
6910         * tree.h (default_register_cpp_builtins): New.
6911 doc:
6912         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
6913
6914 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6915
6916         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
6917         (cpp_post_options): Move sanity checks to...
6918         (sanity_checks): New.
6919         * cpplex.c (maybe_read_ucs): Fix prototype.
6920         (parse_string, cpp_parse_escape): Cast for %c format specifier.
6921         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
6922         if necessary.
6923
6924 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
6925
6926         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
6927         builtins.  Use V2DI patterns instead of TI for logical operations.
6928         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
6929         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
6930         (ix86_expand_builtins): Change the pattern used for movntdq.
6931         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
6932         sse2_nandv2di3): New patterns.
6933         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
6934         on operands.
6935         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
6936         (cvtdq2pd): Correct mode on operand 1.
6937         (sse2_umulsidi3): Describe without unspec.
6938         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
6939         machine modes.
6940         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
6941         (ashlv2di3): Likewise, from sse2_ashlv2di3.
6942         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
6943         ashlv4si3, ashlv2di3): Use SImode for shift count.
6944         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
6945         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
6946         New patterns.
6947         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
6948         New typedefs.
6949         (__m128i, __m128d): New macros.
6950         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
6951         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
6952         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
6953         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
6954         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
6955         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
6956         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
6957         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
6958         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
6959         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
6960         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
6961         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
6962         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
6963         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
6964         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
6965         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
6966         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
6967         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
6968         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
6969         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
6970         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
6971         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6972         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
6973         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6974         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
6975         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
6976         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
6977         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
6978         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
6979         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
6980         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
6981         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6982         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
6983         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
6984         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
6985         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
6986         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
6987         functions.
6988         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
6989         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
6990
6991 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6992
6993         * dwarf2out.c: Fix formatting.
6994         * varasm.c: Likewise.
6995
6996 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
6997
6998         PR c/6543
6999         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
7000         clobber and use result as temporary value.
7001
7002 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
7003
7004         * expr.c (force_operand): Use expand_simple_* to handle more
7005         cases.
7006
7007 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7008
7009         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
7010         and sign-extension.
7011         (lex_charconst): Update for change in prototype of
7012         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
7013         appropriately.
7014         * cpphash.h (BITS_PER_CPPCHAR_T): New.
7015         * cppinit.c (cpp_create_reader): Initialize them for no
7016         change in semantics.
7017         (cpp_post_options): Add sanity checks.
7018         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
7019         and truncation issues.  Calculate in type cppchar_t.
7020         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
7021         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
7022         run-time dependent precision correctly.  Return whether the
7023         result is signed or not.
7024         * cpplib.c (dequote_string): Use cppchar_t; update.
7025         * cpplib.h (cppchar_signed_t): New.
7026         struct cpp_options): New precision members.
7027         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
7028         * cppexp.c (eval_token): Update.
7029
7030 2002-05-03  David S. Miller  <davem@redhat.com>
7031
7032         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
7033         * config/sparc/sparc.c (sparc_rtx_costs): New function
7034         implementing RTX_COSTS and CONST_COSTS.
7035         * config/sparc/sparc.h (CONST_COSTS): Delete.
7036         (RTX_COSTS_CASES): Define.
7037         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
7038         the work.
7039
7040         * config/sparc/sparc.md (DFA schedulers): Split out...
7041         * config/sparc/cypress.md, config/sparc/hypersparc.md,
7042         config/sparc/sparclet.md, config/sparc/supersparc.md,
7043         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
7044
7045         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
7046         checks on it, always defined for Sparc.
7047
7048         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
7049         Tweak, and add more detailed comments.
7050
7051 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
7052
7053         * Re-apply patch accidentally reverted with
7054         DFA scheduler merge: remove all rules and variables to slurp
7055         source files out of libiberty and rebuild them with HOST_CC.
7056         ($(HOST_PREFIX_1)varray.o): New rule.
7057         (genattrtab rule): Word wrap.
7058
7059 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7060
7061         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
7062         (CPP_SUBTARGET_SPEC): Define.
7063         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
7064         cpp_subtarget specs.
7065         (CPP_SPEC): Redefine to include %(cpp_subtarget).
7066
7067 2002-05-03  David S. Miller  <davem@redhat.com>
7068
7069         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
7070         * target.h (struct gcc_target): Delete cycle_display member.
7071
7072         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
7073         (rtx_needs_barrier): Delete reference to cycle_display unspec.
7074         (ia64_sched_reorder2): Mention need for cycle display handling
7075         once such notes exist.
7076
7077 2002-05-03  Richard Henderson  <rth@redhat.com>
7078
7079         * real.c (etoasc): Strip most trailing zeros for clarity.
7080         * sched-vis.c: Include real.h.
7081         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
7082         * Makefile.in (sched-vis.o): Add real.h.
7083
7084 2002-05-03  David S. Miller  <davem@redhat.com>
7085
7086         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
7087         no longer needed.
7088
7089 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
7090
7091         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
7092         when we get an out of range literal.
7093         (altivec_expand_ternop_builtin): Same.
7094         (altivec_expand_unop_builtin): Same.
7095         (altivec_expand_builtin): Same, for dss.
7096         (altivec_expand_builtin): Use trees instead of rtl when
7097         determining literal argument validity.
7098
7099 2002-05-03  David S. Miller  <davem@redhat.com>
7100
7101         Delete cycle display scheduling hook.
7102         * config/ia64/ia64.c (ia64_cycle_display,
7103         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
7104         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
7105         and use emit_insn_before instead of ia64_emit_insn_before.
7106         * config/ia64/ia64.md (unspec usage): Delete cycle display.
7107         (cycle_display): Delete insn pattern.
7108         * config/sparc/sparc.md (unspec usage): Delete cycle display.
7109         (cycle_display): Delete insn pattern.
7110         * config/sparc/sparc.c (sparc_cycle_display,
7111         TARGET_SCHED_CYCLE_DISPLAY): Delete.
7112         * doc/md.texi (cycle_display): Don't mention.
7113         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
7114
7115 2002-05-03  Richard Henderson  <rth@redhat.com>
7116
7117         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
7118         * recog.h: Declare them.
7119
7120         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
7121         * config/sparc/sparc.md: Use store_data_bypass_p instead.
7122         * config/sparc/sparc-protos.h: Update.
7123
7124 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7125
7126         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
7127         -D__arch64__.  Add -D_LP64.
7128         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
7129         from sparc.h.
7130         (CPP_ARCH64_SPEC): Likewise.
7131         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
7132         (NO_BUILTIN_SIZE_TYPE): Undef.
7133
7134 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
7135
7136         * genautomata.c (min_issue_delay_pass_states): Change return type
7137         in the prototype.
7138         (min_issue_delay_pass_states): Change the algorithm.
7139         (min_issue_delay): Set up min_insn_issue_delay for the state.
7140         (output_min_issue_delay_table): Interchange the nested loops and
7141         and initiate min_insn_issue_delay for states.
7142
7143 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
7144
7145         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
7146         jump is simplejump.
7147
7148 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
7149
7150         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
7151         sequence.
7152
7153 2002-05-03  Richard Henderson  <rth@redhat.com>
7154
7155         PR opt/6534
7156         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
7157         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
7158         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
7159         code before JUMP, not EARLIEST.
7160
7161 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7162
7163         * c-format.c (check_format_info_main): Don't check for presence of
7164         parameter for * width until after operand number has been read,
7165         and only check for it if format parameters are available.
7166         Fixes PR c/6547.
7167
7168 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
7169
7170         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
7171         (LINK_SPEC): Undef before defining.
7172
7173 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7174
7175         PR preprocessor/6489
7176         * tradcpp.c (fixup_newlines): New.
7177         (main, finclude): Use it.
7178
7179 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
7180
7181         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
7182         * config/mips/mips.c (mips_unique_section): Strip encoding from
7183         decl name.
7184
7185 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7186
7187         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
7188         mode.
7189
7190 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7191
7192         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
7193         (Specific): Removed buildstats references.
7194         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
7195         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
7196         Accomodate Solaris versions beyond 8.
7197         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
7198         (Specific, *-*-solaris2.8): Removed, obsolete.
7199
7200 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
7201
7202         PR target/6542
7203         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
7204         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
7205         fill leaf_reg_remap with identity.
7206         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
7207
7208 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7209
7210         * config/h8300/crti.asm: Remove trailing spaces.
7211         * config/h8300/h8300.c: Likewise.
7212         * config/h8300/lib1funcs.asm: Likewise.
7213
7214 2002-05-02  Jason Merrill  <jason@redhat.com>
7215
7216         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
7217         * c-decl.c (c_init_decl_processing): Use it.
7218         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
7219         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
7220         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
7221
7222 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7223
7224         * regrename.c: Fix formatting.
7225         * tree.c: Likewise.
7226
7227 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
7228
7229         * i386.md (attribute memory): Handle compares properly.
7230
7231 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
7232
7233         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
7234         to none.
7235
7236 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7237
7238         * function.c: Fix formatting.
7239
7240 2002-05-02  Jan Hubicka  <jh@suse.cz>
7241
7242         * haifa-sched.c (schedule_insn): Print table of instructions and
7243         reservations.
7244         (sched_block): Do not print ready list at verbosity level 1.
7245         * sched-vis.c (print_insn): Make global.
7246         * sched-ebb.c (ebb_print_insn): Rename from...
7247         (print_insn): ... this one.
7248         * sched-int.h (print_insn): Declare
7249
7250 2002-05-02  Richard Henderson  <rth@redhat.com>
7251
7252         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
7253         emitted by cycle_display.
7254
7255 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
7256
7257         * doc/install.texi (*-*-freebsd*): Update to latest status.
7258
7259 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
7260
7261         PR target/6540
7262         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
7263         * config/float-sparc.h: Assume 128-bit long double if
7264         __LONG_DOUBLE_128__ is defined.
7265
7266 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
7267
7268         * genattrtab.c (write_function_unit_info): Add a dummy element
7269         when num_units == 0.
7270
7271 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7272
7273         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
7274         TYPE_MODE (double_type_node) instead of DFmode.
7275
7276 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
7277
7278         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
7279         jumps post reload.
7280         * toplev.c (rest_of_compilation): Revert Richard's patch.
7281
7282 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7283
7284         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
7285
7286 2002-05-02  Catherine Moore  <clm@redhat.com>
7287
7288         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
7289
7290 2002-05-02  Kazu Hirata  <kazu@hxi.com>
7291
7292         * combine.c: Fix comment typos.
7293         * expr.c: Likewise.
7294         * genautomata.c: Likewise.
7295         * stmt.c: Likewise.
7296         * tree.h: Likewise.
7297
7298 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
7299
7300         * doc/install.texi: State GNAT version requirements.
7301
7302 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
7303
7304         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
7305         of the frame pointer or arg pointer register which strict register
7306         checking is not enabled.
7307
7308 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
7309
7310         * gcc.dg/altivec-8.c: New.
7311
7312         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
7313         PRE_INC and PRE_DEC for altivec modes.
7314
7315 2002-05-01  Bruce Korb  <bkorb@gnu.org>
7316
7317         * fixinc/check.tpl(set-writable): make sure the function exists first
7318         * fixinc/inclhack.def(alpha_assert): fix test_text
7319         * fixinc/tests/base/assert.h: add in missing result
7320
7321 2002-05-01  Jeff Law  <law@redhat.com>
7322
7323         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
7324         'T' constraint.
7325
7326 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
7327
7328         * dbxout.c (dbxout_type): Emit size information for range types,
7329         as well, but only when using GDB extensions.
7330
7331 2002-05-01  Richard Henderson  <rth@redhat.com>
7332
7333         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
7334         target-independent gnu binutils date test.
7335
7336 2002-05-01  Richard Henderson  <rth@redhat.com>
7337
7338         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
7339         info before expunging the block.
7340
7341 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
7342
7343         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
7344         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
7345         -M -or -MM is in effect.
7346
7347 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
7348
7349         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
7350         A29k configurations.
7351         * doc/install.texi: Update to match.
7352
7353 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7354
7355         PR bootstrap/6514
7356         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
7357         for duplicates. Always loop over whole list.
7358
7359 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7360
7361         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
7362
7363 2002-05-01      Joel Sherrill <joel@OARcorp.com>
7364
7365         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
7366         support routines.
7367
7368 2002-05-01      Joel Sherrill <joel@OARcorp.com>
7369
7370         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
7371
7372 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
7373
7374         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
7375         (nabs_nopower): Same.
7376         (floatdisf2): New pattern.
7377         (absdi2): Convert to define_insn_and_split.
7378         (nabsdi2): Same.
7379         (trunctfsf2): Same.
7380         (floatditf2): Same.
7381         (floatsitf2): Same.
7382         (fix_trunctfdi2): Same.
7383         (fix_trunctfsi2): Same.
7384
7385 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
7386
7387         * doc/install.texi: Update Texinfo version requirement
7388         documentation.
7389
7390 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
7391
7392         PR target/6512, PR target/5628
7393         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
7394         when memory is not aligned.
7395         (movdf_insn_v9only_vis): Likewise.
7396         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
7397         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
7398         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
7399
7400 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
7401
7402         * gcc.dg/altivec-7.c: New.
7403
7404         * config/rs6000/altivec.h: Cleanup.
7405
7406 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
7407
7408         * doc/invoke.texi (Option Summary): Add -mvrsave=.
7409         (RS/6000 and PowerPC Options): Document -mvrsave=.
7410
7411         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
7412         (rs6000_altivec_vrsave_string): Same.
7413         (rs6000_override_options): Call rs6000_parse_vrsave_option.
7414         (rs6000_parse_vrsave_option): New.
7415         (rs6000_stack_info): Only generate vrsave instructions when
7416         TARGET_ALTIVEC_VRSAVE.
7417
7418         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
7419         (rs6000_altivec_vrsave_string): Define extern.
7420         (rs6000_altivec_vrsave): Same.
7421         (TARGET_ALTIVEC_VRSAVE): New.
7422
7423 2002-04-30  Richard Henderson  <rth@redhat.com>
7424
7425         PR opt/6516
7426         * toplev.c (rest_of_compilation): Don't run cross-jump before
7427         bb-reorder.
7428
7429 2002-04-30  Tom Rix  <trix@redhat.com>
7430
7431         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
7432         check which_alternative.
7433
7434 2002-04-30  Kazu Hirata  <kazu@hxi.com>
7435
7436         * cpplex.c: Fix comment formatting.
7437         * function.c: Likewise.
7438         * integrate.c: Likewise.
7439         * regrename.c: Likewise.
7440         * sibcall.c: Likewise.
7441         * simplify-rtx.c: Likewise.
7442         * tree-inline.c: Likewise.
7443
7444 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7445
7446         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
7447         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
7448         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
7449         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
7450         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
7451         * pa/x-ada: New file.  Define ADA_CFLAGS.
7452
7453 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
7454
7455         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
7456         from MMIX_LAST_REGISTER_FILE_REGNUM.
7457         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
7458         (struct machine_function): New member highest_saved_stack_register
7459         previously static variable in mmix.c.
7460         (MACHINE_DEPENDENT_REORG): Define.
7461         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
7462         (MMIX_OUTPUT_REGNO): New.
7463         (mmix_target_asm_function_prologue): Move calculation of last used
7464         saved-stack-register into...
7465         (mmix_machine_dependent_reorg): New function.  Update to also handle
7466         !TARGET_ABI_GNU.
7467         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
7468         register names, simplify somewhat by new variable regno.
7469         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
7470         register.
7471         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
7472         emitting register names.
7473         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
7474         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
7475         Remove fixed FIXME.
7476         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
7477         Declare.
7478
7479         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
7480
7481 2002-04-30  Richard Henderson  <rth@redhat.com>
7482
7483         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
7484         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
7485         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
7486         emit_tfmode_cvt): New.
7487         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
7488         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
7489         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
7490         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
7491         * config/sparc/sparc-protos.h: Update.
7492
7493 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
7494
7495         * install.texi (Final install): Add to the list of info to include
7496         in a report of a successful bootstrap, and add link to 3.1 list.
7497
7498 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
7499
7500         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
7501         (mode): Add vector modes
7502         (i387): Kill attribute.
7503         (unit): New attribute.
7504         (length_immediate): Grok new types.
7505         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
7506         (modrm): Use "unit".
7507         (memory): Handle MMX/SSE properly.
7508         (scheduling descriptions): Kill uses of fop1.
7509         (sse, mmx, fp patterns): Set type and mode properly.
7510
7511 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
7512
7513         * pa.c (override_options): Default to PA8000 scheduling.
7514         * doc/invoke.texi (HP-PA options): Mention newly added 7300
7515         scheduling parameter.
7516
7517         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
7518         handling of double precision multiplies.
7519
7520         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
7521         fpdiv and fpsqrt instructions.
7522         (7200 & 7300 scheduling): Fix typo in handling of
7523         store-load and store-store penalties.
7524
7525 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7526
7527         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
7528         mips.  Add two missing commas.
7529
7530 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
7531
7532         * doc/contrib.texi (Contributors): Update Paolo Carlini's
7533         and Benjamin Kosnik's entries.
7534
7535 2002-04-29  David S. Miller  <davem@redhat.com>
7536
7537         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
7538         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
7539         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
7540         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
7541
7542 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7543
7544         * combine.c (find_split_point): Use gen_int_mode.
7545
7546 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
7547
7548         Merging code from dfa-branch:
7549
7550         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
7551
7552         * genautomata.c (output_reserv_sets): Fix typo.
7553
7554         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
7555
7556         * genautomata.c (output_reserv_sets): Remove
7557         next_cycle_output_flag.
7558
7559         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
7560
7561         * sched-rgn.c (init_ready_list): Make the DFA code handle
7562         USE/CLOBBER insns in the same way as the traditional
7563         scheduler.
7564         (new_ready): Similarly..
7565
7566         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
7567
7568         * haifa-sched.c (schedule_block): Change the DFA state only after
7569         issuing insn.
7570
7571         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
7572
7573         * pa.c (hppa_use_dfa_pipeline_interface): New function.
7574         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
7575         (override_options): Add PA7300 scheduling support.
7576         (pa_adjust_cost): Update various comments.  Properly
7577         handle anti and output dependencies when using the
7578         DFA scheduler.
7579         (pa_issue_rate): Add PA7300 scheduling support.
7580         (pa_can_combine_p): Call extract_insn before calling
7581         constrain_operands (taken from mainline tree).
7582         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
7583         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
7584         descriptions using DFA descriptions.  Add PA7300
7585         scheduling support.
7586
7587         2002-03-30  David S. Miller  <davem@redhat.com>
7588
7589         Add UltraSPARC-III DFA scheduling support.
7590         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
7591         Update FP conditional move on register insn patterns to use it, as
7592         appropriate.
7593         (define_attr cpu): Add ultrasparc3.
7594         (define_attr us3load_type): New, update integer load patterns to
7595         set it, as appropriate.
7596         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
7597         (rest): Add UltraSPARC3 scheduling description.
7598         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
7599         (PROCESSOR_ULTRASPARC3): New.
7600         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
7601         ({ASM,CPP}_CPU_SPEC): Likewise.
7602         (REGISTER_MOVE_COST): Likewise.
7603         (RTX_COSTS): Likewise.
7604         * config/sparc/sparc.c (sparc_override_options,
7605         sparc_initialize_trampoline, sparc64_initialize_trampoline,
7606         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
7607         sparc_issue_rate): Likewise.
7608         * config/sparc/sol2.h: Likewise.
7609         * config/sparc/sol2-sld-64.h: Likewise.
7610         * config/sparc/linux64.h: Likewise.
7611
7612         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
7613
7614         * doc/md.texi: Add comments about usage the latency time for the
7615         different dependencies and about case when two or more conditions
7616         in different define_insn_reservations returns TRUE for an insn.
7617
7618         * doc/md.texi: Add reference for automaton based pipeline
7619         description.
7620
7621         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
7622
7623         * doc/passes.texi: Add missed information about genattrtab.
7624
7625         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
7626
7627         * genautomata.c (output_automata_list_transition_code): Check
7628         automata_list on NULL.
7629
7630         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
7631
7632         * genautomata.c (output_insn_code_cases,
7633         output_automata_list_min_issue_delay_code,
7634         output_automata_list_transition_code,
7635         output_automata_list_state_alts_code): Comment the functions.
7636
7637         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
7638
7639         * genautomata.c (automata_list_el_t): New typedef.
7640         (get_free_automata_list_el,free_automata_list_el,
7641         free_automata_list, automata_list_hash, automata_list_eq_p,
7642         initiate_automata_lists, automata_list_start, automata_list_add,
7643         automata_list_finish, finish_automata_lists,
7644         output_insn_code_cases, output_automata_list_min_issue_delay_code,
7645         output_automata_list_transition_code,
7646         output_automata_list_state_alts_code, add_automaton_state,
7647         form_important_insn_automata_lists): New functions and prototypes.
7648         (insn_reserv_decl): Add members important_automata_list and
7649         processed_p.
7650         (ainsn): Add members important_p.
7651         (automata_list_el): New structure.
7652         (first_free_automata_list_el, current_automata_list,
7653         automata_list_table): New global variables.
7654         (create_ainsns): Initiate member important_p.
7655         (output_internal_min_issue_delay_func): Generate the switch and
7656         call output_insn_code_cases.
7657         (output_internal_trans_func, output_internal_state_alts_func):
7658         Ditto.
7659         (generate): Call initiate_automata_lists.
7660         (automaton_states): New global variable.
7661         (expand_automata): Call form_important_insn_automata_lists.
7662         (write_automata): Call finish_automata_lists.
7663
7664         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
7665
7666         * genautomata.c (add_excls, add_presence_absence): Check that
7667         cpu units in the sets belong the same automaton.
7668
7669         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
7670         about that cpu units in the sets belong the same automaton.
7671
7672         * doc/md.texi: Ditto.
7673
7674         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
7675                     Nitin Gupta  <niting@noida.hcltech.com>
7676
7677         * config/sh/sh.c (sh_use_dfa_interface): New function.
7678
7679         (sh_issue_rate): New Function.
7680         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
7681         TARGET_SCHED_ISSUE_RATE: define.
7682
7683         * config/sh/sh.md: Add DFA based pipeline description for SH4.
7684
7685         (define_attr insn_class): New attribute used for DFA
7686          scheduling.
7687         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
7688         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
7689          cmpeqdi_t): Likewise.
7690
7691         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
7692          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
7693          ex_group.
7694         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
7695
7696         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7697
7698         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
7699         break.
7700
7701         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
7702
7703         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
7704         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
7705         necessary.
7706         (output_dfa_start_func): Initiate new variable insn_codes_length,
7707         (write_automata): Output definition of the new variable.
7708
7709         2001-10-02  David S. Miller  <davem@redhat.com>
7710
7711         * haifa-sched.c (advance_one_cycle): New function.
7712         (schedule_block): Use it.
7713         (queue_to_ready): Use it, and also make sure to advance the DFA
7714         state on all stall cycles, not just those where insn_queue links
7715         are found.
7716
7717         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
7718
7719         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
7720         non-zero if the highest-priority instruction could be scheduled.
7721         (choose_ready): Remove last argument from max_issue call.
7722
7723         2001-09-28  David S. Miller  <davem@redhat.com>
7724
7725         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
7726         ultrasparc and 3 for other multi-issue sparcs.
7727
7728         2001-09-27  David S. Miller  <davem@redhat.com>
7729
7730         * config/sparc/sparc.md (cycle_display): New pattern.
7731         * config/sparc/sparc.c (sparc_cycle_display): New.
7732         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
7733
7734         2001-09-25  David S. Miller  <davem@redhat.com>
7735
7736         Convert all of Sparc scheduling to DFA
7737         * config/sparc/sparc.md: Kill all define_function_unit
7738         directives and replace with DFA equivalent.
7739         * config/sparc/sparc.c (ultrasparc_adjust_cost,
7740         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
7741         ultra_fpmode_conflict_exists, ultra_find_type,
7742         ultra_build_types_avail, ultra_flush_pipeline,
7743         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
7744         ultrasparc_variable_issue, ultrasparc_sched_init,
7745         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
7746         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
7747         ultra_cur_hist, ultra_cycles_elapsed): Kill.
7748         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
7749         ultrasparc_store_bypass_p): New.
7750         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
7751         Declare.
7752
7753         2001-09-24  David S. Miller  <davem@redhat.com>
7754
7755         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
7756         ready->vec[foo] not ready[foo].
7757
7758         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
7759
7760         * doc/md.texi: Correct examples for define_insn_reservations
7761         `mult' and `div'.
7762
7763         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
7764
7765         * genautomata.c (create_automata): Print message about creation of
7766         each automaton.
7767         (generate): Remove printing meease about creation of
7768         automata.
7769
7770         2001-09-05  David S. Miller  <davem@redhat.com>
7771
7772         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
7773         * config/sparc/linux64.h: Likewise.
7774
7775         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
7776
7777         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
7778         schedule_block, sched_init, sched_finish): Add missed calls of
7779         use_dfa_pipeline_interface.
7780
7781         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
7782         Ditto.
7783
7784         * sched-vis.c (get_visual_tbl_length): Ditto.
7785
7786         2001-08-27  Richard Henderson  <rth@redhat.com>
7787
7788         * genattr.c (main): Emit state_t even when not doing scheduling.
7789
7790         2001-08-27  Richard Henderson  <rth@redhat.com>
7791
7792         * genautomata.c (expand_automata): Always create a description.
7793
7794         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
7795
7796         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
7797         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
7798         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
7799         RTL constructions.
7800
7801         * genattr.c (main): New variable num_insn_reservations.  Increase
7802         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
7803         pipeline hazard recognizer interface.
7804
7805         * genattrtab.h: New file.
7806
7807         * genattrtab.c: Include genattrtab.h.
7808         (attr_printf, check_attr_test, make_internal_attr,
7809         make_numeric_value): Move protypes into genattrtab.h.  Define them
7810         as external.
7811         (num_dfa_decls): New global variable.
7812         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
7813         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
7814         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
7815         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
7816
7817         * genautomata.c: New file.
7818
7819         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
7820
7821         * sched-int.h: (curr_state): Add the external definition for
7822         automaton pipeline interface.
7823         (haifa_insn_data): Add comments for members blockage and units.
7824
7825         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7826         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7827         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7828         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7829         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7830         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7831         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
7832         macros.
7833         (TARGET_SCHED): Use the new macros.
7834
7835         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
7836         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
7837         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
7838         dfa_bubble): New members in gcc_target.sched.
7839
7840         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
7841         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
7842         (insn_queue): Redefine it as pointer to array.
7843         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
7844         INSN_QUEUE_SIZE.
7845         (max_insn_queue_index_macro_value): New variable.
7846         (curr_state, dfa_state_size, ready_try): New varaibles for
7847         automaton interface.
7848         (ready_element, ready_remove, max_issue): New function prototypes
7849         for automaton interface.
7850         (choose_ready): New function prototype.
7851         (insn_unit, blockage_range): Add comments.
7852         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
7853         FUNCTION_UNITS_SIZE == 0.
7854         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
7855         actual_hazard, potential_hazard): Add comments.
7856         (insn_cost): Use cost -1 as undefined value.  Remove
7857         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
7858         pipeline interface.
7859         (ready_element, ready_remove): New functions for automaton
7860         interface.
7861         (schedule_insn): Add new code for automaton pipeline interface.
7862         (queue_to_ready): Add new code for automaton pipeline interface.
7863         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
7864         (debug_ready_list): Print newline when the queue is empty.
7865         (max_issue): New function for automaton pipeline interface.
7866         (choose_ready): New function.
7867         (schedule_block): Add new code for automaton pipeline interface.
7868         Print ready list before scheduling each insn.
7869         (sched_init): Add new code for automaton pipeline interface.
7870         Initiate insn cost by -1.
7871         (sched_finish): Free the current automaton state and finalize
7872         automaton pipeline interface.
7873
7874         * sched-rgn.c: Include target.h.
7875         (init_ready_list, new_ready, debug_dependencies): Add new code for
7876         automaton pipeline interface.
7877
7878         * sched-vis.c: Include target.h.
7879         (get_visual_tbl_length): Add code for automaton interface.
7880         (target_units, print_block_visualization):  Add comments.
7881
7882         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
7883         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
7884         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
7885         (getruntime.o, genautomata.o): New entries.
7886         (genattrtab.o): Add new dependency file genattrtab.h.
7887         (genattrtab): Add new dependencies.  Link it with `libm.a'.
7888         (getruntime.o, hashtab.o): New entries for canadian cross.
7889
7890         * doc/md.texi: Description of automaton based model.
7891
7892         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
7893         Add comments.
7894         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7895         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7896         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7897         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7898         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7899         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7900         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
7901         hook descriptions.
7902         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
7903         MAX_DFA_ISSUE_RATE): New macro descriptions.
7904
7905         * doc/contrib.texi: Add dfa based scheduler contribution.
7906
7907         * doc/gcc.texi: Add more information about genattrtab.
7908
7909 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7910
7911         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
7912         adjust_address_nv call.
7913
7914 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
7915
7916         * doc/install.texi (Testing): Provide additional information, and
7917         a stronger encouragement, for running the testsuites.
7918
7919 2002-04-29  DJ Delorie  <dj@redhat.com>
7920
7921         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
7922         given in upper case.
7923
7924 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7925
7926         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
7927         Solaris 2 <widec.h> if missing.
7928         * fixinc/fixincl.x: Regenerate.
7929         * fixinc/tests/base/widec.h: New file.
7930
7931 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
7932
7933         * toplev.c (f_options): Add "profile" switch so that
7934         -fno-profile can be used to disable -p.
7935
7936 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
7937
7938         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
7939         UV2DImode.
7940         * tree.c (build_common_tree_nodes_2): Likewise.
7941         * tree.h (enum tree_index): Likewise.
7942         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
7943
7944         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
7945         entries.
7946         (init_mmx_sse_builtins): Initialize SSE2 builtins.
7947         (ix86_expand_builtin): Add support for SSE2 builtins.
7948         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
7949         (VALID_SSE_REG_MODE): Use it.
7950         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
7951         (enum ix86_builtins): Add SSE2 builtins.
7952         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
7953         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
7954         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
7955         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
7956         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
7957         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
7958         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
7959         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
7960         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
7961         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
7962         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
7963         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
7964         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
7965         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
7966         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
7967         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
7968         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
7969         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
7970         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
7971         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
7972         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
7973         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
7974         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
7975         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
7976         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
7977         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
7978         lfence_insn): New patterns.
7979         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
7980         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
7981
7982 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
7983
7984         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
7985
7986 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7987
7988         * doc/contrib.texi (Contributors): Add Paolo Carlini and
7989         Janis Johnson.
7990         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
7991         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
7992         and CPU instead of cpu.
7993
7994 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
7995
7996         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
7997         variables.
7998         (lang_independent_options): Add -fif-conversion, -fif-conversion2
7999         (rest_of_compilation): Do if conversion only when asked for.
8000         (parse_options_and_default_flags): Set new variables to 1 for -O1
8001         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
8002
8003 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
8004
8005         * i386.c (dbx64_register_map): Fix typo.
8006
8007 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
8008
8009         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
8010         real_one_half, real_bb_freq_max): New static variables.
8011         (debug_profile_bbauxs): Kill.
8012         (process_note_predictions): Kill unused variable.
8013         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
8014         volatile double.
8015         (propagate_freq): Use REAL_ARITHMETICS.
8016         (estimate_bb_frequencies): Likevise; init new static variables.
8017         * Makefile.in (predict.o): Add dependency on real.h
8018
8019 2002-04-28  David S. Miller  <davem@redhat.com>
8020
8021         PR target/6500
8022         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
8023         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
8024         several {reads,writes} instead.
8025         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
8026         Define.
8027
8028 2002-04-27  David S. Miller  <davem@redhat.com>
8029
8030         PR target/6494
8031         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
8032         of the stack bias.
8033
8034         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
8035         including signal.h and sys/ucontext.h, not needed.
8036
8037 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
8038
8039         * varasm.c (output_constant_def): Correct test for not calling
8040         ENCODE_SECTION_INFO for INTEGER_CST.
8041
8042 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8043
8044         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
8045         keep most cases as function eval_token.
8046         (eval_token): New function.
8047         (_cpp_parse_expr): Read token here for improved diagnostics.
8048         Don't use op_as_text.  Detect bad ':' here.
8049         (reduce): Don't detect bad ':' here.
8050         (op_as_text): Remove.
8051         * cpphash.h (_cpp_test_assertion): Change prototype.
8052         * cpplib.c (_cpp_test_assertion): Change prototype.
8053
8054 2002-04-28  Richard Henderson  <rth@redhat.com>
8055
8056         PR c/5154
8057         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
8058         (ggc_mark_rtx_children): New.
8059
8060 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8061
8062         PR target/6496
8063         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
8064         after call peepholes for UltraSPARC.
8065         (call + jump 64-bit peepholes): Remove.
8066
8067 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8068
8069         PR c/6497
8070         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
8071         result as temporary value.
8072
8073 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8074
8075         PR c++/6396
8076         * toplev.c (rest_of_compilation): Only run regrename and copy
8077         propagation if optimizing.
8078
8079 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
8080
8081         PR optimization/6475
8082         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
8083         register of REGNO_DECL (i).
8084         * Makefile.in (reload1.o): Add $(TREE_H).
8085
8086 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8087
8088         * cppexp.c (lex): Update to use state.skip_eval.
8089         (struct op): Remove prio and flags members.
8090         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
8091         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
8092         (LEFT_ASSOC): New macro.
8093         (optab): New table of operator priorities and flags.
8094         (SHIFT): Update.
8095         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
8096         malloc-ed parser stack.
8097         (reduce): New; reduce the operator stack.
8098         (_cpp_expand_op_stack): Expand the operator stack as necessary.
8099         * cpphash.h (struct op): Predeclare.
8100         (struct cpp_reader): New members op_stack, op_limit.
8101         (struct lexer_state): New member skip_eval.
8102         (_cpp_parse_expr): Update.
8103         (_cpp_expand_op_stack): New.
8104         * cpplib.c (do_if): Update.
8105         * cppinit.c (cpp_create_reader): Create op stack.
8106         (cpp_destroy): And destroy it.
8107         * cpplib.h (CPP_LAST_CPP_OP): Correct.
8108         (TTYPE_TABLE): Correct.
8109
8110 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8111
8112         PR c/6343
8113         * c-decl.c (duplicate_decls): Call merge_weak.
8114         * c-pragma.c (apply_pragma_weak): Warn about misuse.
8115         * output.h (merge_weak): Prototype merge_weak.
8116         * varasm.c (merge_weak): New function.
8117         (declare_weak): Make sure we don't give an error on VAR_DECLs.
8118         Mark RTL with SYMBOL_REF_WEAK.
8119
8120 2002-04-27  Kurt Garloff <garloff@suse.de>
8121
8122         * tree-inline.c (inlinable_function_p): Improve heuristics
8123         by using a smoother function to cut down allowable inlinable size.
8124         * param.def: Add parameters max-inline-insns-single,
8125         max-inline-slope, min-inline-insns that determine the exact
8126         shape of the above function.
8127         * param.h: Likewise.
8128
8129 2002-04-26  Richard Henderson  <rth@redhat.com>
8130
8131         * c-parse.in (malloced_yyss, malloced_yyvs): New.
8132         (yyoverflow): Re-add.  Set them.
8133         (free_parser_stacks): New.
8134         * c-common.h: Declare it.
8135         * c-lex.c (c_common_parse_file): Call it.
8136
8137 2002-04-26  Richard Henderson  <rth@redhat.com>
8138
8139         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
8140         for fallthru search.
8141
8142 2002-04-26  Eric Christopher  <echristo@redhat.com>
8143
8144         PR optimization/3700
8145         * config/mips/mips.c (mips_issue_rate): Define.  New function.
8146         (TARGET_SCHED_ISSUE_RATE): Use.
8147
8148 2002-04-25  David S. Miller  <davem@redhat.com>
8149
8150         PR target/6422
8151         * reorg.c (optimize_skip): Do not allow exception causing
8152         instructions to be considered for delay slots.
8153         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
8154         (relax_delay_slots): Do not try to consider exception causing
8155         instructions as redundant.
8156
8157 2002-04-26  Richard Henderson  <rth@redhat.com>
8158
8159         PR c/5225
8160         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
8161
8162 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
8163
8164         PR bootstrap/6445
8165         * config/i386/i386.md (untyped_call): Return the value in a float
8166         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
8167         TARGET_80387.
8168
8169 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
8170
8171         * tree.c (tree_int_cst_lt): Compare constants whose types differ
8172         in unsigned-ness correctly.
8173
8174 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8175
8176         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
8177         portable runtime model.
8178
8179 2002-04-26  Richard Henderson  <rth@redhat.com>
8180
8181         * c-parse.in (yyoverflow): Revert.
8182
8183 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
8184             Richard Henderson  <rth@redhat.com>
8185
8186         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
8187         result as temporary value.
8188
8189 2002-04-26  Richard Henderson  <rth@redhat.com>
8190
8191         PR c/3581
8192         * c-common.c (fix_string_type): Split out of ...
8193         (combine_strings): ... here.  Take a varray, not a tree list.
8194         (c_expand_builtin_printf): Use fix_string_type.
8195         * c-common.h: Update decls.
8196         * c-parse.in (string): Remove.  Update all uses to use STRING
8197         instead, and not call combine_strings.
8198         (yylexstring): New.
8199         (_yylex): Use it.
8200         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
8201         (build_asm_stmt): Likewise.
8202         * objc/objc-act.c (my_build_string): Use fix_string_type.
8203         (build_objc_string_object): Build varray for combine_strings.
8204
8205 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
8206
8207         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
8208         x86-64.
8209
8210 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8211
8212         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
8213         (HAVE_NO_R_OPERAND): Remove.
8214         (HAVE_VALUE): Remove.
8215         (op_to_prio): Update.
8216         (UNARY): Don't alter flags.
8217         (_cpp_parse_expr): want_value used to indicate whether
8218         a number or unary operator is expected next.  Distinguish
8219         unary and binary +/-.
8220         (op_as_text): Update for unary operators.
8221
8222 2002-04-25  Richard Henderson  <rth@redhat.com>
8223
8224         PR c/2161
8225         * c-parse.in (yyoverflow): New.
8226
8227 2002-04-25  Richard Henderson  <rth@redhat.com>
8228
8229         PR c/2098
8230         * c-common.c (shorten_compare): Simplfy conditions leading to
8231         the generation of a warning.
8232
8233 2002-04-25  Richard Henderson  <rth@redhat.com>
8234
8235         PR c/2035
8236         * expmed.c (extract_bit_field): Fall through to generic code rather
8237         than aborting on subreg special case.
8238
8239 2002-04-25  David S. Miller  <davem@redhat.com>
8240
8241         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
8242         for DECL being NULL.
8243
8244 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
8245
8246         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
8247
8248 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
8249
8250         * c-decl.c (grokdeclarator): Remove outdated ??? note
8251         on invalid declaration of flexible array members.
8252
8253 2002-04-25  Richard Henderson  <rth@redhat.com>
8254
8255         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
8256
8257 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
8258
8259         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
8260         needed by the compiler, even if they are used as global regs.
8261
8262 2002-04-25  Matt Hiller  <hiller@redhat.com>
8263
8264         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
8265         functions.
8266         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
8267         of the corresponding functions.
8268         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
8269         New prototypes.
8270
8271 2002-04-25  Matt Hiller  <hiller@redhat.com>
8272
8273         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
8274
8275         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
8276         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
8277         registers, adjust comment accordingly.
8278         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
8279         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
8280         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
8281         for coprocessor registers.
8282         (ADDITIONAL_REGISTER_NAMES): Include
8283         ALL_COP_ADDITIONAL_REGISTER_NAMES.
8284
8285         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
8286         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
8287         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
8288         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
8289         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
8290
8291         (mips_char_to_class): Adjust comment to include coprocessor
8292         constraint letters.
8293
8294         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
8295         New functions.
8296         (mips_reg_names, mips_regno_to_class): Include coprocessor
8297         information.
8298         (mips_sw_reg_names): Ditto, make non-static.
8299         (mips_move_1word): Handle moves to and from coprocessor registers.
8300         (mips_move_2words): Handle moves to and from coprocessor
8301         registers.
8302         (mips_class_max_nregs, mips_register_move_cost): Handle
8303         coprocessor register classes.
8304         (override_options): Initialize mips_char_to_class and
8305         mips_hard_regno_mode_ok properly for coprocessor registers.
8306
8307         * config/mips/mips.md (movdi_internal, movdi_internal2,
8308         movsi_internal1, movsi_internal2): Add constraint-sets for
8309         coprocessor registers.
8310         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
8311         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
8312         isn't mips.
8313         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
8314         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
8315         isn't mips.
8316         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
8317         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
8318         isn't mips.
8319         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
8320         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
8321         isn't mips.
8322
8323         * doc/tm.texi: Document feature.
8324
8325 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8326
8327         * integrate.c (function_attribute_inlinable_p): Simplify.
8328         Check the table pointer is not NULL.
8329
8330 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
8331
8332         * doc/c-tree.texi: Fix typo in introduction.
8333
8334 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8335
8336         * c-common.h (c_common_parse_file): Update.
8337         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8338         * c-lex.c (YYDEBUG): Get from c-lex.h.
8339         (c_common_parse_file): Update.
8340         * c-lex.h (YYDEBUG, yydebug): New.
8341         * c-parse.in (YYDEBUG): Get from c-lex.h.
8342         (c_set_yydebug): Remove.
8343         * c-tree.h (c_set_yydebug): Remove.
8344         * langhooks-def.h (lhd_do_nothing_i): New.
8345         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
8346         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
8347         * langhooks.c  (lhd_do_nothing_i): New.
8348         (lhd_set_yydebug): Remove.
8349         * langhooks.h (struct lang_hooks): Update.
8350         * toplev.c (set_yydebug): New.
8351         (compile_file): Update call to parse_file hook.
8352         (decode_d_option): Update.
8353 objc:
8354         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8355
8356 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
8357
8358         * loop.c (load_mems): Don't change the interface of called functions.
8359
8360         * calls.c (expand_call): Take current_function_pretend_args_size
8361         into account when setting argblock for sibcalls.
8362
8363 2002-04-24  Matt Hiller  <hiller@redhat.com>
8364
8365         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
8366         * c-lex.c: Ditto.
8367
8368         * cpplex.c (skip_line_comment): Process comment one multibyte
8369         character at a time rather than one char at a time, if
8370         appropriate.
8371         (parse_string): Process string one multibyte character at a time
8372         rather than one char at a time, if appropriate.
8373         * c-lex.c (lex_string): Lex and copy multibyte strings
8374         appropriately.
8375         * cpplib.h (cppchar_t): Change to unsigned.
8376
8377 2002-04-24  Richard Henderson  <rth@redhat.com>
8378
8379         PR c/3467
8380         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
8381         for c99.
8382
8383 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
8384
8385         * sh.c (sh_va_arg): If argument was passed by reference,
8386         dereference the pointer.
8387
8388         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8389
8390         * sh.md (divsi3_i4_media): Use match_operand for input values
8391         rather than hard registers.
8392         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
8393         unnecessarily through hard registers.  Keep copies of pseudo
8394         registers outside of the libcall sequence.
8395
8396         * sh.md (casesi_shift_media): Add modes.
8397
8398         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
8399         values in memory.
8400
8401 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8402
8403         * attribs.c (c_common_attribute_table): Move table and handlers
8404         to c-common.c.
8405         (format_attribute_table, lang_attribute_table,
8406         lang_attribute_common): Remove.
8407         (init_attributes): Replace NULL pointers with pointers to the
8408         empty table.
8409         (handle_packed_attribute, handle_nocommon_attribute,
8410         handle_common_attribute, handle_noreturn_attribute,
8411         handle_noinline_attribute, handle_always_inline_attribute,
8412         handle_used_attribute, handle_unused_attribute,
8413         handle_const_attribute, handle_transparent_union_attribute,
8414         handle_constructor_attribute, handle_destructor_attribute,
8415         handle_mode_attribute, handle_section_attribute,
8416         handle_aligned_attribute, handle_weak_attribute,
8417         handle_alias_attribute, handle_visibility_attribute,
8418         handle_no_instrument_function_attribute, handle_malloc_attribute,
8419         handle_no_limit_stack_attribute, handle_pure_attribute,
8420         handle_deprecated_attribute, handle_vector_size_attribute,
8421         vector_size_helper): Move to c-common.c.
8422         * c-common.c (c_common_attribute_table,
8423         handle_packed_attribute, handle_nocommon_attribute,
8424         handle_common_attribute, handle_noreturn_attribute,
8425         handle_noinline_attribute, handle_always_inline_attribute,
8426         handle_used_attribute, handle_unused_attribute,
8427         handle_const_attribute, handle_transparent_union_attribute,
8428         handle_constructor_attribute, handle_destructor_attribute,
8429         handle_mode_attribute, handle_section_attribute,
8430         handle_aligned_attribute, handle_weak_attribute,
8431         handle_alias_attribute, handle_visibility_attribute,
8432         handle_no_instrument_function_attribute, handle_malloc_attribute,
8433         handle_no_limit_stack_attribute, handle_pure_attribute,
8434         handle_deprecated_attribute, handle_vector_size_attribute,
8435         vector_size_helper): Move from attribs.c.
8436         * c-common.h (c_common_attribute_table,
8437         c_common_format_attribute_table): New.
8438         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
8439         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
8440         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
8441         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
8442         (LANG_HOOKS_INITIALIZER): Update.
8443         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
8444         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
8445         * target.h: Update comment.
8446         * tree.c (default_target_attribute_table): Remove.
8447         * tree.h (default_target_attribute_table, format_attribute_table,
8448         lang_attribute_table, lang_attribute_common): Remove.
8449 objc:
8450         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
8451         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
8452
8453 2002-04-24  Jason Merrill  <jason@redhat.com>
8454
8455         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
8456         * dwarf2out.c (dwarf_attr_name): Support it.
8457         (gen_array_type_die): Emit it.
8458         (lookup_type_die): No special handling for VECTOR_TYPE.
8459         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
8460
8461 2002-04-24  Richard Henderson  <rth@redhat.com>
8462
8463         * config/mips/mips.md (movdi_usd): Renumber.
8464
8465 2002-04-24  David S. Miller  <davem@redhat.com>
8466
8467         PR target/6420
8468         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
8469         32-bit Sparc and current_function_returns_struct is true.
8470
8471 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
8472
8473         * loop.c (canonicalize_condition): Use gen_int_mode.
8474
8475 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
8476
8477         * config/rs6000/altivec.h: Cleanup file.  Add non individual
8478         variants.
8479         (vec_vaddubm): New.
8480         (vec_vadduhm): New.
8481         (vec_vadduwm): New.
8482         (vec_vaddfp): New.
8483         (vec_vaddcuw): New.
8484         (vec_vaddubs): New.
8485         (vec_vaddsbs): New.
8486         (vec_vadduhs): New.
8487         (vec_vadduws): New.
8488         (vec_vaddsws): New.
8489         (vec_vand): New.
8490         (vec_vandc): New.
8491         (vec_vavgub): New.
8492         (vec_vavgsb): New.
8493         (vec_vavguh): New.
8494         (vec_vavgsh): New.
8495         (vec_vavguw): New.
8496         (vec_vavgsw): New.
8497         (vec_vrfip): New.
8498         (vec_vcmpbfp): New.
8499         (vec_vcmpequb): New.
8500         (vec_vcmpequh): New.
8501         (vec_vcmpequw): New.
8502         (vec_vcmpeqfp): New.
8503         (vec_vcmpgefp): New.
8504         (vec_vcmpgtub): New.
8505         (vec_vcmpgtsb): New.
8506         (vec_vcmpgtuh): New.
8507         (vec_vcmpgtsh): New.
8508         (vec_vcmpgtuw): New.
8509         (vec_vcmpgtsw): New.
8510         (vec_vcmpgtfp): New.
8511         (vec_vcmpgefp): New.
8512         (vec_vcfux): New.
8513         (vec_vcfsx): New.
8514         (vec_vctsxs): New.
8515         (vec_vctuxs): New.
8516         (vec_vexptefp): New.
8517         (vec_vrfim): New.
8518         (vec_lvx): New.
8519         (vec_lvebx): New.
8520         (vec_lvehx): New.
8521         (vec_lde): Add vector float variant.
8522         (vec_lvewx): New.
8523         (vec_lvxl): New.
8524         (vec_vlogefp): New.
8525         (vec_vmaddfp): New.
8526         (vec_vmhaddshs): New.
8527         (vec_vmaxub): New.
8528         (vec_vmaxsb): New.
8529         (vec_vmaxuh): New.
8530         (vec_vmaxsh): New.
8531         (vec_vmaxuw): New.
8532         (vec_vmaxsw): New.
8533         (vec_vmaxsw): New.
8534         (vec_vmaxfp): New.
8535         (vec_vmrghb): New.
8536         (vec_vmrghh): New.
8537         (vec_vmrghw): New.
8538         (vec_vmrglb): New.
8539         (vec_vmrglh): New.
8540         (vec_vmrglw): New.
8541         (vec_vminub): New.
8542         (vec_vminsb): New.
8543         (vec_vminuh): New.
8544         (vec_vminsh): New.
8545         (vec_vminuw): New.
8546         (vec_vminsw): New.
8547         (vec_vminfp): New.
8548         (vec_vmladduhm): New.
8549         (vec_vmhraddshs): New.
8550         (vec_msumubm): New.
8551         (vec_vmsummbm): New.
8552         (vec_vmsumuhm): New.
8553         (vec_vmsumshm): New.
8554         (vec_vmsumuhs): New.
8555         (vec_vmsumshs): New.
8556         (vec_vmuleub): New.
8557         (vec_vmulesb): New.
8558         (vec_vmuleuh): New.
8559         (vec_vmulesh): New.
8560         (vec_vmuloub): New.
8561         (vec_mulosb): New.
8562         (vec_vmulouh): New.
8563         (vec_vmulosh): New.
8564         (vec_vnmsubfp): New.
8565         (vec_vnor): New.
8566         (vec_vor): New.
8567         (vec_vpkuhum): New.
8568         (vec_vpkuwum): New.
8569         (vec_vpkpx): New.
8570         (vec_vpkuhus): New.
8571         (vec_vpkshss): New.
8572         (vec_vpkuwus): New.
8573         (vec_vpkswss): New.
8574         (vec_vpkshus): New.
8575         (vec_vpkswus): New.
8576         (vec_vperm): New.
8577         (vec_vrefp): New.
8578         (vec_vrlb): New.
8579         (vec_vrlh): New.
8580         (vec_vrlw): New.
8581         (vec_vrfin): New.
8582         (vec_vrsqrtefp): New.
8583         (vec_vsel): New.
8584         (vec_vslb): New.
8585         (vec_vslh): New.
8586         (vec_vslw): New.
8587         (vec_vsldoi): New.
8588         (vec_vsl): New.
8589         (vec_vslo): New.
8590         (vec_vspltb): New.
8591         (vec_vsplth): New.
8592         (vec_vspltw): New.
8593         (vec_vspltisb): New.
8594         (vec_vspltish): New.
8595         (vec_vspltisw): New.
8596         (vec_vsrb): New.
8597         (vec_vsrh): New.
8598         (vec_vsrw): New.
8599         (vec_vsrab): New.
8600         (vec_vsrah): New.
8601         (vec_vsraw): New.
8602         (vec_vsr): New.
8603         (vec_vsro): New.
8604         (vec_stvx): New.
8605         (vec_stvebx): New.
8606         (vec_stvehx): New.
8607         (vec_stvewx): New.
8608         (vec_stvxl): New.
8609         (vec_vsububm): New.
8610         (vec_vsubuhm): New.
8611         (vec_vsubuwm): New.
8612         (vec_vsubfp): New.
8613         (vec_vsubcuw): New.
8614         (vec_vsububs): New.
8615         (vec_vsubsbs): New.
8616         (vec_vsubuhs): New.
8617         (vec_vsubshs): New.
8618         (vec_vsubuws): New.
8619         (vec_vsubsws): New.
8620         (vec_vsum4ubs): New.
8621         (vec_vsum4sbs): New.
8622         (vec_vsum4shs): New.
8623         (vec_vsum2sws): New.
8624         (vec_vsumsws): New.
8625         (vec_vrfiz): New.
8626         (vec_vupkhsb): New.
8627         (vec_vupkhpx): New.
8628         (vec_vupkhsh): New.
8629         (vec_vupklsb): New.
8630         (vec_vupklpx): New.
8631         (vec_vupklsh): New.
8632         (vec_vxor): New.
8633
8634 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
8635
8636         PR c/5430
8637         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
8638         added literals from substracted literals.
8639         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
8640         (fold) [associate]: Preserve MINUS_EXPR if needed.
8641
8642 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
8643
8644         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
8645         are obsoleted.
8646
8647 2002-04-23  Tom Tromey  <tromey@redhat.com>
8648
8649         * gcc.c: Added --resource.  For PR java/6314.
8650
8651 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
8652
8653         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
8654         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
8655         these libraries.
8656
8657 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
8658
8659         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
8660
8661 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
8662
8663         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
8664         workaround.
8665         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
8666         (ix86_expand_clrstr): Fix typo.
8667         * loop.c (gen_load_of_final_value): New.
8668         (loop_givs_rescan, strength_reduce, check_dbra_loop):
8669         Use it.
8670
8671 2002-04-23  Roger Sayle  <roger@eyesopen.com>
8672
8673         * builtins.c (builtin_memset_gen_str): New function.
8674         (expand_builtin_memset): Optimize the case of constant length, but
8675         unknown value.
8676
8677 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
8678
8679         * config/rs6000/altivec.h (vec_step): Remove extraneous
8680         parentheses.
8681         (vec_ctu): Cast return.
8682
8683 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
8684
8685         PR target/6413
8686         * function.h: (struct function): Add profile_label_no field.
8687         (current_function_profile_label_no): Define.
8688         * function.c: (profile_label_no): New static var.
8689         (expand_function_start): Increment it, and copy to
8690         current_function_profile_label_no.
8691         * output.h (profile_label_no): Delete.
8692         * final.c (profile_label_no): Delete.
8693         (profile_function): Use current_function_profile_label_no.
8694         (final_end_function): Don't increment profile_label_no here.
8695         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
8696         profile_label_no with current_function_profile_label_no.
8697         * config/pa/pa.c (current_function_number): Delete.
8698         (pa_output_function_prologue): Don't output profile label here.
8699         (hppa_profile_hook): Use label_no param rather than
8700         current_function_number.
8701         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
8702         * config/pa/pa.h: .. here.
8703         (FUNCTION_PROFILER): Output profile label here.
8704
8705 2002-04-22  Eric Christopher  <echristo@redhat.com>
8706
8707         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
8708         patch of 2002-04-09 due to binutils issues.
8709         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
8710
8711 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
8712
8713         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
8714         constraint to 'o' for m=r and r=m alternatives.
8715         ("*movv8hi_internal1"): Same.
8716         ("*movv16qi_internal1"): Same.
8717         ("*movv4sf_internal1"): Same.
8718
8719 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
8720
8721         * rtl.h (RTX_FLAG): New macro.
8722         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
8723         * final.c (alter_subreg): Use macro to access rtx flag.
8724         * integrate.c (copy_rtx_and_substitute): Use new access macro.
8725         * print-rtl.c (print_rtx): Use new access macro.
8726
8727         * cse.c (insert): Check rtx code before accessing flag.
8728
8729         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
8730         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
8731         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
8732         convert_const_symbol_ref, make_canonical, make_alternative_compare,
8733         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
8734         simplify_test_exp, optimize_attrs, simplify_by_exploding,
8735         find_and_mark_used_attributes, unmark_used_attributes,
8736         add_values_to_cover, simplify_with_current_value,
8737         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
8738         copy_rtx_unchanging, main): Use new access macros.
8739
8740 2002-04-22  Tom Rix  <trix@redhat.com>
8741
8742         * expmed.c (init_expmed): Generate shifted constant once.
8743
8744 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
8745
8746         * c-lex.c (lex_charconst): Call convert to get constant in
8747         proper type; don't just smash the type field.
8748         Fixes PR c/6300.
8749
8750         * config.gcc: Add list of obsolete configurations.  Disallow
8751         building these without --enable-obsolete.
8752         * doc/install.texi: Document --enable-obsolete and obsoletion
8753         policy.  Mention obsoletion of individual targets in
8754         appropriate places.
8755
8756 2002-04-22  Richard Henderson  <rth@redhat.com>
8757
8758         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
8759
8760 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
8761
8762         PR f/6138.
8763         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
8764         (walk_fixup_memory_subreg): Likewise.
8765         (fixup_var_refs_insn): Adjust accordingly.
8766         (fixup_var_refs_1): Likewise.
8767
8768 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
8769
8770         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
8771         LIBPATH_ARCH64_SPEC): Define.
8772         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
8773         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
8774         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
8775         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
8776
8777 2002-04-22      Joel Sherrill <joel@OARcorp.com>
8778
8779         * gthr-rtems.h: Correct prototypes to remove warnings.
8780
8781 2002-04-22  Richard Henderson  <rth@redhat.com>
8782
8783         PR c/6344
8784         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
8785
8786         * gcse.c (free_insn_expr_list_list): New.
8787         (clear_modify_mem_tables): Use it.  Fix bit set usage.
8788         (canon_list_insert): Use EXPR_LISTs for expressions.
8789         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
8790
8791 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8792
8793         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
8794         file change and include code to _cpp_pop_buffer.
8795         * cpphash.h (struct pending_option): Predeclare.
8796         (struct cpp_reader): New member next_include_file.
8797         (_cpp_pop_file_buffer): Update.
8798         (_cpp_push_next_buffer): Update, rename.
8799         * cppinit.c (cpp_destroy): Free include chain and pending here.
8800         (cpp_finish_options): Simplify.
8801         (_cpp_push_next_buffer): Rename and clean up.
8802         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
8803         Clarify.
8804         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
8805
8806 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
8807
8808         * config/rs6000/altivec.h (vec_xor): Add variant for both args
8809         being vector signed int.
8810         (vec_andc): Same.
8811         (vec_xor): Add variant for both args being vector signed char.
8812         Remove redundant variant.
8813         (vec_andc): Same.
8814
8815 2002-04-21  David S. Miller  <davem@redhat.com>
8816
8817         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
8818         compare mode in output RTL.
8819
8820 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
8821
8822         * config/rs6000/rs6000.c (rs6000_override_options): Correct
8823         style and formatting of previous patch.
8824
8825 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
8826
8827         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
8828         flag_pic for ABI_AIX.
8829
8830 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8831
8832         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
8833         * cppfiles.c (read_include_file): Similarly.
8834         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
8835         uxstrdup ustrchr, ufputs): Similarly.
8836         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
8837         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
8838         cpp_ideq, parse_identifier, parse_number): Similarly.
8839         * cpplib.c (struct directive, dequote_string, D, run_directive,
8840         cpp_push_buffer): Similarly.
8841         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
8842         _cpp_create_definition, check_trad_stringification,
8843         cpp_macro_definition): Similarly.
8844
8845 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8846
8847         * cppmacro.c (funlike_invocation_p): Don't step back
8848         over CPP_EOF.
8849
8850 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
8851
8852         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
8853         labelno.
8854
8855 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
8856
8857         * doc/invoke.texi: Remove Chill references.
8858         * doc/gcc.texi: Update last modified date.
8859
8860 2002-04-20  Kazu Hirata  <kazu@hxi.com>
8861
8862         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
8863         push and pop.  Replace add.l with add.w.
8864
8865 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
8866
8867         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
8868         multiply instructions for H8/300H case.
8869
8870 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
8871
8872         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
8873         Bum three instructions from each routine.
8874
8875 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
8876
8877         * Makefile.in: Update.
8878         * decl.c (push_c_function_context, pop_c_function_context,
8879         mark_c_function_context): Rename for consistency.
8880         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
8881         * c-tree.h (push_c_function_context, pop_c_function_context,
8882         mark_c_function_context): Rename for consistency.
8883         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8884         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
8885         * function.c (init_lang_status, save_lang_status,
8886         restore_lang_status, mark_lang_status, free_lang_status):
8887         Move to langhooks.h.
8888         (push_function_context_to, pop_function_context_from,
8889         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
8890         Update.
8891         * function.h (init_lang_status, save_lang_status,
8892         restore_lang_status, mark_lang_status, free_lang_status):
8893         Move to langhooks.h.
8894         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
8895         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
8896         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
8897         LANG_HOOKS_FUNCTION_INITIALIZER): New.
8898         (LANG_HOOKS_INITIALIZER): Update.
8899         (lhd_do_nothing_f): New.
8900         * langhooks.h (struct lang_hooks_for_functions): New.
8901         (struct lang_hooks): New hooks.
8902         * langhooks.c (lhd_do_nothing_f): New.
8903 objc:
8904         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8905         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
8906
8907 2002-04-19  David S. Miller  <davem@redhat.com>
8908
8909         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
8910         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
8911
8912 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
8913
8914         PR optimization/3756
8915         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
8916         x = ((int) y < 0) ? cst1 : cst2.
8917
8918 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
8919
8920         PR c/6358
8921         * function.c: Reapply patch for c/6358.
8922         (expand_function_end): Copy decl_rtl's mode, not
8923         current_function_return_rtx mode.
8924
8925 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
8926
8927         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
8928         targets.
8929
8930 2002-04-19  Tom Tromey  <tromey@redhat.com>
8931
8932         * doc/install.texi (Specific): Update status of Solaris 2.8.
8933         For PR libgcj/6158.
8934
8935 2002-04-19  Andreas Schwab  <schwab@suse.de>
8936
8937         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
8938         (PUT_REAL): Restore old definition.
8939
8940 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
8941             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8942
8943         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
8944         binutils 2.11.2 and higher generate smaller binaries than Sun's
8945         native tools.
8946
8947 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
8948
8949         PR c++/6352
8950         * toplev.c (rest_of_compilation): Do not defer functions for which
8951         TREE_SYMBOL_REFERENCED has already been set.
8952
8953 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
8954
8955         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
8956         alternative.
8957
8958 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8959
8960         * builtins.c: Include langhooks.h.
8961         (lang_type_promotes_to): Remove.
8962         (expand_builtin_va_arg): Use new hook.
8963         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
8964         (simple_type_promotes_to): Move to c-typeck.c.
8965         * c-common.h (simple_type_promotes_to): Remove.
8966         * c-decl.c (duplicate_decls, grokdeclarator): Update.
8967         * c-format.c: Include langhooks.h.
8968         (check_format_types): Update.
8969         * c-tree.h (c_type_promotes_to): New.
8970         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
8971         (type_lists_compatible_p): Update.
8972         * langhooks-def.h (lhd_type_promotes_to): New.
8973         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
8974         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8975         * langhooks.c (lhd_type_promotes_to): New.
8976         * langhooks.h (struct lang_hooks_for_types): New hook.
8977         * tree.h (lang_type_promotes_to): Remove.
8978 objc:
8979         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
8980
8981 2002-04-18  Richard Henderson  <rth@redhat.com>
8982
8983         * function.c: Revert patch for c/6358.
8984
8985 2002-04-18  Richard Henderson  <rth@redhat.com>
8986
8987         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
8988         blocks.  Handle multiple references to the TRAP block.  Handle
8989         non-adjacent THEN and OTHER blocks.
8990
8991 2002-04-18  Richard Henderson  <rth@redhat.com>
8992
8993         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
8994         crash with no type for by-mode libcalls.
8995
8996         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
8997
8998 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
8999
9000         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
9001         __xtensa_nonlocal_goto): Use a syscall instructions to flush
9002         the register windows.
9003
9004 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
9005
9006         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
9007         appropriate.  Document need for extended precision even when
9008         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
9009         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
9010         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
9011         instead of relying on later syntax error when REAL_WIDTH > 5.
9012         * real.c: Define NE based only on whether or not we have a
9013         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
9014         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
9015         define GET_REAL and PUT_REAL as simple memcpy operations; no
9016         need to byteswap or round.
9017         Use #error instead of #ifdef-ing out the entire file, for
9018         prompt error detection.
9019
9020         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
9021
9022 2002-04-18  David S. Miller  <davem@redhat.com>
9023
9024         * config/sparc/sparc.h (BRANCH_COST): Define.
9025
9026         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
9027         does it.
9028
9029 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
9030
9031         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
9032         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
9033         propagate_block calls after relaxation loop using new variable
9034         stabilized_prop_flags.
9035
9036 2002-04-18  Richard Henderson  <rth@redhat.com>
9037
9038         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
9039         (ia64_va_arg): Expect variable sized types by reference.
9040         * config/ia64/ia64-protos.h: Update.
9041         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
9042         ia64_function_arg_pass_by_reference.
9043
9044 2002-04-18  Richard Henderson  <rth@redhat.com>
9045
9046         * ifcvt.c: Include except.h.
9047         (block_has_only_trap): Break out from find_cond_trap.
9048         (find_cond_trap): Use it.  Always delete the trap block.
9049         (merge_if_block): Allow then block null.  Be less simplistic about
9050         what insns can end a block.
9051         * Makefile.in (ifcvt.o): Depend on except.h.
9052
9053         * config/ia64/ia64.md (trap, conditional_trap): New.
9054
9055 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9056
9057         PR c/6358
9058         * function.c (assign_parms): Assign hard current_function_return_rtx
9059         register here...
9060         (expand_function_end): ...not here.
9061
9062 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
9063
9064         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
9065         * c-tree.h (c_incomplete_type_error): New.
9066         * c-typeck.c (require_complete_type, build_component_ref): Update.
9067         (incomplete_type_error): Rename.
9068         * langhooks-def.h (lhd_incomplete_type_error): New.
9069         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
9070         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
9071         * langhooks.c (lhd_incomplete_type_error): New.
9072         * langhooks.h (struct lang_hooks_for_types): New hook.
9073         * tree.c (size_in_bytes): Use new hook.
9074         * tree.h (incomplete_type_error): Remove.
9075 objc:
9076         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
9077
9078 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
9079
9080         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
9081         TARGET_FLOAT_FORMAT blocks.
9082
9083 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9084
9085         * doc/install.texi (Downloading the source): Do not mention Chill
9086         any longer, but mention Ada.
9087         (Configuration): Do not mention Chill any longer.
9088
9089 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
9090
9091         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
9092
9093 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
9094
9095         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
9096         in last patch.
9097
9098 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9099
9100         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
9101         instead of unsigned_type.
9102
9103 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
9104
9105         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
9106         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
9107         later.
9108
9109 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
9110
9111         * attribs.c (vector_type_node_list): New static variable.
9112         (handle_vector_size_attribute): Use it to avoid generating a
9113         new type node each time we are called.
9114
9115         * combine.c (subst): Avoid trying to make a vector mode subreg of
9116         an integer constant.
9117         (gen_lowpart_for_combine): Likewise.
9118
9119 2002-04-18  Roger Sayle  <roger@eyesopen.com>
9120             Jakub Jelinek  <jakub@redhat.com>
9121
9122         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
9123         for integer constant c (if x has unsigned type or sign bit is not
9124         set in c).  This folds the zero/sign extension into the bit-wise and
9125         operation.
9126
9127 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
9128
9129         PR middle-end/6205
9130         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
9131         otherwise xorps.
9132
9133 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
9134
9135         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
9136
9137 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
9138
9139         * gcc.c (read_specs): Detect and fail if an attempt is made to
9140         rename a spec string to an already existing string.
9141
9142 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
9143
9144         * config/s390/s390.c (legitimize_pic_address): Do not generate
9145         illegal address constant without CONST.
9146
9147 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9148
9149         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
9150         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
9151
9152 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
9153
9154         PR optimization/6305
9155         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
9156         to make sure previous reloads are taken into account.  Generate
9157         better code if one operand is an in-range immediate constant.
9158
9159 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
9160
9161         * doc/install.texi (Building): libgcj requires GNU make.
9162
9163 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
9164
9165         PR bootstrap/6315
9166         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
9167         even if hard quad and register is not floating.
9168         (movtf reg<-mem split): Disallow splitting if hard quad and
9169         register is floating.
9170         (movtf mem<-reg split): Likewise.
9171         * config/sparc/sparc.c (fp_register_operand): New predicate.
9172         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
9173
9174 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
9175
9176         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
9177         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
9178         (unprotoize.o): Ditto.  Build from protoize.c.  Define
9179         UNPROTOIZE on command line.
9180         * protoize.c: Include cppdefault.h.  Delete include_defaults.
9181         (in_system_include_dir): Use cpp_include_defaults (defined in
9182         cppdefault.o).
9183         * unprotoize.c: Delete file.
9184
9185 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
9186
9187         * config/rs6000/altivec.h (vec_ld): Add array variants.
9188         (vec_lde): Same.
9189         (vec_ldl): Same.
9190
9191 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
9192             Aldy Hernandez <aldyh@redhat.com>
9193
9194         * config/rs6000/altivec.h: Define __ALTIVEC__.
9195         (bool): New.
9196         (__pixel): New.
9197         (pixel): New.
9198         (vec_cfux): New.
9199         (vec_vmaddfp): New.
9200         (vec_vsldoi): New.
9201         Add parentheses to all macro arguments.
9202
9203 2002-04-16  Richard Henderson  <rth@redhat.com>
9204
9205         PR c++/6320
9206         * except.c (remove_eh_handler): Insert inner regions at beginning
9207         of sibling chain.  Refactor expressions.
9208
9209 2002-04-16  Richard Henderson  <rth@redhat.com>
9210
9211         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
9212         * config/sparc/sol2-gas-bi.h: New file.
9213         * config.gcc (sparc*-solaris): Add it as needed.
9214         * configure.in (AS_SPARC64_FLAG): Remove check.
9215         * config.in, configure: Regenerate.
9216
9217         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
9218
9219 2002-04-16  Richard Henderson  <rth@redhat.com>
9220
9221         * config/mips/mips.c (override_options): Don't override N32 for
9222         a 64-bit ISA.
9223
9224         PR 6202
9225         * config/mips/mips.md (can_delay): Split out of existing define_delays.
9226         (HILO_delay): Set can_delay false.
9227
9228 2002-04-16  Dale Johannesen <dalej@apple.com>
9229
9230         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
9231         instruction addresses.
9232         (rs6000_output_function_epilogue): Likewise.
9233
9234 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
9235
9236         * c-parse.in (poplevel, compstmt_start,
9237         compstmt_primary_start): Add ending ';', in accordance
9238         with POSIX.
9239
9240 2002-04-16  Richard Henderson  <rth@redhat.com>
9241
9242         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
9243         Adjust tm_file order to get TARGET_DEFAULT set properly.
9244         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
9245         * doc/install.texi (sparc-solaris): Update.
9246
9247 2002-04-16  Dale Johannesen <dalej@apple.com>
9248
9249         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
9250         comparison operands do not match each other or if modes of
9251         conditions do not match result.
9252
9253 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
9254
9255         PR target/6305
9256         * config/s390/s390.md (mulsidi3): Set both subregs of the
9257         multiword register.
9258
9259 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
9260
9261         * config/rs6000/altivec.h (vec_addc): Type check.
9262
9263 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
9264
9265         PR middle-end/6279
9266         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
9267
9268         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
9269
9270 2002-04-15  Richard Henderson  <rth@redhat.com>
9271
9272         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
9273         call_really_used_regs too.
9274
9275 2002-04-15  Richard Henderson  <rth@redhat.com>
9276
9277         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
9278
9279 2002-04-15  David S. Miller  <davem@redhat.com>
9280
9281         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
9282         as being CLOBBERed.
9283
9284 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
9285
9286         PR c/6290
9287         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
9288         CONST_VECTOR is { 0, ... 0 }.
9289
9290 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
9291
9292         * doc/install.texi (Installing GCC: Configuration): Clarify
9293         the only supported ways to configure gcc.
9294
9295 2002-04-15  Roland McGrath  <roland@frob.com>
9296
9297         * config.gcc (alpha*-*-gnu*): New target configuration.
9298         * config/alpha/gnu.h: New file for it.
9299         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
9300
9301 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
9302
9303         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
9304         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
9305         * tree.h (expand_start_stmt_expr): Update prototype.
9306         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
9307         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
9308         on the STMT_EXPR created for the inline function.
9309
9310 2002-04-15  Richard Henderson  <rth@redhat.com>
9311
9312         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
9313         config/i386/linux-aout.h, config/i386/linux-oldld.h,
9314         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
9315         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
9316         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
9317         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
9318         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
9319         Define __gnu_linux__, not gnu_linux.
9320         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
9321
9322 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
9323
9324         Remove Chill front end.
9325         * gcc.c (default_compilers): Remove Chill entries.
9326         * ch: Remove directory.
9327         * doc/frontends.texi: Remove information about Chill.
9328         * doc/sourcebuild.texi: Likewise.
9329         * doc/standards.texi: Likewise.
9330
9331 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
9332
9333         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
9334         (LONGLONG_STANDALONE): Define.
9335
9336 2002-04-15  David S. Miller  <davem@redhat.com>
9337
9338         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
9339         Call emit_library_call with LCT_NORMAL.
9340         (sparc_initialize_trampoline): Use LCT_foo instead of
9341         magic constant in emit_library_call invocations.
9342         (sparc64_initialize_trampoline): Likewise.
9343         (sparc_profile_hook): Likewise.
9344         * config/sparc/sparc.md: Likewise.
9345
9346         * config/sparc/sparc.c (sparc_extra_constraint_check):
9347         Fix type of argument 'c'.
9348         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
9349         Likewise.
9350
9351 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9352
9353         * diagnostic.h (output_buffer_state): Redefine.
9354         (output_format_decoder): New macro.
9355         (output_prefixing_rule): Likewise.
9356         (output_line_cutoff): Likewise.
9357         (diagnostic_format_decoder): Adjust.
9358         (diagnostic_prefixing_rule): Likewise.
9359         (diagnostic_line_cutoff): Likewise.
9360         (diagnostic_state): Likewise.
9361         (diagnostic_kind_count): Likewise.
9362         (diagnostic_buffer): Now a macro.
9363
9364         * diagnostic.c (diagnostic_buffer): Remove definition.
9365         (output_is_line_wrapping): Adjust.
9366         (set_real_maximum_length): Likewise.
9367         (output_set_maximum_length): Likewise.
9368         (init_output_buffer): Likewise.
9369         (lhd_print_error_function): Likewise.
9370         (output_do_verbatim): Likewise.
9371
9372 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9373
9374         * cpperror.c (print_location): Don't print include chain
9375         if line == 0.
9376         (cpp_begin_message): Update to use DL_ macros.
9377         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
9378         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
9379         cpp_notice, cpp_notice_from_errno): Remove.
9380         (cpp_error, cpp_error_with_line): Update to take a diagnostic
9381         level.
9382         (cpp_errno): New.
9383         * cppexp.c (CPP_ICE): Remove.
9384         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
9385         lex, integer_overflow, _cpp_parse_expr): Update.
9386         * cppfiles.c (read_include_file, find_include_file,
9387         handle_missing_header, _cpp_read_file, remap_filename): Update.
9388         * cpphash.h (enum error_type): Remove.
9389         (_cpp_begin_message): Update.
9390         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
9391         cpp_handle_option, cpp_post_options): Update.
9392         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
9393         skip_whitespace, parse_identifier, parse_slow, parse_string,
9394         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
9395         cpp_interpret_charconst): Update.
9396         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
9397         lex_macro_node, do_undef, glue_header_name, parse_include,
9398         do_include_common, read_flag, do_line, do_linemarker, do_ident,
9399         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
9400         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
9401         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
9402         _cpp_pop_buffer, do_diagnostic): Update.
9403         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
9404         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
9405         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
9406         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
9407         cpp_notice, cpp_notice_from_errno): Remove.
9408         (cpp_error, cpp_error_with_line): Update to take a diagnostic
9409         level.
9410         (cpp_errno): New.
9411         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
9412         collect_args, enter_macro_context, save_parameter, parse_params,
9413         _cpp_create_definition, check_trad_stringification,
9414         cpp_macro_definition): Update.
9415         * cppmain.c (cpp_preprocess_file): Update.
9416         * fix-header.c (read_scan_file): Update.
9417
9418 2002-04-14  Andreas Schwab  <schwab@suse.de>
9419
9420         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
9421
9422 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
9423
9424         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
9425
9426 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
9427
9428         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
9429         not gnu_hurd.
9430
9431 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
9432
9433         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
9434
9435 2002-04-13      Joel Sherrill <joel@OARcorp.com>
9436
9437         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
9438         sparc-elf and sparc-rtems targets.
9439
9440 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
9441
9442         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
9443         defined, and __gnu_hurd__ wherever __GNU__ is defined.
9444         * arm/linux-elf.h: Likewise.
9445         * cris/aout.h: Likewise.
9446         * cris/linux.h: Likewise.
9447         * i370/linux.h: Likewise.
9448         * i386/gnu.h: Likewise.
9449         * i386/linux-aout.h: Likewise.
9450         * i386/linux-oldld.h: Likewise.
9451         * i386/linux.h: Likewise.
9452         * i386/linux64.h: Likewise.
9453         * ia64/linux.h: Likewise.
9454         * m68k/linux-aout.h: Likewise.
9455         * m68k/linux.h: Likewise.
9456         * mips/linux.h: Likewise.
9457         * pa/pa-linux.h: Likewise.
9458         * pj/linux.h: Likewise.
9459         * rs6000/sysv4.h: Likewise.
9460         * s390/linux.h: Likewise.
9461         * sh/linux.h: Likewise.
9462         * sparc/linux-aout.h: Likewise.
9463         * sparc/linux.h: Likewise.
9464         * sparc/linux64.h: Likewise.
9465         * xtensa/linux.h: Likewise.
9466
9467 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
9468
9469         * stmt.c (check_unique_operand_names): Expect operand names to
9470         be strings rather than identifiers.  Use simple_cst_equal to
9471         compare them.
9472         (resolve_operand_name_1): Make same identifier to string change here.
9473         * c-parse.in (asm_operand): Convert a named operand into a string.
9474         * cp/parse.y (asm_operand): Likewise.
9475
9476 2002-04-13  Andreas Schwab  <schwab@suse.de>
9477
9478         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
9479
9480 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
9481
9482         Revert these changes:
9483
9484         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9485
9486         PR c++/5571
9487         * stor-layout.c (layout_decl): Reset the RTL for the decl.
9488
9489 2002-04-12  Richard Henderson  <rth@redhat.com>
9490
9491         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
9492         (sparc*-*-solaris): Clean up header files.
9493         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
9494         and plan on generating 64-bit code.
9495         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
9496         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
9497         * config/sparc/sol2-sld-64.h: Rename ...
9498         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
9499         for AS_SPARC64_FLAG not defined.
9500         * config/sparc/sol2-gld-bi.h: New.
9501         * config/sparc/sol2-sld.h: Remove.
9502         * config/sparc/sol26-sld.h: New.
9503         * config/sparc/sol2.h: Tidy comments.
9504         * doc/install.texi: Document sparc-solaris configury changes.
9505
9506 2002-04-12  Richard Henderson  <rth@redhat.com>
9507
9508         * recog.c (offsettable_address_p): Match the logic in adjust_address.
9509
9510         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
9511         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
9512
9513 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9514
9515         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
9516
9517 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
9518
9519         * pa.c (pa_can_combine_p): Call extract_insn before calling
9520         constrain_operands.
9521
9522 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
9523
9524         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
9525         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
9526         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
9527         (CPP_PREDEFINES): Handle __declspec.
9528         * config/i386/t-interix (USER_H): Remove.
9529
9530 2002-04-12  DJ Delorie  <dj@redhat.com>
9531
9532         * integrate.c (compare_blocks): Make comparisons safe for when
9533         sizeof(int) < sizeof(char *).
9534         (find_block): Likewise.
9535
9536 2002-04-12  Jan Hubicka  <jh@suse.cz>
9537             David Edelsohn  <edelsohn@gnu.org>
9538
9539         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
9540         registers.
9541         (symbol_ref_operand): New.
9542         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
9543         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
9544
9545 2002-04-12  Andreas Schwab  <schwab@suse.de>
9546
9547         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
9548         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
9549         overrides the definition in config/svr4.h.
9550
9551 2002-04-12      Eric Norum <eric.norum@usask.ca>
9552
9553         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
9554         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
9555         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
9556         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
9557         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
9558         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
9559         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
9560         definitions to config/rtems.h and make the targets more similar.
9561
9562 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9563
9564         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
9565         POINTERS_EXTEND_UNSIGNED.
9566         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
9567         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
9568
9569         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
9570         not specified.
9571
9572 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
9573
9574         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
9575         depends on TARGET_SHMEDIA, not TARGET_SH5.
9576
9577 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
9578
9579         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
9580         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
9581
9582 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
9583
9584         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
9585         no r0 clobber.
9586
9587 2002-04-12  Andreas Schwab  <schwab@suse.de>
9588
9589         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
9590
9591 2002-04-12  Richard Henderson  <rth@redhat.com>
9592
9593         PR bootstrap/4191
9594         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
9595
9596         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
9597         modes spanning multiple hard regs.
9598
9599         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
9600
9601 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9602
9603         * pa.c (pa_output_function_prologue): Don't accumulate the total
9604         number of code bytes when using TARGET_64BIT, or gas, SOM and not
9605         the portable runtime.
9606         (output_deferred_plabels): Handle 64bit plabels.
9607         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
9608         generating pic code using the GAS assembler for object formats that
9609         are not SOM (ie., ELF32 and ELF64).
9610         (output_millicode_call): Check attribute type if attribute length is 28.
9611         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
9612         dbr_sequence_length once.
9613         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
9614         dbr_sequence_length once.
9615         * pa.h (TARGET_SOM): Define if not defined.
9616         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
9617         with GAS and not SOM.
9618         (jump, call_internal_reg, call_value_internal_reg): Likewise.
9619         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
9620
9621 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9622
9623         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
9624         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
9625         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
9626         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
9627         elfos.h and dbxelf.h values are fine now.
9628         * config/i386/freebsd.h, config/alpha/freebsd.h
9629         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
9630
9631 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9632
9633         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
9634         or set Acpu or Amachine.  Reformat.
9635         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9636         define.
9637         (LINK_SPEC): Do not need to undef.
9638         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
9639         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
9640         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9641         define.
9642         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
9643         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
9644         (LINK_SPEC): Do not need to undef.
9645         (DONT_USE_BUILTIN_SETJMP): Do not define.
9646         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
9647         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
9648         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
9649         Remove trailing spaces.
9650         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
9651         __ELF__, or set Acpu or Amachine.  Reformat.
9652         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
9653         define.
9654
9655 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9656
9657         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
9658         all other *-*-freebsd* targets.
9659
9660 2002-04-11  Richard Henderson  <rth@redhat.com>
9661
9662         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
9663
9664 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
9665
9666         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
9667         Include {cpu}/{cpu}.h thru tm_file.
9668         (alpha*-*-linux*ecoff): Remove target.
9669         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
9670         (LINK_SPEC): Remove, is not OS independent.
9671         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
9672         (LINK_SPEC): Do not need to #undef any longer.
9673         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
9674         any longer.
9675         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
9676         __ELF__.
9677         (LINK_SPEC): Moved here from alpha/elf.h.
9678         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
9679         SUB_CPP_PREDEFINES.
9680         * config/alpha/linux-ecoff.h: Remove.
9681         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
9682         (CPP_SPEC): Define _POSIX_SOURCE as needed.
9683         (CPP_SUBTARGET_SPEC): Do not define.
9684         (LINK_SPEC): Do not need to #undef any longer.
9685         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
9686         * config/alpha/vms.h: Likewise.
9687
9688 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
9689
9690         * doc/extend.texi: Remove old claim that typedefs cannot have
9691         an alignment attribute.
9692
9693 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
9694
9695         PR optimization/6177
9696         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
9697         bitpos is 0 and bitsize CONCAT size.
9698
9699 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
9700
9701         PR c/6223
9702         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
9703
9704 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
9705
9706         * config/alpha/freebsd.h: Minor reformatting.
9707         (CPP_SPEC): Define ELF and add cpp_subtarget.
9708         (ASM_SPEC): No longer needed.
9709
9710 2002-04-11  Richard Henderson  <rth@redhat.com>
9711
9712         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
9713         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
9714         (dimode mem/zero splitter): New.
9715
9716 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
9717
9718         * config/cris/cris.c (cris_override_options): Tweak error message
9719         for PIC not implemented.
9720
9721         * config/cris/cris.h: Tweak comments related to parameter-passing.
9722
9723         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
9724
9725 2002-04-10  Richard Henderson  <rth@redhat.com>
9726
9727         * except.c (add_ehl_entry): Allow duplicates after landing pad
9728         creation.
9729
9730 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
9731
9732         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
9733
9734 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
9735
9736         * c-decl.c (c_init_decl_processing): Move generation of
9737         decls for g77_integer_type_node and friends from here ...
9738         * c-common.c (c_common_nodes_and_builtins): ... to here.
9739
9740 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
9741
9742         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
9743         is only used as frame pointer when frame_pointer_needed is true.
9744
9745 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
9746
9747         PR target/817
9748         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
9749         for the fact that the pool entry uses two words.
9750         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
9751         1k bytes.
9752         (movdf_soft_insn): Similarly.
9753         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
9754         for the fact that the pool entry uses three words.
9755
9756 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
9757
9758         * config/mips/mips.c (mips_va_arg): When using the struct version
9759         of the EABI va_list, allow arguments in the register save area to
9760         take up less room than a stack argument.
9761
9762 2002-04-10  Richard Henderson  <rth@redhat.com>
9763
9764         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
9765         if EXPAND_INITIALIZER.
9766
9767 2002-04-09  Richard Henderson  <rth@redhat.com>
9768
9769         * config/alpha/alpha.md (movdi_er_maybe_g): New.
9770         * config/alpha/alpha.c (alpha_expand_mov): Use it.
9771
9772 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
9773
9774         PR optimization/6233
9775         * rtlanal.c (pure_call_p): New function.
9776         * rtl.h (pure_call_p): Declare.
9777         * loop.c (prescan_loop): Use it to set has_nonconst_call.
9778         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
9779
9780 2002-04-09  Eric Christopher  <echristo@redhat.com>
9781
9782         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
9783         information to .comm directive.
9784
9785 2002-04-09  Richard Henderson  <rth@redhat.com>
9786
9787         PR c/5078
9788         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
9789
9790 2002-04-09  Richard Henderson  <rth@redhat.com>
9791
9792         * basic-block.h (flow_delete_block_noexpunge): Declare.
9793         (expunge_block_nocompact): Declare.
9794         * cfg.c (expunge_block_nocompact): Split out from ...
9795         (expunge_block): ... here.
9796         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
9797         (flow_delete_block_noexpunge): Split out from ...
9798         (flow_delete_block): ... here.
9799         * cfgcleanup.c (delete_unreachable_blocks): Compact while
9800         removing dead blocks.
9801         * except.c (exception_handler_labels): Remove.
9802         (exception_handler_label_map): New.
9803         (struct eh_region): Add aka member.
9804         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
9805         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
9806         (for_each_eh_label, for_each_eh_label_1): New.
9807         (init_eh): Register exception_handler_label_map.
9808         (free_eh_status): Use free_region.
9809         (find_exception_handler_labels): Use the map, not the list.
9810         (remove_exception_handler_label): Likewise.
9811         (maybe_remove_eh_handler): Likewise.
9812         (remove_eh_handler): Use the region aka bitmap.
9813         * except.h (exception_handler_labels): Remove.
9814         (for_each_eh_label): Declare.
9815         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
9816         * loop.c (invalidate_loops_containing_label): New.
9817         (find_and_verify_loops): Use it.  Use for_each_eh_label.
9818         * sched-rgn.c (is_cfg_nonregular): Use
9819         current_function_has_exception_handlers.
9820
9821 2002-04-09  Richard Henderson  <rth@redhat.com>
9822
9823         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
9824         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
9825         Do not return changed status.
9826         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
9827         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
9828         New functions that do return changed status.
9829         * sbitmap.h: Update decls.
9830         * gcse.c, lcm.c: Use _cg functions as needed.
9831
9832 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
9833
9834         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
9835         (sh64-*-elf*, sh-*-rtemself*): Likewise.
9836         * config/sh/embed_bb.c: New file.
9837         * config/sh/embed-elf.h: New file.
9838         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
9839         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
9840         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
9841         __PTRDIFF_TYPE__ .
9842         (SUBTARGET_CPP_PTR_SPEC): Don't define.
9843         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
9844         Add subtarget_asm_endian_spec.
9845         (ASM_SPEC): Use subtarget_asm_endian_spec.
9846         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
9847         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
9848         (WCHAR_UNSIGNED): Define.
9849         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
9850         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
9851         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
9852         Fix value.
9853         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
9854         (sh_adjust_cost): Likewise.
9855         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
9856         __PTRDIFF_TYPE__ .
9857         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
9858         (WCHAR_TYPE_SIZE): Likewise.
9859         (ASM_SPEC): Use subtarget_asm_endian_spec.
9860         (SH_ELF_WCHAR_TYPE): #undef/ #define.
9861         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
9862         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
9863         (MAX_WCHAR_TYPE_SIZE): Don't #define .
9864         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
9865         (USER_LABEL_PREFIX): Don't #undef /#define .
9866         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
9867         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
9868         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
9869         (ASM_SPEC): Likewise.
9870         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
9871         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
9872         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
9873         (LIB2FUNCS_EXTRA): Define.
9874         * t-sh64 (LIB2FUNCS_EXTRA): Define.
9875         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
9876         (LIB1ASMFUNCS_CACHE): Define.
9877         (LIB2FUNCS_EXTRA): Redefine empty.
9878
9879 2002-04-08  Richard Henderson  <rth@redhat.com>
9880
9881         * reorg.c (get_branch_condition): Use reversed_comparison_code.
9882
9883 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9884
9885         * config/m68hc11/larith.asm (__map_data_section): Fix condition
9886         and optimize for size.
9887         (__do_global_ctors): Fix pointer comparison.
9888         (__do_global_dtors): Likewise.
9889
9890 2002-04-09  David S. Miller  <davem@redhat.com>
9891
9892         * config/sparc/sparc.c (sparc_extra_constraint_check): New
9893         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
9894         allow reloading pseudos.
9895         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
9896         * config/sparc/sparc-protos.h: Declare it.
9897
9898         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
9899         unsigned comparison warning.
9900         (output_restore_regs): Mark leaf_function as unused.
9901
9902 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9903
9904         * expr.c (is_aligning_offset): New function.
9905         (expand_expr, case COMPONENT_EXPR): Call it.
9906
9907 2002-04-08  David S. Miller  <davem@redhat.com>
9908
9909         PR target/6082
9910         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
9911
9912         Make init_priority work on Sparc when using GNU ld.
9913         * config/sparc/linux.h, config/sparc/linux64.h,
9914         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
9915         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
9916         * config/sparc/sol2-gld.h: New file to do the same.
9917         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
9918         sparc/sol2-gld.h to tm_file.
9919
9920         PR optimization/4328
9921         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
9922         * doc/md.texi: Document it.
9923         * config/sparc/sparc.md (movdi_insn_sp64_novis,
9924         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
9925         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
9926         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
9927         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
9928
9929 2002-04-08  Andreas Jaeger  <aj@suse.de>
9930
9931         * stmt.c (expand_asm_operands): Revert last patch from Richard
9932         Henderson.
9933
9934 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9935
9936         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
9937         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
9938
9939 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9940
9941         * doc/contrib.texi (Contributors): Add David O'Brien.
9942
9943 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
9944
9945         * configure.in (auto-build.h): Use target_alias and build_alias
9946         when running configure.
9947         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
9948         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
9949         * configure: Regenerate.
9950
9951 2002-04-07  David S. Miller  <davem@redhat.com>
9952
9953         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
9954
9955 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9956
9957         PR 5933
9958         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
9959         generating 32-bit pic code.
9960
9961 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
9962
9963         * cppinit.c (cpp_create_reader): Initialize
9964         discard_comments_in_macro_exp.
9965         (COMMAND_LINE_OPTIONS): Add "-CC" option.
9966         (cpp_handle_option): Handle "-CC" option.
9967         * cpplex.c (save_comment): If saving a C++ comment in
9968         a directive, convert it to a C comment.
9969         (_cpp_lex_direct): Pass second comment start character to
9970         save_comment to indicate comment type.
9971         * cpplib.c (_cpp_handle_directive): If processing
9972         a "#define" directive and discard_comments_in_macro_exp
9973         is false,  re-enable saving of comments.
9974         (lex_macro_node): If discard_comments_in_macro_exp is false,
9975         discard any comments before the macro identifier.
9976         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
9977         member.
9978         * cppmacro.c (cpp_get_token): If expanding a macro while
9979         processing a directive, discard any comments we might encounter.
9980         (parse_params): If discard_comments_in_macro_exp is false,
9981         ignore comments in the macro parameter list.
9982         * gcc.c (cpp_unique_options): Add "-CC" option.
9983         (option_map): Map "--comments-in-macros" to "-CC".
9984         * doc/cppopts.texi: Document "-CC" option.
9985         * f/lang-specs.h: Add "-CC" option.
9986         * testsuite/gcc.dg/cpp/maccom1.c: New test.
9987         * testsuite/gcc.dg/cpp/maccom2.c: New test.
9988         * testsuite/gcc.dg/cpp/maccom3.c: New test.
9989         * testsuite/gcc.dg/cpp/maccom4.c: New test.
9990         * testsuite/gcc.dg/cpp/maccom5.c: New test.
9991         * testsuite/gcc.dg/cpp/maccom6.c: New test.
9992
9993 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9994
9995         PR middle-end/6180
9996         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
9997
9998 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9999
10000         PR c++/5571
10001         * stor-layout.c (layout_decl): Reset the RTL for the decl.
10002
10003         PR opt/5120
10004         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
10005         RTX_UNCHANGING_P for the functions arguments when a tail call
10006         is made.
10007
10008 2002-04-06  Jason Merrill  <jason@redhat.com>
10009
10010         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
10011         (parse_options_and_default_flags): Set them appropriately.
10012         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
10013
10014 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
10015
10016         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
10017         here.
10018
10019         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
10020         semicolon.
10021
10022         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
10023         types come in by-reference.  Fix typo in comment.
10024
10025 2002-04-05  David S. Miller  <davem@redhat.com>
10026
10027         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
10028         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
10029         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
10030         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
10031
10032 2002-04-05  David S. Miller  <davem@redhat.com>
10033
10034         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
10035         are not going to emit return instructions, emit at least a nop
10036         for the sake of sane backtraces.
10037
10038 2002-04-05  Richard Henderson  <rth@redhat.com>
10039
10040         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
10041
10042 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
10043
10044         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
10045
10046 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
10047
10048         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
10049         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
10050         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
10051
10052 2002-04-05  Andreas Schwab  <schwab@suse.de>
10053
10054         * c-convert.c: Include c-common.h.
10055         * Makefile.in (c-convert.o): Updated.
10056
10057 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
10058
10059         * mklibgcc.in: Use separate libgcc.map for each multilib.
10060         * Makefile.in (distclean): Don't remove libgcc.map here.
10061
10062 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
10063
10064         * Makefile.in (s-mlib): Handle --disable-multilib by separate
10065         genmultilib invocation.
10066
10067 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
10068
10069         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
10070         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
10071         to num_gprs for symmetry.
10072         * config/mips/mips.c: Adjust accordingly.
10073
10074 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
10075
10076         * c-common.c (truthvalue_conversion): Rename, update.
10077         * c-common.h (c_common_truthvalue_conversion): New.
10078         * c-convert.c (convert): Update.
10079         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
10080         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
10081         * c-typeck.c (build_binary_op, build_unary_op,
10082         build_conditional_expr): Update.
10083         * fold-const.c (constant_boolean_node, fold): Use langhook.
10084         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
10085         * langhooks.h (struct lang_hooks): New hook.
10086         * stmt.c (expand_decl_cleanup): Use langhook.
10087         * tree.h (truthvalue_conversion): Remove.
10088 objc:
10089         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
10090
10091 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
10092
10093         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
10094         Add rules to make null object file.
10095
10096 2002-04-04  Jim Blandy  <jimb@redhat.com>
10097
10098         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
10099         macro formal parameter names.
10100
10101 2002-04-04  David S. Miller  <davem@redhat.com>
10102
10103         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
10104
10105 2002-04-04  Richard Henderson  <rth@redhat.com>
10106
10107         PR middle-end/5099
10108         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
10109         Support copies into and out of memory.  Don't accept allows_reg
10110         and allows_mem as gospel.
10111
10112 2002-04-04  Richard Henderson  <rth@redhat.com>
10113
10114         PR opt/6165
10115         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
10116         (write_dependence_p): Likewise.
10117
10118 2002-04-04  Richard Henderson  <rth@redhat.com>
10119
10120         * predict.c (estimate_bb_frequencies): Do frequency calculation
10121         with a volatile temporary.
10122
10123 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
10124
10125         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
10126
10127 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10128
10129         PR c++/6119
10130         * final.c (final_start_function): Don't bump profile_label_no here...
10131         (final_end_function): ...but here.
10132
10133 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10134
10135         * config/sparc/sparc.md (pic): New attribute.
10136         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
10137         into stack slots.
10138         (split after do_builtin_setjmp_setup): New.
10139
10140 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10141
10142         PR fortran/6106
10143         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
10144         change.
10145
10146 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
10147
10148         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
10149         UNITS_PER_WORD for zero sized aggregates.
10150
10151 2002-04-03  David S. Miller  <davem@redhat.com>
10152
10153         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
10154         one-character spec for this, just use %(link_gcc_c_sequence).
10155
10156 2002-04-03  David S. Miller  <davem@redhat.com>
10157
10158         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
10159         handling.
10160
10161 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10162
10163         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
10164         (DWARF_FRAME_RETURN_COLUMN): Move.
10165         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10166         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
10167         * pa.c (except.h, predict.h): Include.
10168         (FRP): Delete.
10169         (store_reg_modify, set_reg_plus_d): Revise prototypes.
10170         (output_ascii): Add cast.
10171         (store_reg_modify): Revise to add frame notes.
10172         (set_reg_plus_d): Likewise.
10173         (compute_frame_size): Include space for eh data registers in frame if
10174         the current function calls eh_return.
10175         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
10176         function calls eh_return.  Save eh data registers if the current
10177         function calls eh_return.  Fix code to add frame notes.  Emit
10178         blockage to prevent insns with frame notes being scheduled in the
10179         delay slot of calls.
10180         (hppa_expand_epilogue): Restore eh data registers and do final stack
10181         adjustment if the current function calls eh_return.  Don't add frame
10182         notes.
10183         (output_call): Revise for change in length of call insn.  Don't do
10184         return pointer adjustment for an unconditional jump in the delay slot
10185         of a call when using frame notes.
10186         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
10187         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
10188         (ARG_POINTER_CFA_OFFSET): Define.
10189         * pa.md (return_external_pic): New pattern.
10190         (prologue): Correct formatting.  Use return_external_pic if current
10191         function calls eh_return.
10192         (call_internal_symref, call_value_internal_symref,
10193         sibcall_internal_symref, sibcall_value_internal_symref): Change default
10194         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
10195         respectively.
10196         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
10197
10198         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
10199         list of targets to check using "nop" insn.
10200         * configure: Rebuilt.
10201
10202 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
10203
10204         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
10205
10206 2002-04-03  David S. Miller  <davem@redhat.com>
10207
10208         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
10209         library sequence passed to the linker.
10210         (LINK_COMMAND_SPEC): Use it.
10211         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
10212         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
10213         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10214
10215 2002-04-03  Jason Merrill  <jason@redhat.com>
10216
10217         * except.c (struct eh_status): Remove protect_list.
10218         (begin_protect_partials, end_protect_partials): Remove.
10219         (add_partial_entry): Remove.
10220         * except.h: Remove prototypes.
10221
10222         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
10223         expand_decl_cleanup_eh.
10224
10225         PR c++/5636
10226         * tree.h (CLEANUP_EH_ONLY): New macro.
10227         * stmt.c (expand_decl_cleanup_eh): New fn.
10228         (expand_cleanups): Check CLEANUP_EH_ONLY.
10229         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
10230         Use expand_decl_cleanup_eh.
10231         (expand_stmt): Adjust.
10232         * c-common.h: Adjust prototype.
10233
10234 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
10235
10236         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
10237         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
10238         (cris_target_asm_function_epilogue): Ditto.
10239         (cris_initial_frame_pointer_offset): Ditto.
10240         (cris_simple_epilogue): Ditto.
10241         (cris_expand_builtin_va_arg): Variable-size types come in
10242         by-reference.
10243
10244 2002-04-03  David S. Miller  <davem@redhat.com>
10245
10246         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
10247         little-endian.
10248         (set_fast_math): Correct 'fsr' type.
10249
10250 2002-04-03  Richard Henderson  <rth@redhat.com>
10251
10252         PR opt/3569
10253         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
10254         * toplev.c (check_global_declarations): Use it.
10255         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
10256         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10257         (LANG_HOOKS_DECLS): Add it.
10258         * langhooks.c (lhd_warn_unused_global_decl): New.
10259         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10260         * c-objc-common.c (c_warn_unused_global_decl): New.
10261         * c-tree.h (c_warn_unused_global_decl): Declare.
10262         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
10263
10264 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10265
10266         * langhooks-def.h (lhd_set_decl_assembler_name,
10267         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
10268         (LANG_HOOKS_INITIALIZER): Update.
10269         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
10270         * langhooks.h (struct lang_hooks): New hook.
10271         * tree.c (set_decl_assembler_name): Move to langhooks.c.
10272         (lang_set_decl_assembler_name): Remove.
10273         (init_obstacks): Don't set hook.
10274         (decl_assembler_name): New function.
10275         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
10276         (decl_assembler_name): New.
10277         (lang_set_decl_assembler_name): Remove.
10278
10279 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
10280
10281         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
10282         works properly with .hidden symbols.
10283         * configure: Rebuilt.
10284         * config.in: Rebuilt.
10285         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10286         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
10287         properly with .hidden symbols.
10288
10289 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
10290
10291         PR middle-end/6102
10292         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
10293         USE argument.
10294
10295 2002-04-03  Richard Henderson  <rth@redhat.com>
10296
10297         PR opt/4120
10298         * sched-rgn.c (sets_likely_spilled): New.
10299         (sets_likely_spilled_1): New.
10300         (add_branch_dependences): Use it.
10301
10302 2002-04-02  Richard Henderson  <rth@redhat.com>
10303
10304         PR opt/4311
10305         * loop.h (LOOP_FIRST_PASS): New.
10306         * loop.c (strength_reduce): Mind it when deciding to unroll.
10307         * toplev.c (rest_of_compilation): Set it.
10308
10309 2002-04-02  David S. Miller  <davem@redhat.com>
10310
10311         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
10312         mems_ok_for_ldd_peep when the order of the loads being examined
10313         is reversed.
10314         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
10315         existing comment to increase comprehension of this situation.
10316
10317 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
10318
10319         * config/sh/sh.md: Don't use union real_extract.
10320
10321 2002-04-02  Richard Henderson  <rth@redhat.com>
10322
10323         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
10324
10325 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
10326
10327         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
10328         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
10329         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
10330         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
10331         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
10332         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
10333         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
10334         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
10335         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
10336         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
10337         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
10338         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
10339         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
10340         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
10341         Include as many configury headers via tm_file as possible.  This
10342         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
10343         * config/openbsd-oldgas.h: New file.
10344         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
10345         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
10346         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
10347         config/i386/i386-coff.h, config/i386/i386-interix.h,
10348         config/i386/iscdbx.h, config/i386/linux-aout.h,
10349         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
10350         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
10351         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
10352         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
10353         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
10354         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
10355         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
10356         config/i386/vxi386.h: Do not directly include configury headers.
10357         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
10358         Directly include configury headers that are no longer automatically
10359         included by the above headers.
10360         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
10361         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
10362         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
10363         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
10364         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
10365         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
10366         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
10367         (TARGET_VERSION): Define.
10368         * config/i386/beos-elf.h, config/i386/freebsd.h,
10369         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
10370         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
10371         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
10372         config/i386/sco5.h, config/i386/sysv4.h
10373         (TARGET_VERSION): Do not need to protect.
10374         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
10375         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
10376         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
10377         config/i386/i386-interix.h, config/i386/linux-aout.h,
10378         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
10379         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
10380         (YES_UNDERSCORES): Do not define - not needed.
10381         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
10382         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
10383         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
10384         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
10385         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
10386         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
10387         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
10388         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
10389
10390 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
10391             Richard Henderson  <rth@redhat.com>
10392
10393         PR c/5484
10394         * function.c (assign_temp): Accept either type or decl argument.
10395         Detect variables whose size is too large to fit into an integer.
10396         * stmt.c (expand_decl): Pass the decl, not the type.
10397
10398 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
10399
10400         * protoize.c: Match include directory usage with cppdefault.c.
10401
10402 2002-04-03  Jeffrey A Law  (law@redhat.com)
10403             Hans-Peter Nilsson  <hp@bitrange.com>
10404
10405         * combine.c (simplify_comparison): Avoid narrowing a comparison
10406         with a paradoxical subreg when doing so would drop signficant bits.
10407
10408 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
10409
10410         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
10411         if POINTERS_EXTEND_UNSIGNED is defined.
10412
10413 2002-04-02  Richard Henderson  <rth@redhat.com>
10414
10415         PR opt/3967
10416         * local-alloc.c (contains_replace_regs): LO_SUM may contain
10417         replace regs.
10418
10419 2002-04-02  Richard Henderson  <rth@redhat.com>
10420
10421         * doc/standards.texi: Document required freestanding libc entry points.
10422
10423 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
10424
10425         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
10426         associated splitter.  Remove MQ constraint.
10427         (ctrdi_internal4): Correct CCmode clobber.
10428
10429 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10430
10431         * milli64.S ($$dyncall): New function.
10432         * t-linux (LIB1ASMFUNCS): Revise module list.
10433         (LIB1ASMSRC): Use pa/milli64.S.
10434
10435 2002-04-02  Richard Henderson  <rth@redhat.com>
10436
10437         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
10438         rename solaris_sys_varargs_h.
10439
10440 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10441
10442         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
10443         the same mode as its component.
10444
10445 2002-04-02  Richard Henderson  <rth@redhat.com>
10446
10447         PR opt/190
10448         * final.c (this_is_asm_operands): Export.
10449         * output.h (this_is_asm_operands): Declare.
10450         * config/i386/i386.c (print_operand): Error odd asm operands.
10451
10452 2002-04-02  Richard Henderson  <rth@redhat.com>
10453
10454         PR opt/420
10455         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
10456
10457 2002-04-01  Richard Henderson  <rth@redhat.com>
10458
10459         PR target/1538
10460         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
10461         * fixinc/fixincl.x: Rebuild.
10462
10463 2002-04-01  Richard Henderson  <rth@redhat.com>
10464
10465         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
10466         (atomic_alloc, atomic_free): New.
10467         (SIZE, MASK_FOR, PTR_IN): New.
10468         (emergency_reg_state, emergency_reg_state_free): New.
10469         (emergency_labeled_state, emergency_labeled_state_free): New.
10470         (reg_state_alloced, labeled_state_alloced): New.
10471         (alloc_reg_state, free_reg_state): New.
10472         (alloc_label_state, free_label_state, free_label_states): New.
10473         (push, pop, dup_state_stack, free_state_stack): Use them.
10474         (desc_label_state): Likewise.
10475         (uw_frame_state_for): Free label states and state stack.
10476         (uw_update_reg_address): Eliminate warnings.
10477
10478 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
10479
10480         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
10481         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
10482
10483 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10484
10485         * c-decl.c (grokdeclarator): Update.
10486         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
10487         * c-tree.h (c_mark_addressable): New.
10488         * c-typeck.c (default_function_array_conversion, build_unary_op,
10489         build_array_ref, convert_for_assignment): Update.
10490         (mark_addressable): Rename.
10491         * calls.c (try_to_integrate, expand_call): Use langhook.
10492         * expr.c (expand_expr): Use langhook.
10493         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
10494         * langhooks.h (struct lang_hooks): New hook.
10495         * stmt.c (expand_asm_operands): Use langhook.
10496         * tree.h (mark_addressable): Remove.
10497 objc:
10498         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
10499
10500 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
10501
10502         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
10503         in previous change.
10504
10505 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
10506
10507         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
10508         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
10509
10510 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10511
10512         * c-common.c (unsigned_conversion_warning, convert_and_check,
10513         unsigned_type, signed_type, shorten_compare,
10514         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
10515         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
10516         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
10517         New.
10518         * c-decl.c (grokdeclarator): Update.
10519         * c-format.c (check_format_types): Update.
10520         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
10521         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
10522         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
10523         * convert.c (convert_to_integer): Use new hooks.
10524         * expmed.c (make_tree): Use new hooks.
10525         * expr.c (store_expr): Use new hooks.
10526         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
10527         all_ones_mask_p, unextend, fold): Use new hooks.
10528         * langhooks.h (struct lang_hooks_for_types): New hooks.
10529         * tree.h (signed_or_unsigned_type, signed_type,
10530         unsigned_type): Remove.
10531 objc:
10532         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
10533         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
10534
10535 2002-03-31  Richard Henderson  <rth@redhat.com>
10536
10537         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
10538         (desc_frgr_mem): Fix reference to f16-f31.
10539
10540 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10541
10542         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
10543         RTVEC_ELT): Const-ify.
10544         * varray.h (VARRAY_CHECK): Const-ify.
10545         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
10546         ggc_mark_rtvec, ggc_mark): Const-ify.
10547
10548 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
10549
10550         * diagnostic.c: Include langhooks-def.h.
10551         * Makefile.in (diagnostic.o): Update.
10552
10553 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
10554
10555         * c-common.c (c_unsafe_for_reeval): Rename.
10556         * c-common.h (c_unsafe_for_reeval): Rename.
10557         * c-decl.c (finish_incomplete_decl): Rename.
10558         (c_init_decl_processing): Don't set langhook.
10559         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
10560         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
10561         * c-objc-common.c (c_objc_common_init): Don't set langhook.
10562         * c-tree.h (finish_incomplete_decl): Rename.
10563         * langhooks-def.h (lhd_unsafe_for_reeval): New.
10564         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
10565         (LANG_HOOKS_INITIALIZER): Update.
10566         * langhooks.c (lhd_unsafe_For_reeval): New.
10567         * langhooks.h (struct langhooks): New hooks.
10568         * toplev.c (incomplete_decl_finalize_hook): Remove.
10569         (wrapup_global_declarations): Update.
10570         * tree.c (lang_unsafe_for_reeval): Remove.
10571         (unsafe_for_reeval): Update.
10572         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
10573         Remove.
10574 objc:
10575         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
10576         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
10577
10578 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
10579
10580         * diagnostic.c (print_error_function): Remove.
10581         (default_print_error_function): Rename.
10582         (report_error_function): Update.
10583         * diagnostic.h (print_error_function): Remove.
10584         (default_print_error_function): Remove.
10585         * langhooks-def.h (struct diagnostic_context): Predeclare.
10586         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
10587         (LANG_HOOKS_INITIALIZER): Update.
10588         * langhooks.h (struct diagnostic context): Predeclare.
10589         (struct lang_hooks): New hook.
10590
10591 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10592
10593         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
10594         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
10595         !flag_pic.
10596         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
10597         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
10598         of PIC_OFFSET_TABLE_REGNUM thruout.
10599         * config/rs6000/rs6000.md: Likewise.
10600         * config/rs6000/darwin.h: Likewise.
10601
10602 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10603
10604         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
10605         unsigned HOST_WIDE_INT, not unsigned int.
10606
10607 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10608
10609         PR middle-end/6096, middle-end/6098, middle-end/6099
10610         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
10611         CODE_LABELs.
10612         (fill_slots_from_thread): Likewise.
10613
10614 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10615
10616         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
10617         floating fields in float regs.
10618         (function_arg_record_value_2): Likewise.
10619
10620 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
10621
10622         * config/mmix/mmix.md (define_constants): Remove misleading
10623         FIXME.  Add MMIX_fp_rO_OFFSET.
10624         ("nonlocal_goto_receiver"): Don't have stack-frame address of
10625         saved rO as part of the pattern.  Remove FIXME.
10626         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
10627         here, at output-time.
10628
10629 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
10630
10631         PR middle-end/6100
10632         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
10633         REG_BR_PRED.
10634         (output_v9branch): Likewise.
10635
10636 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
10637
10638         * gcc.c: Revert previous patch for now.
10639         * config/i386/djgpp.h: Likewise.
10640
10641 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
10642
10643         * config/mmix/crti.asm (_init): Register _fini with atexit.
10644         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
10645
10646 2002-03-31  Richard Henderson  <rth@redhat.com>
10647
10648         PR target/3997
10649         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
10650         (ASM_OUTPUT_DEF_FROM_DECLS): New.
10651
10652 2002-03-31  Richard Henderson  <rth@redhat.com>
10653
10654         * libgcc2.c (__bb_exit_func): Make static.
10655
10656         * config/alpha/alpha.md (trap): New.
10657
10658 2002-03-31  Richard Henderson  <rth@redhat.com>
10659
10660         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
10661         promoted argument types; build trap.
10662         (expand_builtin_trap): New.
10663         (expand_builtin): Use it.
10664         * stmt.c (expand_nl_goto_receivers): Likewise.
10665         * expr.h (expand_builtin_trap): Declare.
10666         * libfuncs.h (LTI_abort, abort_libfunc): New.
10667         * optabs.c (init_optabs): Init abort_libfunc.
10668
10669 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
10670
10671         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
10672         (LINK_COMMAND_SPEC): ... from here.
10673         (init_gcc_specs): Duplicate it here too, omitting
10674         shared_name in the second copy.
10675         (init_spec): Test for duplicate
10676         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
10677
10678 2002-03-30  David S. Miller  <davem@redhat.com>
10679
10680         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10681         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
10682
10683 2002-03-30  Roger Sayle <roger@eyesopen.com>
10684             Richard Henderson  <rth@redhat.com>
10685
10686         * regmove.c (combine_stack_adjustments_for_block): Avoid
10687         emitting a stack adjustment of zero bytes.  Let delete_insn
10688         update bb->head.
10689
10690 2002-03-30  Richard Henderson  <rth@redhat.com>
10691
10692         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
10693         (sparc_emitting_epilogue): New.
10694         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
10695         * config/sparc/sparc-protos.h: Update.
10696         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
10697         (TARGET_SWITCHES): Update.
10698         * config/sparc/sparc.md (return): Remove.
10699         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
10700         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
10701         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
10702         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10703         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
10704         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
10705         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
10706         Remove MASK_EPILOGUE.
10707         * doc/invoke.texi: Update.
10708
10709 2002-03-30  Daniel Berlin  <dan@dberlin.org>
10710
10711         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
10712         CPP will start the file for us.
10713
10714 2002-03-30  Richard Henderson  <rth@redhat.com>
10715
10716         PR target/5446
10717         * config/ia64/ia64.c (group_barrier_needed_p): Special case
10718         prologue_allocate_stack.
10719         (ia64_single_set): Use insn codes for recognition of special
10720         cases, not rtl matching.
10721         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
10722
10723 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
10724
10725         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
10726
10727 2002-03-30  Richard Henderson  <rth@redhat.com>
10728
10729         PR target/6032
10730         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
10731         or -fomit-frame-pointer with profiling.
10732         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
10733         (FUNCTION_PROFILER): Do nothing.
10734         (PROFILE_HOOK): New.
10735         * config/sparc/sparc.c (sparc_override_options): Don't check
10736         code models for profiling.
10737         (sparc_function_profiler): Remove.
10738         (sparc_profile_hook): New.
10739         * config/sparc/sparc-protos.h: Update.
10740
10741 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
10742
10743         PR optimization/6086
10744         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
10745         of SUBREG of volatile MEM or because the MEM was mode dependent,
10746         return CLOBBER instead of unmodified SUBREG.
10747
10748 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
10749
10750         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
10751         when not optimizing.
10752
10753         * toplev.c (rest_of_compilation): Cann mark_constant_function
10754         only when optimizing.
10755
10756         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
10757         are NULL.
10758
10759         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
10760         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
10761         (try_optimize_cfg): clear all AUX fields.
10762
10763         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
10764         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
10765         (ix86_address_cost): Be prepared for SUBREGed registers.
10766         (legitimate_address_p): Accept SUBREGed registers.
10767
10768 2002-03-29  Richard Henderson  <rth@redhat.com>
10769
10770         PR target/5672
10771         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
10772
10773 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10774
10775         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
10776         for aggregate and TFmode types.
10777
10778 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
10779
10780         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
10781
10782 2002-03-29  Richard Henderson  <rth@redhat.com>
10783
10784         PR target/5886
10785         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
10786         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
10787
10788 2002-03-29  Richard Henderson  <rth@redhat.com>
10789
10790         PR target/6041
10791         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
10792         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
10793         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
10794         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
10795         conditional.
10796         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
10797
10798 2002-03-29  Dale Johannesen <dalej@apple.com>
10799
10800         * loop.c (combine_movables): Do allow combination of pseudos.
10801
10802 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
10803
10804         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
10805         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
10806         No functional change except ...
10807         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
10808         * doc/install.texi (*-*-freebsd*): Document port configuration.
10809
10810 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10811
10812         * Makefile.in (convert.o, calls.o, expmed.o): Update.
10813         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
10814         Use new hooks.
10815         * builtin-types.def (BT_PTRMODE): Update.
10816         * c-common.c (type_for_size): Rename c_common_type_for_size.
10817         (type_for_mode): Similarly.
10818         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
10819         Use new hook.
10820         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
10821         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
10822         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
10823         Redefine.
10824         * c-typeck.c (common_type, comptypes, default_conversion):
10825         Use new hooks.
10826         * calls.c: Include langhooks.h.
10827         (emit_library_call_value_1): Use new hooks.  Avoid redundant
10828         calls.
10829         * convert.c: Include langhooks.h
10830         (convert_to_pointer, convert_to_integer): Use new hooks.
10831         * except.c (init_eh): Similarly.
10832         * expmed.c: Include langhooks.h.
10833         (expand_mult_add): Use new hooks.
10834         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
10835         try_casesi): Similarly.
10836         * fold-const.c (optimize_bit_field_compare, make_range,
10837         decode_field_reference, fold_truthop, fold): Similarly.
10838         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
10839         put_var_into_stack): Similarly.
10840         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
10841         LANG_HOOKS_TYPE_FOR_SIZE): New.
10842         (LANG_HOOKS_TYPES_INITIALIZER): Update.
10843         * langhooks.h (lang_hooks_for_types): New hooks.
10844         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
10845         * tree.c (get_unwidened, get_narrower): Similarly.
10846         * tree.h (type_for_mode, type_for_size): Remove.
10847         * varasm.c (force_const_mem): Use new hooks.
10848         * utils2.c (nonbinary_modular_operation): Update.
10849 objc:
10850         * objc-act.c (handle_impent): Update.
10851         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
10852         Redefine.
10853
10854 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
10855
10856         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
10857         * config/ia64/ia64.c (basereg_operand): New.
10858         * config/ia64/ia64-protos.h (basereg_operand): Declare.
10859         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
10860
10861 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
10862
10863         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
10864         unwind information when frame_pointer_needed.
10865         (mmix_assemble_integer): Tweak wording in comment.
10866
10867 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10868
10869         * Makefile.in (except.o): Update.
10870         * except.c: Include langhooks.h.
10871         (init_eh): Use langhook.
10872         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
10873         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
10874         (LANG_HOOKS_INITIALIZER): Update.
10875         * langhooks.h (lang_hooks_for_types): New.
10876         (struct lang_hooks): Add it.
10877         * tree.c (make_lang_type_fn, make_lang_type): Remove.
10878         * tree.h (make_lang_type_fn, make_lang_type): Remove.
10879 config:
10880         * alpha/alpha.c: Include langhooks.h.
10881         (alpha_build_va_list): Use langhook.
10882         * d30v/d30v.c: Include langhooks.h.
10883         (d30v_build_va_list): Use langhook.
10884         * i386/i386.c: Include langhooks.h.
10885         (ix86_build_va_list): Use langhook.
10886         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
10887         * s390/s390.c: Include langhooks.h.
10888         (s390_build_va_list): Use langhook.
10889         * stormy16/stormy16.c: Include langhooks.h.
10890         (stormy16_build_va_list): Use langhook.
10891
10892 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
10893
10894         PR c++/5964
10895         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
10896         attributes.
10897         (length): Compute variable length for branches/calls/jumps here.
10898         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
10899         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
10900         define branch_type attribute.
10901         (divsi3_sp32): Maximum length is 6 not 7.
10902         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
10903         call_address_untyped_struct_value_sp32,
10904         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
10905         * config/sparc/sparc.c (empty_delay_slot): New function.
10906         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
10907         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
10908
10909 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
10910
10911         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
10912         nonzero_bits if not needed.
10913         (nonzero_bits) [XOR]: Likewise.
10914         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
10915         reg_last_set_mode and mode are both MODE_INT, but not equal.
10916         (record_value_for_reg): Compute reg_last_set_nonzero_bits
10917         in nonzero_bits_mode for MODE_INT modes.
10918
10919 2002-03-28  Richard Henderson  <rth@redhat.com>
10920
10921         PR target/5715
10922         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
10923         to GAS.  Correct drift between alternatives.
10924
10925 2002-03-28  Richard Henderson  <rth@redhat.com>
10926
10927         PR target/6087
10928         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
10929
10930 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
10931
10932         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
10933         emulation to the linker.
10934
10935 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
10936
10937         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
10938         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
10939
10940 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
10941
10942         * combine.c (simplify_and_const_int): Make sure to apply mask
10943         when force_to_mode returns a constant integer.  PR3311.
10944
10945 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10946
10947         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
10948
10949 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10950
10951         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
10952         and Objective-C Dialect Options.
10953
10954 2002-03-28  Richard Henderson  <rth@redhat.com>
10955
10956         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
10957         comparison should be done vs !=0 not >0 return code.  Tidy cases.
10958
10959 2002-03-28  Richard Henderson  <rth@redhat.com>
10960
10961         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
10962         on to c_expand_body.
10963         * c-tree.h (finish_function): Update decl.
10964         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
10965
10966 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10967
10968         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
10969
10970 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
10971
10972         * rtlanal.c: Include flags.h
10973         (may_trap_p): Do not mark FP operations if trapping
10974         if !flag_trapping_math
10975         * Makefile.in (rtlanal.o): Add dependency on flag.h
10976         * ifcvt.c (noce_operand_ok): Avoid the lameness.
10977
10978 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
10979
10980         * mips.md: Use dconst1, not 1.0, as first argument of
10981         REAL_VALUE_LDEXP.  Don't use union real_extract.
10982
10983 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
10984
10985         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
10986         rather than $target.  Heed program_prefix and
10987         program_transform_name.  Search for gas in cross-compiler case too.
10988         "test -x" rather than "test -f".
10989         (gcc_cv_ld): Likewise.
10990         (gcc_cv_nm): Heed program_prefix and program_transform_name.
10991         (gcc_cv_objdump): Likewise.
10992         * configure: Regenerate.
10993
10994 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10995
10996         * Makefile.in (attribs.o): Update.
10997         * attribs.c: Include langhooks.h.
10998         (decl_attributes): Use langhook.
10999         * c-decl.c (insert_default_attributes): Rename.
11000         * c-tree.h (c_insert_default_attributes): New.
11001         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
11002         (LANG_HOOKS_INITIALIZER): Update.
11003         * langhooks.h (struct lang_hooks): New hook.
11004         * tree.h (insert_default_attributes): Remove.
11005 objc:
11006         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
11007
11008 2002-03-27  Andreas Schwab  <schwab@suse.de>
11009
11010         * config/i386/i386.c (classify_argument): Also check for
11011         QUAL_UNION_TYPE.
11012
11013 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11014
11015         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
11016         any more.
11017
11018 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11019
11020         * i960.md (ret): Set PC.
11021         (nonlocal_goto): Fix expander.
11022         * builtins.c (epxand_builin_longjmp): Check that we've emitted
11023         some jump or call.
11024
11025 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11026
11027         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
11028         of libcall regions.
11029
11030 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11031
11032         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
11033         assigning to BLOCK_FOR_INSN directly.
11034
11035 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
11036
11037         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
11038
11039 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11040
11041         * c-common.c (c_expand_expr): Fix prototype.
11042         * c-common.h (c_expand_expr): Always declare, update.
11043         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
11044         * c-objc-common.c (c_objc_common_init): No global hook.
11045         * expr.c (expand_expr): Use langhook.
11046         * expr.h (enum expand_modifier): Conditionally declare.
11047         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
11048         (LANG_HOOKS_INITIALIZER): Update.
11049         * langhooks.c (lhd_expand_expr): New.
11050         * langhooks.h (struct lang_hooks): New hook.
11051         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
11052         (lang_independent_init): Don't default hook.
11053 objc:
11054         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
11055
11056 2002-03-27  Richard Henderson  <rth@redhat.com>
11057
11058         PR target/6054
11059         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
11060         TARGET_CONST_GP.  Simplify conditions.
11061
11062 2002-03-27  Richard Henderson  <rth@redhat.com>
11063
11064         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
11065         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
11066         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
11067
11068 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
11069
11070         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
11071         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
11072         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
11073         Remove unnecessary masks.
11074         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
11075         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
11076         -mwindows, -mdll switches and their negations.
11077
11078 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11079
11080         * gcc-common.c (lang_mark_false_label_stack): Remove.
11081         * ggc.h (lang_mark_false_label_stack): Similarly.
11082
11083 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
11084
11085         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
11086
11087         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
11088         or __rtems_ is defined.
11089
11090 2002-03-26  Richard Henderson  <rth@redhat.com>
11091
11092         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
11093         if a non-trivial load was emitted.
11094         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
11095         in high+extra+low case.
11096
11097 2002-03-26  Richard Henderson  <rth@redhat.com>
11098
11099         * config.gcc (sparc*-solaris): Use float_format=sparc.
11100
11101 2002-03-26  Richard Henderson  <rth@redhat.com>
11102
11103         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11104         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
11105         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
11106         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
11107         (WINT_TYPE_SIZE): Fix at 32.
11108
11109 2002-03-26  Richard Henderson  <rth@redhat.com>
11110
11111         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
11112         until after eh landing pad generation.
11113         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
11114         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
11115
11116 2002-03-26  Richard Henderson  <rth@redhat.com>
11117
11118         * expr.h (ADD_PARM_SIZE): One more convert for INC.
11119
11120 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
11121
11122         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
11123         and warning switches.
11124         (cc1_options):  Likewise.
11125
11126 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
11127
11128         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
11129         Restore more of the signal context.  Set no_reg_stack_frame.
11130         * config/ia64/unwind-ia64.c (unw_state_record):
11131         Add no_reg_stack_frame, comments.
11132         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
11133         (uw_update_context): Adjust bsp when unwinding from leaf,
11134         but not signal frame.
11135
11136 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
11137
11138         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
11139
11140 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
11141
11142         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
11143
11144 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
11145
11146         PR target/5621
11147         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
11148         "Add a pool_range attribute", which was lost during the ARM/Thumb
11149         merge.
11150
11151 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
11152
11153         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
11154         a register into the MAC16 accumulator.
11155
11156 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
11157
11158         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
11159         (Warning Options): Document -Wswitch-enum.
11160         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
11161         -Wswitch.
11162         (warn_switch_enum): Define variables.
11163         * flags.h (warn_switch_enum): Declare variables.
11164         * stmt.c (expand_end_case_type): When warn_switch_enum /
11165         -Wswitch-enum, perform switch checks.
11166         Fix PR c/5044.
11167
11168 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
11169
11170         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
11171         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
11172         (reload_muladdsi_compare0_scratch): Delete.
11173
11174 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
11175
11176         * doc/install.texi (*-*-freebsd*): Update.
11177
11178 2002-03-26  Richard Henderson  <rth@redhat.com>
11179
11180         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
11181         (SUB_PARM_SIZE): Cast DEC to ssizetype.
11182
11183         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
11184         types from the normal argument frame.
11185
11186         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
11187         variable sized objects by reference.
11188         (sparc_va_arg): Receive them by reference too.
11189
11190 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
11191
11192         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
11193         code to not restoring global registers.
11194
11195 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
11196
11197         * Makefile.in (ggc-common.o): Update.
11198         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
11199         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
11200         * c-tree.h (c_mark_tree): New.
11201         * ggc-common.c: Include langhooks.h.
11202         (gcc_mark_trees): Use new langhook.
11203         * ggc-callbacks.c: Delete file.
11204         * ggc.h (lang_mark_tree): Remove.
11205         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
11206         (LANG_HOOKS_INITIALIZER): Update.
11207         * langhooks.h (struct lang_hooks): New hook.
11208 objc:
11209         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
11210
11211 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
11212
11213         * doc/cpp.texi: Exclude entire Top node from printed manual.
11214         Move option index after directive index.  Insert page breaks
11215         before GFDL and concept index.  Index environment variables
11216         with command line options.
11217         * doc/cppenv.texi: Use @vtable for environment variable list.
11218         Add paragraph explaining semantics of empty elements in path
11219         variables.  Exclude a cross-reference to Fishkill from the
11220         manpage.  Remove an unnecessary cross-reference of the entry
11221         right above the referer.  Don't use @anchor in text that goes
11222         into manpage.
11223         * doc/cppopts.texi: Cross-reference the environment variables
11224         section, not the specific environment variable, for consistency.
11225
11226 2002-03-25  Richard Henderson  <rth@redhat.com>
11227
11228         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
11229         anywhere in the block.  Don't refer to insns that have been
11230         removed from the chain.  Iterate backward through the new insns.
11231         Don't refer to edges that have been removed.
11232
11233 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
11234
11235         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
11236         test for overflow of constant.
11237
11238 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
11239
11240         PR target/2623
11241         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
11242         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
11243         these patterns on arm_archv4.
11244
11245 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
11246
11247         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
11248         int".
11249
11250 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
11251
11252         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
11253         float_handled, float_handler, float_signal, set_float_handler,
11254         and do_float_handler.  Set handler for SIGFPE to crash_signal.
11255         * toplev.h: Don't prototype do_float_handler.
11256
11257         * c-lex.c: Fold parse_float into lex_number.  Make warning
11258         about portability of hex float constants more informative, and
11259         don't issue it on top of a syntax error.
11260         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
11261         their callers.
11262         * real.h: Define REAL_VALUE_ABS here...
11263         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
11264         simplify_unary_real, simplify_binary_real, and
11265         simplify_binary_is2orm1 into their callers.
11266         * tree.c: Fold build_real_from_int_cst_1 into caller.
11267
11268         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
11269
11270         * tsystem.h: Include float.h here...
11271         * libgcc2.c: ... not here.
11272
11273 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
11274
11275         Fixes for: PR bootstrap/3591, target/5676
11276         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
11277         defined.  Do not disable exceptions or rtti.
11278         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
11279         mcore.h.  Disable exceptions and rtti, since they are not
11280         supported by EPOC.
11281
11282 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
11283
11284         * c-decl.c (maybe_build_cleanup): Remove.
11285         * expr.c (expand_expr): Use langhook.
11286         * langhooks-def.h (lhd_return_null_tree,
11287         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
11288         (LANGHOOKS_INITIALIZER): Update.
11289         * langhooks.c (lhd_return_null_tree): New.
11290         * langhooks.h (struct lang_hooks): New hook.
11291         * tree-inline.c (initialize_inlined_parameters): Use langhook.
11292         * tree.h (maybe_build_cleanup): Remove.
11293
11294 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
11295
11296         * regrename.c (build_def_use): Move recog_memoized
11297         before extract_insn.
11298
11299 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
11300
11301         PR target/6043
11302         * expr.c (emit_group_store): Handle storing into CONCAT.
11303
11304 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
11305
11306         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
11307         corresponding MATCH_DUP.
11308
11309 2002-03-24  Richard Henderson  <rth@redhat.com>
11310
11311         * unroll.c (unroll_loop): Zero label_map.
11312
11313         * gcse.c: Include except.h.
11314         * Makefile.in (gcse.o): Update.
11315
11316 2002-03-24  Richard Henderson  <rth@redhat.com>
11317
11318         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
11319         Do resolve_unique_section before shared data clause.
11320
11321 2002-03-24  Richard Henderson  <rth@redhat.com>
11322
11323         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
11324
11325 2002-03-24  Richard Henderson  <rth@redhat.com>
11326
11327         * recog.c (peephole2_optimize): Split blocks when EH insns are
11328         generated in the middle of a block.  Do global life update if
11329         zapped EH edges.
11330
11331 2002-03-24  Richard Henderson  <rth@redhat.com>
11332
11333         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
11334
11335 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11336
11337         preprocessor/3951
11338         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
11339         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
11340         (init_dependency_output): Don't make no_output decision here.
11341
11342 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
11343
11344         * stmt.c (check_for_full_enumeration_handling): Remove tests of
11345         warn_switch.  Update description.
11346         (expand_end_case_type): Call check_for_full_enumeration_handling
11347         when warn_switch.
11348
11349 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11350
11351         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
11352         (m68hc11_split_move): Call it to see if the source and destination
11353         operands use the same direction auto inc/dec mode, otherwise make the
11354         source an offsetable memory operand and generate an add.
11355
11356 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11357
11358         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
11359         register for operand 2.
11360         ("*subsi3_zero_extendqi"): Likewise.
11361         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
11362         bits so that it is compatible with a pop.
11363         ("*andhi3_gen"): Likewise.
11364         ("xorhi3"): Likewise.
11365
11366 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11367
11368         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
11369         -pedantic here...
11370         (cpp_post_options): ... not here.
11371
11372 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11373             Aldy Hernandez  <aldyh@redhat.com>
11374
11375         Removal of separate preprocessor cpp0.
11376
11377         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
11378         cpp0, install-common): Update.
11379         * c-common.c (flag_preprocess_only): New.
11380         (c_common_init): Preprocess for -E.
11381         * c-common.h (flag_preprocess_only): New.
11382         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
11383         * c-objc-common.c (c_init_decl_processing): Exit quickly
11384         for NULL return from c_common_init.
11385         * cpplib.h (cpp_preprocess_file): New.
11386         * cppmain.c (main, general_init, pfile, progname): Remove.
11387         (do_preprocessing): Rename cpp_preprocess_file, don't call
11388         cpp_finish.  Don't close stdout here.
11389         (setup_callbacks): Update prototype.
11390         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
11391         Update.
11392         * tradcpp.c (main): Ignore -quiet.
11393 objc:
11394         * lang-specs.h (default_compilers): Preprocess with cc1obj.
11395
11396 2002-03-24  Richard Henderson  <rth@redhat.com>
11397
11398         PR optimization/5742
11399         * machmode.def: Add inner mode field to complex modes.
11400         * config/mips/mips.c (mips_function_value): Always define.  Add
11401         new argument to handle libcalls.
11402         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
11403         (FUNCTION_VALUE): Likewise.
11404         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
11405         * config/mips/mips-protos.h: Update.
11406
11407 2002-03-23  Richard Henderson  <rth@redhat.com>
11408
11409         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
11410         * config/sparc/sparc-protos.h: Update.
11411         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
11412
11413 2002-03-23  Richard Henderson  <rth@redhat.com>
11414
11415         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
11416         _start or _init begins the text segment.
11417
11418 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
11419
11420         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
11421         not HOST_WIDEST_INT.
11422         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
11423
11424 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
11425
11426         PR java/5489
11427         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
11428         operand argument to output_return_instruction.
11429         * arm.c (arm_print_operand, case 'd'): If the operand is
11430         const_true_rtx then just return.
11431         (arm_print_operand, case 'D'): If the operand is const_true_rtx
11432         then abort.
11433
11434 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
11435
11436         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
11437         (Warning Options): Document -Wswitch-default.
11438         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
11439         -Wswitch.
11440         (warn_switch_default): Define variable.
11441         (warn_switch): Update comment.
11442         * flags.h (warn_switch_default): Declare variable.
11443         (warn_switch): Update comment.
11444         * stmt.c (expand_end_case): Check for and, when
11445         warn_switch_no_default, warn of a missing default case.
11446
11447 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
11448
11449         * real.h (N): Special case 128 bit doubles.
11450
11451         * combine.c (simplify_comparison): When widening modes, ignore
11452         sign extension on CONST_INTs.
11453
11454 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
11455
11456         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
11457         passed to adjust_address.  Fix comment formatting.
11458
11459
11460 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
11461
11462         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
11463         Always make REAL_VALUE_TYPE a struct containing an array of
11464         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
11465         big it is.  Don't declare or use union real_extract.
11466
11467         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
11468         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
11469         (print_operand), config/arm/arm.c (output_move_double),
11470         config/arm/arm.md (consttable_4, consttable_8),
11471         config/romp/romp.c (output_fpops), config/s390/s390.h
11472         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
11473         (xtensa_output_literal): Don't use union real_extract.
11474
11475         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
11476         (sfmode_constant_to_ulong), config/ns32k/merlin.h
11477         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
11478         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
11479         (PRINT_OPERAND): Don't use local version of union
11480         real_extract.
11481
11482         * config/convex/convex.c (check_float_value), config/vax/vax.c
11483         (vax_float_literal), config/m88k/m88k.md (divdf3),
11484         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
11485         config/pdp11/pdp11.c (output_move_quad): Don't do host
11486         arithmetic on target floating point quantities.
11487
11488         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
11489         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
11490
11491         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
11492         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
11493
11494         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
11495         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
11496         INFINITY.
11497         * print-rtl.c (print_rtx): Disable code which needs
11498         floating-point emulator.
11499         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
11500         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
11501         depending on HOST_FLOAT_FORMAT to be defined properly.
11502
11503         * config/1750a/1750a.c (get_double, float_label): Delete.
11504         (print_operand): Delete huge commented-out chunk.  Use
11505         REAL_VALUE_TO_DECIMAL.
11506         * config/1750a/1750a-protos.h: Delete prototypes of deleted
11507         functions.
11508         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
11509         IEEE_FLOAT_FORMAT.
11510         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
11511         Use REAL_VALUE_TO_DECIMAL as ELF version does.
11512         * config/m88k/m88k.c (real_power_of_2_operand,
11513         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
11514         real_extract out of the union; run the input through
11515         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
11516         from that into the union.
11517         * config/pdp11/pdp11.c (output_move_double): Rearrange
11518         parentheses to make automatic indenter happy.
11519
11520         * doc/tm.texi (Cross-compilation): Rename node to "Floating
11521         Point" and rewrite to describe current situation.  Also adjust
11522         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
11523         match code.
11524         * doc/rtl.texi: Adjust cross reference.
11525
11526 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
11527
11528         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
11529         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
11530         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
11531         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
11532         prevent use of sp as a reload register.
11533         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
11534         non_acc_reg_operand.
11535         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
11536         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
11537         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
11538         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
11539
11540 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11541
11542         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
11543         * cpplex.c (unterminated): Delete.
11544         (parse_string): No string literal may extend over multiple
11545         lines.  Suppress the error when preprocessing assembly.
11546         * cppmain.c (scan_translation_unit): Strings are single-line.
11547
11548         * doc/cpp.texi: Update to match.
11549
11550 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
11551
11552         PR optimization/5854
11553         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
11554         Shut up warnings.
11555         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
11556         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
11557         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
11558         const0 if scratch register was not allocated.
11559         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
11560         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
11561         with GEN_INT (...).
11562         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
11563         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
11564         with GEN_INT (...) everywhere.  Remove constraints in define_split
11565         patterns.
11566         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
11567         require scratch register for setting 0 into regs/non-pushable memory.
11568
11569 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
11570
11571         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
11572         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
11573
11574 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
11575
11576         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
11577         * cppinit.c (cpp_create_reader):  On by default.
11578         (cpp_handle_option):  Handle -W[no-]endif-labels.
11579         (cpp_post_options):  Also enable if -pedantic.
11580         * cpplib.c (do_else):  Use it.
11581         (do_endif):  Likewise.
11582         * doc/cppopts.texi:  Document new option.
11583         * doc/invoke.texi:  Document new option.
11584
11585 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
11586
11587         * config/i386/i386.c, config/i386/i386.md: Change all occurences
11588         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
11589
11590 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
11591
11592         * flow.c (calculate_global_regs_live): Clear aux fields of
11593         ENTRY and EXIT.
11594
11595 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
11596
11597         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
11598         REG or MEM subregs, pass rtx * instead of rtx to it.
11599         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
11600         rtx * instead of rtx to alter_subreg.
11601         * config/m32r/m32r.c (gen_split_move_double): Likewise.
11602         * config/pj/pj.c (pj_output_rval): Likewise.
11603
11604 2002-03-22  Richard Henderson  <rth@redhat.com>
11605
11606         PR target/3177
11607         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
11608         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
11609         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
11610         (ia64_expand_prologue): Look at int_regs, not words, for number
11611         of incomming int regs.
11612
11613 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
11614
11615         * expr.c (expand_expr): A RESULT_DECL is part of a call.
11616
11617 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
11618
11619         * toplev.c (flag_loop_optimize, flag_crossjumping):
11620         New static variables.
11621         (rest_of_compilation): Conditionalize crossjumping and
11622         loop optimizer.
11623         (parse_options_and_default_flags): Default loop_optimize and
11624         crossjumping.
11625         (lang_independent_options): Add -fcrossjumping and -floop-optimize
11626         * invoke.texi (crossjumping, loop-optimize): Document.
11627
11628 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11629
11630         * real.c (eiisneg): Move outside #ifdef NANS.
11631
11632 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
11633
11634         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
11635         frequencies match; avoid match on different loop depths.
11636         (try_crossjump_to_bb): Kill tests that no longer brings time
11637         savings.
11638         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
11639         updating code.
11640         (split_edge): Likewise.
11641
11642         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
11643         variable.
11644
11645         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
11646         * cfgrtl.c: Include insn-config.h
11647         (split_block) Dirtify block in presence of conditional execution
11648
11649 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11650
11651         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
11652         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
11653         (function_arg): Constify CUMULATIVE_ARGS.
11654         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
11655         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
11656         (UNITS_PER_DOUBLE): New macro.
11657         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
11658         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
11659         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
11660         fp_regs and stack_words.
11661         (EABI_FLOAT_VARARGS_P): New macro.
11662         * config/mips/mips.c (struct mips_arg_info): New.
11663         (mips_arg_info): New function.
11664         (function_arg_advance): Use it.  Add adjustment instructions here
11665         rather than in function_arg.
11666         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
11667         for VOIDmode at the beginning of the function.
11668         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
11669         (function_arg_pass_by_reference): Likewise.
11670         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
11671         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
11672         (mips_va_start): Likewise.  Use the new stack_words field of
11673         CUMULATIVE_ARGS to set up overflow area.  Reformat.
11674         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
11675         doubles and other types, aligning the overflow pointer for non-doubles
11676         too.  Remove some code duplication.  Replace hard-coded constants.
11677
11678 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
11679
11680         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
11681         (CLASS_UNITS): Undefine.
11682         (CLASS_MAX_NREGS): Use FP_INC.
11683         * config/mips/mips.c (compute_frame_size): Likewise.
11684         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
11685
11686 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11687
11688         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
11689         prototype, and handle lexing numbers and identifiers.
11690         (parse_identifier): Update to new form of parse_slow.
11691         (parse_number): Fast path only, use parse_slow otherwise.
11692         (_cpp_lex_direct): Update calls to parse_number.
11693
11694 2002-03-21  DJ Delorie  <dj@redhat.com>
11695
11696         * bb-reorder.c (make_reorder_chain_1): Protect against
11697         when redundant edges are omitted.
11698         * predict.c (dump_prediction): Likewise.
11699
11700 2002-03-21  Richard Henderson  <rth@redhat.com>
11701
11702         PR target/5996
11703         * fixinc/inclhack.def (solaris_stdio_tag): New.
11704         * fixinc/fixincl.x: Regenerate.
11705
11706 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
11707
11708         PR c/5597
11709         * c-typeck.c (process_init_element): Flag non-static
11710         initialization of a flexible array member as illegal.
11711
11712 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
11713
11714         * config/rs6000/t-linux64: New.
11715         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
11716         t-ppccomm.  Use t-rs6000 and t-linux64.
11717         (powerpc64-*-gnu* <tmake_file>): Likewise.
11718         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
11719         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
11720         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
11721
11722 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
11723
11724         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
11725         flag_really_no_inline instead of optimize == 0.
11726
11727         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
11728
11729         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
11730
11731         * flags.h (flag_really_no_inline): New.
11732
11733         * c-common.c (c_common_post_options): Initialize
11734         flag_really_no_inline.
11735
11736         * toplev.c (flag_really_no_inline): New.
11737
11738 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
11739
11740         * config/avr/avr.md (length): Fix length computation for
11741         conditional branches.
11742
11743 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11744
11745         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
11746         sdbout.o, profile.o): Update.
11747         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
11748         langhook.
11749         * c-common.h (gettags): Move here from tree.h.
11750         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
11751         insert_block, getdecls, kept_level_p, global_bindings_p): New.
11752         * dbxout.c (dbxout_init): Use getdecls langhook.
11753         * expr.c (expand_expr): Use insert_block langhook.
11754         * fold-const.c: Include langhooks.h.
11755         (fold_range_test, fold_binary_op_with_conditional_arg,
11756         fold): Use global_bindings_p langhook.
11757         * integrate.c (expand_inline_function): Use insert_block langhook.
11758         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
11759         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
11760         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
11761         LANG_HOOKS_GETDECLS): New.
11762         (LANG_HOOKS_INITIALIZER): Update.
11763         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
11764         langhook.
11765         * langhooks.h (struct lang_hooks_for_decls): New.
11766         (struct lang_hooks): Update.
11767         * profile.c: Include langhooks.h.
11768         (output_func_start_profiler): Use new langhooks.
11769         * sdbout.c: Include langhooks.h.
11770         (sdbout_init, sdbout_finish): Use getdecls langhook.
11771         * stmt.c: Include langhooks.h.
11772         (expand_fixup, fixup_gotos): Use new langhooks.
11773         * stor-layout.c: Include langhooks.h.
11774         (variable_size): Use global_bindings_p langhook.
11775         * toplev.c (compile_file): Use getdecls langhook.
11776         * tree-inline.c (remap_block): Use insert_block langhook.
11777         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
11778         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
11779
11780 2002-03-21  Richard Henderson  <rth@redhat.com>
11781
11782         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
11783         constants in .data when -fpic.
11784
11785 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11786
11787         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
11788         where appropriate.
11789
11790 2002-03-21  Tom Tromey  <tromey@redhat.com>
11791
11792         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
11793
11794 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11795
11796         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
11797
11798         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
11799
11800 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
11801             Richard Henderson  <rth@redhat.com>
11802
11803         PR c/5354
11804         * c-common.c (c_expand_expr): Preserve result of a statement
11805         expression if needed.
11806
11807 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
11808
11809         PR bootstrap/4195
11810         * genrecog.c (maybe_both_true_mode): Remove.
11811         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
11812         * machmode.def (Pmode): Likewise.
11813
11814 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
11815
11816         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
11817         (nonlocal_mentioned_p_1): New function.
11818         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
11819         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
11820         (mark_constant_function): Recognize pure functions.
11821         * rtl.h (global_reg_mentioned_p): New prototype.
11822         * rtlanal.c (global_reg_mentioned_p,
11823         global_reg_mentioned_p_1): New function.
11824
11825 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11826
11827         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
11828         UNIX assert.h.
11829         * fixinc/fixincl.x: Regenerate.
11830
11831 2002-03-20  Jason Merrill  <jason@redhat.com>
11832
11833         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
11834
11835 2002-03-20  Michael Meissner  <meissner@redhat.com>
11836
11837         * doc/invoke.texi (Optimize Options): Document that -O2 sets
11838         -fstrict-aliasing.
11839
11840 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
11841
11842         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
11843         ".literal_position" directive before the constant pool.
11844
11845 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11846
11847         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
11848         Add Craig Rodrigues.
11849         Add Brad Lucier to testers.
11850
11851 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
11852
11853         PR target/4792
11854         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
11855         to if_then_else.
11856         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
11857         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
11858         instead of insn_extract.
11859
11860 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
11861
11862         PR bootstrap/4192
11863         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
11864
11865         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
11866         stmt if some case has been output.
11867
11868 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
11869
11870         PR c/5972
11871         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
11872         movsfcc_1, movdfcc_1): Add %O2.
11873         * config/i386/i386.c (print_operand): Handle %ON.
11874         Print . before float condition codes in Sun as cmov syntax.
11875         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
11876         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
11877         no longer true.
11878
11879 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
11880
11881         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
11882         return instruction if PC was popped.
11883
11884 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
11885
11886         * config/xtensa/xtensa.md: Remove unused type attributes.
11887         (adddi_carry, subddi_carry): Change type attribute to "multi".
11888
11889 2002-03-19  Dale Johannesen  <dalej@apple.com>
11890
11891         PR optimization/5999, middle-end/5731
11892         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
11893         multiplications by reciprocals.
11894
11895 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11896
11897         * Makefile.in: Update.
11898         * c-common.c: Include langhooks.h.
11899         (inline_forbidden_p): Use new hook.
11900         * diagnostic.c: Include langhooks.h.
11901         (format_with_decl, announce_function,
11902         default_print_error_function): Use new hook.
11903         * dwarf2out.c (dwarf2_name): Use new hook.
11904         * function.c: Include langhooks.h.
11905         (init_function_start): Use new hook.
11906         * langhooks-def.h (lhd_decl_printable_name): New.
11907         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
11908         (LANGHOOKS_INITIALIZER): Update.
11909         * langhooks.c (lhd_decl_printable_name): New.
11910         * langhooks.h (struct lang_hooks): New hook.
11911         * toplev.c (decl_name, decl_printable_name): Remove.
11912         (open_dump_file): Use new hook.
11913         (process_options): Remove old hook.
11914         * tree.h (decl_printable_name): Remove.
11915 objc:
11916         * objc-act.c (objc_init): Remove old hook.
11917         (objc_printable_name): Export.
11918         * objc-act.h (objc_printable_name): New.
11919         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
11920
11921 2002-03-19  Jim Blandy  <jimb@redhat.com>
11922
11923         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
11924         the start_source_file debug hook, not the current line number.
11925
11926 2002-03-19  Richard Henderson  <rth@redhat.com>
11927
11928         * flow.c (EH_USES): Provide default.
11929         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
11930         * doc/tm.texi (EH_USES): New.
11931
11932         * config/ia64/ia64.c (ia64_eh_uses): New.
11933         * config/ia64/ia64-protos.h: Update.
11934         * config/ia64/ia64.h (EH_USES): New.
11935
11936 2002-03-19  Richard Henderson  <rth@redhat.com>
11937
11938         * varasm.c (output_constant_def): Fix stupid typo.
11939
11940 2002-03-19  Richard Henderson  <rth@redhat.com>
11941
11942         PR 5879
11943         * except.c (current_function_has_exception_handlers): New.
11944         * except.h: Declare it.
11945         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
11946         Combine tests that disable all sibcalls for the function.
11947
11948 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
11949
11950         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
11951         for INTEGER_CST.
11952
11953 2002-03-19  Richard Henderson  <rth@redhat.com>
11954
11955         PR 5977, 5991
11956         * config/ia64/ia64.c: Revert 2002-03-01 patch.
11957         * config/ia64/ia64.h (INIT_EXPANDERS): New.
11958
11959 2002-03-19  Jim Blandy  <jimb@redhat.com>
11960
11961         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
11962         name, even if the replacement list contains no tokens, as required
11963         by Dwarf.
11964
11965 2002-03-19  Jason Merrill  <jason@redhat.com>
11966
11967         * varasm.c (globalize_decl): Get the name from the RTL, not
11968         DECL_ASSEMBLER_NAME.
11969
11970         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
11971
11972 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
11973
11974         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
11975         subdi_carry): Define.
11976
11977 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11978
11979         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
11980         about -fpic/-fPIC if extra_warnings set.
11981
11982 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11983
11984         * expr.c (expand_expr): Sign-extend CONST_INT generated from
11985         TREE_STRING_POINTER.
11986         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
11987
11988 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11989
11990         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
11991         in favor of SP if FRAME_POINTER_REQUIRED is false.
11992
11993 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
11994
11995         * emit-rtl.c (gen_int_mode): New function.
11996         * rtl.h: Prototype for it.
11997         * combine.c (make_extraction, simplify_comparison), expmed.c
11998         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
11999         (convert_modes, store_field), optabs.c (expand_fix),
12000         simplify-rtx.c (neg_const_int, simplify_unary_real),
12001
12002         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
12003         Use it instead of GEN_INT (trunc_int_for_mode (...)).
12004
12005 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
12006
12007         PR c/5656
12008         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
12009         convert_parm_for_inlining.
12010         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
12011         Define.
12012         * langhooks-def.h: Likewise.
12013         * objc/objc-lang.c: Likewise.
12014         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
12015         function.
12016         * tree-inline.c (initialize_inlined_parameters):
12017         Call convert_parm_for_inlining lang hook if needed.
12018         * c-typeck.c (c_convert_parm_for_inlining): New function.
12019         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
12020
12021 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
12022
12023         * calls.c (precompute_arguments): Do not assume that temporaries
12024         can be destroyed after expanding the argument.
12025         (expand_call): Likewise.
12026
12027 2002-03-15  Eric Christopher  <echristo@redhat.com>
12028
12029         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
12030         Fix register preference on last change.
12031         * config/mips/mips.c (mips_return_in_memory): New function.
12032         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
12033         * config/mips/mips-protos.h: Declare.
12034         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
12035         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
12036
12037 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
12038
12039         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
12040         a register too.
12041         (anddi3, iorsi3): Likewise.
12042
12043         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
12044         use %gprel for symbols that are going to be placed in linkonce
12045         sections.
12046
12047         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
12048         RETURN_ADDRESS_POINTER_REGNUM to $ra.
12049         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
12050         not needed.  Disregard leaf_function_p().
12051         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
12052         mips16 frame pointer.
12053         * config/mips/mips.md (store ra): Only to small SP offsets.
12054         2001-08-22  Graham Stott  <grahams@redhat.com>
12055         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
12056         return a REG rtx for the return address register.
12057
12058 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
12059
12060         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
12061         constant-pool addresses as "mode-dependent".
12062         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
12063
12064 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
12065
12066         PR target/5740
12067         * expr.c (emit_group_load): Use extract_bit_field if
12068         needed for CONCAT arguments.
12069
12070 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
12071
12072         PR target/4863
12073         * arm.md (tablejump): Make this a define_expand.  For PIC add the
12074         offset to the base of the table.
12075         (thumb_tablejump): Matcher for Thumb tablejump insn.
12076         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
12077         as the difference of two labels.
12078         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12079         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
12080         tables in the code.
12081         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
12082         * arm.c (get_jump_table_size): If the table is not in the text
12083         section, return zero.
12084
12085 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
12086
12087         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
12088         of gen_rtx_SUBREG.
12089         (arm_reload_out_hi): Use gen_lowpart instead of
12090         gen_rtx_SUBREG to access QImode components.
12091         * config/arm/arm.md: Disable zero_extend split for QImode
12092         subregs in BIG_ENDIAN mode.
12093         (storehi_bigend): Match use of least significant byte.
12094         (storeinthi): Remove extraneous SUBREG.
12095         Add missing construction of operands[2].
12096         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
12097         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
12098         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
12099
12100 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
12101
12102         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
12103         any_operand.
12104
12105 2002-03-17  Richard Henderson  <rth@redhat.com>
12106
12107         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
12108         explicitly.
12109
12110 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
12111
12112         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
12113         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
12114
12115 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12116
12117         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
12118
12119         * predict.c (estimate_bb_frequencies): Delete unused variables.
12120
12121 2002-03-17  Richard Henderson  <rth@redhat.com>
12122
12123         * config/ia64/ia64.c (ia64_attribute_table): Move before
12124         targetm definition.  Make static.
12125
12126 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12127
12128         * c-common.h (yyparse, c_common_parse_file): New.
12129         * c-lang.c: Include c-common.h.
12130         (LANG_HOOKS_PARSE_FILE): Redefine.
12131         * c-lex.c: Include c-common.h.
12132         (yyparse): Rename c_common_parse_file.  Call yyparse.
12133         * c-parse.in (yyparse): Remove macro.
12134         * c-tree.h (yyparse_1): Remove.
12135         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
12136         (LANG_HOOKS_INITIALIZER): Update.
12137         * langhooks.h (struct lang_hoooks): New hook parse_file.
12138         * toplev.c (compile_file): Use parse_file hook.
12139         * tree.h (yyparse): Remove.
12140         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
12141
12142 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
12143
12144         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
12145         float_truncate, not fix.
12146         ("*truncdfsf2_real"): Ditto.
12147         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
12148
12149         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
12150
12151 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
12152
12153         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
12154         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
12155         where appropriate.  Make the second reference to
12156         leaf_function_p a function call, as intended.  Reindented.
12157
12158         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
12159         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
12160
12161         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
12162         add register to non-constant into sp.
12163
12164         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
12165         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
12166         (mips16_gp_pseudo_rtx): Lose.
12167         (INIT_EXPANDERS): Deleted.
12168         * config/mips/mips.c (mips_init_machine_status): New.
12169         (mips_free_machine_status): New.
12170         (mips_mark_machine_status): New.
12171         (override_options): Set them.
12172         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
12173         (struct machine_function): ... new.  Replaced all references.
12174         (mips_add_gc_roots): Don't mark them.
12175         (embedded_pic_fnaddr_reg): New, extracted from...
12176         (embedded_pic_offset): ... here.
12177         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
12178         (movsi): Likewise.
12179
12180 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12181
12182         * cppinit.c: Revert -MD removal.
12183
12184 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12185
12186         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
12187         soft registers by default for 68HC12.
12188         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
12189         when compiling with -fomit-frame-pointer.
12190         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
12191         (expand_epilogue): Likewise.
12192         (m68hc11_gen_rotate): Use exg when rotating by 8.
12193
12194 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12195
12196         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
12197         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
12198         (splits): Remove unused add splits.
12199         ("*addhi3_68hc12"): Tune constraints.
12200         ("addhi_sp"): Try to use X instead of Y in all cases and if the
12201         constant fits in 8-bits and D is dead use abx/aby instructions.
12202         ("*addhi3"): Remove extern declaration of ix_reg.
12203         ("*subsi3"): Optimize and provide new split.
12204         ("subhi3"): Cleanup.
12205         ("*subhi3_sp"): Avoid saving X if we know it is dead.
12206         (arith splits): For 68hc12 save the address register on the stack
12207         and do the arithmetic operation with a pop.
12208
12209 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12210
12211         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
12212         allocating QImode in address registers.
12213         ("*movqi_m68hc11"): Likewise.
12214
12215 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
12216
12217         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
12218
12219 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12220
12221         * cppinit.c (print_help): Display -MD and -MMD.
12222         Don't display usage string.  Update assertion syntax and
12223         typo.
12224         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
12225         (cpp_handle_option): Update.
12226
12227 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
12228
12229         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
12230         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
12231         and define it so that regardless of target CPU size,
12232         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
12233         of "int" rather than "long."
12234
12235 2002-03-15  Richard Henderson  <rth@redhat.com>
12236
12237         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
12238         size as a tree.
12239
12240 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12241
12242         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
12243         ("tstqi" split): Avoid using memory for tstqi on address register.
12244         (splits): Remove constraints.
12245         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
12246         ("cmpdf", "cmpsf"): Remove since not used.
12247         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
12248         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
12249
12250 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12251
12252         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
12253         ("neghi2"): Tighten constraints.
12254         ("one_cmplsi2"): Optimize and simplify split.
12255         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
12256
12257 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12258
12259         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
12260         and split of AND operation to clear the upper bits.
12261         ("*logicalsi3_zextqi"): Likewise.
12262         ("*logicallhi3_zexthi_ashift8"): Likewise.
12263         ("*logicalsi3_silshr16"): Likewise.
12264         ("logicalsi3_silshl16"): Likewise.
12265         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
12266
12267 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12268
12269         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
12270         (m68hc11_indirect_p): New function.
12271         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
12272         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
12273         TARGET_M6812.
12274         (asm_print_register): Likewise.
12275         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
12276         (m68hc11_indirect_p): Declare.
12277         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
12278         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
12279         (TARGET_SWITCHES): New option -mrelax.
12280         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
12281         destination.
12282         ("iorsi3", "xorsi3"): Likewise.
12283         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
12284         ("*andhi3_mem"): New to handle destination in memory with bclr
12285         and a scratch register.
12286         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
12287         ("*andhi3_const"): New when operand2 is constant.
12288         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
12289         ("*andhi3_gen"): Cleanup of the old "andhi3".
12290         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
12291         ("xorqi3"): Update constraints.
12292
12293 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12294
12295         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
12296         for reg_equiv_memory_loc when the operand is a register that does
12297         not get a hard register (stack location).
12298         (tst_operand): After reload, accept all memory operand.
12299         (symbolic_memory_operand): Fix detection of symbolic references.
12300         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
12301         accept symbols and any constant.
12302
12303 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12304
12305         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
12306         note on the insn that sets the soft frame register.
12307         (must_parenthesize): ix and iy are also reserved names.
12308         (print_operand_address): One more place where parenthesis are required
12309         to avoid confusion with register names.
12310         (m68hc11_gen_movhi): Allow push of stack pointer.
12311         (m68hc11_check_z_replacement): Fix handling of parallel with a
12312         clobber.
12313         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
12314         the replacement register is.
12315         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
12316         and D8_REGS classes.
12317         (MODES_TIEABLE_P): All modes are tieable except QImode.
12318
12319 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12320
12321         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
12322         (___subdi3): Likewise.
12323         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
12324         (__map_data_section): Optimize 68hc11 case.
12325
12326 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
12327
12328         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
12329         than a shift to avoid adding a register with itself.
12330         (m68hc11_memory_move_cost): Take into account NO_REGS.
12331         (m68hc11_register_move_cost): Update and use memory move cost
12332         for soft registers.
12333         (m68hc11_address_cost): Make cost of valid offset not 0 so that
12334         it gives more opportunities to cse to optimize.
12335         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
12336         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
12337
12338 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
12339
12340         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
12341         * c-common.def (CLEANUP_STMT): New tree node.
12342         * c-common.h (CLEANUP_DECL): New macro.
12343         (CLEANUP_EXPR): Likewise.
12344         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
12345         * expr.c (expand_expr): Tidy.
12346         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
12347         * tree-inline.c (initialize_inlined_parameters): Clean up
12348         new local variables.
12349
12350 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
12351
12352         PR bootstrap/4128
12353         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
12354         before movrXX only, use reg_overlap_mentioned_p.
12355         Only special case NE if just one insn can be generated.
12356
12357 2002-03-15  Jason Merrill  <jason@redhat.com>
12358
12359         * varasm.c (assemble_variable): Call resolve_unique_section before
12360         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
12361         of error_mark_node.
12362
12363 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
12364
12365         PR target/5170
12366         * arm.md (split pattern for thumb shiftable immediates): Add comment
12367         explaining non-obvious test.
12368
12369 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
12370
12371         PR target/5712
12372         * arm.md (movaddr, movaddr_insn): Delete.
12373
12374 2002-03-15  Jason Merrill  <jason@redhat.com>
12375
12376         * toplev.c (wrapup_global_declarations): Clarify variable handling.
12377         -fkeep-static-consts doesn't apply to comdats.
12378
12379 2002-03-14  Richard Henderson  <rth@redhat.com>
12380
12381         * c-decl.c: Include c-pragma.h.
12382         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
12383         (finish_function): Tidy.
12384         * c-pragma.c: Include c-common.h.
12385         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
12386         (handle_pragma_weak): Use them.
12387         (init_pragma): Register pending_weaks.
12388         * c-pragma.h (maybe_apply_pragma_weak): Declare.
12389         * print-tree.c (print_node): Print DECL_WEAK.
12390         * varasm.c (mark_weak_decls): Remove.
12391         (remove_from_pending_weak_list): Remove.
12392         (add_weak): Remove.
12393         (asm_emit_uninitialised): Call globalize_decl for weak commons.
12394         (weak_decls): Make a tree_list.
12395         (declare_weak): Cons weak_decls directly.
12396         (globalize_decl): Remove weak_decls elements directly.
12397         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
12398         symbols.  Don't pretend to handle aliases.
12399         (init_varasm_once): Update weak_decls registry.
12400         * Makefile.in: Update dependencies.
12401
12402 2002-03-14  Richard Henderson  <rth@redhat.com>
12403
12404         PR target/5312
12405         * config/ia64/ia64.c: Include tm_p.h last.
12406         (gen_nop_type): Remove duplicate definition.
12407         (cycle_end_fill_slots): Set sched_data for second L slot.
12408         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
12409         (nop_cycles_until): Fix typos.
12410
12411 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
12412
12413         PR optimization/5891
12414         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
12415
12416 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
12417
12418         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
12419           descriptors correctly.
12420
12421 2002-03-14  Michael Meissner  <meissner@redhat.com>
12422
12423         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
12424         100, allowing MAX_UNROLLED_INSNS to be overridden.
12425
12426         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
12427         --param.
12428
12429         * unroll.c (params.h): Include.
12430         (MAX_UNROLLED_INSNS): Delete, now in params.h.
12431
12432         * doc/invoke.texi (--param max-unroll-insns): Document.
12433
12434         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
12435
12436 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
12437
12438         * arm.md: Fix warnings about constraints in peepholes and splits.
12439
12440 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
12441
12442         * cpphash.h (struct lexer_state): Remove line_extension member.
12443         * cpplib.c (dequote_string, do_linemarker): New functions.
12444         (linemarker_dir): New data object.
12445         (DIRECTIVE_TABLE): No longer need to interpret #line in
12446         preprocessed source.  Delete obsolete comment about return
12447         values of handlers.
12448         (end_directive, directive_diagnostics, _cpp_handle_directive):
12449         Don't muck with line_extension.
12450         (directive_diagnostics): No need to issue warnings for
12451         linemarkers here.
12452         (_cpp_handle_directive): Issue warnings for linemarkers here,
12453         when appropriate.  Dispatch linemarkers to do_linemarker, not
12454         do_line.
12455         (do_line): Code to handle linemarkers split out to do_linemarker.
12456         Convert escape sequences in filename argument, both places.
12457
12458         * cppmacro.c (quote_string): Rename cpp_quote_string and
12459         export.  All callers changed.
12460         * cpplib.h (cpp_quote_string): Prototype.
12461         * cppmain.c (print_line): Call cpp_quote_string on to_file
12462         before printing it.
12463
12464         * doc/cpp.texi: Document that escapes are now interpreted in
12465         #line and in linemarkers, and that non-printing characters are
12466         converted to octal escapes when linemarkers are generated.
12467
12468 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12469
12470         * emit-rtl.c (try_split): Use delete_insns.
12471         * recog.c (split_all_insns): Fix terminating condition.
12472
12473 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
12474             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
12475
12476         PR target/5828
12477         * arm.c (arm_output_epilogue): Fix floating-point register save
12478         adjustment when using a frame pointer.
12479
12480 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
12481
12482         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
12483         * config/mips/mips.c (compute_frame_size): Retrofit them here.
12484         (save_restore_insns, mips_expand_epilogue): And here.
12485         (build_mips16_call_stub): And here.
12486         (mips_function_value): Use the new macros to decide whether a single
12487         or complex float can be returned in floating-point registers.  Return
12488         a parallel rtx in the complex case.
12489
12490 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
12491
12492         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
12493         call after liveness analysis.
12494
12495         * recog.c (split_insn): Use delete_insn_and_edges.
12496
12497         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
12498         instructions to have branch prediction notes.
12499         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
12500
12501 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
12502
12503         * configure.in: Don't pass -Wno-long-long to a ADA compiler
12504         that doesn't support it.
12505         * configure: Regenerate.
12506
12507 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12508
12509         PR target/5626
12510         * config/sparc/sparc.md (normal_branch, inverted_branch,
12511         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12512         inverted_fp_branch): Adjust calls to output_cbranch.
12513         Set length attribute.
12514         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
12515         output_v9branch.  Set length attribute.
12516         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
12517         predicates.
12518         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
12519         (output_cbranch): Likewise.  Handle far branches.
12520         (output_v9branch): Handle far branches.
12521         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
12522         Adjust prototypes.
12523         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
12524         noov_compare64_op predicates.
12525
12526 2002-03-13  Jason Merrill  <jason@redhat.com>
12527
12528         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
12529         into the function and constify it.
12530         * gthr-dce.h, gthr-solaris.h: Likewise.
12531
12532 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
12533
12534         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
12535         * config/rs6000/rs6000.c (rs6000_va_arg): Use
12536         std_expand_builtin_va_arg if not ABI_V4.
12537
12538 2002-03-13  Jason Merrill  <jason@redhat.com>
12539
12540         * varasm.c (globalize_decl): New fn.
12541         (assemble_start_function): Use it.
12542         (asm_emit_uninitialized): Use it.
12543         (assemble_alias): Use it.
12544         (assemble_variable): Use it.
12545
12546 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
12547
12548         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
12549         2002-03-12 internal visibility change.
12550         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
12551         visibility into SYMBOL_REF_FLAG.
12552
12553 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
12554
12555         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
12556         VOIDmode operand.  Add compile-time optimization for constant results.
12557
12558 2002-03-12  Jason Merrill  <jason@redhat.com>
12559
12560         * c-typeck.c (convert_for_assignment): Don't allow conversions
12561         between pointers and references.  Only allow lvalues to convert to
12562         reference.
12563
12564 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
12565
12566         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
12567         before prologue, to avoid scheduling problems.
12568
12569 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12570
12571         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
12572         (ELIMINABLE_REGS): Add sfp->sp.
12573         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
12574
12575 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12576
12577         PR optimization/5892
12578         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
12579
12580 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
12581
12582         * loop.c (basic_induction_var): Don't call convert_modes if mode
12583         classes are different.
12584
12585 2002-03-12  Richard Henderson  <rth@redhat.com>
12586
12587         PR optimization/5901
12588         * function.c (reposition_prologue_and_epilogue_notes): Position
12589         the markers after/before the last/first insn not deleted.
12590
12591 2002-03-12  Richard Henderson  <rth@redhat.com>
12592
12593         PR optimization/5878
12594         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
12595         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
12596         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
12597
12598         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
12599         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
12600         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
12601
12602         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
12603         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
12604         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
12605         also.  Don't set it if not flag_pic.
12606         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
12607         to be INVALID_REGNUM when not used.
12608
12609 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
12610
12611         * expmed.c (store_bit_field): Reset alias set for memory.
12612         (extract_bit_field): Same.
12613
12614 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12615
12616         * c-common.c (c_tree_code_type, c_tree_code_length,
12617         c_tree_code_name, add_c_tree_codes): Delete.
12618         * c-common.h (add_c_tree_codes): Delete.
12619         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
12620         Define.
12621         * c-objc-common.c (c_objc_common_init): Don't call
12622         add_c_tree_codes, instead set lang_unsafe_for_reeval.
12623         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
12624         objc_tree_code_name, add_objc_tree_codes): Delete.
12625         (objc_init): Don't call add_objc_tree_codes.
12626         * objc/objc-lang.c (tree_code_type, tree_code_length,
12627         tree_code_name): Define.
12628         * toplev.c (lang_independent_init): Don't set
12629         tree_code_length[IDENTIFIER_NODE].
12630         * tree.c (tree_code_type, tree_code_length, tree_code_name):
12631         Delete definitions, moved to language front-ends.
12632         * tree.def (IDENTIFIER_NODE): Hardwire the length.
12633         * tree.h (tree_code_type, tree_code_length, tree_code_name):
12634         Const-ify.
12635         (tree_code_length): Change type to unsigned char.
12636
12637 2002-03-12  Richard Henderson  <rth@redhat.com>
12638
12639         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
12640         internal visibility change.
12641
12642 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12643
12644         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
12645         validize_mem() instead of change_address to avoid clobbering
12646         memory attributes.
12647
12648 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
12649
12650         * c-lex.h (position_after_whitespace): Remove.
12651
12652 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
12653
12654         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
12655         (lex_string): Use unsigned char pointers.
12656
12657 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
12658
12659         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
12660         is not a valid memory_operand.
12661
12662 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12663
12664         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
12665         * config/xtensa/lib1funcs.asm: Fix copyright to include
12666         special case for libgcc files.
12667         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
12668         (__divsi3): Likewise.
12669         (__umodsi3): Likewise.
12670         (__modsi3): Likewise.
12671         * config/xtensa/lib2funcs.S: Fix copyright to include
12672         special case for libgcc files.
12673
12674 2002-03-12  Tom Rix  <trix@redhat.com>
12675
12676         * collect2.c (resolve_lib_name): Move outside of
12677         OBJECT_FORMAT_COFF ifdef.
12678         (ignore_library): Same.
12679
12680 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12681
12682         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
12683
12684 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
12685
12686         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
12687         to function_section before writing out the constant pool.
12688
12689 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
12690
12691         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
12692         zero_constant.
12693         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
12694
12695 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
12696
12697         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
12698         (adddi3): Likewise.
12699         (movdf): Likewise.
12700         (movdi): Likewise.
12701         (cmpsi splitter): Likewise.
12702         (modsi3): Fail if <= 0.
12703         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
12704         redundant test when HOST_BITS_PER_WIDE_INT != 32.
12705         (reg_or_sub_cint64_operand): Likewise.
12706         (num_insns_constant_wide): Optimize sign extension.
12707         (rs6000_legitimize_address): Likewise.
12708
12709 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
12710
12711         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
12712         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
12713
12714 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
12715
12716         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
12717         address calculation.
12718
12719 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
12720
12721         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
12722         scratch register to DImode / TImode.
12723         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
12724         register used does not overlap the target.
12725
12726 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12727
12728         * Makefile.in (debug.o): Depend on debug.h.
12729         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
12730         * debug.c (do_nothing_debug_hooks): Likewise.
12731         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
12732         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
12733         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
12734         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12735         * dwarfout.c (dwarf_debug_hooks): Likewise.
12736         * integrate.c (output_inline_function): Likewise.
12737         * objc/objc-act.c (synth_module_prologue): Likewise.
12738         * sdbout.c (sdb_debug_hooks): Likewise.
12739         * toplev.c (debug_hooks): Likewise.
12740         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12741
12742 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12743
12744         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
12745         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
12746         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
12747         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
12748         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
12749         * defaults.h (POINTER_SIZE): Define.
12750         * doc/tm.texi (POINTER_SIZE): Document default.
12751
12752 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12753
12754         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
12755
12756 2002-03-11  Richard Henderson  <rth@redhat.com>
12757
12758         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
12759         if rebuild_label_notes_after_reload.
12760
12761 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
12762
12763         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
12764         emit pic register load if "internal" visibility.
12765         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
12766         (cris_expand_builtin_va_arg): Do all computations on trees.
12767
12768 2002-03-11  Richard Henderson  <rth@redhat.com>
12769
12770         * rtlanal.c: Include recog.h.
12771         (keep_with_call_p): Fix thinko.
12772         * Makefile.in (rtlanal.o): Update dependencies.
12773
12774 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
12775
12776         * genflags.c (gen_insn): Use IS_VSPACE.
12777         * genoutput.c (output_insn_data): Likewise.
12778         (process_template): Likewise.
12779
12780 2002-03-11  Richard Henderson  <rth@redhat.com>
12781
12782         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
12783
12784 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
12785
12786         * Makefile.in: Update.
12787         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
12788         Update documentation.
12789         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
12790         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
12791
12792 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
12793
12794         * Makefile.in: Give texi2pod its input file as a command line
12795         argument, not on stdin.
12796
12797 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
12798             Daniel Berlin  <dan@dberlin.org>
12799
12800         C++ alias analysis improvement.
12801         * alias.c (record_component_aliases): Record aliases for base
12802         classes too.
12803
12804 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
12805
12806         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
12807
12808 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
12809
12810         * toplev.c (vms_fopen): Remove, not needed.
12811
12812         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
12813
12814         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
12815
12816         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
12817         for FP, already done later.
12818
12819         * toplev.c (debug_args): Add entry for VMS_DEBUG.
12820         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
12821
12822 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
12823
12824         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
12825         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
12826         LARGEST_EXPONENT_IS_NORMAL for the given mode.
12827         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
12828         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
12829         (ediv, emul, eldexp, esqrt): Likewise.
12830         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
12831         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
12832         (saturate): New function.
12833         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
12834         (make_nan): Use a saturation value instead of a NaN if
12835         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
12836         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
12837         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
12838         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
12839         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
12840         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
12841         !ROUND_TOWARDS_ZERO.
12842         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
12843         (ROUND_TOWARDS_ZERO): Document.
12844
12845 2002-03-11  Andreas Jaeger  <aj@suse.de>
12846
12847         * cfg.c (dump_flow_info): Remove unused variable.
12848
12849 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
12850
12851         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
12852         computations on trees.
12853
12854 2002-03-10  Richard Henderson  <rth@redhat.com>
12855
12856         PR 5693:
12857         * reload.c (copy_replacements_1): New.
12858         (copy_replacements): Use it to recurse through the rtx.
12859
12860 2002-03-10  Richard Henderson  <rth@redhat.com>
12861
12862         * loop.c (strength_reduce): Compute number of iterations as
12863         unsigned HOST_WIDE_INT.
12864
12865 2002-03-10  Richard Henderson  <rth@redhat.com>
12866
12867         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
12868         to move away from the end of the block.
12869
12870 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
12871
12872         PR preprocessor/5899
12873         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
12874
12875 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12876
12877         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
12878
12879         * attribs.c (decl_attributes): Fix signed/unsigned warning.
12880
12881 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
12882
12883         * config/mmix/mmix.c: Improve comments.
12884         (mmix_target_asm_function_prologue): Drop variable
12885         empty_stack_frame.  Don't allocate unused slot above fp.
12886         (mmix_target_asm_function_epilogue): Mirror prologue changes.
12887         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
12888         brace in first column.
12889         (enum reg_class): Ditto.
12890         (FIRST_PARM_OFFSET): Now 0.
12891         (USER_LABEL_PREFIX): Remove #if 0:d definition.
12892
12893 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12894
12895         * combine.c (make_extraction): Fix error in last change.
12896
12897 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12898
12899         * c4x.c (c4x_fp_reglist): Const-ify.
12900         * cris.c (cris_print_operand): Likewise.
12901         * i386.c (ix86_va_arg): Likewise.
12902         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
12903         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
12904         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
12905         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
12906         * mcore.h (regno_reg_class): Likewise.
12907         * mips.c (gen_int_relational): Likewise.
12908         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
12909         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
12910         * pdp11.c (move_costs): Likewise.
12911         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
12912         * s390.c (s390_branch_condition_mnemonic, regclass_map):
12913         Likewise.
12914         * s390.h (regclass_map): Likewise.
12915         * sh.c (shift_amounts): Likewise.
12916         * sh.md (rotlsi3): Likewise.
12917
12918 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
12919
12920         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
12921         (ne0+5): Use new clobber to generate proper shift pattern.
12922         Patch by Michael Matz <matz@kde.org>.
12923
12924 2002-03-09  Andreas Schwab  <schwab@suse.de>
12925
12926         * gcc.c (validate_all_switches): Also handle `%W{...}'.
12927
12928 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
12929
12930         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
12931
12932 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
12933
12934         PR middle-end/5877
12935         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
12936         even for non-representable constants.
12937
12938 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12939
12940         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
12941         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
12942         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
12943         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
12944         (pop_function_context): Compute MAY_SHARE parameter for
12945         fixup_var_refs.
12946         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
12947         (gen_mem_addressof): Call fixup_var_refs with new parm.
12948
12949         * combine.c (make_extraction): Don't make extension of CONST_INT.
12950
12951 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
12952
12953         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
12954         in o32 and o64 ABIs.
12955         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
12956         but getting fixed-size structs passed in registers regardless of
12957         padding in o32 and o64 ABIs.
12958
12959         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
12960         offset before loading address of argument passed by transparent
12961         reference.
12962
12963 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12964
12965         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
12966
12967 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
12968
12969         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
12970         marker such that registers after it are saved.
12971
12972 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12973
12974         * sparc.c (arith_4096_operand): Fix error in last change.
12975
12976 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12977
12978         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
12979         defaults for MEABI.
12980
12981 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12982
12983         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
12984         vectors.
12985
12986 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12987
12988         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
12989
12990 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
12991
12992         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
12993         removed; fix return value.
12994         * combine.c (combine_instructions): Dirtify blocks where we failed to
12995         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
12996         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
12997
12998 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12999
13000         * gcse.c (insert_insn_end_bb): Fix typo in last change.
13001
13002 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
13003
13004         * recog.c (peephole2_optimize): Re-distribute EH edges.
13005
13006 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
13007
13008         * expr.c (expand_expr): Use unsave lang hook.
13009         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
13010         (LANG_HOOKS_INITIALIZER): Update.
13011         * langhooks.h (struct lang_hooks): New hook unsave.
13012         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
13013         (unsave_expr_1): Remove unused lang_unsave_expr_now.
13014         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
13015         (unsave_expr_now): Remove.
13016         * tree.h (unsave_expr_now, lang_unsave,
13017         lang_unsave_expr_now): Remove.
13018         (lhd_unsave): New.
13019
13020 2002-03-08  Andreas Jaeger  <aj@suse.de>
13021
13022         * flow.c (propagate_block_delete_insn): Remove unused variable.
13023
13024 2002-03-08  Kazu Hirata  <kazu@hxi.com>
13025
13026         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
13027         insn length for memory load/store.
13028
13029 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13030
13031         * doc/install.texi (--with-libiconv-prefix): Document.
13032
13033 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
13034
13035         * doc/sourcebuild.texi: Fix typo.
13036
13037 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
13038
13039         PR c/3711
13040         * builtins.c (std_expand_builtin_va_arg): Do all computations on
13041         trees.
13042
13043 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13044
13045         * rtl.c (copy_most_rtx): Move from here ...
13046         * emit-rtl.c (copy_most_rtx): ... to here.
13047
13048 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
13049
13050         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
13051         SUBTARGET_CPP_SIZE_SPEC.
13052         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
13053
13054         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
13055
13056 2002-03-07  Matt Hiller  <hiller@redhat.com>
13057
13058         * gensupport.c (first_dir_md_include): Renamed from include;
13059         change all references.
13060         (last_dir_md_include): Renamed from last_include; change all
13061         references.
13062         (init_md_reader): Unconditionally initialize base_dir whether or
13063         not filename is a relative path.
13064
13065 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
13066
13067         * config/fp-bit.c (_unord_f2): Compile it in even if
13068         US_SOFTWARE_GOFAST is enabled.
13069
13070         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
13071         NULL_RTX.  Set all HFmode operations as NULL_RTX.
13072         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
13073         NULL_RTX, try reversing the comparison and the operands.
13074
13075 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
13076
13077         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
13078         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
13079         and MATCH_OP_DUP.
13080
13081 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
13082
13083         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
13084
13085 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13086
13087         * basic-block.h (fixup_abnormal_edges): Declare.
13088         * reload1.c (fixup_abnormal_edges): New function.
13089         * reg-stack.c (convert_regs): Use it.
13090
13091         * gcse.c (insert_insn_end_bb): Handle trapping insns.
13092
13093         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
13094
13095 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
13096
13097         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
13098         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
13099         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
13100         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
13101         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
13102         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
13103         unless x and y could be infinite.
13104         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
13105         Check that the common type of both arguments is a real, even for
13106         targets without unordered comparisons.  Allow an integer argument
13107         to be compared against a real.
13108         (expand_tree_builtin): Use expand_unordered_cmp.
13109         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
13110         * cse.c (fold_rtx): Likewise.  Fix indentation.
13111         * fold-const.c (fold_real_zero_addition_p): New.
13112         (fold): Use it, and the new HONOR_... macros.
13113         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
13114         * jump.c (reversed_comparison_code_parts): After searching for
13115         the true comparison mode, use HONOR_NANS to decide whether it
13116         can be safely reversed.
13117         (reverse_condition_maybe_unordered): Remove IEEE check.
13118         * simplify-rtx.c (simplify_binary_operation): Use the new macros
13119         to decide which simplifications are valid.  Allow the following
13120         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
13121         and (a - -b) to (a + b).
13122         (simplify_relational_operation): Use HONOR_NANS.
13123         * doc/tm.texi: Document the MODE_HAS_... macros.
13124
13125 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
13126
13127         * combine.c (simplify_comparison): If simplifying a logical shift
13128         right and compare with constant, force the comparison to unsigned.
13129
13130 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
13131
13132         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
13133
13134         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
13135         -mabi=no-altivec
13136         (alt_reg_names): Remove % for vrsave.
13137
13138 2002-03-06  Richard Henderson  <rth@redhat.com>
13139
13140         PR optimization/5844
13141         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
13142         if used indicates we've already emitted one copy of an operand.
13143         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
13144         (gen_split): Supply a non-null used.
13145
13146 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
13147
13148         * reload1.c (reload): Unshare all rtl after reload is done.
13149
13150         * simplify-rtx.c (simplify_plus_minus): Do not abort,
13151         but simply fail if the expression is too complex to simplify.
13152         (simplify_gen_binary): Handle simplify_plus_minus failures.
13153
13154 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
13155
13156         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
13157         consistently call delete_trivially_dead_insns after CSE and GCSE;
13158         fix DFI_life dumping; do jump threading after liveness; do crossjumping
13159         after liveness2; update comment in last crossjumping.
13160         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
13161
13162 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
13163
13164         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
13165         after completing fast dead code elimination.
13166
13167         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
13168         COMPARE operator.
13169
13170 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
13171
13172         * version.c:  Fix misplaced leading blanks on first line.
13173
13174 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
13175
13176         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
13177
13178 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
13179
13180         * cfgcleanup.c (mentions_nonequal_regs): New function.
13181         (thread_jump): Use it.
13182         * toplev.c (rest_of_compilation): Run jump threading after
13183         liveness.
13184
13185 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
13186
13187         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
13188         patch.
13189
13190 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
13191
13192         * predict.c (estimate_bb_frequencies): Do not reload the
13193         frequencies from notes.
13194
13195 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
13196
13197         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
13198         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
13199
13200         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
13201         delete_noop_moves): Return indeger.
13202         * flow.c (ndead): New variable.
13203         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
13204         BB argument; update callers.
13205         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
13206         (life_analysis): Do not call purge_all_dead_edges.
13207         (update_life_info): Return number of deleted insns; print statistics.
13208         (update_life_info_in_dirty_blocks): likewise.
13209         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
13210         return number of insns deleted.
13211
13212         * cse.c: Include timevar.h
13213         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
13214         iterate until stabilizes; print statistics; return number of killed
13215         insns.
13216         * Makefile.in: (cse.o): Add timevar.h dependency
13217         * rtl.h (delete_trivially_dead_insns): New.
13218         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
13219         * toplev.c (rest_of_compilation): Update callers.
13220
13221         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
13222         (try_optimize_cfg): Do not update liveness.
13223         (cleanup-cfg): Loop until try_optimize_cfg and dead code
13224         removal stabilizes; use delete_trivially_dead_insns.
13225
13226         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
13227
13228 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
13229
13230         * cppmain.c (setup_callbacks): Disable #pragma and #ident
13231         callbacks when processing assembly language.
13232
13233 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13234
13235         * pa.h (ASM_FILE_END): Define.
13236         * som.h (ASM_FILE_END): Delete.
13237
13238         * pa.c (function_arg): Don't pass floats in general registers in
13239         indirect calls if TARGET_ELF32.
13240
13241 2002-03-05  Richard Henderson  <rth@redhat.com>
13242
13243         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
13244
13245 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
13246
13247         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
13248
13249 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13250
13251         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
13252         -r command line.  Don't hide any symbols if not building
13253         shared libgcc.
13254
13255 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
13256
13257         * cfg.c (dump_flow_info): Warn about profile mismatches.
13258         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
13259         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
13260
13261 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13262
13263         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
13264         wide volatile memory by parts.
13265
13266 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
13267
13268         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
13269         is NULL.
13270
13271 2002-03-05  Richard Henderson  <rth@redhat.com>
13272
13273         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
13274
13275 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
13276
13277         * toplev.c (documented_lang_options): Document more
13278         language-specific options.
13279         * doc/invoke.texi (Warning Options): Correct documentation for
13280         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
13281         * c-decl.c (c_decode_option): Use a table to handle warning options.
13282
13283 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
13284
13285         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
13286         parameter to mmix_encode_section_info.
13287         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
13288         relocatably.  Always produce ELF, not mmo if linking relocatably.
13289         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
13290         first is non-zero, don't add symbol prefix.
13291         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
13292         prototype accordingly.
13293
13294 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
13295
13296         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
13297
13298 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
13299
13300         * configure.in: Increase required makeinfo version to 4.1.
13301         * configure: Regenerate.
13302
13303 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
13304
13305         * .cvsignore: Remove *.info* and genrtl*; these files are generated
13306         elsewhere now.
13307
13308 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
13309
13310         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
13311         * doc/invoke.texi: Fix @math uses.
13312
13313 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13314
13315         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
13316         removal
13317
13318 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
13319
13320         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
13321         (powerpc-*-eabisimaltivec*): Same.
13322
13323         * config/rs6000/t-ppcendian: New.
13324
13325 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13326
13327         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
13328         nonimmediate_src_operand and nonimmediate_lsrc_operand to
13329         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
13330
13331 2002-03-03  Richard Henderson  <rth@redhat.com>
13332
13333         * toplev.c (rest_of_decl_compilation): Revert last two changes.
13334
13335 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
13336
13337         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
13338         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
13339         tree.c, config/m68k/m68k.c:
13340         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
13341         REAL_ARITHMETIC blocks unconditional.  Delete some further
13342         #ifdef blocks predicated on REAL_ARITHMETIC.
13343         * flags.h, toplev.c: Delete remaining references to
13344         flag_pretend_float.
13345
13346         * doc/invoke.texi: Remove documentation of -fpretend-float.
13347         * doc/tm.texi: Describe the various REAL_* macros as provided by
13348         real.h, not by the target configuration files.
13349
13350         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
13351         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
13352         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
13353         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
13354         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
13355         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
13356         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
13357         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
13358         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
13359         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
13360         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
13361         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
13362         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
13363         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
13364         config/xtensa/xtensa.h:
13365         Do not define, undefine, or mention in comments any of
13366         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
13367         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
13368         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
13369         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
13370         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
13371         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
13372         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
13373         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
13374         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
13375
13376 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13377
13378         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
13379         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
13380         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
13381         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
13382         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
13383         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
13384         Delete.
13385         * defaults.h (BITS_PER_WORD): Define.
13386         * doc/tm.texi (BITS_PER_WORD): Document default value.
13387
13388         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
13389         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
13390         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
13391
13392 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13393
13394         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
13395         lieu of explicit sizeof/sizeof.
13396         * i386.c (override_options, ix86_init_mmx_sse_builtins,
13397         ix86_expand_builtin): Likewise.
13398         * mips.c (mips_add_gc_roots): Likewise.
13399         * mmix.c (mmix_output_condition): Likewise.
13400         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
13401         altivec_init_builtins): Likewise.
13402         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
13403         * cppexp.c (Nsuff, parse_number): Likewise.
13404         * cppinit.c (builtin_array_end): Likewise.
13405         * gcc.c (n_default_compilers, process_command): Likewise.
13406         * genpreds.c (output_predicate_decls): Likewise.
13407         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
13408         * lcm.c (N_ENTITIES): Likewise.
13409         * stor-layout.c (set_sizetype): Likewise.
13410
13411 2002-03-03  Richard Henderson  <rth@redhat.com>
13412
13413         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
13414         for types or labels.
13415
13416 2002-03-03  Richard Henderson  <rth@redhat.com>
13417
13418         * c-decl.c (start_decl): Initialized variables are not common.
13419
13420 2002-03-02  Per Bothner  <per@bothner.com>
13421
13422         * gcc.c (option_map):  Suport new --bootclasspath option.
13423         --CLASSPATH is now just an alias for --classpath.
13424
13425 2002-03-02  Richard Henderson  <rth@redhat.com>
13426
13427         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
13428         load if "internal" visibility.
13429         * doc/extend.texi: Document visibility meanings.
13430
13431 2002-03-02  Richard Henderson  <rth@redhat.com>
13432
13433         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
13434         to functions as well.
13435
13436 2002-03-02  Richard Henderson  <rth@redhat.com>
13437
13438         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
13439         (handle_visibility_attribute): Don't call assemble_visibility.
13440         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
13441         without asmspec.  Invoke assemble_alias when needed.
13442         * varasm.c (maybe_assemble_visibility): New.
13443         (assemble_start_function, assemble_variable, assemble_alias): Use it.
13444
13445 2002-03-02  Richard Henderson  <rth@redhat.com>
13446
13447         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
13448         invoke ENCODE_SECTION_INFO with first call flag.
13449
13450         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
13451         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
13452         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
13453         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
13454         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
13455         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
13456         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
13457         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
13458         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
13459         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
13460         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
13461         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
13462         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
13463         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
13464         config/mcore/mcore-protos.h, config/mcore/mcore.c,
13465         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
13466         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
13467         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
13468         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
13469         config/sh/sh.h, config/sparc/sparc.h,
13470         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
13471         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
13472         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
13473         FIRST argument.  As needed, examine it and do nothing.
13474
13475         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
13476         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13477         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
13478
13479         * config/arm/t-pe (pe.o): Add dependencies.
13480
13481 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13482
13483         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
13484         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
13485         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
13486         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
13487         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
13488         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
13489         * defaults.h (BITS_PER_UNIT): Define.
13490         * doc/tm.texi (BITS_PER_UNIT): Document default value.
13491
13492 2002-03-02  Kazu Hirata  <kazu@hxi.com>
13493
13494         * config/h8300/h8300-protos.h: Add a prototype for
13495         compute_a_shift_length.
13496         * config/h8300/h8300.c (h8300_asm_insn_count): New.
13497         (compute_a_shift_length): Likewise.
13498         (h8300_adjust_insn_length): Do not adjust insn length of shift
13499         insns.
13500         * config/h8300/h8300.md (anonymous shift patterns): Use
13501         compute_a_shift_length.
13502
13503 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13504
13505         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
13506         trunc_int_for_mode.
13507
13508         * emit-rtl.c (offset_address): Call update_temp_slot_address.
13509
13510 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13511
13512         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
13513         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
13514         * flags.h (flag_zero_initialized_in_bss): Declare.
13515         * toplev.c (flag_zero_initialized_in_bss): New flag.
13516         (lang_independent_options): Add flag_zero_initialized_in_bss.
13517         * tree.c (initializer_zerop): New function.
13518         * tree.h (initializer_zerop): Declare.
13519         * varasm.c (assemble_variable): If we can emit bss, put zero
13520         initializers in the bss section.
13521
13522 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
13523
13524         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
13525         like more than one symbol per .weak directive.
13526
13527 2002-03-01  Richard Henderson  <rth@redhat.com>
13528
13529         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
13530         adjust argument_pointer by pretend_args_size.
13531         (ia64_va_start): Adjust va_start address by -pretend_args_size.
13532
13533 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13534
13535         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
13536
13537 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
13538
13539         * toplev.c (rest_of_compilation): Delete dead jumptables before
13540         loop.
13541         * flow.c (delete_dead_jumptables): Make global.
13542         * rtl.h (delete_dead_jumptables): Declare.
13543
13544 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
13545
13546         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
13547         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
13548         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
13549
13550 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13551
13552         * config/h8300/h8300-protos.h: Fix formatting.
13553         * config/h8300/h8300.c: Likewise.
13554         * config/h8300/h8300.h: Likewise.
13555
13556 2002-03-01  Kazu Hirata  <kazu@hxi.com>
13557
13558         * config/h8300/h8300.c (print_operand): Support 16-bit
13559         constant addresses.
13560         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
13561
13562 2002-02-28  Richard Henderson  <rth@redhat.com>
13563
13564         * expmed.c (store_bit_field): Prevent generation of CONCATs;
13565         pun complex values as integers; use gen_lowpart instead of
13566         gen_rtx_SUBREG.
13567         (extract_bit_field): Likewise.
13568
13569 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
13570             David Edelsohn  <edelsohn@gnu.org>
13571
13572         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
13573         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
13574         (SUPPORTS_WEAK): Likewise.
13575         * output.h (add_weak): Add tree param.
13576         * varasm.c (add_weak): Likewise.  Save decl.
13577         (struct weak_syms): Add decl field.
13578         (mark_weak_decls): New function.
13579         (init_varasm_once): ggc_add_root mark_weak_decls.
13580         (assemble_start_function): Use ASM_WEAKEN_DECL.
13581         (assemble_variable): Likewise.
13582         (assemble_alias): Likewise.
13583         (declare_weak): Pass decl to add_weak.
13584         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
13585         (remove_from_pending_weak_list): Declare and define for
13586         ASM_WEAKEN_DECL.
13587         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
13588         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
13589         * defaults.h (SUPPORTS_WEAK): Likewise.
13590         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
13591         .weak for code sym.  Do emit .size for descriptor sym.
13592         (ASM_DECLARE_FUNCTION_SIZE): Define.
13593         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
13594         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
13595         .lglobl unless TARGET_XCOFF.  Formatting fixes.
13596         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
13597         .weak for code sym.
13598         (HANDLE_PRAGMA_WEAK): Remove.
13599         (ASM_WEAKEN_LABEL): Remove.
13600         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
13601
13602 2002-03-01  Jason Merrill  <jason@redhat.com>
13603
13604         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
13605         (TARGET_EXPR_CLEANUP): New macro.
13606
13607 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
13608
13609         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
13610         to take ptr_extend into account as third type of extension.
13611         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
13612         fields used by SUBREG_PROMOTED_UNSIGNED_P.
13613         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
13614         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
13615         * calls.c (precompute_arguments): Use new macro.
13616         (expand_call): Ditto.
13617         * combine.c (nonzero_bits): Ditto.
13618         (record_promoted_value): Ditto.
13619         * expr.c (store_expr): Ditto.
13620         (expand_expr): Ditto.
13621         * function.c (assign_parms): Ditto.
13622
13623 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
13624
13625         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
13626         override -shared and -shared-libgcc.
13627
13628 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
13629
13630         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
13631         of "ultrasparc".
13632         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
13633         to be broken.
13634
13635 2002-02-28  Richard Henderson  <rth@redhat.com>
13636
13637         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
13638         4 cycle latency from MM producers.
13639         (ia64_internal_sched_reorder): Likewise with pipeline flush.
13640
13641 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
13642
13643         * mklibgcc.in: Don't use GNU make extension.
13644
13645 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
13646
13647         * c-parse.in (STATIC): New terminal.
13648         (scspec): New non-terminal.  Update productions accordingly.
13649         (program): Remove bogus ifc / end ifc.
13650         (array_declarator): Simplify production using STATIC.
13651
13652 2002-02-28  Jim Meyering  <meyering@lucent.com>
13653
13654         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
13655         \a still means TARGET_BELL.
13656
13657 2002-02-28  Richard Henderson  <rth@redhat.com>
13658
13659         * haifa-sched.c (sched_emit_insn): New.
13660         (schedule_block): Use last_scheduled_insn to track last insn.
13661         * sched-int.h (sched_emit_insn): Prototype.
13662         * config/ia64/ia64.c (last_issued): Remove.
13663         (ia64_variable_issue): Don't set it.
13664         (nop_cycles_until): Use sched_emit_insn.
13665
13666 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
13667
13668         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
13669         extended constants.
13670
13671 2002-02-28  Kazu Hirata  <kazu@hxi.com>
13672
13673         * config/h8300/h8300.c: Fix formatting.
13674         * config/h8300/h8300.h: Likewise.
13675
13676 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13677
13678         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
13679         which may overwrite the high byte of the frame pointer.
13680
13681 2002-02-28  Bo Thorsen  <bo@suse.de>
13682
13683         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
13684         (STARTFILE_SPEC): Add 64 bit files.
13685         (ENDFILE_SPEC): Likewise.
13686
13687 2002-02-28  Jason Merrill  <jason@redhat.com>
13688
13689         * c-decl.c (finish_function): Only warn about missing return
13690         statement with -Wreturn-type.
13691
13692 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
13693
13694         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
13695
13696         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
13697         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
13698
13699 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
13700
13701         * basic-block.h (BB_REACHABLE): Renumber.
13702         (BB_DIRTY, BB_NEW): New flags.
13703         (clear_bb_flags): Declare.
13704         (update_life_info_in_dirty_blocks): Declare.
13705         * cfg.c (clear_bb_flags): New function.
13706         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
13707         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
13708         reorder_insns, emit_insn_after): Mark block as dirty.
13709         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
13710         (update_life_info_in_dirty_blocks): New function.
13711         * recog.c (apply_change_group): Dirtify block.
13712
13713         * cse.c (cse_insn): Reorder emitting of jump insn to keep
13714         cfg consistent.
13715         * gcse.c (delete_null_pointer_checks): Likewise.
13716
13717         * toplev.c (dump_file_index): Move cse2 after bp,
13718         add DFI_null
13719         (dump_file_info): Similary.
13720         (rest_of_compilation): Avoid most of CFG rebuilds;
13721         do first if converision after null pointer checks, do cse2
13722         after branch prediction; avoid full liveness rebuild after
13723         initializing subregs.
13724         * invoke.texi (-d options): Document -du, renumber.
13725
13726         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
13727         (notice_new_block): Do not set BB_UPDATE_LIFE.
13728         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
13729          merge_blocks_move_successor_nojumps, merge_blocks,
13730          try_crossjump_to_edge): Likewise.
13731         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
13732         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
13733         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
13734         (merge_of_block): Do not use life_data_ok.
13735         (find_if_case_1): Do not use SET_UPDATE_LIFE.
13736         (if_convert): Use BB_DIRTY mechanizm to update life.
13737         * lcm.c (optimize_mode_switching): Update
13738         update_life_info_in_dirty_blocks
13739
13740 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
13741
13742         * Makefile.in (integrate.o): Update.
13743         * c-decl.c (copy_lang_decl): Rename.
13744         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
13745         * integrate.c: Include langhooks.h.
13746         (copy_decl_for_inlining): Update to use langhook.
13747         * langhooks-def.h (lhd_do_nothing_t,
13748         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
13749         (LANG_HOOKS_INITIALIZER): Update.
13750         * langhooks.c (lhd_do_nothing_t): New.
13751         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
13752         * tree.h (copy_lang_decl): Remove.
13753 objc:
13754         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
13755
13756 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
13757
13758         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
13759         POST_DEC, and POST_MODIFY.
13760
13761 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
13762
13763         * c-typeck.c (digest_init): Remove unused parameter; all
13764         callers changed.
13765
13766 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
13767
13768         * expmed.c (expand_shift): Correctly test for low part of a
13769         subreg.
13770
13771 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
13772
13773         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
13774         insn UIDs with insn addresses.
13775
13776 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
13777
13778         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
13779         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
13780         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
13781         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
13782         gcc.c, toplev.c: Delete code implementing -traditional mode.
13783
13784         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
13785         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
13786         Document removal of -traditional mode for compilation, and
13787         remove documentation only relevant to that mode.
13788
13789         * config/nextstep.h, config/ptx4.h, config/svr4.h,
13790         config/convex/convex.h, config/d30v/d30v.h,
13791         config/i386/dgux.h, config/i386/osf1elf.h,
13792         config/i386/osfelf.h, config/i386/osfrose.h,
13793         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
13794         config/m68k/hp310.h, config/m88k/dgux.h,
13795         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
13796         config/m88k/m88k.h, config/m88k/openbsd.h,
13797         config/mips/abi64.h, config/mips/osfrose.h,
13798         config/mips/svr4-5.h, config/mips/svr4-t.h,
13799         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
13800         config/stormy16/stormy16.h: Remove all references to
13801         -traditional from target specs.  Delete all mention of the
13802         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
13803         delete a couple of commented-out definitions of
13804         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
13805         to -traditional.
13806
13807         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
13808         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
13809
13810 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
13811
13812         * mklibgcc.in: Don't use \n in a line subject to
13813         interpretation by echo.
13814
13815 2002-02-27  Graham Stott  <grahams@redhat.com>
13816
13817         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
13818         Constify NAME.
13819
13820         * loop.c (prescan_loop): Handle PARALLEL.
13821
13822         * unroll.c (loop_iterations): Return 0 if the add_val for
13823         a BIV is REG.
13824
13825         * final.c (output_operand_lossage): Constify PFX_STR.
13826
13827         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
13828
13829 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
13830
13831         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
13832         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
13833
13834 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
13835
13836         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
13837
13838 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
13839
13840         * cpplex.c (_cpp_lex_token): Handle directives in macro
13841         arguments.
13842         * cpplib.c (_cpp_handle_directive): Save and restore state
13843         if parsing macro args when entering a directive.
13844         * cppmacro.c (collect_args): No need to handle directives
13845         in macro arguments.
13846         (enter_macro_context, replace_args): Use the original macro
13847         definition in case it was redefined whilst collecting arguments.
13848 doc:
13849         * cpp.texi: Update.
13850
13851 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
13852
13853         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
13854         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
13855         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
13856         method on AIX.
13857         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
13858         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
13859         (load_toc_v4_PIC_2): Same.
13860
13861 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
13862
13863         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
13864
13865 2002-02-26  Richard Henderson  <rth@redhat.com>
13866
13867         * config/alpha/alpha.md (ashldi_se): Re-enable.
13868
13869 2002-02-26  Richard Henderson  <rth@redhat.com>
13870
13871         * config/alpha/alpha.c (alpha_encode_section_info): Examine
13872         MODULE_LOCAL_P; improve commentary.
13873
13874 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
13875
13876         * doc/cpp.texi: Clarify documentation of relationship between
13877         #line and #include.
13878
13879 2002-02-26  Kazu Hirata  <kazu@hxi.com>
13880
13881         * config/h8300/h8300-protos.h: Update the prototype for
13882         compute_logical_op_length.  Add the prototype for
13883         compute_logical_op_cc.
13884         * config/h8300/h8300.c (compute_logical_op_length): Figure out
13885         code from operands.
13886         (compute_logical_op_cc): New.
13887         * config/h8300/h8300.md: Combine all the logical op patterns
13888         in HImode and SImode.  Use compute_logical_op_cc.
13889
13890 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
13891
13892         * config/i386/i386.c (print_operand): Don't append ATT-style
13893         length suffixs to x87 opcodes when in Intel mode.
13894
13895 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
13896
13897         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
13898         (init_emit_once): Update calls.
13899         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
13900         (init_syntax_once): Prototype.
13901
13902 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13903
13904         * pa-linux.h (LIB_SPEC): Update definition.
13905         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
13906
13907 2002-02-26  Richard Henderson  <rth@redhat.com>
13908
13909         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
13910         if we emitted a stop bit.
13911
13912 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13913
13914         * configure.in (libgcc_visibility): Substitute.
13915         * configure: Rebuilt.
13916         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
13917         defined symbols .hidden.
13918
13919 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13920
13921         * attribs.c (c_common_attribute_table): Add visibility.
13922         (handle_visibility_attribute): New function.
13923         * varasm.c (assemble_visibility): New function.
13924         * output.h (assemble_visibility): Add prototype.
13925         * tree.h (MODULE_LOCAL_P): Define.
13926         * crtstuff.c (__dso_handle): Use visibility attribute.
13927         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
13928         for MODULE_LOCAL_P symbols too.
13929         * config/ia64/ia64.c (ia64_encode_section_info): Handle
13930         MODULE_LOCAL_P symbols the same way as local symbols.
13931         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
13932         into .sdata/.sbss by the user.
13933         * doc/extend.texi (Function Attributes): Document visibility
13934         attribute.
13935
13936 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13937
13938         PR debug/5770
13939         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
13940         STRING_CST initializer spanning the whole variable without
13941         embedded zeros.
13942         If expand_expr returned MEM, don't use it.
13943
13944 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
13945
13946         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
13947         generate a die for the lexical block.
13948
13949 2002-02-26  Kazu Hirata  <kazu@hxi.com>
13950
13951         * config/h8300/h8300-protos.h: Add a prototype for
13952         compute_logical_op_length.
13953         * config/h8300/h8300.c (compute_logical_op_length): New.
13954         * config/h8300/h8300.md (anonymous logical patterns): Use
13955         compute_logical_op_length for length.
13956
13957 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13958
13959         * dwarf2out.c (modified_type_die): Do not call type_main_variant
13960         for vectors.
13961         (gen_type_die): Same.
13962
13963         * attribs.c (handle_vector_size_attribute): Set debug information.
13964
13965 2002-02-26  Daniel Egger  <degger@fhm.edu>
13966
13967         * config/rs6000/rs6000.md: Swap define_insn attributes to
13968         fix incorrect generation of merge high instructions instead
13969         of merge low.
13970
13971 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13972
13973         * c-typeck.c (really_start_incremental_init): Use
13974         bitsize_zero_node for vectors.
13975
13976 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13977
13978         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
13979         ("*set_vrsave_internal"): Same.
13980
13981 2002-02-25  Richard Henderson  <rth@redhat.com>
13982
13983         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
13984         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
13985
13986 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
13987
13988         PR target/5755
13989         * config/i386/i386.c (ix86_return_pops_args): Only pop
13990         fake structure return argument if it was passed on the stack.
13991
13992 2002-02-25  Jason Merrill  <jason@redhat.com>
13993
13994         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
13995         RESULT_DECL.
13996
13997 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13998
13999         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
14000         link with shared_name only.
14001         * doc/invoke.texi (Link Options): Document new behavior.
14002
14003 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
14004
14005         * c-typeck.c (push_init_level): Handle vectors.
14006
14007 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
14008
14009         * config/sparc/sparc.c (const64_high_operand): Zero-extend
14010         operands of SPARC_SETHI_P.
14011         (input_operand): Likewise.
14012         (sparc_emit_set_const32): Likewise.
14013         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
14014         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
14015         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
14016         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
14017         (movdi_insn_sp64_vis): Likewise.
14018         (movdi split, movdf split): Use SETHI32.
14019         * doc/md.texi: Document SPARC constraints L, M and N.
14020
14021 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
14022
14023         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
14024         ("*set_vrsave_internal"): use mfspr for Darwin.
14025
14026         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
14027         gen_get_vrsave_internal.
14028
14029 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14030
14031         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
14032
14033 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
14034
14035         * cpplex.c (cpp_interpret_charconst): Get signedness or
14036         otherwise of wide character constants correct.
14037         * cppexp.c (lex): Get signedness of wide charconsts correct.
14038
14039 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14040
14041         * optabs.c (widen_operand): Only call convert_modes for
14042         promoted SUBREG if signedness matches.
14043         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
14044
14045 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14046
14047         * cpplib.c (glue_header_name): Use local buffer to build up
14048         header name.
14049
14050 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14051
14052         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
14053
14054 2002-02-23  Kazu Hirata  <kazu@hxi.com>
14055
14056         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
14057         H8/300[HS] separately.
14058         * config/h8300/h8300.md: Remove the early clobber constraint
14059         from bit field patterns.
14060
14061 2002-02-23  Kazu Hirata  <kazu@hxi.com>
14062
14063         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
14064         register_operand.
14065         (mulhisi3): Likewise.
14066         (umulqisi3): Likewise.
14067         (umulhisi3): Likewise.
14068
14069 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14070
14071         * cppinit.c (output_deps): Correct test for stdout output.
14072         (init_dependency_output): Cure warning.
14073
14074 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14075
14076         * expr.c (store_expr): When converting expression to promoted
14077         equivalent type, allow using SUBREG_REG of TARGET as the target
14078         of the expansion of EXP.
14079         * loop.c (basic_induction_var, case SUBREG): Always look inside.
14080         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
14081         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
14082         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
14083         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
14084
14085 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
14086
14087         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
14088         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
14089         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
14090
14091 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
14092
14093         PR optimization/5747
14094         * loop.c (scan_loop): Update reg info if move_movables created new
14095         pseudos.
14096
14097 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
14098
14099         * gcc.c (init_gcc_spec): Revert last change.
14100
14101 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
14102
14103         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
14104         gpc_reg_operand constraint.
14105
14106 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
14107
14108         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
14109         Simplify comparison of `low'.
14110         (add_operand): Fix formatting.
14111         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
14112         (mask_operand): Disallow mask to wrap in 64-bit mode.
14113         (rs6000_stack_info): Remove redundant test setting push_p.
14114         (output_toc): Fix formatting.
14115         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
14116         cc_reg_not_cr0_operand constraint.
14117         (booldi3, boolcdi3 splitters): Same.
14118
14119 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
14120
14121         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
14122
14123 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
14124
14125         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
14126         gcc invoked with -shared-libgcc.
14127
14128 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
14129
14130         PR c++/5748
14131         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
14132         decl if any of elements was TREE_USED.
14133
14134 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
14135
14136         * config/sparc/sol2.h: Don't include sys/mman.h.
14137         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
14138         (arith_4096_operand): Don't throw high bits away.
14139         (const64_operand): Take sign extension of CONST_INTs into account.
14140         (const64_high_operand, sparc_emit_set_const32): Likewise.
14141         (GEN_HIGHINT64): Likewise.
14142         (sparc_emit_set_const64_quick1): Likewise.
14143         (const64_is_2insns): Likewise.
14144         (print_operand): Use trunc_int_for_mode for sign extension.
14145         * config/sparc/sparc.h (SMALL_INT32): Likewise.
14146         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
14147         chars.  Assume CONST_INT is already properly sign-extended.
14148         (movdi split): Sign-extend each SImode part.
14149         (andsi3 split): Don't mask high bits off, so that result
14150         remains properly sign-extend.
14151         (iorsi3 split): Likewise.
14152         (xorsi3 split): Likewise.
14153
14154 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
14155
14156         * fold-const.c (fold): Fix typo in comments.
14157
14158 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
14159
14160         * Makefile.in (langhooks.o): Update dependencies.
14161
14162 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
14163
14164         * langhooks.c: Include flags.h.
14165
14166 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
14167
14168         * testsuite/gcc.dg/attr-alwaysinline.c: New.
14169
14170         * c-common.c (c_common_post_options): Set inline trees by
14171         default.
14172
14173         * doc/extend.texi (Function Attributes): Document always_inline
14174         attribute.
14175         Update documentation about inlining when not optimizing.
14176
14177         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
14178
14179         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
14180         unless DECL_ALWAYS_INLINE.
14181
14182         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
14183         unless DECL_ALWAYS_INLINE.
14184         (c_disregard_inline_limits): Disregard if always_inline set.
14185
14186         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
14187         Disregard if always_inline set.
14188         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
14189         unless DECL_ALWAYS_INLINE.
14190
14191         * attribs.c (handle_always_inline_attribute): New.
14192         (c_common_attribute_table): Add always_inline.
14193
14194         * config/rs6000/altivec.h: Add prototypes for builtins
14195         requiring the always_inline attribute.
14196
14197 2002-02-21  Eric Christopher  <echristo@redhat.com>
14198
14199         * expmed.c (store_bit_field): Try to simplify the subreg
14200         before generating a new one when when the mode size of
14201         value is less than maxmode.
14202
14203 2002-02-21  Richard Henderson  <rth@redhat.com>
14204
14205         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
14206         than gen_rtx_PLUS to form the sum.
14207         * explow.c (force_reg): Rearrange to not allocate new pseudo
14208         when force_operand returns a register.
14209         * expr.c (expand_assignment): Allow offset_rtx expansion to
14210         return a sum.  Do not force addresses into registers.
14211         (expand_expr): Likewise.
14212         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
14213         to canonicalize arithmetic that didn't simpify.
14214         (simplify_plus_minus): New argument force; update
14215         all callers.  Don't split CONST unless we can do something with it,
14216         and wouldn't lose the constness of the operands.
14217
14218         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
14219         that we generated earlier.
14220
14221 2002-02-21  Tom Tromey  <tromey@redhat.com>
14222
14223         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14224         (output_line_info): Use constant `1', with a long explanatory
14225         comment.
14226         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
14227
14228 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
14229
14230         * jump.c (redirect_jump): If old label has no UID, don't try to
14231         delete it.
14232
14233 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
14234
14235         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
14236         If input is constant, do shifts at compile time.
14237
14238 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
14239
14240         * doc/extend.texi: Fix some more overfull hboxes.
14241
14242 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14243
14244         PR optimization/4994
14245         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
14246         register moves.
14247
14248 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14249
14250         PR c++/4574
14251         * expr.h (expand_and): Add mode argument.
14252         * expmed.c (expand_and): Add mode argument.
14253         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
14254         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
14255         * except.c (expand_builtin_extract_return_addr): Likewise.
14256         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
14257         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
14258         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
14259         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
14260         * config/c4x/c4x.md: Use GEN_INT (x) instead of
14261         gen_rtx (CONST_INT, VOIDmode, x).
14262
14263 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
14264
14265         PR c/4697:
14266         * stmt.c (warn_if_unused_value): Move side effects test once more.
14267
14268 2002-02-20  Torbjorn Granlund  <tege@swox.com>
14269
14270         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
14271         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
14272
14273 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
14274
14275         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
14276         SUBREG or ZERO_EXTEND.
14277
14278 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
14279
14280         * sh.h (current_function_anonymous_args): Remove.
14281         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
14282         of current_function_varargs and current_function_stdarg is set.
14283         * sh.c (sh_expand_prologue): Check current_function_varargs /
14284         current_function_stdarg / TARGET_SH5 instead of
14285         current_function_anonymous_args.
14286
14287         * sh64.h (TARGET_VERSION): Define.
14288
14289 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
14290
14291         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
14292         VRSAVE_REGNO on TARGET_ALTIVEC.
14293
14294 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
14295
14296         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
14297         bits of SImode const_int.
14298         (includes_rshift_p): Likewise.
14299         (print_operand): Call mask_operand and mask64_operand with correct
14300         mode.
14301         (rs6000_output_function_epilogue): Pad traceback table to word.
14302         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
14303         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
14304         mask64_operand with correct mode.
14305         (FUNCTION_ARG_REGNO_P): Correct parentheses.
14306
14307 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
14308
14309         PR debug/4461
14310         * varasm.c (get_pool_constant_mark): New.
14311         * rtl.h (get_pool_constant_mark): Add prototype.
14312         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
14313         be represented if it has not been output.
14314
14315 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
14316
14317         * combine.c (do_SUBST): Sanity check substitutions of
14318         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
14319         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
14320         CONST_INT into its operand.
14321         (known_cond): Likewise, for ZERO_EXTEND.
14322         * simplify-rtx.c (simplify_unary_operation): Fix condition to
14323         allow for simplification of wide modes.  Reject CONST_INTs in
14324         ZERO_EXTEND when their actual mode is not given.
14325
14326 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
14327
14328         * c-decl.c (pushdecl): If no global declaration is found for an
14329         extern declaration in block scope, try a limbo one.
14330
14331 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
14332
14333         PR c++/4401
14334         * c-common.c (pointer_int_sum): Moved from...
14335         * c-typeck.c (pointer_int_sum): ...here.
14336         * c-common.h (pointer_int_sum): Add prototype.
14337
14338 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
14339
14340         PR c++/5713
14341         * c-decl.c (duplicate_decls): Return 0 if issued error about
14342         redeclaration.
14343
14344 2002-02-20  Roger Sayle  <roger@eyesopen.com>
14345             Jakub Jelinek  <jakub@redhat.com>
14346
14347         PR c/4389
14348         * tree.c (host_integerp): Ensure that the constant integer is
14349         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
14350         when pos is zero or non-zero respectively.  Clarify comment.
14351         * c-format.c (check_format_info_recurse): Fix host_integerp
14352         usage; the pos argument should be zero when assigning to a
14353         signed HOST_WIDE_INT.
14354
14355 2002-02-20  Richard Henderson  <rth@redhat.com>
14356
14357         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
14358         of the operand, rather than assuming TImode.
14359         (ix86_expand_binop_builtin): Cope with commutative patterns
14360         using nonimmediate_operand for both operands.
14361         (ix86_expand_timode_binop_builtin): Likewise.
14362         (ix86_expand_store_builtin): Validate operand 1.
14363         (ix86_expand_unop1_builtin): Likewise.
14364
14365 2002-02-20  Philip Blundell  <philb@gnu.org>
14366
14367         PR 5705
14368         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
14369
14370 2002-02-20  Richard Henderson  <rth@redhat.com>
14371
14372         PR c/5615
14373         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
14374
14375 2002-02-20  Tom Tromey  <tromey@redhat.com>
14376
14377         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14378         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14379         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14380         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
14381         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
14382         unconditionally.
14383
14384 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
14385
14386         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
14387           for (const_int 0) in X not just INTVAL.
14388
14389 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
14390
14391         * doc/extend.texi: Avoid or reduce overfull hboxes.
14392
14393 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
14394
14395         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
14396         operations if the field does not start at a mode boundary.
14397
14398 2001-02-20      Joel Sherrill <joel@OARcorp.com>
14399
14400         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
14401         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
14402         Also done for -Acpu and -Amachine.
14403
14404 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
14405
14406         * cppinit.c (init_dependency_output): Take deps output file
14407         from -o if none given with -MF.  Suppress normal output.
14408         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
14409         * doc/cpp.texi, doc/invoke.texi: Update.
14410
14411 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
14412
14413         * toplev.c (output_quoted_string): Write unprintable
14414         characters with octal escapes.
14415
14416 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
14417
14418         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
14419         really_call_used[VRSAVE_REGNO] if not Altivec.
14420
14421 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
14422
14423         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
14424         MODE_MASK.
14425         (constant_pool_expr_1): Fix formatting.
14426         (rs6000_legitimize_reload_address): Likewise.
14427
14428 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14429
14430         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
14431         now that we have one.
14432
14433 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
14434
14435         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
14436         end of first block of bitfields (which was only seven bits);
14437         rename dummy to unused_1; remove comment which is no longer true.
14438
14439 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
14440
14441         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
14442
14443 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
14444
14445         PR 5399
14446         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
14447         if generating PIC.
14448
14449         PR 5054
14450         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
14451         arm_is_longcall_p rather than inspecting call-type cookie
14452         directly.
14453         (call_value_insn) [TARGET_THUMB]: Likewise.
14454
14455 2002-02-19  Graham Stott  <grahams@redhat.com>
14456
14457         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
14458
14459 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
14460
14461         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
14462         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
14463         (FP_SAVE_INLINE): Delete.
14464
14465         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
14466         * config/rs6000/eabi.asm: Remove ABI save restore routines.
14467         * config/rs6000/t-ppccomm: Build crtsavres.o.
14468         * config/rs6000/crtsavres.asm: New file.
14469
14470 2002-02-19  Philip Blundell  <philb@gnu.org>
14471
14472         * config/arm/arm.c (use_return_insn): Don't reject interrupt
14473         functions.
14474         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
14475         (output_return_instruction): Allow interrupt functions to return with
14476         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
14477         (arm_expand_prologue): Subtract 4 before stacking LR in an
14478         interrupt function.
14479
14480 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
14481
14482         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
14483         decl, not just FUNCTION_DECL.
14484         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
14485         (arm_assemble_integer): Likewise.
14486         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
14487         marked local.
14488
14489 2002-02-19  matthew green  <mrg@eterna.com.au>
14490
14491         * config.gcc (sparc-*-netbsdelf*): Enable target.
14492         (sparc64-*-netbsd*): New target.
14493         * config/sparc/netbsd-elf.h: New file.
14494         * config/sparc/t-netbsd64: New file.
14495
14496 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
14497
14498         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
14499
14500 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
14501
14502         * doc/invoke.texi: explicitly list the style guidelines that
14503         -Weffc++ checks for.
14504
14505 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
14506
14507         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
14508
14509 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
14510
14511         PR other/5718
14512         * gcc.c (cpp_unique_options): Treat -o as indicating object file
14513         only if not -E.  If -E, pass -o through to the preprocessor.
14514
14515 2002-02-19  Kazu Hirata  <kazu@hxi.com>
14516
14517         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
14518         register number with an appropriate macro.
14519
14520 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14521
14522         * doc/rtl.texi (Constants): Close @code tag.
14523
14524 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
14525
14526         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
14527         ("mmx_uavgv4hi3"): Same.
14528         ("pmulhrwv4hi3"): Same.
14529
14530         * tree-inline.c (walk_tree): Handle vectors.
14531
14532         * c-common.c (constant_expression_warning): Handle vectors.
14533         (overflow_warning): Same.
14534
14535         * sched-deps.c (sched_analyze_2): Handle vectors.
14536
14537         * rtlanal.c (rtx_unstable_p): Handle vectors.
14538         (rtx_varies_p): Same.
14539         (count_occurrences): Same.
14540         (regs_set_between_p): Same.
14541         (modified_between_p): Same.
14542         (modified_in_p): Same.
14543         (volatile_insn_p): Same.
14544         (volatile_refs_p): Same.
14545         (side_effects_p): Same.
14546         (may_trap_p): Same.
14547         (inequality_comparisons_p): Same.
14548         (replace_regs): Same.
14549         (computed_jump_p_1): Same.
14550
14551         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
14552         argument.
14553         (inner_mode_array): New.
14554         (copy_rtx): Handle vectors.
14555         (copy_most_rtx): Same.
14556         (rtx_equal_p): Same.
14557         (get_mode_alignment): Adjust for vectors.
14558
14559         * resource.c (mark_referenced_resources): Handle vectors.
14560         (mark_set_resources): Same.
14561
14562         * reload1.c (eliminate_regs): Handle vectors.
14563         (elimination_effects): Same.
14564         (scan_paradoxical_subregs): Same.
14565
14566         * reload.c (subst_reg_equivs): Handle vectors.
14567
14568         * regrename.c (scan_rtx): Handle vectors.
14569
14570         * regclass.c (reg_scan_mark_refs): Handle vectors.
14571
14572         * recog.c (find_single_use_1): Handle vectors.
14573
14574         * local-alloc.c (equiv_init_varies_p): Handle vectors.
14575         (contains_replace_regs): Same.
14576         (memref_referenced_p): Same.
14577
14578         * integrate.c (copy_rtx_and_substitute): Handle vectors.
14579         (subst_constants): Same.
14580
14581         * genattrtab.c (attr_copy_rtx): Handle vectors.
14582         (encode_units_mask): Same.
14583         (clear_struct_flag): Same.
14584         (count_sub_rtxs): Same.
14585
14586         * gcse.c (want_to_gcse_p): Handle vectors.
14587         (oprs_unchanged_p): Same.
14588         (hash_expr_1): Same.
14589         (oprs_not_set_p): Same.
14590         (expr_killed_p): Same.
14591         (compute_transp): Same.
14592         (store_ops_ok): Same.
14593
14594         * function.c (purge_addressof_1): Do not allow paradoxical subregs
14595         of vectors.
14596         (fixup_var_refs_1): Same.
14597         (instantiate_virtual_regs_1): Same.
14598
14599         * fold-const.c (operand_equal_p): Handle vectors.
14600         (fold): Same.
14601         (rtl_expr_nonnegative_p): Same.
14602
14603         * flow.c (mark_used_regs): Handle vectors.
14604
14605         * df.c (df_uses_record): Handle vectors.
14606
14607         * cselib.c (cselib_subst_to_values): Handle vectors.
14608         (cselib_mem_conflict_p): Same.
14609         (hash_rtx): Same.
14610
14611         * cse.c (canon_reg): Handle vectors.
14612         (fold_rt): Same.
14613         (cse_process_notes): Same.
14614         (count_reg_usage): Same.
14615         (canon_hash): Same.
14616
14617         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
14618
14619         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
14620
14621         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
14622         (gen_rtx): Handle CONST_VECTOR.
14623         (gen_const_vector_0): New.
14624         (copy_rtx_if_shared): CONST_VECTORs can be shared.
14625         (reset_used_flags): Same.
14626         (copy_insn_1): Same.
14627         (initializer_constant_valid_p): Handle VECTOR_CST.
14628
14629         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
14630
14631         * doc/rtl.texi (Constants): Document const_vector.
14632         (CONST0_RTX): Update for vectors.
14633         (RTL sharing): Same.
14634
14635         * print-tree.c (print_node): Add case for VECTOR_CST.
14636
14637         * tree.h (TREE_VECTOR_CST_ELTS): New.
14638         (struct tree_vector): New.
14639         (union tree_node): Add vector node.
14640         (build_vector): Add prototype.
14641
14642         * tree.def (VECTOR_CST): New.
14643
14644         * tree.c (build_vector): New.
14645
14646         * expmed.c (make_tree): Handle CONST_VECTOR.
14647
14648         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
14649         (CONST_VECTOR_ELT): New.
14650         (CONST_VECTOR_NUNITS): New.
14651
14652         * machmode.h (GET_MODE_INNER): New.
14653         (DEF_MACHMODE): Accept 8th arg.
14654
14655         * machmode.def: Add 8th argument for vector inner mode.
14656         Add inner vector modes for vectors.
14657
14658         * rtl.def (VEC_CONST): Remove.
14659         (CONST_VECTOR): New.
14660
14661         * expr.c (clear_storage): Allow vectors.
14662         (is_zeros_p): Handle VECTOR_CST.
14663
14664         * varasm.c (output_constant_pool): Handle vectors.
14665         (rtx_const): Add veclo and vechi fields.
14666         (kind): Add RTX_VECTOR.
14667         (decode_rtx_const): Add case for vector.
14668
14669         * config/rs6000/rs6000-protos.h: Add zero_constant.
14670
14671         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
14672         constants.  Force easy vector constants into memory.
14673         (easy_vector_constant): New.
14674         (emit_easy_vector_constant): New.
14675         (rs6000_legitimize_reload_address): Do not generate bad reloads on
14676         darwin.
14677
14678         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
14679         instruction does.
14680         ("altivec_lvxl"): Same.
14681         (altivec_lvebx): Same.
14682         (altivec_lvehx): Same.
14683         (altivec_lvewx): Same.
14684         ("*movv4si_const0"): New.
14685         ("*movv4sf_const0"): New.
14686         ("*movv8hi_const0"): New.
14687         ("*movv16qi_const0"): New.
14688
14689 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14690
14691         * config/h8300/h8300.c (notice_update_cc): Use
14692         cc_status.value2.
14693
14694 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14695
14696         * config/h8300/h8300.md (divmod patterns): Change the
14697         constraints for operands[1] to register_operand.
14698
14699 2002-02-18  Kazu Hirata  <kazu@hxi.com>
14700
14701         * config/h8300/h8300-protos.h: Remove the prototype for
14702         p_operand.
14703         * config/h8300/h8300.c (p_operand): Remove.
14704         * config/h8300/h8300.md: Replace p_operand with
14705         const_int_operand.
14706
14707 2002-02-18 Philip Blundell <pb@nexus.co.uk>
14708
14709         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
14710         comment.
14711         (output_return_instruction): Allow use of LDR to unstack
14712         return addresss even for interrupt handlers or when
14713         interworking.  If compiling for ARMv5, use interworking-safe
14714         return instructions by default.  Remove duplicated code and
14715         lengthy "strcat" sequences.
14716
14717 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14718
14719         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
14720         (LINK_EH_SPEC): Define.
14721         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
14722
14723 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14724
14725         * config/s390/s390.c (s390_emit_prologue): Do not set the
14726         frame_related flag for call-clobbered registers.
14727
14728 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
14729
14730         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
14731         (construct_container): Fix handling of SSE operands.
14732         (ix86_expand_builtin): Fix handling of 64bit pointers.
14733         (mmx_maskmovq_rex): New pattern.
14734
14735 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14736
14737         * regrename.c (kill_set_value): Handle subregs properly.
14738
14739 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
14740
14741         * objc/objc-act.c (handle_impent): Remove leading '*'
14742         from objc_class_name.
14743
14744 2002-02-17  Richard Henderson  <rth@redhat.com>
14745
14746         * config/alpha/alpha.c (some_small_symbolic_operand,
14747         some_small_symbolic_operand_1, split_small_symbolic_operand,
14748         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
14749         Handle small SYMBOL_REFs anywhere, not just inside memories.
14750         * config/alpha/alpha-protos.h: Update.
14751         * config/alpha/alpha.h (PREDICATE_CODES): Update.
14752         * config/alpha/alpha.md (small symbolic operand splitter): Update.
14753
14754 2002-02-17  Roland McGrath  <roland@frob.com>
14755
14756         * config.gcc (powerpc-*-gnu-gnualtivec*,
14757         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
14758         * config/rs6000/gnu.h: New file.
14759         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
14760         Grok "gnu" in rs6000_abi_name.
14761         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
14762         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
14763         Grok -mcall-gnu analogous to -mcall-linux et al.
14764         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
14765         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
14766         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
14767
14768 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
14769
14770         PR c/3444:
14771         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
14772         shortening.
14773
14774 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14775
14776         * config/cris/cris.h: Undefine STARTFILE_SPEC and
14777         ENDFILE_SPEC before (re)defining them.
14778
14779 2002-02-17  Kazu Hirata  <kazu@hxi.com>
14780
14781         * config/h8300/h8300.c: Fix formatting.
14782         * config/h8300/h8300.h: Likewise.
14783
14784 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14785
14786         * doc/tm.texi: Explain why empty strings should not be
14787         marked for translation.
14788
14789 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14790
14791         * final.c (output_operand_lossage): Changed to accept
14792         printf style arguments. Change calls where necessary.
14793         * output.h (output_operand_lossage): Change declaration
14794         accordingly. Update copyright.
14795         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
14796         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
14797         Update copyright date where necessary.
14798
14799         * config/i386/i386.c (print_operand): Likewise. Remove use of
14800         sprintf.
14801
14802         * config/cris/cris.c (cris_operand_lossage): Likewise.
14803         Rename parameter so that exgettext recognizes it as
14804         translatable message.
14805         (LOSE_AND_RETURN): Rename parameter to msgid.
14806
14807 2002-02-17  Kazu Hirata  <kazu@hxi.com>
14808
14809         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
14810         hard coded register number with an appropriate macro.
14811         (HARD_REGNO_MODE_OK): Likewise.
14812         (ARG_POINTER_REGNUM): Likewise.
14813         (STATIC_CHAIN_REGNUM): Likewise.
14814         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
14815         * config/h8300/h8300.md (define_constants): Define more
14816         register numbers.
14817
14818 2002-02-17  Philipp Thomas  <pthomas@suse.de>
14819
14820         * config/i386/i386.h: Don't mark empty strings for translation.
14821
14822 2002-02-16  H.J. Lu <hjl@gnu.org>
14823
14824         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
14825
14826 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
14827
14828         * cppinit.c (merge_include_chains): Check for brack being
14829         NULL before attempting to merge it with qtail.
14830
14831 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
14832
14833         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
14834         DBX_DEBUG.
14835
14836 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14837
14838         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
14839
14840 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14841
14842         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
14843         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
14844         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
14845
14846 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14847
14848         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
14849         now only if !TARGET_FIX.
14850         (*movsi_nt_vms_fix): New pattern.
14851
14852 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
14853
14854         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
14855         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
14856         (alpha_sa_mask, alpha_sa_size): Reflect above change.
14857         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
14858         (alpha_start_function, alpha_expand_epilogue): Likewise.
14859         (unicosmk_gen_dsib): Likewise.
14860
14861 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14862
14863         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
14864
14865 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
14866
14867         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
14868         check_and_change_labels, s390_final_chunkify): Delete.
14869         (s390_split_branches, s390_chunkify_pool): New functions.
14870         (s390_function_prologue): Call them.
14871
14872         * config/s390/s390.h (S390_REL_MAX): Delete.
14873         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
14874
14875         * config/s390/s390.md (cjump, icjump, jump): Fix length
14876         attribute calculation.
14877
14878
14879 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
14880
14881         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
14882         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
14883
14884 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14885
14886         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
14887         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
14888         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
14889
14890 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
14891
14892         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
14893
14894 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
14895
14896         * reload.c (find_dummy_reload): Check that an output register
14897         is valid for its mode.
14898
14899 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
14900
14901         * combine.c (known_cond): After replacing the REG of a SUBREG, try
14902         to simplify it.
14903
14904         * function.c (assign_parms): Demote promoted argument passed by
14905         transparent reference.
14906
14907 2001-02-14      Joel Sherrill <joel@OARcorp.com>
14908
14909         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
14910         -Acpu() and -Amachine() to eliminate warnings.
14911
14912 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
14913
14914         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
14915
14916 2002-02-14  Kazu Hirata  <kazu@hxi.com>
14917
14918         * config/h8300/h8300-protos.h: Update the prototype for
14919         const_costs.
14920         * config/h8300/h8300.c (const_costs): Treat SET as a little
14921         more expensive operation.
14922         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
14923         reference to const_costs.
14924
14925 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
14926
14927         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
14928
14929 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
14930
14931         PR c/5503:
14932         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
14933         use arguments from newtype.
14934
14935 2002-02-13  Eric Christopher  <echristo@redhat.com>
14936
14937         * config/mips/mips.c (override_options): Add check for march/mipsX
14938         on the same command line. Fix error message in cpu processing.
14939         Remove architecture and ISA checks.
14940
14941 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
14942
14943         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
14944
14945         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
14946
14947 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
14948
14949         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
14950         alternatives.
14951         ("*movv8hi_internal1"): Same.
14952         ("*movv16qi_internal1"): Same.
14953         ("*movv4sf_internal1"): Same.
14954
14955         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
14956         not push_reload for altivec modes.
14957
14958 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
14959
14960         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
14961         all RTEMS targets including removal of #includes from config/*/rtems*.h
14962         file and adding them to tm_file setting. Added xm_defines=POSIX to
14963         many targets.
14964         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
14965         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
14966         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
14967         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
14968         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
14969         config/m68k/rtemself.h: Ditto.
14970         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
14971         config/mips/rtems64.h: Ditto.
14972         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
14973         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
14974         Ditto.
14975         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
14976         config/sparc/rtemself.h: Ditto.
14977         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
14978         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
14979         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
14980         more like arm-elf.
14981         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
14982         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
14983         target made more similar to i386-elf.
14984         * config/i386/t-rtems-i386: Added soft float support and multilibs.
14985         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
14986         be similar to config/m68k/t-m68kelf.
14987         * gthr-rtems.h: Encapsulate with extern "C" for C++.
14988
14989 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
14990
14991         * regmove.c (kill_value): Handle subregs.
14992
14993 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
14994
14995         * i386.md (mul patterns): Allow memory operand to be first;
14996         add expanders where needed; fix constraints.
14997         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
14998         Allow memory operand to be the first.
14999
15000         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
15001         operands.
15002
15003 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
15004
15005         PR c/5681:
15006         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
15007         GET_MODE (x).
15008
15009 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
15010
15011         PR optimization/5547:
15012         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
15013         all valid IA-32 address modes involving non-scaled %ebx and
15014         GOT/GOTOFF as displacement.
15015
15016 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
15017
15018         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
15019         after emitting ltorg insns.
15020
15021         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
15022         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
15023         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
15024         *abssf2): Fix "op_type" attribute.
15025
15026 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
15027
15028         * mkconfig.sh: Avoid using a subshell redirect.
15029         ($output.T): Change to $(output)T.
15030         (ENABLE_NLS): Remove unneeded undef.
15031
15032         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
15033         * config/alpha/x-vms (libsubdir): Define.
15034
15035         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
15036         register frame procedures. Optimize retrieving context.
15037
15038         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
15039         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
15040         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
15041
15042 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15043
15044         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
15045         Make same change as for find_base_value.
15046
15047 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15048
15049         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
15050         of QImode and SImode.
15051
15052 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15053
15054         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
15055         length computation of movsi.
15056         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
15057
15058 2002-02-13  Kazu Hirata  <kazu@hxi.com>
15059
15060         * config/h8300/h8300.md (subqi3): Tighten the predicate for
15061         operands[2] to register_operand.
15062
15063 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
15064
15065         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
15066
15067 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
15068
15069         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
15070         for altivec_lvx* and altivec_stvx*.
15071         ("*movv4si_internal"): Add constraint for loading from GPRs.
15072         ("*movv8hi_internal1"): Same.
15073         ("*movv16qi_internal1"): Same.
15074         ("*movv4sf_internal1"): Same.
15075
15076         * config/rs6000/rs6000.c (altivec_register_operand): New.
15077
15078         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
15079         altivec_register_operand.
15080
15081 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
15082
15083         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
15084         handle SYMBOL_REF.
15085
15086 2002-02-13  Stan Shebs  <shebs@apple.com>
15087
15088         * c-typeck.c (digest_init): Handle vectors.
15089         (really_start_incremental_init): Same.
15090         (pop_init_level): Same.
15091         (process_init_element): Same.
15092
15093         * varasm.c (output_constant): Same.
15094
15095         * expr.c (clear_storage): Same.
15096         (store_constructor): Same.
15097
15098 2002-02-12  Eric Christopher  <echristo@redhat.com>
15099
15100         * explow.c (hard_function_value): Add comment explaining
15101         signed/unsigned comparison.
15102
15103 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
15104
15105         * jump.c (never_reached_warning): Add finish argument.
15106         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
15107         real insn after end.
15108         * rtl.h (never_reached_warning): Adjust prototype.
15109         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
15110         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
15111         never_reached_warning.
15112
15113 2002-02-12  Graham Stott  <grahams@redhat.com>
15114
15115         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
15116
15117 2002-02-12  Kazu Hirata  <kazu@hxi.com>
15118
15119         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
15120         logical shifts on H8/300.
15121         (shift_alg_si): Improve several shifts on H8/300.
15122         (get_shift_alg): Likewise.
15123
15124 2002-02-12  Graham Stott  <grahams@redhat.com>
15125
15126         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
15127
15128 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15129
15130         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
15131         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
15132
15133 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
15134
15135         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
15136         non-CONST_INT through default_assemble_integer.
15137         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
15138         <case 8>: Abort for CONST_DOUBLE.
15139
15140 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15141
15142         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
15143         is specified.
15144         * config/pa/pa-linux.h (LIB_SPEC): Delete.
15145         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
15146
15147 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
15148
15149         * config/stormy16/stormy16.md (zero_extendqihi2): New.
15150
15151 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
15152
15153         * regrename.c (regrename_optimize): Don't accept a
15154         part-clobbered register if the replaced register is not part
15155         clobbered.
15156
15157         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
15158         take padding into account when computing the argument value.
15159
15160         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
15161
15162         * combine.c (try_combine): Apply substitutions in
15163         CALL_INSN_FUNCTION_USAGE too.
15164
15165 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
15166
15167         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
15168         __builtin_altivec_abs*.
15169         (bdesc_abs): New.
15170
15171         * config/rs6000/rs6000.h (rs6000_builtins): Add
15172         ALTIVEC_BUILTIN_ABS*.
15173
15174         * config/rs6000/altivec.h: Use const char for builtins expecting
15175         literals.
15176         (vec_abs): New versions for C and C++.
15177         (vec_abss): Same.
15178
15179 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15180
15181         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
15182         using Pmode.
15183
15184 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15185
15186         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
15187         constant definition from h8300.md.
15188         (FRAME_POINTER_REGNUM): Likewise.
15189         * config/h8300/h8300.md (define_constants): Add FP_REG.
15190
15191 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15192
15193         * config/h8300/h8300.c (print_operand): Remove redundant code.
15194
15195 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15196
15197         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
15198         * config/h8300/h8300.c (byte_reg): Make it static.
15199
15200 2002-02-10  Richard Henderson  <rth@redhat.com>
15201
15202         PR c/5623
15203         * c-typeck.c (incomplete_type_error): Handle flexible array members.
15204
15205 2002-02-10  Richard Henderson  <rth@redhat.com>
15206
15207         PR c++/5624
15208         * tree.c (append_random_chars): Don't abort if main_input_filename
15209         does not exist.
15210
15211 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
15212
15213         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
15214
15215 2002-02-10  Kazu Hirata  <kazu@hxi.com>
15216
15217         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
15218         (pushhi1): Likewise.
15219
15220 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15221
15222         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
15223         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
15224
15225 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
15226
15227         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
15228         remove MASK_VIS.
15229         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
15230
15231 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15232
15233         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
15234         a half of an SImode register on H8/300.
15235
15236 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
15237
15238         * i386.md (movdi_2): Add missing '!'.
15239
15240 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15241
15242         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
15243         definitions.
15244
15245 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15246
15247         * config/h8300/h8300.md (length): Correct the distance valid
15248         for the short branch.
15249
15250 2002-02-09  Kazu Hirata  <kazu@hxi.com>
15251
15252         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
15253
15254 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
15255
15256         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
15257         registers in SImode.
15258         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
15259         part-clobbered.
15260
15261         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
15262         patch.
15263
15264         Contribute sh64-elf.
15265         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
15266         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
15267         (sh_cannot_modify_jumps_p): New function.
15268         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
15269         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
15270         (sh_ms_bitfield_layout_p): New function.
15271         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
15272                     Zack Weinberg  <zack@codesourcery.com>
15273         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
15274         expand_simple_binop instead of expand_binop.
15275         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
15276         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
15277         use of .quad and .uaquad.
15278         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
15279         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
15280         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
15281         * config/sh/sh.md (movdi_const, movdi_const_32bit,
15282         movdi_const_16bit): Make sure all CONSTs have modes.
15283         (sym2PIC): Ditto, but by adjusting all callers.
15284         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
15285         if the prologue calls the SHmedia argument decoder or register
15286         saver.
15287         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
15288         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
15289         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
15290         (sh_expand_epilogue): Don't emit USE of return target register.
15291         (prepare_move_operands): Legitimize DImode PIC addresses.
15292         (sh_media_register_for_return): Skip tr0, used to initialize the
15293         PIC register.
15294         (sh_expand_prologue): Remove explicit USE of return register.
15295         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
15296         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
15297         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
15298         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
15299         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
15300         EXTRA_CONSTRAINT_T.
15301         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
15302         (MOVI_SHORI_BASE_OPERAND_P): New.
15303         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
15304         (EXTRA_CONSTRAINT_T): Define in terms of them.
15305         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
15306         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
15307         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
15308         alternatives supporting TARGET_REGS.
15309         (UNSPEC_GOTPLT): New constant.
15310         (movdi split): Move incrementing of LABEL_NUSES...
15311         (movdi_const, movdi_const_32bit): Here.  Use
15312         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
15313         (movdi_const_16bit): New.
15314         (call, call_value) [flag_pic]: Use GOTPLT.
15315         (call_pop, call_value_pop): New expands.
15316         (call_pop_compact, call_pop_rettramp): New insns.
15317         (call_value_pop_compact, call_value_pop_rettramp): New insns.
15318         (sibcall) [flag_pic]: Use GOT.
15319         (builtint_setjmp_receiver): Remove bogus, unused expand.
15320         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
15321         (*pt, *ptb, ptrel): New insns.
15322         (sym2GOT): Handle DImode GOT.
15323         (sym2GOTPLT, symGOTPLT2reg): New expands.
15324         (sym2PIC): New expand.
15325         (shcompact_return_tramp): Use GOTPLT to return trampoline.
15326         (shcompact_return_tramp_i): Use return register explicitly.
15327         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
15328         disable flag_reorder_blocks.
15329         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
15330         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
15331         clobbers, for clarity.
15332         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
15333         restoring of r0 in macl as MAYBE_DEAD.
15334         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
15335         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
15336         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
15337         alter_subreg all over.
15338         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
15339         reload, instead of emitting instructions that would require
15340         reloading.
15341         (casesi_load_media): Add missing modes.
15342         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
15343         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
15344         as used if the argument decoder is called.
15345         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
15346         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
15347         Pmode, then extend it to DImode if necessary.
15348         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
15349         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
15350         constants in FPU-enabled SHmedia, let them be loaded from memory.
15351         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
15352         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
15353         Adjust whitespace in assembly output templates.
15354         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
15355         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
15356         mode of if_then_else.
15357         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
15358         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
15359         sh.h.
15360         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
15361                     Joern Rennecke <amylaar@redhat.com>
15362         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
15363         (SUBTARGET_CPP_PTR_SPEC): New.
15364         (SUBTARGET_CPP_SPEC): Remove.
15365         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
15366         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
15367         Fix typo in previous checkin.
15368         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
15369         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
15370         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
15371                     Alexandre Oliva  <aoliva@redhat.com>
15372         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
15373         what single FP register can hold for SHmedia target.
15374         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
15375                     Alexandre Oliva  <aoliva@redhat.com>
15376         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
15377         Do not split into SUBREG.
15378         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
15379         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
15380         and added new functions as specified in SH5 ABI r9.
15381         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
15382         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
15383         8-byte boundary.
15384         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
15385         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
15386         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
15387         and consttable_window_ends.
15388         2001-06-03  Graham Stott  <grahams@redhat,com>
15389         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
15390         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
15391         * config/sh/sh.c (print_operand): Handle floating-point pair,
15392         vector and matrix registers.
15393         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
15394         vector modes into account.
15395         * config/sh/sh.md (movv2sf): Split move between registers into
15396         movdf.
15397         (movv4sf, movv16sf): Introduce insns that get split only after
15398         reload.
15399         * config/sh/shmedia.h: Fix Copyright dates.
15400         * config/sh/ushmedia.h: Likewise.  Move loop counter
15401         declarations into conditionals that uses them.
15402         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
15403         loop boundary.
15404         * config/sh/sshmedia.h: Fix Copyright dates.
15405         (sh_media_PUTCFG): Fix constraints.
15406         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
15407         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
15408         ptrmemfunc_vbit_in_delta for SH5.
15409         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
15410         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
15411         * invoke.texi: Likewise.
15412         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
15413         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
15414         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
15415         GCC_pop_shmedia_regs_nofpu): New global symbols.
15416         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
15417         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
15418         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
15419         compact function with nonlocal labels.
15420         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
15421         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
15422         (initial_elimination_offset): Account for their stack space.
15423         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
15424         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
15425         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
15426         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
15427         least one of the operands to be a register.
15428         (movv2sf): Likewise.  Renamed to movv2sf_i.
15429         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
15430         prepare_move_operands() before emitting SHmedia insns.
15431         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
15432         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
15433         Don't save nor initialize r12.  Don't mis-align the stack.
15434         Pad the code with a nop.
15435         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
15436         stack.
15437         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
15438         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
15439         [__SHMEDIA__]: Implement.
15440         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
15441         * config/sh/sh.md: Set latency of `pt' closer to reality.
15442         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
15443         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
15444         Set move, load and store type attributes.
15445         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
15446         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
15447         profiling.
15448         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
15449         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
15450         * config/sh/sh.c (sh_media_register_for_return): New function.
15451         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
15452         branch-target register.
15453         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
15454         * config/sh/sh.md (return_media_i): Use any call-clobbered
15455         branch-target register.
15456         (return_media): If r18 wasn't copied in the prologue, copy it
15457         here.
15458         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
15459         Clear class FP0_REGS.
15460         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
15461         from elf.h.
15462         2001-03-08  DJ Delorie  <dj@redhat.com>
15463         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
15464         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
15465         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
15466         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
15467         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
15468         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
15469         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
15470         return value correctly for call_cookie.
15471         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
15472         * config/sh/crt1.asm (start): Modified so as to call
15473         ___setup_argv_and_call_main.
15474         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
15475         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
15476         SHmedia mode.
15477         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
15478         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
15479         (STRIP_NAME_ENCODING): Use it.
15480         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
15481         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
15482         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
15483         prepare_scc_operands().
15484         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
15485         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
15486         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
15487         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
15488         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
15489         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
15490         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
15491         used in shcompact_incoming_args.
15492         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
15493         change.
15494         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
15495         mode.
15496         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
15497         Adjust accordingly.
15498         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
15499         Simplify.  Adjust.  Add sanity check.
15500         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
15501         FPU_SINGLE_BIT.
15502         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
15503         TARGET_SHCOMPACT.
15504         (udivsi3, divsi3): Use them.
15505         (force_mode_for_call): New insn.
15506         (call, call_value, sibcall_value): Emit it before SHcompact
15507         calls.
15508         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
15509         * config/sh/sh.md (call, call_value, sibcall): Make sure the
15510         call cookie is non-NULL before taking its value.
15511         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
15512         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
15513         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
15514         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
15515         block.
15516         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
15517         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
15518         temporary for stack adjusts.  Use MACL and MACH to pass
15519         arguments to shcompact_incoming_args.
15520         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
15521         clobber r1.
15522         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
15523         (nested_trampoline): Load static chain address into r1.
15524         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
15525         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
15526         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
15527         fp_arith_reg_operand().
15528         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
15529         * config/sh/sh.md (casesi): Sign-extend the first two operands,
15530         and use signed compares for them.
15531         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
15532         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
15533         ones properly aligned.
15534         (find_barrier): Account for extra alignment needed for 8-byte wide
15535         constants.
15536         (machine_dependent_reorg): Require a label for the second 4-byte
15537         constant after an 8-byte one.
15538         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
15539         change.
15540         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
15541         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
15542         last_float when switching float modes.
15543         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
15544         auto-increment for general-purpose registers.
15545         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
15546         result.
15547         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
15548         for stack adjust.
15549         * config/sh/sh.c (sh_builtin_saveregs): Support using all
15550         registers for varargs.
15551         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
15552         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
15553         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
15554         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
15555         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
15556         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
15557         call_cookie accordingly.
15558         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
15559         (SHCOMPACT_BYREF): Likewise.
15560         (SHCOMPACT_FORCE_ON_STACK): New macro.
15561         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
15562         (sh_builtin_saveregs): Likewise.
15563         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15564         shcompact_incoming_args): Use new shift values.  Support
15565         sequences of consecutive and non-consecutive pushes/pops.
15566         * config/sh/sh.md (return): Don't explicitly use PR_REG.
15567         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
15568         * config/sh/sh.h (TEXT_SECTION): Define.
15569         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
15570         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
15571         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
15572         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
15573         return values on FPU-enabled SHmedia.
15574         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
15575         FPU-enabled SHmedia.
15576         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
15577         value is returned in a non-FP reg and is not returned by
15578         reference.
15579         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
15580         jump_ind.
15581         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
15582         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
15583         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
15584         quad-aligned to be passed by callee-copy reference.
15585         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
15586         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
15587         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
15588         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
15589         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
15590         copying low-numbered FP regs to r7 and r8.
15591         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
15592         FP regs to general-purpose regs only if the copy was passed on the
15593         stack.
15594         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
15595         copying FP reg to r9.
15596         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
15597         copy FP regs to general-purpose regs only in outgoing calls.
15598         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
15599         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
15600         HOST_WIDE_INT.
15601         * config/sh/sh.h (struct sh_args): Document all fields.
15602         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
15603         passed partially on the stack should not consider making
15604         sibcalls.
15605         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
15606         stack_regs only for incoming calls.  When passing FP args,
15607         make sure there are FP regs available before modifying
15608         call_cookie.
15609         (SHCOMPACT_BYREF): Pass double args in general-purpose
15610         registers by reference.
15611         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
15612         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
15613         attempt to generate sibcalls if the caller got any arguments
15614         by reference.
15615         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
15616         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
15617         to 8-byte boundaries.
15618         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
15619         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
15620         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
15621         stored in the stack.
15622         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
15623         for the offsets to have the ISA bit set.
15624         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
15625         invocation.  Use beq instead of bgt to mark end of sequence of
15626         loads.
15627         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
15628         bgt to mark end of sequence of stores.
15629         * config/sh/sh.c (arith_operand): Don't check whether
15630         CONST_OK_FOR_J for now.
15631         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
15632         instead of long for conversion.
15633         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
15634         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
15635         before passing it to fprintf.
15636         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
15637         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
15638         Call set_fpscr before reading/writing SR.
15639         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
15640         Call set_fpscr.
15641         * config/sh/lib1funcs.asm: Add `.align 2' directives before
15642         SHmedia code.
15643         (FMOVD_WORKS): Define on SH5 with FPU.
15644         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
15645         setting.
15646         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
15647         _fpscr_values.
15648         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
15649         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
15650         address.
15651         (ia_main_table): Ditto.
15652         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
15653         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
15654         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
15655         the definitions from sh.h.
15656         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
15657         TARGET_SH5.
15658         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
15659         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
15660         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
15661         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
15662         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
15663         Increment LABEL_NUSES.
15664
15665         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
15666         TARGET_SH5.
15667         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
15668         defined.
15669         * config/sh/elf.h (SIZE_TYPE): Likewise.
15670         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
15671         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15672         shcompact_incoming_args): Load switch table addresses using
15673         datalabel.
15674         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
15675         (NO_BUILTIN_SIZE_TYPE): Define.
15676         (SIZE_TYPE): Don't define.
15677         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
15678         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
15679         definition of __SH5__=32 for -m5-compact-nofpu.
15680         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
15681         ADDR_DIFF_VEC.
15682         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
15683         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
15684         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
15685         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
15686         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
15687         (INSN_LENGTH_ALIGNMENT): Likewise.
15688         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15689         * config/sh/sh.md (call, call_value, sibcall): Simplify
15690         copying of non-branch-target register.
15691         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15692         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
15693         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
15694         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
15695         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
15696         floating-point values as structs.
15697         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
15698         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
15699         general-purpose register.
15700         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
15701         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
15702         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
15703         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
15704         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
15705         (ENCODE_SECTION_INFO): Enclose variables and constants in
15706         DATALABEL unspecs.
15707         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
15708         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
15709         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
15710         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
15711         only for LABEL_REFs.  For SYMBOL_REFs, prepend
15712         SH_DATALABEL_ENCODING to the symbol name.
15713         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
15714         convert_mode().
15715         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
15716         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
15717         UNSPEC_DATALABEL.
15718         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
15719         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
15720         (DATALABEL_REF_P): Don't require CONST.
15721         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
15722         REL label.
15723         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
15724         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
15725         right.
15726         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
15727         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
15728         Use shallow_copy_rtx and PUT_MODE to change the mode of
15729         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
15730         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
15731         on SHmedia using GENERAL_REGs.
15732         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
15733         bltu_media_i): Fix reversion of conditions.
15734         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
15735         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
15736         * config/sh/sh.c (output_far_jump): Save r13 in macl.
15737         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
15738         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
15739         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
15740         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
15741         (GCC_nested_trampoline): Likewise.
15742         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
15743         * config/sh/sh.c (gen_datalabel_ref): Define.
15744         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
15745         (INITIALIZE_TRAMPOLINE): Likewise.
15746         (TRAMPOLINE_ADJUST_ADDRESS): Define.
15747         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
15748         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
15749         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
15750         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
15751         (ic_invalidate): Adjust for SH5.
15752         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
15753         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
15754         _nested_trampoline.
15755         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
15756         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
15757         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
15758         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
15759         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
15760         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
15761         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
15762         * config/sh/sh.c (target_reg_operand): Match only target-branch
15763         registers and pseudos that aren't virtual registers.
15764         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
15765         Copy operands that don't match target_reg_operand to pseudos.
15766         (call_media, call_value_media, sibcall_media): Use
15767         target_reg_operand instead of target_operand.
15768         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
15769         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
15770         * config/sh/sh.c (target_reg_operand): Match hardware registers
15771         other than branch-target registers.
15772         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
15773         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
15774         (fpscr_values) [SH5 == 32]: Define.
15775         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
15776         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
15777         Handle function addresses coming in SUBREGs.
15778         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
15779         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
15780         shcompact_return_trampoline): Use datalabel where appropriate.
15781         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
15782         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
15783         general-purpose register to copy one branch-target register to
15784         another.
15785         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
15786         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
15787         SYMBOL_REFs with VOIDmode.
15788         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
15789         bltu_media_i): New insns.
15790         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
15791         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
15792         (INIT_CUMULATIVE_ARGS): Likewise.
15793         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
15794         * machmode.def (V16SFmode): New mode.
15795         * c-common.c (type_for_mode): Support V2SF and V16SF.
15796         * tree.c (build_common_tree_nodes_2): Likewise.
15797         * tree.h (tree_index): Likewise.
15798         * calls.c (emit_call_1): Take args_so_far.  Adjust all
15799         callers.  Introduce CALL_POPS_ARGS.
15800         * tm.texi (CALL_POPS_ARGS): Document.
15801         * config/sh/crt1.asm: Implement in SHmedia mode.
15802         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
15803         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
15804         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
15805         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
15806         Implement divsi and udivsi in SHmedia mode.  Introduce
15807         SHcompact trampolines.
15808         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
15809         only in SHmedia64.
15810         (regno_reg_class): Rewrite.
15811         (fp_reg_names): Remove.
15812         (sh_register_names, sh_additional_register_names): New.
15813         (print_operand): Added `u'.  Support SUBREGs in addresses.
15814         Add parentheses around shifted CONSTs.
15815         (output_file_start): Output .mode and .abi directives.
15816         (shiftcosts, addsubcosts, multcosts): Adjust.
15817         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
15818         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
15819         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
15820         bytes, not registers.  Take into account the need for the
15821         SHcompact incoming args trampoline.  Adjust all callers.
15822         (sh_expand_prologue): Take stack_regs into account.  Call
15823         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
15824         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
15825         stack aligned as per SH5 ABI.
15826         (sh_builtin_saveregs): Support SH5 ABI.
15827         (sh_build_va_list, sh_va_start): Likewise.
15828         (initial_elimination_offset): Take alignment into account.
15829         Compute location of PR according to the SH5 stack frame.
15830         (arith_reg_operand): Reject branch-target registers.
15831         (shmedia_6bit_operand): New.
15832         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
15833         (target_reg_operand): Match DImode only.  Accept SUBREGs.
15834         (target_operand): New.
15835         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
15836         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
15837         SIBCALL_REGS for SHmedia.
15838         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
15839         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
15840         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
15841         (TARGET_SWITCHES): New SH5 flags.
15842         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
15843         VALID_REGISTER_P to disable unsupported registers.
15844         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
15845         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
15846         (FUNCTION_ARG_PADDING): Define.
15847         (FASTEST_ALIGNMENT): Adjust.
15848         (SH_REGISTER_NAMES_INITIALIZER): New.
15849         (sh_register_names): Declare.
15850         (DEBUG_REGISTER_NAMES): Define.
15851         (REGISTER_NAMES): Define based on sh_register_names.
15852         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
15853         (sh_additional_register_names): Declare.
15854         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
15855         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
15856         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
15857         (REGISTER_NATURAL_MODE): Define.
15858         (FIRST_PSEUDO_REGISTER): Adjust.
15859         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
15860         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
15861         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
15862         (VECTOR_MODE_SUPPORTED_P): Define.
15863         (REG_CLASS_CONTENTS): Adjust.
15864         (SMALL_REGISTER_CLASSES): Adjust.
15865         (REG_ALLOC_ORDER): Adjust.
15866         (INDEX_REG_CLASS): Adjust.
15867         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
15868         (CONST_OK_FOR_LETTER_P): Adjust.
15869         (PREFERRED_RELOAD_CLASS): Adjust.
15870         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
15871         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
15872         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
15873         (FIRST_FP_PARM_REG): Adjust.
15874         (CALL_POPS_ARGS): Define.
15875         (FUNCTION_ARG_REGNO_P): Adjust.
15876         (struct sh_args): New fields.
15877         (GET_SH_ARG_CLASS): Adjust.
15878         (INIT_CUMULATIVE_ARGS): Adjust.
15879         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
15880         (FUNCTION_ARG_ADVANCE): Adjust.
15881         (FUNCTION_ARG): Adjust.
15882         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
15883         (FUNCTION_ARG_CALLEE_COPIES): Define.
15884         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
15885         (STRICT_ARGUMENT_NAMING): Define.
15886         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
15887         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
15888         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
15889         (SETUP_INCOMING_VARARGS): Adjust.
15890         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
15891         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
15892         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
15893         (SUBREG_OK_FOR_INDEX_P): Adjust.
15894         (EXTRA_CONSTRAINT_S): Update.
15895         (EXTRA_CONSTRAINT_T): New.
15896         (EXTRA_CONSTRAINT): Adjust.
15897         (GO_IF_LEGITIMATE_INDEX): Adjust.
15898         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
15899         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
15900         (MOVE_MAX): Adjust.
15901         (MAX_MOVE_MAX): Define.
15902         (Pmode): Adjust.
15903         (CONST_COSTS): Adjust.
15904         (REGISTER_MOVE_COST): Adjust.
15905         (BRANCH_COST): Adjust.
15906         (TEXT_SECTION_ASM_OP): Adjust.
15907         (DBX_REGISTER_NUMBER): Adjust.
15908         (ASM_OUTPUT_DOUBLE_INT): New.
15909         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
15910         (PREDICATE_CODES): Adjust.
15911         (PROMOTE_MODE): Adjust.
15912         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
15913         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
15914         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
15915         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
15916         (DR0_REG, DR2_REG, DR4_REG): Renumber.
15917         (TR0_REG, TR1_REG, TR2_REG): New.
15918         (XD0_REG): Renumber.
15919         (UNSPEC_COMPACT_ARGS): New.
15920         (type): Added pt and ptabs.
15921         (length): Default to 4 on SHmedia.  Default pt length to 12
15922         and     20 on SHmedia32 and SHmedia64, respectively.
15923         (pt): New function unit.
15924         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
15925         Add whitespace between operands of SHmedia instructions.
15926         (movdicc): Fix.
15927         (adddi3_media, addsi3_media): Adjust constraints.
15928         (subsi3) [SHmedia]: Force operand 1 into a register.
15929         (udivsi3_i1_media, udivsi3_i4_media): New.
15930         (udivsi3): Support SHmedia.
15931         (divsi3_i1_media, divsi3_i4_media): New.
15932         (divsi3): Support SHmedia.
15933         (anddi3, iordi3, xordi3): Adjust constraints.
15934         (zero_extendhidi2, zero_extendqidi2): New.
15935         (extendsidi2, extendhidi2, extendqidi2): New.
15936         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
15937         (pop_e, pop_fpul, pop_4): Likewise.
15938         (movsi_media): Support FP and BT registers.
15939         (movsi_media_nofpu): New.  Adjust splits to DImode.
15940         (lduw, ldub): Renamed to zero_extend* above.
15941         (movqi_media): Fix typo.
15942         (movdi_media): Support FP and BT registers.
15943         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
15944         (movdi_const_32bit): New.
15945         (shori_media): Require immediate operand.  Use `u' for output.
15946         (movdf_media, movsf_media): Simplified.
15947         (movdf_media_nofpu, movsf_media_nofpu): New.
15948         (movdf, movsf): Adjust
15949         (movv2sf, movv2sf, movv16sf): New.
15950         (beq_media, beq_media_i): Adjust constraints.  Don't use
15951         scratch BT register.
15952         (bne_media, bne_media_i): Likewise.
15953         (bgt_media, bgt_media_i): Likewise.
15954         (bge_media, bge_media_i): Likewise.
15955         (bgtu_media, bgtu_media_i): Likewise.
15956         (bgeu_media, bgeu_media_i): Likewise.
15957         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
15958         bunordered): Emit jump insn.  Force operands to registers when
15959         needed.
15960         (jump_media, jump): Simplify.
15961         (call_compact, call_compact_rettramp): New.
15962         (call_value_compact, call_value_compact_rettramp): New.
15963         (call_media, call_value_media): Simplify.
15964         (sibcall_compact, sibcall_media): New.
15965         (call, call_value): Adjust for SHmedia and SHcompact.
15966         (sibcall, sibcall_value, untyped_call): Likewise.
15967         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
15968         (indirect_jump): Adjust for SHmedia.
15969         (casesi_jump_media): New.
15970         (nop): Re-enable for SHmedia.
15971         (call_site): Restrict to SH1.
15972         (casesi): Adjust for SHmedia.
15973         (casesi_shift_media, casesi_load_media): New.
15974         (return): Explicitly use PR register.  Call return trampoline
15975         on SHcompact.
15976         (return_i): Explicitly use PR register.
15977         (shcompact_return_tramp, shcompact_return_tramp_i): New.
15978         (return_media): Adjust.
15979         (shcompact_incoming_args): New.
15980         (epilogue): Adjust.
15981         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15982         (movstrsi): Disable on SH5.
15983         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
15984         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
15985         (subsf3, subsf3_media): Likewise.
15986         (mulsf3, mulsf3_media, mac_media): Likewise.
15987         (divsf3, divsf3_media): Likewise.
15988         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
15989         (floatsisf2, fux_truncsfsi2): Likewise.
15990         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
15991         constraints.
15992         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
15993         (cmpunsf_media, cmpsf): Likewise.
15994         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
15995         (abssf2, abssf2_media): Likewise.
15996         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
15997         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
15998         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
15999         (floatsidf2, fix_truncdfsi2): Likewise.
16000         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
16001         constraints.
16002         (cmpeqdf_media, cmpgtdf_media): Likewise.
16003         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
16004         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
16005         (absdf2, absdf2_media): Likewise.
16006         (extendsfdf2, extendsfdf2_media): Likewise.
16007         (truncsfdf2, truncsfdf2_media): Likewise.
16008         * config/sh/sh64.h: New file.
16009         * config/sh/t-sh64: New file.
16010         * config/sh/shmedia.h: New file.
16011         * config/sh/ushmedia.h: New file.
16012         * config/sh/sshmedia.h: New file.
16013         * configure.in: Added sh64-*-elf.
16014         * configure: Rebuilt.
16015         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
16016         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
16017         (reg_class_from_letter): Use `b' for TARGET_REGS.
16018         (print_operand): Support `%M', `%m', `AND' and
16019         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
16020         (andcosts): Adjust for SHmedia.
16021         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
16022         Likewise.
16023         (target_reg_operand): New function.
16024         * config/sh/sh-protos.h (target_reg_operand): Declare.
16025         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
16026         FP registers on SH5.
16027         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
16028         on SH4.
16029         (TARGET_REGISTER_P): New macro.
16030         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
16031         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
16032         (EXTRA_CONSTRAINT_S): New macro.
16033         (EXTRA_CONSTRAINT): Adjust.
16034         (FLOAT_TYPE_SIZE): Define to 32.
16035         (Pmode): DImode on SHmedia.
16036         (CONST_COSTS): Adjust for SHmedia literals.
16037         (PREDICATE_CODES): Added target_reg_operand.
16038         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
16039         * config/sh/sh.md: Remove all attrs from SHmedia insns.
16040         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
16041         (cmpdi): Accept SHmedia.
16042         (movdicc_false, movdicc_true): New insns.
16043         (movdicc): New expand.
16044         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
16045         no_new_pseudos.
16046         (addsi3_media): Match `S' constraint.
16047         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
16048         (negdi2): Expand for SHmedia.
16049         (one_cmpldi2): New expand.
16050         (zero_extendsidi2): Change from expand to insn.
16051         (extendsidi2): Add constraints.
16052         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
16053         LD/ST address.  Fix SI immediate loading split.
16054         (movhi_media, movqi_media, lduw, ldub): New insns.
16055         (movhi, movqi): Accept SHmedia.
16056         (shori_media, movdi_media): Relax input constraints.  Split
16057         symbolic constants.
16058         (movdf_media, movsf_media): New insn.  New split to movdi.
16059         (movdf, movsf): Match on SHmedia.
16060         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
16061         bgeu_media): New insns and splits.  New insns with `_i' suffix.
16062         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
16063         (bunordered): New expand.
16064         (jump_compact): Renamed from `jump'.
16065         (jump_media): New insn.
16066         (jump): New expand.
16067         (call_media, call_value_media): New insns.
16068         (call, call_value): Adjust.
16069         (indirect_jump_compact): Renamed from `indirect_jump'.
16070         (indirect_jump_media): New insn.
16071         (indirect_jump): New expand.
16072         (untyped_call, return): Accept SHmedia.
16073         (return_media): New insn.
16074         (prologue, epilogue, blockage): Accept SHmedia.
16075         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
16076         (sunordered): New expand.
16077         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
16078         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
16079         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
16080         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
16081         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
16082         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
16083         abssf2_media): New insns.
16084         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
16085         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
16086         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
16087         floatdidf2, floatsidf2_media, fix_truncdfdi2,
16088         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
16089         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
16090         absdf2_media): New insns.
16091         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
16092         (extendsfdf2_media, truncdfsf2_media): New insns.
16093         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
16094         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
16095         * config/sh/sh.h (CONST_OK_FOR_J): Document.
16096         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
16097         * config/sh/sh.md (adddi3): New expand.
16098         (adddi3_media, adddi3z_media): New insns.
16099         (adddi3_compact): Renamed from adddi3.
16100         (addsi3_media): Use add.l r63 to add constant zero.
16101         (subdi3): New expand.
16102         (subdi3_media): New insn.
16103         (subdi3_compact): Renamed from subdi3.
16104         (mulsidi3): New expand.
16105         (mulsidi3_media): New insn.
16106         (mulsidi3_compact): Renamed from mulsidi3.
16107         (umulsidi3): New expand.
16108         (umulsidi3_media): New insn.
16109         (umulsidi3_compact): Renamed from umulsidi3.
16110         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
16111         (ashlsi3, ashrsi3, lshrsi3): Use them.
16112         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
16113         (ashldi3, ashrdi3, lshrdi3): Use them.
16114         (zero_extendsidi2): New expand.
16115         (extendsidi2): New insn.
16116         (movsi_media): New insn.  Split to movdi to load constants.
16117         (movsi): Enable for shmedia.
16118         (movdi_media): New insn.  Use shori_media to load wide constants.
16119         (short_media): New insn.
16120         (movdi): Enable for shmedia.
16121         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
16122         * config/sh/sh.h (CPP_SPEC): Added `m5'.
16123         (SUBTARGET_CPP_SPEC): Added `!m5'.
16124         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
16125         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
16126         to all other SH variants.
16127         (TARGET_DEFAULT): Set to SH1_BIT.
16128         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
16129         (BITS_PER_WORD): Raise to 64 on shmedia.
16130         (MAX_BITS_PER_WORD): Change to 64.
16131         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
16132         (INT_TYPE_SIZE): Keep as 32.
16133         (UNITS_PER_WORD): Raise to 8 on shmedia.
16134         (MIN_UNITS_PER_WORD): Keep as 4.
16135         (POINTER_SIZE): Raise to 64 on shmedia.
16136         (CONST_OK_FOR_J): New macro.
16137         (CONST_OK_FOR_LETTER_P): Use it.
16138         (processor_type): Add PROCESSOR_SH5.
16139         * config/sh/sh.md: Conditionalize all expands, insns and
16140         splits to TARGET_SH1.
16141         (cpu): Added sh5.
16142         (addsi3_compact): Renamed from...
16143         (addsi3): Now an expand.
16144         (addsi3_media, subsi3_media): New insns.
16145         (subsi3): Don't negate constants with SHmedia.
16146
16147         * hooks.c: New file.
16148         * hooks.h: New file.
16149         * Makefile.in (HOOKS_H): New.
16150         (TARGET_DEF_H): Added $(HOOKS_H).
16151         (OBJS): Added hooks.o.
16152         (cfgcleanup.o, bb-reorder.o): Added target.h.
16153         (hooks.o): Added dependencies.
16154         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
16155         (TARGET_INITIALIZER): this.
16156         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
16157         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
16158         * bb-reorder.c: Include target.h.
16159         (reorder_basic_blocks): Skip if cannot modify jumps.
16160         * cfgcleanup.c: Include target.h.
16161         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
16162
16163 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
16164
16165         * config/mips/mips.md (casesi_internal, casesi_internal_di):
16166         Protect jump delay slot instructions with .set noreorder and
16167         .set nomacro.
16168
16169 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
16170
16171         * config/mips/mips.md (casesi_internal_di): Calculate
16172         the index into the target offset table correctly.
16173
16174 2002-02-08  Richard Henderson  <rth@redhat.com>
16175
16176         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
16177         * final.c (output_addr_const): Accept and discard SUBREG.
16178         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
16179         mark them unknown instead.
16180         (simplify_subtraction): Handle RTX_UNKNOWN.
16181         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
16182
16183 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
16184
16185         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
16186
16187 2002-02-08  Richard Henderson  <rth@redhat.com>
16188
16189         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
16190
16191 2002-02-08  Andreas Jaeger  <aj@suse.de>
16192
16193         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
16194         * config/i386/t-linux64: New file.
16195
16196 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
16197
16198         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
16199         * c-parse.in (compstmt): Clear last_expr_type.
16200
16201 2002-02-07  Richard Henderson  <rth@redhat.com>
16202
16203         * loop.c (strength_reduce): Sink final_value when not
16204         eliminating a biv.
16205
16206 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
16207
16208         * config/sparc/freebsd.h: Fix mismatched spec {.
16209
16210 2002-02-07  Richard Henderson  <rth@redhat.com>
16211
16212         * cfgrtl.c: Include recog.h and insn-config.h.
16213         (keep_with_call_p): Fix general_operand invocation.
16214         * Makefile.in (cfgrtl.o): Update dependencies.
16215
16216 2002-02-07  Kazu Hirata  <kazu@hxi.com>
16217
16218         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
16219         comment.  Accept HImode only if TARGET_H8300.
16220
16221 2002-02-07  Eric Christopher  <echristo@redhat.com>
16222
16223         * config/mips/crtn.asm: Cleanup #ifdefs.
16224
16225 2002-02-07  Eric Christopher  <echristo@redhat.com>
16226
16227         * config/mips/crti.asm: Add changes for mips16. mips16 uses
16228         register 7 as RA instead of $31.
16229         * config/mips/crtn.asm: Ditto.
16230         * config/mips/mips.c (mips_move_2words): Add case for
16231         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
16232         (compute_frame_size): Fix typo.
16233         (save_restore_insns): Ditto.  Make documentation about using
16234         register $7 as return register more precise.
16235         (mips_expand_epilogue): Fix comment. Add code to work around not
16236         being able to add to the stack pointer directly.
16237         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
16238         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
16239         epilogue.
16240
16241 2002-02-07  Tom Rix  <trix@redhat.com>
16242
16243         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
16244         immediates in ldu and stdu DS opcode field.
16245         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
16246         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
16247         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
16248
16249 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
16250
16251         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
16252         offset for stack bias.
16253
16254 2002-02-07  H.J. Lu <hjl@gnu.org>
16255
16256         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
16257
16258 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
16259
16260         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
16261
16262 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
16263
16264         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
16265         * i386.c (x86_order_regs_for_local_alloc): New global function.
16266         * i386.h (REG_ALLOC_ORDER): CLeanup.
16267         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
16268
16269 2002-02-07  Richard Henderson  <rth@redhat.com>
16270
16271         PR optimization/2463
16272         * alias.c (find_base_value): Recall base values for fixed hard regs.
16273         * loop.c (loop_regs_update): Don't use single_set on non-insns.
16274
16275 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
16276
16277         * config/mips/mips.md (define_delay) [mips16]: Adjust required
16278         length.
16279
16280 2002-02-06  Richard Henderson  <rth@redhat.com>
16281
16282         PR c/5609
16283         * stmt.c (resolve_operand_name_1): Take more care with mixed
16284         named and unnamed operands.
16285
16286 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
16287             Jan Hubicka  <jh@suse.cz>
16288
16289         * loop.c (remove_constant_addition): Avoid clobbering a shared
16290         CONST expression.
16291
16292 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
16293
16294         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
16295         * config/s390/t-linux64: New file.
16296         * config/s390/libgcc-glibc.ver: New file.
16297
16298 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
16299
16300         * config/s390/linux64.h: Delete file.
16301         * config/s390/s390x.h: New file.
16302         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
16303         as target header file.
16304         * config/s390/linux.h (TARGET_VERSION): Define depending on
16305         DEFAULT_TARGET_64BIT.
16306         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
16307         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
16308         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
16309         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
16310         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
16311         (EXTRA_SPEC): New define.
16312         * config/s390/s390.h (TARGET_VERSION): Define depending on
16313         DEFAULT_TARGET_64BIT.
16314         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
16315
16316 2002-02-06  Jason Merrill  <jason@redhat.com>
16317
16318         * c-decl.c (finish_function): Warn about a non-void function with
16319         no return statement and no abnormal exit.
16320         (current_function_returns_abnormally): New variable.
16321         (start_function): Clear it.
16322         (struct c_language_function): Add returns_abnormally.
16323         (push_c_function_context): Save it.
16324         (pop_c_function_context): Restore it.
16325         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
16326         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
16327         an explicit return type.
16328         * c-tree.h: Declare current_function_returns_abnormally.
16329         (C_FUNCTION_IMPLICIT_INT): New macro.
16330         * c-typeck.c (build_function_call): Set it.
16331         (c_expand_return): Set current_function_returns_value even if the
16332         value is erroneous.
16333
16334 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
16335
16336         PR c/5420:
16337         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
16338         unsafe for reevaluation.
16339
16340 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
16341
16342         PR c/5482:
16343         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
16344         EXPR_STMT, but COMPOUND_STMT, recurse into it.
16345
16346 2002-02-06  Richard Henderson  <rth@redhat.com>
16347
16348         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
16349         be a general_operand.  Dest for function value must be a pseudo.
16350
16351 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
16352
16353         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
16354         as SYMBOL_REFs from the constant pool.
16355
16356 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
16357
16358         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
16359         passed by invisible reference.
16360
16361 2002-02-05  Richard Henderson  <rth@redhat.com>
16362
16363         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
16364
16365 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
16366
16367         Implement using "base addresses" in insn operands as default.
16368         * config/mmix/mmix.c (mmix_conditional_register_usage): if
16369         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
16370         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
16371         used to read the rtx value.
16372         (mmix_target_asm_function_epilogue): Fix spacing.
16373         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
16374         (mmix_legitimate_address): Ditto.
16375         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
16376         should be loaded with a GETA insn.  Don't allocate needless extra
16377         char for nul termination and fix misleading comment.
16378         (mmix_print_operand_address): Handle constants if
16379         TARGET_BASE_ADDRESSES.
16380         (mmix_output_register_setting): Use base addressing if
16381         TARGET_BASE_ADDRESSES and the number of insns is 3.
16382         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
16383         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
16384         to use R as constraint, add LDA to match s.
16385         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
16386         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
16387         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
16388         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
16389         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
16390         order with other fixed registers.
16391         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
16392         other parameter/call-clobbered registers.
16393         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
16394         -mbase-addresses, -mno-base-addresses.
16395         (MMIX Options): Ditto.
16396
16397 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16398
16399         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
16400
16401 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
16402
16403         * config/rs6000/altivec.h: Change elem to _S_elem.
16404
16405 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
16406
16407         * config/netbsd.h (WCHAR_TYPE): Define.
16408         (WCHAR_TYPE_SIZE): Ditto.
16409         (WINT_TYPE): Ditto.
16410         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
16411         (WCHAR_UNSIGNED): Ditto.
16412         (WCHAR_TYPE_SIZE): Ditto.
16413         (WINT_TYPE): Ditto.
16414         * config/arm/netbsd.h: Likewise.
16415         * config/i386/netbsd-elf.h: Likewise.
16416         * config/i386/netbsd.h: Likewise.
16417         * config/m68k/netbsd-elf.h: Likewise.
16418         * config/m68k/netbsd.h: Likewise.
16419         * config/ns32k/netbsd.h: Likewise.
16420         * config/sparc/netbsd.h: Likewise.
16421         * config/vax/netbsd.: Likewise.
16422
16423 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
16424
16425         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
16426         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
16427         (TARGET_INITIALIZER): this.
16428         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
16429         (BITFIELD_NBYTES_LIMITED): Markup fix.
16430         * tree.h (default_ms_bitfield_layout_p): Declare.
16431         (record_layout_info): Added prev_field.
16432         * tree.c (default_ms_bitfield_layout_p): New fn.
16433         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
16434         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
16435         * stor-layout.c: Include target.h.
16436         (start_record_layout): Initialize prev_field.
16437         (place_field): Handle MS bit-field layout, and disregard
16438         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
16439         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
16440         * Makefile.in (stor-layout.o): Adjust dependencies.
16441
16442 2002-02-05  Jason Merrill  <jason@redhat.com>
16443
16444         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
16445
16446 2002-02-05  Andreas Jaeger  <aj@suse.de>
16447
16448         * crtstuff.c: Fix comments.
16449
16450 2002-02-05  Richard Henderson  <rth@redhat.com>
16451
16452         PR fortran/3393
16453         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
16454         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
16455
16456         PR fortran/3392
16457         * config/mips/mips.c (function_arg): Handle TImode.
16458         (function_arg_advance): Likewise.
16459
16460 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16461
16462         * config/rs6000/altivec.h (vec_step_help): Rename to
16463         __vec_step_help.
16464
16465 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16466
16467         * config/rs6000/altivec.h: Fix typos.
16468
16469 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
16470
16471         * config/arm/netbsd.h: Correct a comment.
16472
16473 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16474
16475         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
16476         building void typed builtins.
16477
16478         * config/rs6000/altivec.h (vec_ld*): Fix typos.
16479         (vec_step): Implement for C++.
16480
16481 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16482
16483         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
16484
16485 2002-02-04  Richard Henderson  <rth@redhat.com>
16486
16487         * combine.c (nonzero_bits): Re-introduce special case for
16488         sp/fp/ap wrt REGNO_POINTER_ALIGN.
16489
16490 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
16491
16492         * doc/extend.texi: Warn about unsupported usage of altivec
16493         builtins.
16494
16495         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
16496         (altivec_predicate_*): New.
16497
16498         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
16499         Add C++ version of vec_*() functions.
16500
16501         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
16502         (bdesc_2arg): Remove altivec predicates.
16503         (altivec_expand_builtin): Handle predicates.
16504         (altivec_init_builtins): Handle predicates.
16505         (altivec_expand_predicate_builtin): New.
16506
16507 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16508
16509         * pa.c (DO_FRAME_NOTES): Move forward.
16510         (store_reg): Revise handling of frame notes.
16511         (load_reg): Likewise.
16512         (set_reg_plus_d): Likewise.
16513         (hppa_expand_prologue): Likewise.
16514         (hppa_expand_epilogue): Likewise.
16515
16516 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16517
16518         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
16519
16520 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16521
16522         PR c/4475, c++/3780:
16523         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
16524         * c-common.h (SWITCH_TYPE): Define.
16525         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
16526         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
16527         Rename spareness variable to sparseness.
16528         (expand_end_case_type): Renamed from expand_end_case, use orig_type
16529         if non-NULL instead of TREE_TYPE (orig_index).
16530         * tree.h (expand_end_case_type): Renamed from expand_end_case.
16531         (expand_end_case): Define using expand_end_case_type.
16532         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
16533         to expand_end_case_type.
16534         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
16535
16536 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16537
16538         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
16539         (BIGGEST_ALIGNMENT): Change to 128.
16540
16541 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16542
16543         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
16544
16545 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16546
16547         * pa.md (call_internal_reg_64bit): Remove unused variable.
16548
16549 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
16550
16551         * config/arm/arm.h (machine_function): Add uses_anonymous_args
16552         field.
16553         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
16554         * config/arm/arm.c (current_function_anonymous_args): Delete,
16555         replace uses with cfun->machine->uses_anonymous_args.
16556         (arm_reorg): Do not reset uses_anonymous_args.
16557
16558         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
16559         any geenral register.
16560
16561 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
16562
16563         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
16564         the entry block.
16565
16566 2002-02-04  Richard Henderson  <rth@redhat.com>
16567
16568         * combine.c (force_to_mode): Remove STACK_BIAS code.
16569         (nonzero_bits): Likewise.  Replace sp/fp special case with
16570         REGNO_POINTER_ALIGN.
16571
16572         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
16573         (HARD_FRAME_POINTER_REGNUM): New.
16574         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
16575         (FIXED_REGS, CALL_USED_REGS): Update.
16576         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
16577         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
16578         (HARD_REGNO_NREGS): Update for SFP.
16579         (STACK_POINTER_OFFSET): Include bias here ...
16580         (FIRST_PARM_OFFSET): ... not here.
16581         (STACK_BIAS): Remove.
16582         (INIT_EXPANDERS): New.
16583         (STARTING_FRAME_OFFSET): Do not include bias.
16584         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
16585         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
16586         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
16587         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
16588         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
16589         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
16590         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
16591         (MUST_SAVE_REGISTER): Likewise.
16592         (sparc_flat_function_prologue): Likewise.
16593         (sparc_flat_function_epilogue): Likewise.
16594         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
16595         (sparc_init_modes): SFP is GENERAL_REGS.
16596         (sparc_builtin_saveregs): SFP does not have bias applied.
16597
16598 2002-02-04  Richard Henderson  <rth@redhat.com>
16599
16600         * config/alpha/alpha.c (current_function_is_thunk): Don't check
16601         current_function_is_thunk.
16602         (alpha_sa_mask): Distinguish between current_function_is_thunk
16603         called from ASM_OUTPUT_MI_THUNK and not.
16604         (alpha_does_function_need_gp): Thunks always need gp.
16605         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
16606         (alpha_output_mi_thunk_osf): New.
16607         * config/alpha/alpha-protos.h: Update.
16608         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
16609
16610 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
16611
16612         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
16613         function types, not when they're taken away.
16614
16615 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
16616
16617         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
16618         CODE_LABEL and jump table when replacing a table jump with a
16619         simple jump.
16620
16621 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16622
16623         * config/s390/s390-protos.h (legitimize_la_operand,
16624         s390_secondary_input_reload_class, s390_plus_operand,
16625         s390_expand_plus_operand): Add prototypes.
16626
16627         config/s390/s390.c (s390_secondary_input_reload_class,
16628         s390_plus_operand, s390_expand_plus_operand): New functions.
16629
16630         (struct s390_address): New member 'pointer'.
16631         (s390_decompose_address): Compute it.
16632         (legitimate_la_operand_p): Use it.
16633         (legitimize_la_operand): New function.
16634         (movti, movdi, movdf splitters): Call it.
16635
16636         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
16637         (PREDICATE_CODES): Add s390_plus_operand.
16638
16639         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
16640         (la_ccclobber): Allow GENERAL_REGS as output operand.
16641
16642         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
16643         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
16644         (*la_64, *la_31, reload_indi, reload_insi): ... these.
16645
16646 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16647
16648         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
16649         register names for regular asm () construct.
16650
16651 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16652
16653         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
16654         registers.
16655
16656 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
16657
16658         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
16659         pat for recog.
16660
16661 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
16662
16663         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
16664         constant pool to be identical by string address and index.
16665
16666 2002-02-04  Anthony Green  <green@redhat.com>
16667
16668         * output.h (SECTION_OVERRIDE): Define.
16669         * varasm.c (named_section): Obey SECTION_OVERRIDE.
16670
16671 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
16672
16673         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
16674         by existing arm*-*-netbsd* (a.out) target.
16675         (ns32k-*-netbsdelf*): Likewise.
16676         (sparc-*-netbsdelf*): Likewise.
16677         (vax-*-netbsdelf*): Likewise.
16678
16679 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
16680
16681         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
16682         headers and libobjc headers.
16683
16684 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
16685
16686         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
16687         (_mingw.h): Remove duplicate include.
16688
16689 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
16690
16691         * config.gcc: Set cpu_type to m68k for 68010, as well.
16692         (m68010-*-netbsdelf*): New...
16693         (m68k*-*-netbsdelf*): ...targets.
16694         * config/m68k/netbsd-elf.h: New file.
16695
16696 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16697
16698         * config/h8300/h8300.c (hand_list): Move inside function_arg.
16699
16700 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16701
16702         * config/h8300/h8300.c (h8_push_ops): Move inside
16703         h8300_init_once.
16704         (h8_pop_ops): Likewise.
16705         (h8_move_ops): Likewise.
16706
16707 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16708
16709         * config/h8300/h8300.c (os_task): Make it static.
16710         (monitor): Likewise.
16711         (pragma_saveall): Likewise.
16712
16713 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
16714
16715         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
16716         constant is a valid sign-extension for Pmode.
16717
16718 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16719
16720         * config/h8300/h8300.c: Fix formatting.
16721
16722 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16723
16724         * config/h8300/h8300.md: Fix formatting.
16725
16726 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16727
16728         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
16729         predicates of operands[1].  Split the patterns for each
16730         processor variant.
16731
16732 2002-02-02  Kazu Hirata  <kazu@hxi.com>
16733
16734         * config/h8300/h8300.md (xor patterns): Tighten the predicates
16735         of operands[1] to register_operand.
16736
16737 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
16738
16739         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
16740         * cpphash.c (_cpp_init_hashtable): Similarly.
16741         * cppinit.c (cpp_create_reader): Default the signed_char flag.
16742         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
16743         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
16744         (cpp_handle_option): Handle the new options.
16745         * cpplex.c (cpp_interpret_charconst): Use new flag.
16746         * cpplib.h (struct cpp_options): New member signed_char.
16747         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
16748         (cpp_options): Handle -fsigned-char and -funsigned-char.
16749         (static_specs): Remove signed_char_spec.
16750         (do_spec1): Don't handle %c.
16751         * system.h: Poison SIGNED_CHAR_SPEC.
16752         * tradcif.y (yylex): Use flag_signed_char.
16753         * tradcpp.h (flag_signed_char): New.
16754         * tradcpp.c (flag_signed_char): New.
16755         (main): Handle new command-line options.
16756         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
16757 config:
16758         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
16759         * avr/avr.h: Remove old comments.
16760         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
16761         (CC1_SPEC): Pass -fsigned-char if -mic*.
16762         (SIGNED_CHAR_SPEC): Remove.
16763 doc:
16764         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
16765
16766 2002-02-01  Eric Christopher  <echristo@redhat.com>
16767
16768         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
16769         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
16770         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
16771         (ASM_OUTPUT_REG_POP): Ditto.
16772
16773 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
16774
16775         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
16776         patch.
16777
16778 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
16779
16780         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
16781
16782 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
16783
16784         PR c/5304:
16785         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
16786         unconditionally.
16787
16788 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
16789
16790         * cfganal.c: Include tm_p.h.
16791         (keep_with_call_p): Fix the test that determines if a register holds
16792         the return value of a call.
16793
16794 2002-02-01  DJ Delorie  <dj@redhat.com>
16795
16796         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
16797         we are given conflicting registers, switch to the other one we
16798         had allocated for us.
16799         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
16800         as TImode so we know when the "other" register is available.
16801
16802 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
16803
16804         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
16805         sparc/sparc_bi.h.
16806
16807 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
16808
16809         * cfganal.c (keep_with_call_p): New function.
16810         (flow_call_edges_add): Prevent splitting a block between a call and
16811         a single-set instruction that should be kept in the same block.
16812
16813 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16814
16815         * doc/install.texi (avr): Update outdated URL.
16816
16817 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
16818
16819         * config/stormy16/stormy16.md (pushqi): New.
16820         (popqi): New.
16821         (pushhi): New.
16822         (pophi): New.
16823         (movhi): Remove stack operands.
16824         (movqi): Likewise.
16825         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
16826         nonimmediate_nonstack_operand.
16827         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
16828         New.
16829         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
16830         New.
16831
16832 2002-01-31  Jason Merrill  <jason@redhat.com>
16833
16834         * Makefile.in (c-parse.c): Handle .output file.
16835         * objc/Make-lang.in (objc-parse.c): Likewise.
16836
16837 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
16838
16839         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
16840         the -me[lb] option is given.  Don't output the default flag
16841         twice.
16842
16843 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
16844
16845         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
16846         the primary source file; this has not been done yet.
16847         * c-decl.c (c_expand_body): Reset input_filename from
16848         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
16849
16850 2002-01-31  Kazu Hirata  <kazu@hxi.com>
16851
16852         * rtlanal.c (subreg_regno_offset): Do not use
16853         SUBREG_REGNO_OFFSET.
16854         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
16855         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
16856
16857 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
16858
16859         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
16860         version rather than GNATS version in --version output.
16861
16862 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
16863
16864         * ifcvt.c (noce_process_if_block): Make a copy of the destination
16865         when copying back from a temporary.
16866
16867 2002-01-30  Richard Henderson  <rth@redhat.com>
16868
16869         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
16870         and new_dest are the same.
16871
16872 2002-01-30  Richard Henderson  <rth@redhat.com>
16873
16874         PR opt/5076
16875         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
16876         * rtl.c (note_insn_name): Update.
16877         * emit-rtl.c (remove_unnecessary_notes): Kill it.
16878         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
16879         to perform loop rotation.
16880         (expand_exit_loop_top_cond): New.
16881         * tree.h (expand_exit_loop_top_cond): Declare it.
16882         * c-semantics.c (genrtl_while_stmt): Use it.
16883         (genrtl_for_stmt): Likewise.
16884
16885 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
16886
16887         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
16888         arguments to 64-bit boundaries on 64-bit ABIs.
16889
16890 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
16891
16892         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
16893
16894 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
16895
16896         * c-decl.c (grokdeclarator): Handle type being a typedef for an
16897         invalid type.
16898
16899 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
16900
16901         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
16902         * config/sparc/sparc_bi.h: Remove file.
16903         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
16904
16905 2002-01-30  Richard Henderson  <rth@redhat.com>
16906
16907         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
16908
16909 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
16910
16911         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
16912
16913 2002-01-30  Jason Merrill  <jason@redhat.com>
16914
16915         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
16916         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
16917         (reg_save): Use DW_CFA_offset_extended_sf instead.
16918
16919         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
16920
16921 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16922
16923         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
16924         in cselib_lookup.
16925
16926 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
16927
16928         * rs6000.md ("*call_value_local32"): Remove constraints.
16929         ("*call_value_local64"): Same.
16930         ("*call_value_indirect_nonlocal_aix32"): Same.
16931         ("*call_value_nonlocal_aix32"): Same.
16932         ("*call_value_indirect_nonlocal_aix64"): Same.
16933         ("*call_value_nonlocal_aix64"): Same.
16934         ("*call_value_nonlocal_sysv"): Same.
16935
16936 2002-01-29  Richard Henderson  <rth@redhat.com>
16937
16938         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
16939
16940 2002-01-29  Richard Henderson  <rth@redhat.com>
16941
16942         * expr.c (force_operand): Ignore flag_pic for detecting pic
16943         address loads.
16944         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
16945         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
16946         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
16947         instead of open-coded loop.
16948         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
16949         be fixed when in use.
16950
16951 2002-01-29  Richard Henderson  <rth@redhat.com>
16952
16953         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
16954         * sched-rgn.c (propagate_deps): Update them.
16955         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
16956         clobbers list when either gets too long.
16957
16958 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16959
16960         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
16961         and INDEX_REGS the same as GENERAL_REGS.
16962         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
16963
16964 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16965
16966         * tree.c (build_nonstandard_integer_type): Correct prototype.
16967
16968 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
16969
16970         * config/s390/s390.md (movstrsico, movstrdix_64,
16971         movstrsix_31): Remove, replace by ...
16972         (movstrdi_short, movstrsi_short, movstrdi_long,
16973         movstrsi_long): ... these.  New.
16974         (movstrdi, movstrsi): Adapt.
16975
16976         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
16977         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
16978         Remove unnecessary CC clobber.
16979         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
16980         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
16981
16982         (divmoddi4): Don't partially initialize TImode register.
16983
16984 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
16985
16986         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
16987
16988 2002-01-29  Richard Henderson  <rth@redhat.com>
16989
16990         * flow.c (print_rtl_and_abort): Remove.
16991         (print_rtl_and_abort_fcn): Remove.
16992         (verify_local_live_at_start): Use dump_bb instead.
16993         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
16994         (verify_wide_reg_1): Return 2 on mode test failure.
16995
16996 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16997
16998         PR c/3325, c/3326, c/2511, c/3347
16999         * c-decl.c (enum_decl_context): Remove BITFIELD.
17000         (grokdeclarator): Take bitfield width as an input.
17001         Ensure bitfields are given the correct type.  Perform
17002         bitfield width validation with build_bitfield_integer_type
17003         rather than waiting for finish_struct.
17004         (grok_typename, grok_typename_in_parm_context, start_decl,
17005         push_parmdecl, grokfield, start_function): Update calls to
17006         grokdeclarator.
17007         (build_bitfield_integer_type): New function.
17008         (finish_struct): Move bitfield validation to grokdeclarator
17009         and build_bitfield_integer_type.
17010         * tree.c (build_nonstandard_integer_type): New function.
17011         * tree.h (build_nonstandard_integer_type): New prototype.
17012 objc:
17013         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
17014
17015 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
17016
17017         PR other/1502:
17018         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
17019         don't ignore unrecognized -W* options.
17020         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
17021         * cpplib.h (cpp_handle_option): Adjust prototype.
17022         * c-decl.c (c_decode_options): Pass 0 as last argument to
17023         cpp_handle_option.
17024
17025         PR c/2896:
17026         * gcc.c (cpp_unique_options): Split from cpp_options.
17027         (cpp_options): Source cpp_unique_options.
17028         (default_compilers): Use cpp_unique_options instead of cpp_options
17029         when used together with cc1_options.
17030         (static_specs): Add cpp_unique_options.
17031         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
17032         when used together with cc1_options.
17033
17034 2002-01-29  Kazu Hirata  <kazu@hxi.com>
17035
17036         * config/h8300/h8300-protos.h: Update the prototype of
17037         output_a_shift.
17038         * config/h8300/h8300.c (output_a_shift): Remove an unused
17039         argument 'insn'.  Remove redundant code.
17040         * config/h8300/h8300.md: Adust to the new prototype of
17041         output_a_shift.
17042
17043 2002-01-29  Kazu Hirata  <kazu@hxi.com>
17044
17045         * config/h8300/h8300-protos.h: Update the prototypes of
17046         emit_a_rotate and expand_a_rotate.
17047         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
17048         first argument to 'enum rtx_code'.
17049         (expand_a_rotate): Likewise.
17050
17051 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17052
17053         * config/h8300/h8300-protos.h: Update the prototype of
17054         output_simode_bld.
17055         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
17056         'log2'.
17057         * config/h8300/h8300.md: Adjust to the new prototype.
17058
17059 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17060
17061         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
17062         redundant code.
17063
17064 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17065
17066         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
17067         is a fixed register before returning pic_offset_table_rtx.
17068         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
17069         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
17070
17071 2002-01-28  Jason Merrill  <jason@redhat.com>
17072
17073         * dwarf2.h: Sync with src version.
17074
17075 2002-01-28  Paul Koning  <pkoning@equallogic.com>
17076
17077         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
17078         BT_FN_VOID_PTR_VAR.
17079         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
17080         * doc/extend.texi (__builtin_prefetch): Update documentation:
17081         first argument is now const void ptr.
17082
17083 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17084
17085         * config/h8300/h8300-protos.h: Remove an unused prototype.
17086
17087 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
17088
17089         * toplev.c (lang_independent_init): Round up identifier size.
17090
17091 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
17092
17093         * config.gcc: Revert previous change.
17094
17095 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
17096
17097         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
17098
17099 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
17100
17101         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
17102         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
17103         other non-elf netbsd config frags.
17104         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
17105         collect2 will does that.
17106         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
17107         shared-lib frobbing will work.
17108
17109 2002-01-28  Kazu Hirata  <kazu@hxi.com>
17110
17111         * config/h8300/h8300.h: Fix formatting.
17112         * config/h8300/h8300.md: Likewise.
17113
17114 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
17115
17116         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
17117         the old, removed AAA_standards fix.
17118         * fixinc/fixincl.x: Rebuilt.
17119
17120 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
17121
17122         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
17123         atexit call in crtbegin, hooked in after call to frame_dummy;
17124         register EH before registering __fini__start.
17125
17126 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
17127
17128         * config/rs6000/altivec.h: Remove spurious semicolons.
17129
17130 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17131
17132         * config/h8300/h8300.md: Replace dead bit extraction patterns
17133         with ones that work.
17134
17135 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17136
17137         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
17138         if not STRICT_ALIGNMENT.
17139         * rtl.h (MEM_ALIGN): Likewise.
17140
17141 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17142
17143         * doc/invoke.texi (-fdump-translation-unit): Revert this
17144         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17145
17146 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17147
17148         * config/h8300/h8300.md (define_constants): New.
17149         (anonymous patterns) Use defined constants appropriately.
17150
17151 2002-01-27  Kazu Hirata  <kazu@hxi.com>
17152
17153         * config/h8300/h8300.c (function_arg): Remove redundant code.
17154
17155 2002-01-26  Richard Henderson  <rth@redhat.com>
17156
17157         * sched-deps.c (reg_pending_uses_head): New.
17158         (reg_pending_barrier): Rename from reg_pending_sets_all.
17159         (find_insn_list): Don't mark inline.
17160         (find_insn_mem_list): Remove.
17161         (add_dependence_list, add_dependence_list_and_free): New.
17162         (flush_pending_lists): Replace only_write param with separate
17163         for_read and for_write parameters.  Update all callers.  Use
17164         add_dependence_list_and_free.
17165         (sched_analyze_1): Do not add reg dependencies here; just set
17166         the pending bits.  Use add_dependence_list.
17167         (sched_analyze_2): Likewise.
17168         (sched_analyze_insn): Replace schedule_barrier_found with
17169         reg_pending_barrier.  Add all dependencies for pending reg
17170         uses, sets, and clobbers.
17171         (sched_analyze): Don't add reg dependencies for calls, just
17172         set pending bits.  Use regs_invalidated_by_call.  Treat
17173         sched_before_next_call as a normal list, not a fake insn.
17174         (init_deps): No funny init for sched_before_next_call.
17175         (free_deps): Free pending mems lists.  Don't zero reg_last.
17176         (init_deps_global): Init reg_pending_uses.
17177         (finish_deps_global): Free it.
17178         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
17179         (find_insn_mem_list): Remove.
17180         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
17181         (propagate_deps): Use them.  Zero temp mem lists.
17182
17183 2002-01-26  Richard Henderson  <rth@redhat.com>
17184
17185         * Makefile.in (CRTSTUFF_CFLAGS): New.
17186         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
17187         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
17188         crtstuff.c instead of alpha assembly version.
17189         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
17190         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
17191         not FORCE_{INIT,FINI}_SECTION_ALIGN.
17192         (__do_global_dtors_aux): Mark used.
17193         (frame_dummy, __do_global_ctors_aux): Mark used.
17194         (fini_dummy, init_dummy): Remove.
17195
17196         * config/alpha/crtbegin.asm: Remove file.
17197         * config/alpha/crtend.asm: Remove file.
17198         * config/alpha/t-crtbe: Remove file.
17199         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
17200         (LINK_EH_SPEC): New.
17201
17202         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
17203         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
17204         calling constructors.
17205         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
17206
17207         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
17208         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
17209         CRT_END_INIT_DUMMY hack.
17210         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
17211         FORCE_{INIT,FINI}_SECTION_ALIGN.
17212
17213         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
17214         FORCE_{INIT,FINI}_SECTION_ALIGN.
17215
17216         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
17217         invocation sequence.
17218         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
17219
17220         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
17221         (FORCE_CODE_SECTION_ALIGN): New.
17222
17223 2002-01-26  Richard Henderson  <rth@redhat.com>
17224
17225         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
17226
17227 2002-01-26  Richard Henderson  <rth@redhat.com>
17228
17229         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
17230         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
17231
17232 2002-01-26  Kazu Hirata  <kazu@hxi.com>
17233
17234         * config/h8300/h8300.md: Remove bit extraction patterns that
17235         cannot be triggered.
17236         Restrict each bit extraction pattern to a variant on which the
17237         pattern is tested.
17238
17239 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
17240
17241         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
17242
17243 2002-01-26  Kazu Hirata  <kazu@hxi.com>
17244
17245         * config/h8300/h8300.md: Remove bit test patterns that cannot
17246         be triggered.
17247         Restrict each bit test pattern to a variant on which the
17248         pattern is tested.
17249
17250 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17251
17252         * builtins.c (expand_builtin_strncat): Remove redundant check for
17253         INTEGER_CST.
17254
17255 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
17256
17257         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
17258         default setting.
17259         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
17260         existing setting.
17261
17262 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
17263
17264         * dbxout.c (dbxout_init): Use assemble_name rather than just
17265         stripping off the first character.
17266         (dbxout_source_file): Likewise.
17267
17268 2002-01-25  DJ Delorie  <dj@redhat.com>
17269
17270         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
17271         using rtx_equal_p, not by comparing pointers.
17272
17273 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
17274
17275         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
17276         for PIC_OFFSET_TABLE_REGNUM.
17277         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
17278
17279 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
17280
17281         * config.gcc (x86_64-*-freebsd*): New target.
17282         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
17283         value.
17284         (i[34567]86-*-freebsd*): Don't include svr4.h.
17285         * config/i386/freebsd64.h: New file.
17286
17287 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
17288
17289         * config/alpha/x-vms (version): Make static.
17290
17291         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
17292         in previous checkin.
17293
17294         * Makefile.in (install-headers-cp): New target.
17295         * config.gcc (alpha-dec-*vms*): Install headers with
17296         install-headers-cp
17297
17298 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
17299
17300         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
17301         avoid it's copies.
17302
17303 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17304
17305         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
17306         of compare_tree_int.
17307         (expand_builtin_strncat): Likewise.
17308         * c-decl.c (finish_struct): Use tree_low_cst.
17309         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
17310         * tree.c (compare_tree_int): Likewise.
17311
17312 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
17313
17314         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
17315         adjustments even if they are implemented by more than two insns.
17316
17317 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
17318
17319         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
17320         * df.h (struct ref): Kill B.
17321         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
17322
17323         * basic-block.h (PROP_EQUAL_NOTES): New flag.
17324         * flow.c (propagate_one_insn): Use it.
17325         (mark_used_regs): Handle NIL.
17326
17327 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
17328
17329         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
17330         to help folding.
17331
17332 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
17333
17334         * rs6000.md (prefetch): Make address V4SI mode so that the address
17335         is restricted to legitimate form for instruction.
17336
17337 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
17338
17339         * doc/install.texi (xtensa-*-elf): New target.
17340         (xtensa-*-linux*): New target.
17341         * doc/contrib.texi: Add myself.
17342
17343 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
17344
17345         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
17346         purpose register to hold an SImode (or smaller) value.
17347
17348 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
17349
17350         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
17351         registry only.
17352         * crtstuff.c: Likewise.
17353
17354 2002-01-25  Kazu Hirata  <kazu@hxi.com>
17355
17356         * config/h8300/h8300.md (negation patterns): Tighten
17357         predicates to register_operand.
17358
17359 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
17360
17361         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
17362         mode, not Pmode.
17363
17364         * builtins.c (expand_builtin_prefetch): Same.
17365
17366 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17367
17368         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
17369         modes.
17370
17371 2002-01-24  Kazu Hirata  <kazu@hxi.com>
17372
17373         * config/h8300/h8300.c (print_operand): Remove support for
17374         operand character 'A'.
17375         * config/h8300/h8300.md (three anonymous patterns): Replace
17376         operand character 'A' with either 'T' or 'S'.
17377
17378 2002-01-24  Kazu Hirata  <kazu@hxi.com>
17379
17380         * config/h8300/h8300.c (print_operand): Remove support for
17381         operand character 'U'.
17382
17383 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
17384
17385         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
17386
17387 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
17388
17389         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
17390         values to be assigned to the stack pointer.
17391
17392 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17393
17394         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
17395         to const_double needs to be done right for big-endian systems.
17396
17397 2002-01-24  Jason Merrill  <jason@redhat.com>
17398
17399         PR c++/2432
17400         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
17401         to can_throw_internal.
17402
17403 2002-01-23  Richard Henderson  <rth@redhat.com>
17404
17405         * fold-const.c (fold): Change UINT_MAX test to check vs precision
17406         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
17407
17408 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17409
17410         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
17411         (symGOT2reg): Use them, then set as GOT value as unchanging.
17412         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
17413         as a temporary, if possible.
17414         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
17415         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
17416
17417 2002-01-23  Kazu Hirata  <kazu@hxi.com>
17418
17419         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
17420         accept to accept 0x80 as operands[2].
17421
17422 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
17423
17424         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
17425
17426 2002-01-23  Richard Henderson  <rth@redhat.com>
17427
17428         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
17429
17430 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
17431
17432         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
17433         (parmlist_or_identifiers_1): Verify that only a parmlist follows
17434         an attribute.
17435
17436 2002-01-23  Richard Henderson  <rth@redhat.com>
17437
17438         * expr.c (move_by_pieces_1): Extend size before negation.
17439
17440         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
17441         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
17442         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
17443         * config/m68k/t-m68kelf: Likewise.
17444
17445 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
17446
17447         * config/xtensa/elf.h: New file.
17448         * config/xtensa/lib1funcs.asm: New file.
17449         * config/xtensa/lib2funcs.S: New file.
17450         * config/xtensa/linux.h: New file.
17451         * config/xtensa/t-xtensa: New file.
17452         * config/xtensa/xtensa-config.h: New file.
17453         * config/xtensa/xtensa-protos.h: New file.
17454         * config/xtensa/xtensa.c: New file.
17455         * config/xtensa/xtensa.h: New file.
17456         * config/xtensa/xtensa.md: New file.
17457         * config.gcc (xtensa-*-elf*): New target.
17458         (xtensa-*-linux*): New target.
17459         * cse.c (canon_hash): Compare rtx pointers instead of register
17460         numbers.  This is required for the Xtensa port.
17461         * integrate.c (copy_insn_list): Handle case where the static
17462         chain is in memory and the memory address has to be copied to
17463         a register.
17464         * doc/invoke.texi (Option Summary): Add Xtensa options.
17465         (Xtensa Options): New node.
17466         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
17467
17468 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
17469
17470         * diagnostic.c (internal_error): Do ICE suppression only
17471         when ENABLE_CHECKING is not defined.
17472
17473         * c-typeck.c (require_complete_type): Return error_mark_node
17474         if type is error_mark_node.
17475
17476 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
17477
17478         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
17479         -Os and issue a warning.
17480
17481 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
17482
17483         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
17484         current (lack of) need for host configuration by hand.
17485
17486         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
17487         references.  Documentation of some target macros moved from
17488         hostconfig.texi to tm.texi.
17489
17490 2002-01-23  Will Cohen  <wcohen@redhat.com>
17491
17492         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
17493         defined.
17494
17495 2002-01-23  Kazu Hirata  <kazu@hxi.com>
17496
17497         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
17498         operand[3].
17499
17500 2002-01-23  Jason Merrill  <jason@redhat.com>
17501
17502         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
17503
17504         * function.c (assign_parms): Don't put args of inline functions
17505         into registers when not optimizing.
17506
17507 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
17508
17509         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
17510         (prologue_use): New pattern.
17511         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
17512         preference to gen_rtx_USE.
17513         (thumb_expand_prologue): Use gen_prologue_use in preference to
17514         gen_rtx_USE.
17515         (thumb_expand_epilogue): Use gen_prologue_use in preference to
17516         gen_rtx_USE.
17517
17518 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
17519
17520         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
17521
17522 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
17523
17524         PR c/3504
17525         * doc/extend.texi: Correct documentation of __alignof__.
17526
17527 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
17528
17529         * params.h: Rename arguments of DEFPARAM so that it will be
17530         recognized as a translation keyword.
17531
17532 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17533
17534         * extend.texi: Document altivec functions.
17535         Fix N-bit adjectives in X86 builtin documentation.
17536
17537 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
17538
17539         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
17540         auto_inc_dec values.
17541
17542 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
17543
17544         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
17545         after backslash.
17546         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
17547
17548 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
17549
17550         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
17551
17552 2002-01-22  Richard Henderson  <rth@redhat.com>
17553
17554         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
17555         copy_insn not copy_rtx.
17556
17557 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
17558
17559         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
17560         "nonzero" as that might add "1" bits.  Ensure "constop" is
17561         properly sign extened.
17562         (force_to_mode): Tweak for sign extended constop.
17563
17564 2002-01-22  Richard Henderson  <rth@redhat.com>
17565
17566         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
17567         for_each_rtx instead of assuming we're already looking at the MEM.
17568         (split_small_symbolic_mem_operand): Likewise.
17569         * config/alpha/alpha.h (PREDICATE_CODES): Update.
17570         * config/alpha/alpha.md (small symbolic memory splitters): Update.
17571
17572 2002-01-22  Richard Henderson  <rth@redhat.com>
17573
17574         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
17575         sequence number for the literal.
17576         (divmoddi_internal_er): Likewise.
17577
17578 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17579
17580         PR java/4972
17581         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
17582         in LIBICONV variable.
17583         * configure: Regenerated.
17584
17585 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
17586
17587         * dependence.c (build_def_use): Remove array_idx.
17588
17589         * dwarfout.c (last_filename): Remove.
17590         (output_compile_unit_die): Remove last_filename.
17591
17592 2002-01-22  Roger Sayle  <roger@eyesopen.com>
17593             Richard Henderson  <rth@redhat.com>
17594
17595         PR opt/3640
17596         * fold-const.c (fold): Optimize unsigned comparisons against
17597         UINT_MAX (and similar unsigned constants).
17598
17599 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
17600
17601         * Makefile.in (loop.o): Depend on OPTABS_H.
17602         * loop.c (emit_prefetch_instructions): Check the prefetch operand
17603         against the predicate.
17604
17605         PR target/5379
17606         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
17607         for the address operand.
17608
17609 2002-01-22  Richard Henderson  <rth@redhat.com>
17610
17611         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
17612
17613 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17614
17615         PR other/5450
17616         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
17617         preprocessor flags.
17618
17619 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
17620
17621         * config.gcc (x86_64-*-netbsd*): New target.
17622         * config/i386/netbsd64.h: New file.
17623
17624 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17625
17626         * regrename.c (kill_value): Fix typo.
17627
17628 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
17629
17630         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
17631
17632         * config/rs6000/rs6000.h: Same.
17633
17634         * function.c (instantiate_virtual_regs): Remove
17635         STARTING_FRAME_PHASE.
17636         (assign_stack_local_1): Same.
17637         Calculate frame phase.
17638
17639 2002-01-22  Nick Clifton  <nickc@redhat.com>
17640
17641         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
17642         variable declaration to outer scope in order to simplify
17643         future extensions.
17644         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
17645         arm_hard_regno_mode_ok.
17646         * config/arm/arm-protos.h: Add a prototype for
17647         arm_hard_regno_mode_ok.
17648         * config/arm/arm.c (soft_df_operand): Remove now redundant
17649         check for DImode values using IP_REGNUM.
17650         (nonimmediate_soft_df_operand): Remove now redundant check for
17651         DImode values using IP_REGNUM.
17652         (arm_hard_regno_mode_ok): New function. New check: make sure
17653         that DImode values are not stored in IP_REGNUM.
17654
17655         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
17656         note with a USE.
17657         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
17658
17659 2002-01-22  Jason Merrill  <jason@redhat.com>
17660
17661         * c-semantics.c (genrtl_compound_stmt): Only check nesting
17662         consistency if this COMPOUND_STMT is scoped.
17663
17664 2002-01-22  Kazu Hirata  <kazu@hxi.com>
17665
17666         * predict.c: Fix formatting.
17667         * print-tree.c: Likewise.
17668         * protoize.c: Likewise.
17669         * real.h: Likewise.
17670         * rtl.h: Likewise.
17671         * sbitmap.h: Likewise.
17672         * scan.c: Likewise.
17673         * sched-deps.c: Likewise.
17674         * sched-vis.c: Likewise.
17675         * sdbout.c: Likewise.
17676         * sibcall.c: Likewise.
17677         * ssa.c: Likewise.
17678         * ssa-ccp.c: Likewise.
17679         * ssa-dce.c: Likewise.
17680         * stmt.c: Likewise.
17681         * stor-layout.c: Likewise.
17682         * system.h: Likewise.
17683
17684 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17685
17686         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
17687         if fits in bounds of base type.
17688
17689         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
17690         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
17691         (add_bound_info, default): If can't find a context, make a
17692         SAVE_EXPR.
17693         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
17694
17695 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
17696
17697         * c-typeck.c (parser_build_binary_op): If result from
17698         build_binary_op is ERROR_MARK just return error_mark_node without
17699         further processing.
17700
17701 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
17702
17703         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
17704         Split a.out-specific bits into...
17705         * config/netbsd-aout.h: ...this.
17706         * config/netbsd-elf.h: New file.
17707         * config/alpha/netbsd-elf.h: Remove.
17708         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
17709         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
17710         (STARTFILE_SPEC): Remove redundant definition.
17711         (ENDFILE_SPEC): Likewise.
17712         (LINK_SPEC): Likewise.
17713         (CPP_SPEC): Likewise.
17714         (ASM_SPEC): Likewise.
17715         (LIB_SPEC): Likewise.
17716         (SWITCH_TAKES_ARG): Likewise.
17717         (TARGET_MEM_FUNCTIONS): Likewise.
17718         (CPP_PREDEFINES): Redefine.
17719         (ASM_FINAL_SPEC): Remove redefinition.
17720         (ASM_COMMENT_START): Redefine.
17721         (FUNCTION_PROFILER): Define.
17722         (TARGET_VERSION): Redefine.
17723         Comment and formatting cleanup.
17724         * config/i386/netbsd.h: Include <netbsd-aout.h>.
17725         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
17726         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
17727         big- or little-endian.
17728         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
17729         * config.gcc (*-*-netbsd*): Add definitions common to all
17730         NetBSD configs.
17731         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
17732         gnu_ld definitions.  Add netbsd-elf.h to and remove
17733         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
17734         tmake_file, and don't lose previous tmake_file contents.
17735         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
17736         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
17737         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
17738         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
17739         (mipsel-*-netbsd*): Rename this to...
17740         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
17741         mips/little.h to tm_file for mips*el-*.
17742         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
17743         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
17744         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
17745
17746 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17747
17748         * pa-protos.h (reg_before_reload_operand): New function prototype.
17749         * pa.c (reg_before_reload_operand): New function implementation.
17750         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
17751         contraints to "*m".
17752
17753 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17754
17755         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
17756
17757 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17758
17759         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
17760         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
17761         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
17762         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
17763         (ENDFILE_SPEC): Undefine.
17764         (STARTFILE_SPEC): Redefine for PA.
17765
17766 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17767
17768         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
17769
17770 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
17771
17772         * config.gcc: Add entries to supported PowerPC --with-cpu
17773         types.
17774
17775 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
17776
17777         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
17778         true for 64-bit mode only SSE registers in 32-bit mode.
17779
17780 2002-01-21  Kazu Hirata  <kazu@hxi.com>
17781
17782         * unwind-dw2.c: Fix formatting.
17783         * unwind-dw2-fde.c: Likewise.
17784         * unwind-dw2-fde.h: Likewise.
17785         * unwind-pe.h: Likewise.
17786         * varasm.c: Likewise.
17787         * varray.h: Likewise.
17788
17789 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
17790
17791         Remove workaround for register stack overwrite bug in mmix.
17792         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
17793         support for TARGET_REG_STACK_FILL_BUG.
17794         * config/mmix/mmix.h: Remove member has_call_without_parameters.
17795         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
17796         Delete.
17797         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
17798         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
17799         -mno-reg-stack-fill-bug-workaround.
17800         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
17801         machine member has_call_without_parameters.
17802         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
17803         -mreg-stack-fill-bug-workaround and
17804         -mno-reg-stack-fill-bug-workaround.
17805         (MMIX Options): Ditto.
17806
17807 2002-01-21  Kazu Hirata  <kazu@hxi.com>
17808
17809         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
17810         as appropriate.
17811         Remove redundant code.
17812
17813 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
17814
17815         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
17816         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
17817         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
17818         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
17819         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
17820         out target macro definitions and non-target-specific comments
17821         mostly taken from old versions of the manual.
17822
17823 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17824
17825         * config/h8300/h8300.h: Fix comment formatting.
17826         * config/ia64/aix.h: Likewise.
17827         * config/ia64/ia64-protos.h: Likewise.
17828         * config/ia64/ia64.c: Likewise.
17829         * config/ia64/ia64.h: Likewise.
17830         * config/ia64/ia64intrin.h: Likewise.
17831         * config/ia64/linux.h: Likewise.
17832         * config/ia64/unwind-aix.c: Likewise.
17833         * config/ia64/unwind-ia64.c: Likewise.
17834
17835 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17836
17837         * config/h8300/h8300.c: Revise comments about shift code.
17838
17839 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17840
17841         * config/h8300/h8300.c (function_arg): Update a comment.
17842
17843 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17844
17845         * config/h8300/h8300.md: Update the comments at the beginning
17846         of the file.
17847
17848 2002-01-20  Kazu Hirata  <kazu@hxi.com>
17849
17850         * config/i370/i370.c: Fix comment formatting.
17851         * config/i370/i370.h: Likewise.
17852         * config/i370/i370.md: Likewise.
17853         * config/i370/linux.h: Likewise.
17854
17855 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17856
17857         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
17858
17859         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
17860         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
17861         in incomplete case.
17862
17863 2002-01-20  Graham Stott  <grahams@redhat.com>
17864
17865         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
17866
17867 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17868
17869         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
17870
17871 2002-01-19  Tom Rix  <trix@redhat.com>
17872
17873         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
17874
17875 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
17876
17877         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
17878
17879         * function.c (assign_stack_local_1): Adjust x_frame_offset with
17880         STARTING_FRAME_PHASE.
17881         (STARTING_FRAME_PHASE): New.
17882         (instantiate_virtual_regs): Check saneness of
17883         STARTING_FRAME_PHASE.
17884
17885         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
17886
17887 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
17888
17889         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
17890
17891 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17892
17893         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
17894         be used for bootstrapping GCC 3.0.
17895
17896 2002-01-18  Kazu Hirata  <kazu@hxi.com>
17897
17898         * config/h8300/h8300.md: Fix an insn length.
17899
17900 2002-01-18  Kazu Hirata  <kazu@hxi.com>
17901
17902         * bitmap.h: Fix comment formatting.
17903         * combine.c: Likewise.
17904         * cppfiles.c: Likewise.
17905         * c-pragma.h: Likewise.
17906         * c-typeck.c: Likewise.
17907         * df.c: Likewise.
17908         * dwarf2out.c: Likewise.
17909         * function.c: Likewise.
17910         * gcc.c: Likewise.
17911         * genattrtab.c: Likewise.
17912         * gthr-win32.h: Likewise.
17913         * haifa-sched.c: Likewise.
17914         * predict.c: Likewise.
17915         * rtlanal.c: Likewise.
17916         * rtl.h: Likewise.
17917         * unwind-dw2-fde.h: Likewise.
17918         * unwind-pe.h: Likewise.
17919         * vmsdbgout.c: Likewise.
17920
17921 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17922
17923         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
17924         if type_required and passed decl.
17925
17926 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
17927
17928         * config.gcc (cpu_type): Include altivec.h in powerpc
17929         extra_headers.
17930         Same for darwin.
17931
17932         * config/rs6000/altivec.h: New.
17933
17934 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
17935
17936         * doc/install.texi (*-ibm-aix*): Update assembler and exception
17937         handling information.
17938         * doc/trouble.texi (Interoperation): Add libstdc++ information
17939         for AIX.
17940         (Misunderstandings): Add template instantiation and static template
17941         member information for AIX.
17942
17943 2002-01-17  Jason Merrill  <jason@redhat.com>
17944
17945         * dbxout.c (dbxout_type): Support const and volatile.
17946
17947         * except.c (add_partial_entry): Remove backwards compatibility code.
17948         (end_protect_partials): Likewise.
17949
17950 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
17951
17952         * config/ia64/ia64.md (prologue_use): New.
17953         * config/ia64/ia64.c (ia64_expand_prologue): Use
17954         gen_prologue_use instead of gen_rtx_USE.
17955         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
17956         as CODE_FOR_pred_rel_mutex.
17957         (ia64_sched_reorder2): Likewise.
17958
17959 2002-01-16  Eric Christopher  <echristo@redhat.com>
17960
17961         * config/mips/r3900.h: Reformat.
17962         (SUBTARGET_CPP_SIZE_SPEC): Remove.
17963         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
17964         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
17965         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
17966         * config/mips/t-elf: Remove mips3 multilib.
17967
17968 2002-01-16  H.J. Lu <hjl@gnu.org>
17969
17970         * config/mips/linux.h: Include "mips/abi64.h".
17971
17972 2002-01-16  H.J. Lu <hjl@gnu.org>
17973
17974         * config/mips/t-linux: New.
17975
17976         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
17977
17978         * config/mips/linux.h: Don't include "gofast.h".
17979         (INIT_SUBTARGET_OPTABS): Removed.
17980
17981 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17982
17983         * config/h8300/h8300-protos.h: Replace emit_a_shift with
17984         output_a_shift.
17985         * config/h8300/h8300.c: Likewise.
17986         * config/h8300/h8300.md: Likewise.
17987
17988 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17989
17990         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
17991         spaces after an opcode name.
17992         (pushqi1_h8300hs): Likewise.
17993         (pushhi1_h8300hs): Likewise.
17994
17995 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17996
17997         * doc/extend.texi: Replace "option" with "attribute"
17998         appropriately.
17999
18000 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18001
18002         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
18003         (and:DI () (const_int -8)).
18004         (split_small_symbolic_mem_operand): Split
18005         (mem (and:DI () (const_int -8)).
18006
18007 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18008
18009         PR target/5309:
18010         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
18011         same way as TYPE_IMUL.
18012         (ultrasparc_sched_reorder): Likewise.
18013         * config/sparc/sparc.md (type): Add comment to update
18014         ultrasparc_sched_reorder when making changes.
18015
18016 2002-01-16  Kazu Hirata  <kazu@hxi.com>
18017
18018         * doc/invoke.texi: Change the dump file name of block
18019         reordering pass from 28.bbro to 29.bbro.
18020         Mention -dk option.
18021
18022 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18023
18024         * i386.md (minsf splitter): Fix pasto.
18025
18026 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
18027
18028         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
18029         to frame pointer initialisation instruction.
18030         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
18031         initialisation instruction.
18032         (soft_df_operand): Do not accept the IP register.
18033         (nonimmediate_soft_df_operand): Do not accept the IP register.
18034
18035 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
18036
18037         PR target/5357:
18038         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
18039         MASK_V8 being both set.
18040
18041 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
18042
18043         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
18044         insn for GOT register; add REG_MAYBE_DEAD notes instead.
18045         config/s390/s390.md (call, call_value): Add GOT register to
18046         CALL_INSN_FUNCTION_USAGE where needed.
18047         (call_exp, call_value_exp): New.
18048
18049 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
18050
18051         * config/arm/arm.c: General formatting tidy up.
18052
18053 2002-01-16  Graham Stott  <grahams@redhat.com>
18054
18055         * calls.c (try_to_integrate): Use "(size_t)" intermediate
18056         cast and when casting an integer literal to "rtx" pointer.
18057         (expand_call): Likewise.
18058         * flow.c (try_pre_increment): Likewise.
18059         (find_use_as_address): Likewise.
18060         * integrate.c (expand_iline_function): Likewise.
18061         * regmove.c (try_auto_increment): Likewise.
18062
18063 2002-01-16  Graham Stott  <grahams@redhat.com>
18064
18065         * sched-rgn.c (passed): Use sbitmap_free.
18066         (header): Likewise.
18067         (inner): Likewise.
18068         (in_queue): Likewise.
18069         (in_stack): Likewise.
18070
18071 2002-01-15  Eric Christopher  <echristo@redhat.com>
18072
18073         * flow.c (propagate_one_insn): Change to use fatal_insn.
18074
18075 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18076
18077         * expmed.c (extract_fixed_bit_field): Remove unused code.
18078         * system.h: Poison SLOW_ZERO_EXTEND.
18079         * doc/tm.texi: Remove.
18080         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
18081         * config/arm/arm.h: Likewise.
18082         * config/avr/avr.h: Likewise.
18083         * config/clipper/clipper.h: Likewise.
18084         * config/convex/convex.h: Likewise.
18085         * config/d30v/d30v.h: Likewise.
18086         * config/dsp16xx/dsp16xx.h: Likewise.
18087         * config/elxsi/elxsi.h: Likewise.
18088         * config/fr30/fr30.h: Likewise.
18089         * config/h8300/h8300.h: Likewise.
18090         * config/i370/i370.h: Likewise.
18091         * config/i386/i386.h: Likewise.
18092         * config/m68k/m68k.h: Likewise.
18093         * config/mips/mips.h: Likewise.
18094         * config/ns32k/ns32k.h: Likewise.
18095         * config/pdp11/pdp11.h: Likewise.
18096         * config/pj/pj.h: Likewise.
18097         * config/s390/s390.h: Likewise.
18098         * config/sh/sh.h: Likewise.
18099         * config/stormy16/stormy16.h: Likewise.
18100         * config/v850/v850.h: Likewise.
18101         * config/vax/vax.h: Likewise.
18102         * config/we32k/we32k.h: Likewise.
18103
18104 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
18105
18106         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
18107         (altivec_lvsl): Change constraint to b.
18108         (altivec_lvsr): Same.
18109         (altivec_lvebx): Same.
18110         (altivec_lvehx): Same.
18111         (altivec_lvewx): Same.
18112         (altivec_lvxl): Same.
18113         (altivec_lvx): Same.
18114         (altivec_stvx): Add parallel.
18115         (altivec_stvxl): Same.
18116         (altivec_stvehx): Same.
18117         (altivec_stvebx): Same.
18118         (altivec_stvebx): Same.
18119
18120 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
18121
18122         * config.gcc: Change altivec.h to altivec-defs.h.
18123
18124         * config/rs6000/altivec.h: Delete.
18125
18126         * config/rs6000/altivec-defs.h: Add.
18127
18128 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18129
18130         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
18131         and UMOD modes.
18132
18133         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
18134         less than or equal to eight bytes.
18135
18136         * vax.md (andsi3): Remove constraints and change SET destination
18137         operand type to nonimmediate_operand.
18138         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
18139         when it is a CONST_INT.
18140
18141 2002-01-15  Jason Merrill  <jason@redhat.com>
18142
18143         * c-common.def (FILE_STMT): New code.
18144         * c-common.c (statement_code_p): It's a statement.
18145         * c-common.h (stmt_tree_s): Add x_last_filename.
18146         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
18147         (last_expr_filename): New macro.
18148         * c-semantics.c (begin_stmt_tree): Initialize it.
18149         (add_stmt): If the filename changed, also insert a
18150         FILE_STMT.
18151         (expand_stmt): Handle seeing one.
18152
18153 2002-01-15  Eric Christopher  <echristo@redhat.com>
18154
18155         * flow.c (propagate_one_insn): Add error message and print out
18156         insn for debugging.
18157
18158 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
18159
18160         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
18161         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
18162         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
18163         TRAMPOLINE_ALIGNMENT.
18164         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
18165         to be in bits.
18166         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
18167         PCC_BITFIELD_TYPE_MATTERS.
18168         * config/interix.h (STDC_VALUE): Remove.  Use
18169         STDC_0_IN_SYSTEM_HEADERS.
18170         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
18171         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
18172         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
18173
18174 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18175
18176         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
18177         not work on this platform currently.
18178
18179 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
18180
18181         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
18182         readonly_warning in _().
18183
18184 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
18185
18186         * gcc.c (delete_if_ordinary): Backout previous change.
18187
18188 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18189
18190         * config/h8300/h8300.c (print_operand): Remove support for
18191         unused operand characters.
18192
18193         * read-rtl.c: Fix formatting.
18194         * real.c: Likewise.
18195         * recog.c: Likewise.
18196         * regclass.c: Likewise.
18197         * regmove.c: Likewise.
18198         * reg-stack.c: Likewise.
18199         * reload1.c: Likewise.
18200         * rtlanal.c: Likewise.
18201
18202 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18203
18204         * config/i386/i386.c: Fix formatting.
18205
18206 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
18207
18208         * c-typeck.c (process_init_element): Don't save_expr
18209         COMPOUND_LITERAL_EXPR if just its initializer will be used.
18210
18211 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
18212
18213         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
18214         emit optional traceback table if optimize_size or TARGET_ELF.
18215         * config/rs6000/rs6000.md (prefetch): New.
18216
18217 2002-01-15  Andreas Jaeger  <aj@suse.de>
18218
18219         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
18220
18221 2002-01-15  Kazu Hirata  <kazu@hxi.com>
18222
18223         * mips-tfile.c: Fix formatting.
18224
18225 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
18226
18227         * unroll.c (final_reg_note_copy): Fix previous commit.
18228
18229 2002-01-14  Kazu Hirata  <kazu@hxi.com>
18230
18231         * config/h8300/h8300-protos.h: Remove the prototype for
18232         eq_operator.
18233         * config/h8300/h8300.c (eq_operator): Remove.
18234
18235 2002-01-14  Richard Henderson  <rth@redhat.com>
18236
18237         * config/i386/i386.md (prefetch): Tidy.
18238         (prefetch_3dnow): Fix locality operand.
18239
18240 2002-01-14  Richard Henderson  <rth@redhat.com>
18241
18242         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
18243         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
18244
18245 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
18246
18247         * reload1.c (reload_combine): Pass reg_sum replacement through
18248         copy_rtx in loop performing multiple changes.
18249
18250 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
18251
18252         * except.c (remove_unreachable_regions): New.
18253         (free_eh_status): Clear exception_handler_labels.
18254         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
18255         (find_exception_handler_labels): Don't add the same label more than
18256         once.
18257         (remove_exception_handler_label): Don't die if
18258         find_exception_handler_labels hasn't been called for the current
18259         function yet.
18260
18261 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
18262
18263         * toplev.c (rest_of_compilation): Rebuild jump labels after
18264         gcse.
18265
18266 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
18267
18268         * doc/extend.texi: Move documentation of X86 built-in functions
18269         here.
18270         * doc/invoke.texi: From here.
18271         * doc/sourcebuild.texi: Document location of documentation for
18272         machine built-in functions.
18273
18274 2002-01-13  Christopher Faylor  <cgf@redhat.com>
18275
18276         * cppfiles.c (TEST_THRESHOLD): New macro.
18277         (SHOULD_MMAP): Ditto.
18278         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
18279         be used.
18280
18281 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
18282
18283         * unroll.c (final_reg_note_copy): Properly handle
18284         REG_LABEL
18285         (unroll_loops): Fix LOOP_CONDITION heuristics.
18286
18287 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
18288
18289         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
18290         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
18291
18292 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
18293
18294         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
18295         threaded loop.
18296
18297 2002-01-14  Tom Rix  <trix@redhat.com>
18298
18299         * config/rs6000/rs6000.md: Fix typo with sradi.
18300
18301 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
18302
18303         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
18304         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
18305         (clrstrdi, clrstrsi): Adapt callers.
18306
18307         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
18308
18309         (movti splitter): Never use register 0 as base register.
18310
18311 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
18312
18313         * combine.c (simplify_shift_const): Always generate new rtx
18314         for shift expression instead of reusing given expression.
18315
18316 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18317
18318         * config/alpha/alpha.c (alpha_expand_mov): Don't call
18319         alpha_legitimize_address unless mode is Pmode.
18320
18321 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
18322
18323         * doc/md.texi (Modifiers): Document the '*' constraint for the
18324         user.
18325
18326         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
18327         * doc/extend.texi (Function Attributes): 'interrupt' is valid
18328         for xstormy16 too.
18329
18330 2002-01-13  Richard Henderson  <rth@redhat.com>
18331
18332         * reload.c (find_reloads): Use a hard reg destination as reload reg
18333         for an input reload of the source.
18334
18335 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18336
18337         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
18338         more generic.
18339
18340 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
18341
18342         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
18343         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
18344
18345         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
18346
18347 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18348
18349         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
18350
18351 2002-01-12  Tom Rix  <trix@redhat.com>
18352
18353         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
18354         TARGET_POWERPC64.
18355
18356 2002-01-12  Richard Henderson  <rth@redhat.com>
18357
18358         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
18359
18360         * doc/invoke.texi: Update Alpha options.
18361
18362         * doc/invoke.texi: Update i386 built-in function lists.
18363
18364 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
18365
18366         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
18367         referencing outside.
18368
18369 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18370
18371         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
18372         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
18373         offsets, and change line folding.
18374         * optabs.c (expand_binop): Remove warnings.
18375         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
18376
18377 2002-01-12  Graham Stott <grahams@redhat.com>
18378
18379         * attribs.c (handle_deprecated_attribute): constify WHAT.
18380         * diagnostic.c (warn_deprecated_use): Add braces, fixes
18381         dangling else warning and constify WHAT.
18382         * except.h (struct function, struct inline_remap): Move
18383         struct tag forward defs before all prototypes.
18384         (duplicate_eh_regions): Whitespace.
18385
18386 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
18387
18388         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
18389         MODE_BASE_REG_CLASS.
18390         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
18391
18392 2002-01-12  Richard Henderson  <rth@redhat.com>
18393
18394         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
18395         (ix86_expand_vector_move): New.
18396         (bdesc_2arg): Remove andps, andnps, orps, xorps.
18397         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
18398         Remove old prefetch builtins.  Special case the logicals removed above.
18399         (ix86_expand_builtin): Likewise.
18400         (safe_vector_operand): Use V4SFmode, not TImode.
18401         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
18402         (ix86_expand_timode_binop_builtin): New.
18403         * config/i386/i386-protos.h: Update.
18404         * config/i386/i386.h (enum ix86_builtins): Update.
18405         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
18406         Use ix86_expand_vector_move in vector move expanders.
18407         (movti_internal, movti_rex64): Add xorps alternative.
18408         (sse_clrv4sf): Rename and adjust from sse_clrti.
18409         (prefetch): Don't work so hard.
18410         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
18411         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
18412         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
18413
18414 2002-01-11  Richard Henderson  <rth@redhat.com>
18415
18416         * config/i386/mmintrin.h: New file.
18417         * config/i386/xmmintrin.h: New file.
18418         * config.gcc (i?86-*-*): Add extra_headers.
18419         * simplify-rtx.c (simplify_unary_operation): Handle saturating
18420         truncation codes.
18421         (simplify_binary_operation): Handle saturating arithmetic codes.
18422         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
18423         not the lowpart subreg.
18424         (ix86_expand_builtin): Return a TImode dummy register instead of 0
18425         on error.
18426         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
18427
18428 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18429
18430         * conflict.c (conflict_graph_compute): Free regsets when finished.
18431         * ssa.c (compute_coalesced_reg_partition): Likewise.
18432
18433 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18434
18435         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
18436         every where we allocate a register.
18437
18438 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18439
18440         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
18441         * lcm.c (compute_earliest, compute_farthest): Likewise.
18442
18443 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
18444
18445         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
18446
18447 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
18448
18449         * doc/rtl.texi (Insns): Fix 2 typos.
18450
18451 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
18452
18453         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
18454         options.  Use @table @gcctabopt for MMIX options.  Add index
18455         entries for MMIX options.  Start new paragraph with first
18456         heading of the machine-dependent options.
18457
18458 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18459
18460         PR other/5299
18461         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
18462         * combine.c (force_to_mode): Same.
18463         * reload1.c (clear_reload_reg_in_use): Same.
18464
18465 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
18466
18467         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
18468         and 'subtargets'.
18469
18470 2002-01-11  Andreas Jaeger  <aj@suse.de>,
18471             Brad Lucier <lucier@math.purdue.edu>
18472
18473         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
18474         mcpu.
18475
18476 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
18477
18478         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
18479         Protect with IN_LIBGCC.
18480         (LINK_EH_SPEC): Add required trailing space.
18481
18482 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
18483
18484         * c-tree.h: Move function declarations so that they are listed
18485         under the filename which contains them.
18486         (check_identifier, finish_decl_top_level,
18487         lookup_name_current_level_global, shadow_record_fields): Remove.
18488
18489 2002-01-11  Andreas Jaeger  <aj@suse.de>
18490
18491         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
18492         march.
18493
18494 2002-01-10  Richard Henderson  <rth@redhat.com>
18495
18496         * config/alpha/alpha.c (print_operand): Add 'J'.
18497         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
18498         new operand with the sequence number for the lituse.  When splitting
18499         the insns, use gen_movdi_er_high_g and generate a sequence number.
18500         (gen_movdi_er_high_g): Print the sequence number if non-zero.
18501
18502 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
18503
18504         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
18505         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
18506         stvxl.
18507         (altivec_expand_builtin): Same.
18508         (altivec_expand_stv_builtin): New.
18509
18510         * config/rs6000/rs6000.h (rs6000_builtins): Same.
18511
18512         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
18513         ("altivec_lvehx"): New.
18514         ("altivec_lvewx"): New.
18515         ("altivec_lvxl"): New.
18516         ("altivec_lvx"): New.
18517         ("altivec_stvx"): New.
18518         ("altivec_stvebx"): New.
18519         ("altivec_stvehx"): New.
18520         ("altivec_stvewx"): New.
18521         ("altivec_stvxl"): New.
18522
18523 2002-01-10  Richard Henderson  <rth@redhat.com>
18524
18525         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
18526         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
18527         care not to delete instructions twice.
18528
18529 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
18530
18531         * toplev.c: Don't declare environ (it's not used anywhere).
18532         * configure.in: Don't check for declaration of environ.
18533         * config/i386/xm-mingw32.h: Don't #define environ.
18534         * config.in, configure: Regenerate.
18535
18536 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
18537
18538         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
18539         * configure: Regenerate.
18540
18541         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
18542         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
18543         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
18544         alpha/xm-vms.h.
18545         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
18546         LIMITS_H_TEST here, not in m68k/x-next.
18547         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
18548         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
18549
18550         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
18551         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
18552         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
18553
18554         * config/i386/x-djgpp: Renamed i386/t-djgpp.
18555         * config/m88k/x-dolph: Renamed m88k/t-dolph.
18556         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
18557         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
18558         replacement of quadlib.asm with quadlib.c.
18559
18560         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
18561         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
18562         config/rs6000/xm-beos.h: Delete file.
18563
18564         * config.gcc: Update to match above changes.
18565
18566 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18567
18568         * config/h8300/h8300.h: Fix comment typos.
18569         * config/h8300/h8300.md: Likewise.
18570         * config/h8300/lib1funcs.asm: Likewise.
18571
18572 2002-01-10  Dale Johannesen  <dalej@apple.com>
18573
18574         PR optimization/5269
18575         * unroll.c (precondition_loop_p): Make *increment be the correct
18576         sign when n_iterations known, to avoid confusing caller.
18577
18578 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18579
18580         * doc/extend.texi (deprecated): Fix a typo.
18581
18582 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
18583
18584         * basic-block.h (update_br_prob_note): Declare.
18585         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
18586         (try_forward_edges): Care negative frequencies and update note.
18587         (outgoing_edges_match): Tweek conditional merging heuristics.
18588         (try_crossjump_to_edge): use update_br_prob_note.
18589         * cfglayout.c (fixup_reorder_chain): Likewise.
18590         * cfrtl.c (update_br_prob_note): New.
18591         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
18592
18593         * i386.c (ix86_decompose_address): Return -1 if address contains
18594         shift.
18595         (legitimate_address_p): Require ix86_decompose_address to return 1.
18596
18597         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
18598         (cprop_insn): Likewise.
18599
18600 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18601
18602         * toplev.c: Fix formatting.
18603         * tree.c: Likewise.
18604         * tree-dump.c: Likewise.
18605         * unroll.c: Likewise.
18606         * unwind-dw2.c: Likewise.
18607         * unwind-dw2-fde.c: Likewise.
18608         * unwind-dw2-fde-glibc.c: Likewise.
18609         * unwind-sjlj.c: Likewise.
18610
18611 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
18612
18613         * doc/invoke.texi: Document PDP-11 options.
18614
18615 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18616
18617         * config/h8300/h8300.h: Fix formatting.
18618
18619 2002-01-10  Ira Ruben   <ira@apple.com>
18620
18621         Add __attribute__ ((deprecated)).
18622         * extend.texi: Document __attribute__ ((deprecated)).
18623         * invoke.texi: Document -Wno-deprecated-declarations.
18624         * testsuite/g++.dg/other/deprecated.C: New C++ test.
18625         * testsuite/gcc.dg/deprecated.c: New C test.
18626         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
18627         (c_common_attribute_table): Add "deprecated" entry.
18628         (handle_deprecated_attribute): New function.
18629         * c-decl.c (deprecated_states): New enum.
18630         deprecated_state: State of "deprecated" handling.
18631         (start_decl): Set deprecated_state based on attributes.
18632         (grokdeclarator): Test for deprecated uses, propagate attribute.
18633         * c-typeck.c (build_component_ref): Test for deprecated fields.
18634         (build_external_ref): Test for deprecated primaries.
18635         * diagnostic.c (warn_deprecated_use) New function to issue
18636         warnings about __attribute__ ((depricated)) references.
18637         * flags.h (warn_deprecated_decl): Extern declared for
18638         -W[no-]deprecated-declarations option.
18639         * print-tree.c (print_node): Show deprecated flag status.
18640         * toplev.c (warn_deprecated_decl): Defined.
18641         (W_options): Added "deprecated-declaration".
18642         * toplev.h (warn_deprecated_use): Extern declared.
18643         * tree.h (struct tree_common): Define deprecated_flag.
18644         (TREE_DEPRECATED): New macro to access flag.
18645         * cp/call.c (build_call): Test for deprecated calls.
18646         * cp/class.c (add_implicitly_declared_members): Set global
18647         flag to tell grokdeclarator to not issue deprecated warnings.
18648         * cp/cp-tree.h: Add extern for adding_implicit_members.
18649         * cp/decl.c (deprecated_states): New enum.
18650         (start_decl): Set deprecated_state based on attributes.
18651         (grokdeclarator): Test for deprecated uses, propagate attribute.
18652         * cp/lex.c (do_identifier): Test for deprecated primaries.
18653         * cp/typeck.c (build_component_ref): Test for deprecated fields.
18654
18655 2002-01-10  Ira Ruben   <ira@apple.com>
18656
18657         Fix to assign attributes to inline member functions.
18658         * cp/decl.c (start_method): Handle attrlist.
18659
18660 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18661
18662         * combine.c (expand_field_assignment): Use subreg_lsb().
18663
18664 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
18665
18666         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
18667         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
18668         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
18669         Recurse for any operand of AND as long as constant is non-zero.
18670
18671 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18672
18673         * config/h8300/h8300.md: Remove constraints from expanders.
18674
18675 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18676
18677         * varasm.c: Fix formatting.
18678         * varray.c: Likewise.
18679         * vmsdbgout.c: Likewise.
18680         * xcoffout.c: Likewise.
18681
18682 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
18683
18684         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
18685         update edge probabilities to match.
18686
18687 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
18688
18689         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
18690         dependencies.
18691         * doc/languages.texi, doc/sourcebuild.texi: New files.
18692         * doc/configfiles.texi: Make a subsubsection.  Update.
18693         * doc/configterms.texi: Add @node.  Remove warning that this isn't
18694         instructions for building GCC.
18695         * doc/makefile.texi: Make a subsection.
18696         * doc/gccint.texi: Update.
18697
18698 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
18699
18700         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
18701
18702 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
18703
18704         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
18705
18706 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
18707
18708         * optabs.c (expand_fix): Look for wider integer modes first.
18709
18710         * i386.md (mov?f): Avoid the fake const double trick for medium
18711         memory model.
18712         (min?f*/max?f*): Prohibit memory operands for i387 variant.
18713         (fop_df_4): Disable for SSE compilation.
18714
18715 2002-01-10  Graham Stott  <grahams@redhat.com>
18716
18717         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
18718         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
18719
18720 2002-01-10  Richard Henderson  <rth@redhat.com>
18721
18722         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
18723
18724 2002-01-10  Richard Henderson  <rth@redhat.com>
18725
18726         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
18727         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
18728
18729 2002-01-10  Kazu Hirata  <kazu@hxi.com>
18730
18731         * combine.c (can_combine_p): Fix a comment typo.
18732
18733 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
18734
18735         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
18736         empty list correctly.  Change loop index $t to $f for
18737         consistency with rest of Makefile.
18738
18739 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
18740
18741         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
18742         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
18743
18744         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
18745         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
18746         (altivec_init_builtins): Same.
18747         (altivec_expand_unop_builtin): Return NULL_RTX on error.
18748         (altivec_expand_binop_builtin): Same.
18749         (altivec_expand_ternop_builtin): Same.
18750         (bdesc_dst): New.
18751
18752         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
18753         ("altivec_vctuxs"): Fix typo.
18754         ("altivec_vnmsubfp"): Same.
18755         ("altivec_dssall"): New.
18756         ("altivec_mfvscr"): New.
18757         ("altivec_dss"): New.
18758         ("altivec_lvsl"): New.
18759         ("altivec_lvsr"): New.
18760         ("altivec_dstt"): New.
18761         ("altivec_dstst"): New.
18762         ("altivec_dststt"): New.
18763         ("altivec_dst"): New.
18764
18765         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
18766         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
18767
18768 2002-01-09  Richard Henderson  <rth@redhat.com>
18769
18770         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
18771
18772 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
18773
18774         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
18775         function.
18776         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
18777         prototype.
18778         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
18779
18780 2002-01-09  Kazu Hirata  <kazu@hxi.com>
18781
18782         * read-rtl.c: Fix formatting.
18783         * real.c: Likewise.
18784         * regclass.c: Likewise.
18785         * regrename.c: Likewise.
18786         * reg-stack.c: Likewise.
18787         * reload1.c: Likewise.
18788         * reload.c: Likewise.
18789         * rtl.c: Likewise.
18790
18791 2002-01-09  Kazu Hirata  <kazu@hxi.com>
18792
18793         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
18794         to extract items in the expr_list chain.
18795
18796 2002-01-09  Richard Henderson  <rth@redhat.com>
18797
18798         * config/vax/vax.c (vax_rtx_cost): Never abort.
18799
18800         * config/vax/vax.h (REAL_ARITHMETIC): Define.
18801
18802 2002-01-09  Jan Hubicka  <jh@suse.cz>
18803
18804         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
18805
18806 2002-01-09  Richard Henderson  <rth@redhat.com>
18807
18808         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
18809         Unify code from various alternatives.
18810
18811 2002-01-09  Richard Henderson  <rth@redhat.com>
18812
18813         * regrename.c (copy_value): Ignore the copy if the source register
18814         is present in the value chain with a narrower mode.
18815
18816 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
18817
18818         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
18819         for the c4x target. Also improve layout.
18820
18821 2002-01-09  Richard Henderson  <rth@redhat.com>
18822
18823         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
18824         * config/m32r/m32r.md (and ior xor splitters): Swap operands
18825         to match insn patterns.
18826
18827 2002-01-09  Richard Henderson  <rth@redhat.com>
18828
18829         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
18830         (copyprop_hardreg_forward_1): Likewise.
18831
18832 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18833
18834         * pa.md (decrement_and_branch_until_zero): Change predicate for
18835         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
18836
18837 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
18838
18839         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
18840         gets undefined. For Darwin.
18841
18842 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
18843
18844         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
18845
18846 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18847
18848         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
18849
18850 2002-01-08  Richard Henderson  <rth@redhat.com>
18851
18852         * regrename.c (copy_value): Ignore overlapping copies.
18853
18854 2002-01-08  Richard Henderson  <rth@redhat.com>
18855
18856         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
18857         as needed to avoid shared structure.
18858
18859 2002-01-08  Kazu Hirata  <kazu@hxi.com>
18860
18861         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
18862         H8/300H and H8/S.
18863
18864 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18865
18866         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
18867         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
18868         documentation of obsolete macros.
18869         * system.h: Poison these macros.
18870         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
18871         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
18872         config/c4x/c4x.h, config/clipper/clipper.h,
18873         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
18874         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
18875         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
18876         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
18877         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
18878         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
18879         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
18880         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
18881         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
18882         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
18883         config/sparc/sparc.h, config/stormy16/stormy16.h,
18884         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
18885         definitions and commented out definitions of obsolete macros.
18886         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
18887         of MAX_INT_TYPE_SIZE.
18888
18889 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
18890
18891         * config/s390/s390.c (s390_preferred_reload_class): Never
18892         return ADDR_REGS if it isn't a subset of the given class.
18893         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
18894         FP_REGS, but all superclasses as well.
18895
18896         * config/s390/s390.c (s390_function_profiler): Fix thinko.
18897
18898         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
18899         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
18900         must not be a const_int.
18901
18902 2002-01-08  Richard Henderson  <rth@redhat.com>
18903
18904         * Makefile.in (toplev.o): Depend on options.h.
18905         (gcc.o): Depend on specs.h.
18906
18907 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
18908
18909         * expr.c (store_expr): Convert VOIDmode constants back to target's
18910         mode.
18911
18912 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18913
18914         * doc/invoke.texi: Markup gcc as @command.  Refer to
18915         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
18916         of http://gcc.gnu.org/thanks.html.
18917
18918 2002-01-08  Dale Johannesen  <dalej@apple.com>
18919
18920         * config/rs6000/rs6000.md: Add missing int register
18921         target case to movdf_low.
18922
18923 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
18924
18925         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
18926         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
18927         (cppinit.o): Depend on except.h.
18928         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
18929         s-specs): New rules.
18930
18931         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
18932         Don't create specs.h/options.h/gencheck.h here.  Remove
18933         unnecessary variable settings from last argument of AC_OUTPUT.
18934         * config.in, configure: Regenerate.
18935         * intl.c: Hardcode package name as "gcc".
18936
18937         * cppinit.c: Include except.h.
18938         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
18939         appropriate.
18940         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
18941         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
18942         (!)USING_SJLJ_EXCEPTIONS.
18943         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
18944
18945 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18946
18947         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
18948         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
18949         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
18950         documentation of obsolete macros.
18951         * system.h: Poison these macros.
18952         * config/d30v/d30v.h, config/ns32k/encore.h,
18953         config/stormy16/stormy16.h: Remove definitions and commented out
18954         definitions of obsolete macros.
18955
18956 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
18957
18958         * objc/objc-act.c (handle_class_ref): Mark the declaration of
18959         %sobjc_class_ref_%s as used - to prevent unwanted compiler
18960         warnings.
18961
18962 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
18963
18964         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
18965         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
18966         to insn adjusting stack/frame pointer.
18967         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
18968         accept operands that cause the insn to be non-splittable.
18969
18970 2002-01-08  Graham Stott  <grahams@redhat.com>
18971
18972         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
18973         (C_TYPE_FIELDS_VOLATILE): Likewise.
18974         (C_TYPE_BEING_DEFINED): Likewise.
18975         (C_IS_RESERVED_WORD): Likewise.
18976         (C_TYPE_VARIABLE_SIZE): Likewise.
18977         (C_DECL_VARIABLE_SIZE): Likewise.
18978         (C_MISSING_PROTOTYPE_WARNED): Likewise.
18979         (C_SET_EXP_ORIGINAL_CODE): Likewise.
18980         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
18981         parenthesis.
18982         (C_DECL_ANTICIPATED): Likewise.
18983         (c_build_type_variant): Add parenthesis.
18984
18985 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18986
18987         * gcc.c (option_map): Remove --version.
18988         (process_command): Handle -fversion following the GNU Coding
18989         Standards.  Partially addresses PR other/704.
18990
18991 2002-01-08  Graham Stott  <grahams@redhat.com>
18992
18993         * combine.c (combine_instructions): Fix typo.
18994
18995 2002-01-08  Graham Stott  <grahams@redhat.com>
18996
18997         * debug.h: Use "tree" and "rtx" throughout.
18998
18999         * debug.c: Likewise.
19000
19001 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
19002
19003         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
19004         constant pool, use the pool's version of the symbol instead.
19005
19006 2002-01-07  Richard Henderson  <rth@redhat.com>
19007
19008         * regrename.c (find_oldest_value_reg): Ignore the value chain if
19009         the original register was copied in a mode with a fewer number of
19010         hard registers than the desired mode.
19011         (copyprop_hardreg_forward_1): Likewise.
19012         (debug_value_data): Fix loop test.
19013         * toplev.c (parse_options_and_default_flags): Reenable
19014         -fcprop-registers at -O1.
19015
19016 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19017
19018         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
19019         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
19020
19021         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
19022         predicates.
19023
19024         * config/rs6000/rs6000.md: Add altivec predicate patterns.
19025
19026 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19027
19028         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
19029         (pa_output_function_prologue): Output local label at the beginning of
19030         the prologue when profiling.
19031         (hppa_profile_hook): Use the local label rather than the function label.
19032         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
19033
19034 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19035
19036         * config/rs6000/rs6000.c (print_operand): Remove extra space.
19037         (altivec_expand_unop_builtin): Fix thinko.
19038         (altivec_expand_binop_builtin): Same.
19039         (altivec_expand_ternop_builtin): Same.
19040         (altivec_expand_builtin): Same.
19041
19042 2002-01-07  Richard Henderson  <rth@redhat.com>
19043
19044         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
19045
19046 2002-01-07  Jason Merrill  <jason@redhat.com>
19047
19048         * unwind-dw2.c (execute_cfa_program): Use < again.
19049
19050 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
19051
19052         * predict.c (combine_predictions_for_insn): Avoid division by zero.
19053
19054 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
19055
19056         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
19057         Don't allow -1 - x -> ~x simplifications in the first pass.
19058
19059 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
19060
19061         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
19062         arguments.
19063         (altivec_expand_binop_builtin): Same.
19064         (altivec_expand_unop_builtin): Same.
19065         (print_operand): Fix typo.
19066         (bdesc_1arg): Add vupk* variants.
19067
19068         * rs6000.h (rs6000_builtins): Add vupk* enums.
19069
19070         * rs6000.md: Add altivec_vupk* variants.
19071
19072 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
19073
19074         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
19075         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
19076         and last update dates.
19077
19078 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
19079
19080         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
19081
19082 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
19083
19084         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
19085         * config/avr/avr.h (CPP_SPEC): Likewise.
19086         (LINK_SPEC): Likewise.
19087         (CRT_BINUTILS_SPECS): Likewise.
19088         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
19089         * doc/invoke.texi (AVR Options): Document them.
19090
19091 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
19092
19093         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
19094         LABEL_NUSES.
19095
19096 2002-01-07  Graham Stott  <grahams@redhat.com>
19097
19098         * config/i386/i386.h: Update copyright date.
19099         (HALF_PIC_PTR): Add parenthesis.
19100         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
19101         (CONSTANT_ALIGNMENT): Add parenthesis.
19102         (DATA_ALIGNMENT): Likewise.
19103         (LOCAL_ALIGNMENT): Likewise.
19104         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
19105         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
19106         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
19107         (HARD_REGNO_NREGS): Add paranethesis.
19108         (VALID_SSE_REG_MODE): Whitespace.
19109         (VALID_MMX_REG_MODE): Whitespace.
19110         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
19111         (ix86_hard_regno_mode_ok): Add parenthesis.
19112         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
19113         (RETURN_IN_MEMORY): Whitespace.
19114         (N_REG_CLASSES): Add parenthesis.
19115         (INTEGER_CLASS_P): Add parenthesis and wrap.
19116         (FLOAT_CLASS_P): Likewise.
19117         (SSE_CLASS_P): Likewise.
19118         (MMX_CLASS_P): Likewise.
19119         (MAYBE_INTEGER_CLASS_P): Likewise.
19120         (MAYBE_FLOAT_CLASS_P): Likewise.
19121         (MAYBE_SSE_CLASS_P): Likewise.
19122         (MAYBE_MMX_CLASS_P): Likewise.
19123         (Q_CLASS_P): Likewise.
19124         (GENERAL_REGNO_P): Uppercase macro parameter.
19125         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
19126         (FP_REGNO_P): Likewise.
19127         (ANY_FP_REGNO_P): Uppercase macro parameter.
19128         (SSE_REGNO_P): Likewise.
19129         (SSE_REGNO): Likewise.
19130         (SSE_REG_P): Likewise.
19131         (SSE_FLOAT_MODE_P): Likewise.
19132         (MMX_REGNO_P): Likewise.
19133         (MMX_REG_P):Likewise.
19134         (STACK_REG_P): Likewise.
19135         (NON_STACK_REG_P): Likewise.
19136         (STACK_TOP_P): Likewise.
19137         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
19138         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
19139         (SECONDARY_MEMORY_NEEDED): Likewise.
19140         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
19141         (MD_ASM_CLOBBERS): Whitespace and wrap.
19142         (MUST_PASS_IN_STACK): Whitespace and wrap.
19143         (RETURN_POPS_ARGS): Add parenthesis.
19144         (INIT_CUMULATIVE_ARGS): Likewise.
19145         (FUNCTION_ARG): Likewise.
19146         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
19147         (SETUP_INCOMING_VARARGS): Likewise.
19148         (BUILD_VA_LIST_TYPE):  Add parenthesis.
19149         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
19150         parenthsis.
19151         (EXPAND_BUILTIN_VA_ARG): Likewise.
19152         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
19153         (INITIALIZE_TRAMPOLINE): Add parenthesis.
19154         (INITIAL_ELIMINATION_OFFSET): Likewise.
19155         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
19156         (REGNO_OK_FOR_BASE_P): Likewise.
19157         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
19158         (REGNO_OK_FOR_DIREG_P): Likewise.
19159         (REG_OK_FOR_INDEX_P): Whitespace.
19160         (REG_OK_FOR_BASE_P): Whitespace.
19161         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
19162         parenthesis.
19163         (FIND_BASE_TERM): Fix typo.
19164         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
19165         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
19166         (SYMBOLIC_CONST; Whitespace.
19167         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
19168         (ENCODE_SECTION_INFO): Whitespace.
19169         (FINALIZE_PIC): Remove do { ... } while (0).
19170         (PROMOTE_MODE): Wrap in do { ... } while (0).
19171         (CONST_COSTS): Whitespace.
19172         (RTX_COSTS): Add paramethesis, whitespace and wrap.
19173         (REGISTER_MOVE_COST): Add parenthesis.
19174         (MEMORY_MOVE_COST): Likewise.
19175         (EXTRA_CC_MODES): Whitespace.
19176         (SELECT_CC_MODE): Add parenthesis and whitespace.
19177         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
19178         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
19179         (ASM_OUTPUT_LABEL): Add paramethesis.
19180         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
19181         (ASM_OUTPUT_REG_POP): Likewise.
19182         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
19183         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19184
19185         * config/i386/i386.c: Update copyright.
19186         (CHECK_STACK_LIMIT): Add parenthesis.
19187         (AT_BP): Uppercase macro parameter.
19188         (x86_64_int_parameter_registers): Constify.
19189         (x86_64_int_return_registers): Likewise.
19190         (ix86_compare_op0): Use rtx.
19191         (construct_container): Constify INTREG parameter.
19192         (function_arg): Use rtx.
19193
19194         * diagnostic.h: Update copyright date.
19195         (output_buffer_state): Add parenthesis.
19196         (output_buffer_format_args): Likewise.
19197
19198         * combine.c (combine_instructions): Replace XEXP (links, 0)
19199         with link.
19200
19201 2002-01-06  H.J. Lu <hjl@gnu.org>
19202
19203         * cfgcleanup.c (thread_jump): Fix 2 typos.
19204
19205 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
19206
19207         * config.gcc: Add support for --enable-altivec.
19208
19209 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19210
19211         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
19212
19213 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
19214
19215         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
19216         __objc_class_name_*.
19217
19218 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19219
19220         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
19221
19222 2002-01-06  Richard Henderson  <rth@redhat.com>
19223
19224         * reorg.c (emit_delay_sequence): Remove death notes, not merely
19225         nop them out.  Increment label reference count for REG_LABEL.
19226         (fill_slots_from_thread): Frob label reference count around
19227         delete_related_insns.
19228
19229 2002-01-05  Richard Henderson  <rth@redhat.com>
19230
19231         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
19232         jump threading.
19233
19234 2002-01-05  Richard Henderson  <rth@redhat.com>
19235
19236         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
19237         * integrate.c (output_inline_function): Likewise.
19238         * toplev.c (rest_of_compilation): Do it here instead.  Move call
19239         to remove_unnecessary_notes after emitting abstract instance.
19240         Force an emitted nested function to have its parent emited as well.
19241         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
19242         for null.
19243         (rtl_for_decl_location): Do not look at reload data structures
19244         before reload has run.
19245
19246 2002-01-05  Kazu Hirata  <kazu@hxi.com>
19247
19248         * cse.c: Fix formatting.
19249         * dwarf2asm.c: Likewise.
19250         * dwarf2out.c: Likewise.
19251         * explow.c: Likewise.
19252         * expmed.c: Likewise.
19253         * function.c: Likewise.
19254         * gcov.c: Likewise.
19255         * gencheck.c: Likewise.
19256         * genrecog.c: Likewise.
19257         * ggc-common.c: Likewise.
19258         * ggc-page.c: Likewise.
19259         * global.c: Likewise.
19260
19261 2002-01-05  Kazu Hirata  <kazu@hxi.com>
19262
19263         * combine.c: Fix formatting.
19264
19265 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
19266
19267         PR middle-end/1557
19268         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
19269
19270 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
19271
19272         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
19273         as 1 for __powerpc64__ as well.
19274
19275         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
19276
19277         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
19278         return it.
19279
19280 2002-01-05  Daniel Berlin  <dan@dberlin.org>
19281
19282         * lcm.c: Revert change, due to performance regression it causes on
19283         SPEC because it's slightly more conservative (sigh, I hate
19284         edge-based LCM).
19285
19286 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
19287
19288         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
19289
19290 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
19291
19292         * doc/cppinternals.texi: Update.
19293
19294 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
19295
19296         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
19297         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
19298         negatives.
19299         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
19300         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
19301         kludge for pre-october-14th mmix versions to handle new-found bug
19302         with PUSHJ/PUSHGO and the register stack.
19303         * config/mmix/mmix.h (struct machine_function): Rename member
19304         has_call_value_without_parameters to has_call_without_parameters.
19305         All referers changed.
19306         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
19307         TARGET_MASK_BRANCH_PREDICT): New macros.
19308         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
19309         -mno-reg-stack-fill-bug-workaround.
19310         * config/mmix/mmix.md ("call"): Set struct machine member
19311         has_call_without_parameters.
19312
19313 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
19314
19315         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
19316
19317 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
19318
19319         * cfgcleanup.c: Include tm_p.h
19320         (mark_effect): Fix handling of hard register; fix handling of SET
19321
19322 2002-01-04  Kazu Hirata  <kazu@hxi.com>
19323
19324         * config/h8300/h8300.md (anonymous patterns): Check that
19325         operands are registers before using REGNO on them.
19326
19327 2002-01-03  Roland McGrath  <roland@frob.com>
19328
19329         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
19330
19331 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
19332
19333         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
19334         * c-common.h (genrtl_expr_stmt_value): Likewise.
19335         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
19336         (expand_expr_stmt_value): Add maybe_last argument.
19337         Don't warn about statement with no effect if it is the last statement
19338         in expression statement.
19339         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
19340         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
19341         expand_expr_stmt_value.
19342         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
19343         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
19344         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
19345         as maybe_last to expand_expr_stmt_value.
19346
19347 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
19348
19349         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
19350         be passed in, do not build it.
19351         (c_begin_if_stmt): New function.
19352         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
19353         * c-common.h (c_expand_start_cond): Update prototype.
19354         (c_begin_if_stmt): Prototype new function.
19355         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
19356         * c-parse.in (if_prefix): Use c_begin_if_stmt,
19357         c_begin_while_stmt and c_finish_while_stmt_cond.
19358
19359 2002-01-04  William Cohen  <wcohen@redhat.com>
19360
19361         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
19362         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
19363         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
19364         * config/pa/som.h (ASM_FILE_START): Likewise.
19365
19366 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
19367
19368         * lcm.c: Include df.h.
19369         Add available_transfer_function prototype.
19370         (compute_available): Rework to use iterative dataflow framework.
19371         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
19372         with bb_info in df.h
19373         (available_transfer_function): New function.
19374
19375         * Makefile.in (lcm.o): add df.h to dependencies.
19376
19377 2002-01-04  Richard Henderson  <rth@redhat.com>
19378
19379         * config/alpha/alpha.c (some_operand): Accept HIGH.
19380         (input_operand): Likewise; accept simple references to globals.
19381         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
19382         (alpha_const_double_ok_for_letter_p): Likewise.
19383         (alpha_extra_constraint): Likewise.
19384         (alpha_preferred_reload_class): Likewise.  Do not force
19385         symbolic constants to memory.
19386         (alpha_legitimate_address_p): Accept simple references
19387         to small_symbolic_operand.
19388         (alpha_legitimize_address): New arg scratch.  Be prepared to be
19389         called when no_new_pseudos.  Emit simple symbolic references.
19390         Split integers into low, high, and rest.
19391         (alpha_expand_mov): Use alpha_legitimize_address.
19392         (some_small_symbolic_mem_operand): New.
19393         (split_small_symbolic_mem_operand): New.
19394         * config/alpha/alpha-protos.h: Update.
19395         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
19396         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
19397         (EXTRA_CONSTRAINT): Likewise.
19398         (PREFERRED_RELOAD_CLASS): Likewise.
19399         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
19400         (PREDICATE_CODES): Update.
19401         * config/alpha/alpha.md: New post-reload splitters to convert
19402         simplfied symbolic operands to the form that references $29.
19403         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
19404         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
19405
19406 2002-01-03  Richard Henderson  <rth@redhat.com>
19407
19408         * local-alloc.c (function_invariant_p): Update commentary.
19409
19410 2002-01-04  H.J. Lu <hjl@gnu.org>
19411
19412         * toplev.c (rest_of_compilation): Fix a typo when calling
19413         cleanup_cfg.
19414
19415 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19416
19417         * c-common.c: Fix formatting.
19418         * diagnostic.c: Likewise.
19419         * doloop.c: Likewise.
19420         * dwarf2out.c: Likewise.
19421
19422 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19423
19424         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
19425         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
19426
19427 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19428
19429         * cpperror.c: Update comments and copyright.
19430         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
19431         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
19432
19433 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19434
19435         * collect2.c (main): Use strcmp when testing for "-shared".
19436
19437 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
19438
19439         * cppmacro.c: Don't include intl.h.  Update comments.
19440         (new_number_token): Allocate enough buffer for 64-bit unsigned
19441         integers; update prototype.
19442         * cppmain.c: Update comments.
19443
19444 2002-01-03  William Cohen  <wcohen@redhat.com>
19445
19446         * function.h (struct function): Add profile.
19447         (current_function_profile): New.
19448         doc/extend.texi: Update documentation.
19449         * final.c (final_start_function): Use current_function_profile
19450         instead of profile_flag.
19451         (profile_after_prologue): Likewise.
19452         * function.c (expand_function_start): Likewise.
19453         (expand_function_start): Likewise.
19454         * config/alpha/alpha.c (direct_call_operand):
19455         (alpha_does_function_need_gp): Likewise.
19456         (alpha_expand_prologue): Likewise.
19457         * config/arm/arm.c (arm_expand_prologue): Likewise.
19458         thumb_expand_prologue: Likewise.
19459         * config/d30v/d30v.c (d30v_stack_info): Likewise.
19460         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
19461         (fr30_expand_prologue): Likewise.
19462         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
19463         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
19464         * config/i386/i386.h (FINALIZE_PIC): Likewise.
19465         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
19466         * config/i960/i960.c (i960_output_function_prologue): Likewise.
19467         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
19468         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
19469         (m32r_expand_prologue): Likewise.
19470         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
19471         (m88k_expand_prologue): Likewise.
19472         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
19473         * config/mips/mips.c (compute_frame_size): Likewise.
19474         (mips_expand_prologue): Likewise.
19475         (mips_can_use_return_insn): Likewise.
19476         * config/pa/elf.h (ASM_FILE_START): Likewise.
19477         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
19478         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
19479         * config/pa/som.h (ASM_FILE_START): Likewise.
19480         * config/romp/romp.c (romp_using_r14): Likewise.
19481         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
19482         (rs6000_stack_info): Likewise.
19483         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19484         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
19485         * config/v850/v850.c (compute_register_save_size): Likewise.
19486
19487 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
19488
19489         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
19490         gen_lowpart_common fails, use gen_lowpart_SUBREG.
19491
19492 2002-01-03  Turly O'Connor  <turly@apple.com>
19493
19494         * darwin.c (machopic_output_possible_stub_label): Don't generate
19495         stub routines for pseudo-stubs which we've just defined.
19496
19497 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19498
19499         * builtins.c: Fix formatting.
19500         * c-typeck.c: Likewise.
19501         * combine.c: Likewise.
19502         * expr.c: Likewise.
19503         * loop.c: Likewise.
19504
19505 2002-01-03  Andreas Schwab  <schwab@suse.de>
19506
19507         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
19508         and return true if _cpp_push_next_buffer pushed a new include
19509         file.
19510         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
19511         _cpp_pop_file_buffer did not push a new file.
19512         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
19513
19514 2002-01-02  Eric Christopher  <echristo@redhat.com>
19515
19516         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
19517         FIND_REG_INC_NOTE call. Update copyright.
19518         * loop.c (canonicalize_condition): Ditto.
19519         * reorg.c (delete_scheduled_jump): Ditto.
19520
19521 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19522
19523         * gcse.c: Fix formatting.
19524
19525 2002-01-03  Graham Stott  <grahams@redhat.com>
19526
19527         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
19528         forward defs for struct tags rtx_def, union_tree, rtvec_def
19529         also output corresponding typedefs for rtx, tree, and rtvec.
19530
19531         * system.h: Move forward defs for struct tags rtx_def, union_tree,
19532         rtvec_def along with corresponding typedefs for rtx, tree, and
19533         rtvec to config.h, hconfig.h, tconfig.h.
19534
19535 2002-01-03  Graham Stott  <grahams@redhat.com>
19536
19537         * tree.h: Update copyright date.
19538         (IS_EXPR_CODE_CLASS): Add parenthesis.
19539         (TREE_SET_CODE): Add whitespace.
19540         (TREE_CHECK): Add parenthesis.
19541         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
19542         (CST_OR_CONSTRUCTOR_CHECK):
19543         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
19544         (TREE_SYMBOL_REFERENCED): Whitespace.
19545         (INT_CST_LT): Likewise.
19546         (INT_CST_LT_UNSIGNED): Likewise.
19547         (tree_real_cst): Unwrap comment.
19548         (tree_string): Likewise.
19549         (tree_complex): Likewise.
19550         (IDENTIFIER_POINTER): correct cast.
19551         (SAVE_EXPR_CONTEXT): Whitespace.
19552         (EXPR_WFL_FILENAME_NODE): Likewise.
19553         (EXPR_WFL_FILENAME): Remove parenthesis.
19554         (DECL_ORIGIN): Add parenthesis.
19555         (DECL_FROM_INLINE): Use NULL_TREE.
19556         (build_int_2): Whitespace.
19557         (build_type_variant): Add parenthesis.
19558
19559         * gcc/jcf-parse.c: Update copyright date.
19560         (yyparse): Constify resource_filename.
19561
19562 2002-01-03  Graham Stott  <grahams@redhat.com>
19563
19564         * rtl.h: Update copyright date.
19565         (RTL_CHECK1): Wrap long line.
19566         (RTL_CHECK2): Likewise.
19567         (RTL_CHECKC1): Wrap long line and whitespace.
19568         (RTL_CHECKC2): Likewise.
19569         (XWINT): Whitespace.
19570         (XINT): Likewise.
19571         (XSTR): Likewise.
19572         (XEXP): Likewise.
19573         (XVEC): Likewise.
19574         (XMODE): Likewise.
19575         (XBITMAP): Likewise.
19576         (XTREE): Likewise.
19577         (XBBDEF): Likewise.
19578         (XTMPL): Likewise.
19579         (X0WINT): Likewise.
19580         (X0INT):Likewise.
19581         (X0UINT): Likewise.
19582         (X0STR): Likewise.
19583         (X0EXP): Likewise.
19584         (X0VEC): Likewise.
19585         (X0MODE): Likewise.
19586         (X0BITMAP): Likewise.
19587         (X0TREE): Likewise.
19588         (X0BBDEF): Likewise.
19589         (X0ADVFLAGS): Likewise.
19590         (X0CSELIB): Likewise.
19591         (X0MEMATTR): Likewise.
19592         (XCWINT): Likewise.
19593         (XCINT): Likewise.
19594         (XCUINT): Likewise.
19595         (XCSTR): Likewise.
19596         (XCEXP): Likewise.
19597         (XCVEC): Likewise.
19598         (XCMODE): Likewise.
19599         (XCBITMAP): Likewise.
19600         (XCTREE): Likewise.
19601         (XCBBDEF): Likewise.
19602         (XCADVFLAGS): Likewise.
19603         (XCCSELIB): Likewise.
19604         (XC2EXP): Likewise.
19605         (INSN_UID): Likewise.
19606         (PREV_INSN): Likewise.
19607         (PATTERN): Likewise.
19608         (INSN_CODE): Likewise.
19609         (PUT_REG_NOTE_KIND): Likewise.
19610         (CODE_LABEL_NUMBER): Likewise.
19611         (NOTE_SOURCE_FILE): Likewise.
19612         (NOTE_BLOCK): Likewise.
19613         (NOTE_EH_HANDLER): Likewise.
19614         (NOTE_RANGE_INFO): Likewise.
19615         (NOTE_LIVE_INFO): Likewise.
19616         (NOTE_BASIC_BLOCK): Likewise.
19617         (NOTE_EXPECTED_VALUE): Likewise.
19618         (NOTE_LINE_NUMBER): Likewise.
19619         (LABEL_NAME): Likewise.
19620         (LABEL_NUSES): Likewise.
19621         (LABEL_ALTERNATE_NAME): Likewise.
19622         (ADDRESSOF_DECL): Likewise.
19623         (JUMP_LABEL): Likewise.
19624         (LABEL_NEXTREF): Likewise.
19625         (REGNO): Likewise.
19626         (ORIGINAL_REGNO: Likewise.
19627         (HARD_REGISTER_NUM_P): Add parenthesis.
19628         (SUBREG_REG): Whitespace.
19629         (SUBREG_BYTE): Likewise.
19630         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
19631         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
19632         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
19633         (ASM_OPERANDS_INPUT_VEC): Likewise.
19634         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
19635         (ASM_OPERANDS_INPUT): Likewise.
19636         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
19637         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
19638         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
19639         (ASM_OPERANDS_INPUT_MODE): Likewise.
19640         (ASM_OPERANDS_SOURCE_FILE): Likewise.
19641         (ASM_OPERANDS_SOURCE_LINE): Likewise.
19642         (MEM_SET_IN_STRUCT_P): Minor reformat.
19643         (TRAP_CONDITION): Whitespace.
19644         (TRAP_CODE): Likewise.
19645         (COND_EXEC_TEST): Likewise.
19646         (COND_EXEC_CODE): Likewise.
19647         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
19648         (PHI_NODE_P): Add parenthesis.
19649         (plus_constant): Whitespace and add parenthesis.
19650
19651 2002-01-03  Kazu Hirata  <kazu@hxi.com>
19652
19653         * config/avr/avr.c: Fix comment typos.
19654         * config/c4x/c4x.md: Likewise.
19655         * config/dsp16xx/dsp16xx.h: Likewise.
19656         * config/dsp16xx/dsp16xx.md: Likewise.
19657         * config/i386/i386.md: Likewise.
19658         * config/ia64/ia64.c: Likewise.
19659         * config/m32r/m32r.h: Likewise.
19660         * config/m68hc11/m68hc11.md: Likewise.
19661         * config/mmix/mmix.c: Likewise.
19662         * config/mn10200/mn10200.c: Likewise.
19663         * config/romp/romp.c: Likewise.
19664         * config/sh/sh.c: Likewise.
19665         * config/stormy16/stormy16.c: Likewise.
19666         * config/stormy16/stormy16.h: Likewise.
19667         * config/stormy16/stormy16.md: Likewise.
19668
19669 2002-01-03  Graham Stott  <grahams@redhat.com>
19670
19671         * loop.h: Update copyright date.
19672         (LOOP_MOVABLES): Fix typo.
19673         (LOOP_REGS): Likewise.
19674         (LOOP_IVS): Likewise.
19675
19676 2002-01-03  Graham Stott  <grahams@redhat.com>
19677
19678         * cppinit.c: Update copyright date.
19679         Don't include output.h
19680         * Makefile.in: Update copyright date.
19681         Update dependency.
19682
19683 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
19684
19685         PR c/5226
19686         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
19687         (-pthread) Add to RS/6000 options.
19688
19689 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19690
19691         * except.c: Fix comment typos.
19692         * loop.c: Likewise.
19693         * varasm.c: Likewise.
19694         * doc/tm.texi: Fix a typo.
19695
19696 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
19697
19698         * c-typeck.c (output_init_element): Allow initializing static storage
19699         duration objects with compound literals.
19700
19701 2002-01-02  Richard Henderson  <rth@redhat.com>
19702
19703         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
19704         after abusing it.
19705
19706 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19707
19708         * gcc.c (default_compilers): Const-ify.
19709         * mips-tdump.c (stab_names): Likewise.
19710         * mips-tfile.c (map_coff_types, map_coff_storage,
19711         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
19712         pseudo_ops_t, pseudo_ops): Likewise.
19713         * protoize.c (default_include): Likewise
19714
19715         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
19716         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
19717         Add array size in declaration.
19718         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
19719         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
19720         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
19721         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
19722         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
19723         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
19724         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
19725         emtens, make_nan): Const-ify.
19726         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
19727         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
19728
19729 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
19730
19731         * config.gcc (ia64-*-*): Set extra_headers.
19732         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
19733         * config/alpha/t-osf: Remove.
19734         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
19735
19736 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
19737
19738         * config/rs6000/t-aix43: Revert previous change.
19739
19740 2002-01-02  Jason Merrill  <jason@redhat.com>
19741
19742         * c-decl.c (c_expand_body): Call outlining_inline_function when
19743         emitting an inline function out of line.
19744
19745 2002-01-02  Richard Henderson  <rth@redhat.com>
19746
19747         * dwarf2out.c (limbo_die_node): Add created_for member.
19748         (new_die): New argument created_for.  Update all callers.
19749         (mark_limbo_die_list): New.
19750         (dwarf2out_init): Register limbo_die_list as a root.
19751         (dwarf2out_finish): Force insert limbo dies into their function
19752         context.
19753
19754 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
19755
19756         PR c++/5089
19757         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
19758
19759 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19760
19761         * config/h8300/fixunssfsi.c: Update copyright.
19762         Fix comment typos.
19763         Fix formatting.
19764         * config/h8300/h8300.c: Update copyright.
19765         Eliminate warnings.
19766
19767 2002-01-02  Kazu Hirata  <kazu@hxi.com>
19768
19769         * config/romp/romp.c: Fix comment formatting.
19770         * config/romp/romp.h: Likewise.
19771         * config/romp/romp.md: Likewise.
19772         * config/s390/s390.c: Likewise.
19773         * config/stormy16/stormy16.c: Likewise.
19774         * config/stormy16/stormy16.h: Likewise.
19775
19776 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
19777
19778         * c-common.h (genrtl_expr_stmt_value): Declare.
19779         * c-semantics.c (genrtl_goto_stmt): Redirect to...
19780         (genrtl_goto_stmt_value): ... this new function.  Pass new
19781         argument down to expand_expr_stmt_value, taking
19782         TREE_ADDRESSABLE into account.
19783         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
19784         STMT_EXPR as addressable, i.e., one whose result we want.
19785         * expr.c (expand_expr): Don't save expression statement value
19786         of labeled_blocks or loop_exprs.
19787         * stmt.c (expand_expr_stmt): Redirect to...
19788         (expand_expr_stmt_value): ... this new function.  Use new
19789         argument to tell whether to save expression value.
19790         (expand_end_stmt_expr): Reset last_expr_type and
19791         last_expr_value if we don't have either.
19792         * tree-inline.c (declare_return_variable): Mark its use
19793         statement as addressable.
19794         * tree.h: Document new use of TREE_ADDRESSABLE.
19795         (expand_expr_stmt_value): Declare.
19796
19797 2002-01-01  Tom Rix  <trix@redhat.com>
19798
19799         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
19800         rs6000_emit_allocate_stack.
19801
19802 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
19803
19804         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
19805         ${srcdir}/ginclude/ to every entry in extra_headers.
19806         * configure: Regenerate.
19807         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
19808         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
19809         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
19810         * ginclude/proto.h: Rename to config/convex/proto.h.
19811
19812 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19813
19814         * attribs.c (handle_vector_size_attribute): Use host_integerp
19815         and tree_int_cst; remove warnings.
19816         * caller-save.c (insert_restore): Add cast to get rid of warning.
19817         (insert_save): Likewise.
19818         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
19819         * regmove.c (find_matches): Add temporary var to kill a warning.
19820
19821 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
19822
19823         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
19824         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
19825         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
19826         (vms-dwarf2eh.o): Add Makefile rule.
19827         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
19828         * config/alpha/vms-dwarf2eh.asm: New file.
19829
19830         * gcc.c (delete_if_ordinary): Delete all versions.
19831
19832 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
19833
19834         * config/mmix/mmix.md: Update FIXME to not mention
19835         define_constants.
19836         (MMIX_rJ_REGNUM): New define_constants constant.
19837         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
19838         "*movdicc_real"): Adjust contraints formatting.
19839         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
19840         for branch prediction.
19841         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
19842         output template.
19843         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
19844         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
19845         number.  Delete related FIXMEs.
19846         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
19847         from number to MMIX_rJ_REGNUM.
19848         (TARGET_MASK_BRANCH_PREDICT): New.
19849         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
19850         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
19851         value.  Add -mbranch-predict and -mno-branch-predict.
19852         (TARGET_VERSION): Drop date.
19853         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
19854         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
19855         for finding out global symbols.
19856         (mmix_asm_output_labelref): Revert condition for global symbol.
19857         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
19858         (mmix_print_operand_punct_valid_p): A '+' is valid.
19859
19860 See ChangeLog.6 for earlier changes.