OSDN Git Service

f797d19e6596806d7f054e29bc8bbfdde560f760
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-21  Bruce Korb  <bkorb@gnu.org>
2
3         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
4
5 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
6
7         * cfgbuild.c: Fix formatting.
8         * cfg.c: Likewise.
9         * cfgcleanup.c: Likewise.
10         * cfglayout.c: Likewise.
11         * cfgloop.c: Likewise.
12         * cfgrtl.c: Likewise.
13
14 2002-05-21  Richard Henderson  <rth@redhat.com>
15
16         * c-common.h (enum rid): Add RID_THREAD.
17         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
18         (grokdeclarator): Grok __thread.
19         * c-parse.in (reswords): Add __thread.
20         (rid_to_yy): Add RID_THREAD.
21
22         * tree.h (DECL_THREAD_LOCAL): New.
23         (struct tree_decl): Add thread_local_flag.
24         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
25         * tree.c (staticp): TLS variables are not static.
26
27         * target-def.h (TARGET_HAVE_TLS): New.
28         * target.h (have_tls): New.
29         * output.h (SECTION_TLS): New.
30         * varasm.c (assemble_variable): TLS variables can't be common for now.
31         (default_section_type_flags): Handle .tdata and .tbss.
32         (default_elf_asm_named_section): Handle SECTION_TLS.
33         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
34
35         * flags.h (flag_tls_default): Declare.
36         * toplev.c (flag_tls_default): Define.
37         (display_help): Display help for it.
38         (decode_f_option): Set it.
39
40         * doc/extend.texi (Thread-Local): New node describing language-level
41         thread-local storage.
42         * doc/invoke.texi (-ftls-model): Document.
43
44         * fixinc/inclhack.def (thread_keyword): New.
45         * fixinc/fixincl.x: Rebuild.
46
47 2002-05-21  Jeffrey A Law  <law@redhat.com>
48
49         * optabs.c (expand_binop): For double-word integer multiplies,
50         do not compute intermediate results into something that is
51         not a register (such as a SUBREG or MEM).
52
53         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
54         (ix86_sched_reorder): Make sure to initialize scheduling
55         data even when there's only one insn in the ready queue.
56
57 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
58
59         * genautomata.c (reserv_sets_hash_value): Fix a typo.
60
61 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
62
63         * genautomata.c (reserv_sets_hash_value): Define hash_value as
64         set_el_t.  Transform the hash value into unsigned.
65         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
66         (transform_3): Add code to process `(A,B)+(D,E)'.
67
68 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
69
70         * reload1.c (do_output_reload): Run delete_output_reload
71         only if optimizing.
72
73 2002-05-21  Roger Sayle  <roger@eyesopen.com>
74
75         PR middle-end/6600
76         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
77         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
78         (can_store_by_pieces): ... and here to limit the largest mode used.
79         Add a comment to document this function.
80
81 2002-05-21  Richard Henderson  <rth@redhat.com>
82
83         * flow.c (life_analysis): Fix test for deleted label.
84
85 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
86
87         * doc/tm.texi: Fix typo.
88
89 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
90
91         * c-common.c (c_common_init): Set options->unsigned_char from
92         flag_signed_char.
93         (cb_register_builtins): Define __STRICT_ANSI__ and
94         __CHAR_UNSIGNED__ here...
95         * cppinit.c (init_builtins): Not here.
96         (cpp_create_reader): unsigned_char option defaults to 0, not
97         !DEFAULT_SIGNED_CHAR.
98         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
99         and -funsigned-char.
100
101         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
102         * cpphash.c (_cpp_init_hashtable): Don't set it.
103         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
104         directly.  Clarify comment.
105
106 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
107
108         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
109         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
110         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
111         BASIC_BLOCK (n_basic_blocks - 1).
112         * cfganal.c (can_fallthru, flow_call_edges_add,
113         flow_preorder_transversal_compute): Too.
114         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
115         find_sub_basic_blocks): Too.
116         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
117         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
118         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
119         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
120         * combine.c (this_basic_block): Type changed to basic_block.
121         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
122         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
123         get_last_value, distribute_notes, distribute_links): Too.
124         * final.c (compute_alignments): Too.
125         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
126         * function.c (thread_prologue_and_epilogue_insns): Too.
127         * gcse.c (compute_code_hoist_vbeinout): Too.
128         * global.c (build_insn_chain): Too.
129         * ifcvt.c (find_if_block, find_cond_trap): Too.
130         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
131         * regmove.c (regmove_optimize): Too.
132         * resource.c (find_basic_block): Too.
133         * sched-ebb.c (schedule_ebbs): Too.
134         * ssa-dce.c (find_control_dependence, find_pdom): Too.
135
136 2002-05-21  Andreas Jaeger  <aj@suse.de>
137
138         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
139
140 2002-05-21  Richard Henderson  <rth@redhat.com>
141
142         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
143         unspec names, not numbers.
144
145 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
146
147         * doc/sourcebuild.texi: Mention snapshot-README and
148         snapshot-index.html as needing updating for new front ends.
149
150 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
151
152         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
153         disabling checking, and avoid multiple evaluation of RTX.
154
155 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
156
157         * bitmap.c (bitmap_find_bit): Return early if we have the correct
158         element cached.
159
160 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
161
162         * profile.c (gen_edge_profiler):  Set alias set before the memory is
163         used.
164
165 2002-05-20  David S. Miller  <davem@redhat.com>
166
167         * cselib.c (max_value_regs): New.
168         (cselib_lookup, cselib_invalidate_regno): Initialize it when
169         adding new entries to the REG_VALUES table and we are dealing with
170         a hard register.
171         (clear_table): Initialize it.
172         (cselib_invalidate_regno): Use it to determine which hard
173         registers to scan when mode is not VOIDmode.
174
175 2002-05-20  Duraid Madina   <duraid@fl.net.au>
176
177         * tradcpp.c (fixup_newlines): Use old-style function header.
178
179 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
180
181         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
182
183 2002-05-20  H.J. Lu  (hjl@gnu.org)
184
185         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
186
187         * config/mips/mips.h (DFMODE_NAN): Defined.
188         (SFMODE_NAN): Likewise.
189
190 2002-05-20  Dale Johannesen  <dalej@apple.com>
191
192         * combine.c (cant_combine_insn_p):  Back out my
193         previous patch.
194
195 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
196
197         * params.c: Fix formatting.
198         * params.h: Likewise.
199         * predict.c: Likewise.
200         * prefix.c: Likewise.
201         * print-rtl.c: Likewise.
202         * print-tree.c: Likewise.
203         * profile.c: Likewise.
204
205 2002-05-20  H.J. Lu  (hjl@gnu.org)
206
207         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
208
209 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
210
211         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
212         switches straight on to the assembler, do not abbreviate them.
213         * config/arm/elf.h (ASM_SPEC): As above.
214         * config/arm/semi.h (ASM_SPEC): As above.
215         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
216         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
217         -mcpu=xscale on to the assembler by default.
218         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
219
220 2002-05-20  Richard Henderson  <rth@redhat.com>
221
222         * cse.c (canon_hash): Reorder do_not_record test.  Always
223         allow pic_offset_table_rtx.
224
225 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
226
227         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
228         (expand_binop): Ditto (3 times).
229
230 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
231
232         * Makefile.in (distclean): Remove QMTest stuff.
233         (QMTEST_PATH): New variable.
234         (QMTESTFLAGS): Likewise.
235         (QMTESTRUNFLAGS): Likewise.
236         (QMTEST): Likewise.
237         (QMTEST_GPP_TESTS): Likewise.
238         (QMTEST_DIR): Likewise.
239         (QMTEST_DIR/context): New target.
240         (qmtest-g++): Likeise.
241         (qmtest-gui): Likewise.
242         (QMTEST_DIR/gpp-expected.qmr): Likewise.
243
244 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
245
246         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
247         an altivec register if TARGET_ALTIVEC.
248
249         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
250         to ALTIVEC_VECTOR_MODE.
251         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
252         (rs6000_va_arg): Vectors may go in registers if they are not
253         altivec vectors.
254
255 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
256
257         * protoize.c: Fix formatting.
258
259 2002-05-19  Richard Henderson  <rth@redhat.com>
260
261         * gensupport.c (init_include_reader): Merge into ...
262         (process_include): ... here.  Simplify composite path creation.
263         Plug memory leaks.  Fix file/line number tracking.  Do not
264         process_define_cond_exec.  Return void.
265         (process_rtx): Don't check process_include return value.
266
267 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
268
269         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
270         fields.
271         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
272         traversing basic block chain.
273         (create_basic_block_structure, create_basic_block): Declaration changed.
274         (link_block, unlink_block): Declare.
275         * cfg.c (entry_exit_blocks): Initialize new fields.
276         (link_block, unlink_block): New.
277         (expunge_block_nocompact): Unlink basic block.
278         (dump_flow_info): Print prev_bb/next_bb fields.
279         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
280         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
281         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
282         * cfgrtl.c (create_basic_block_structure, create_basic_block,
283         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
284         (verify_flow_info): Check that list agrees with numbering.
285
286 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
287
288         * c-common.c (preprocessing_asm): New macro.
289         * c-lex.h (builtin_define, builtin_assert): Use pfile.
290 doc:
291         * tm.texi: Update.
292 config/alpha:
293         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
294         (CPP_SPEC): Simplify.
295         (TARGET_CPU_CPP_BUILTINS): Update.
296         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
297         (CPP_SPEC): Simplify.
298         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
299         (TARGET_OS_CPP_BUILTINS): Update.
300         * osf.h (CPP_XFLOAT_SPEC): Kill.
301         (TARGET_OS_CPP_BUILTINS): Update.
302         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
303         * osf5.h (CPP_XFLOAT_SPEC): Kill.
304         * vms.h (CPP_SUBTARGET_SPEC): Kill.
305         (TARGET_OS_CPP_BUILTINS): Update.
306
307 2002-05-19  Richard Henderson  <rth@redhat.com>
308
309         * varasm.c (default_binds_local_p): Fix typo.
310
311 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
312
313         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
314         CONST_INT operand to the correct mode after adding 1 to it.
315
316 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
317
318         * config.gcc (powerpc-wrs-windiss*): New target.
319
320 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
321
322         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
323         (ashrdi3): Use it.
324
325 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
326
327         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
328         alphasort.
329         * config.in: Regenerated.
330         * configure: Regenerated.
331
332 2002-05-19  Richard Henderson  <rth@redhat.com>
333
334         * target-def.h (TARGET_BINDS_LOCAL_P): New.
335         * target.h (struct gcc_target): Move boolean fields to the end.
336         Add binds_local_p.
337         * varasm.c (default_binds_local_p): New.
338         * output.h: Declare it.
339
340         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
341         * config/cris/cris.c (cris_encode_section_info): Likewise.
342         * config/i386/i386.c (i386_encode_section_info): Likewise.
343         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
344         * config/sh/sh.c (sh_encode_section_info): Likewise.
345
346         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
347         (TARGET_BINDS_LOCAL_P): New.
348
349 2002-05-19  Richard Henderson  <rth@redhat.com>
350
351         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
352         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
353         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
354
355         * toplev.c (display_help): Kill -a -ax help.
356
357         * config/1750a/1750a.h, config/alpha/alpha.h,
358         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
359         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
360         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
361         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
362
363         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
364         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
365
366         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
367         (ix86_output_function_block_profiler): Kill.
368         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
369         (m68hc11_function_block_profiler): Kill.
370         * config/m68hc11/m68hc11-protos.h: Update.
371         * config/m88k/m88k.c (output_block_profiler): Kill.
372         (output_function_block_profiler): Kill.
373         * config/m88k/m88k-protos.h: Update.
374
375 2002-05-19  Richard Henderson  <rth@redhat.com>
376
377         * system.h (STRIP_NAME_ENCODING): Poison it.
378         * output.h (STRIP_NAME_ENCODING): Remove.
379         (default_strip_name_encoding): Declare.
380         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
381         * target.h (strip_name_encoding): New.
382         * varasm.c (default_strip_name_encoding): New.
383
384         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
385         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
386         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
387         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
388         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
389         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
390         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
391         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
392         config/v850/v850.h: Use the hook, not the macro.
393
394         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
395         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
396         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
397         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
398         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
399         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
400         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
401         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
402         config/v850/v850.c, config/v850/v850.h:
403         Move STRIP_NAME_ENCODING to out-of-line function and add
404         TARGET_STRIP_NAME_ENCODING.
405
406         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
407         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
408         with TARGET_STRIP_NAME_ENCODING referencing existing function;
409         make function static.
410
411         * xcoffout.c: Include target.h
412         * Makefile.in (xcoffout.o): Update.
413
414         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
415         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
416         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
417         reloc argument unused.
418         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
419
420         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
421         STRIP_NAME_ENCODING docs.
422
423 2002-05-19  Andreas Jaeger  <aj@suse.de>
424
425         * gengenrtl.c: Add prototype for excluded_rtx.
426
427         * real.h: Add prototype for exact_real_truncate.
428
429 2002-05-18  Richard Henderson  <rth@redhat.com>
430
431         * system.h (ENCODE_SECTION_INFO): Poison it.
432         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
433         * target.h (encode_section_info): New.
434         * varasm.c (make_decl_rtl, output_constant_def): Use it.
435         * hooks.c (hook_tree_int_void): New.
436         * hooks.h: Declare it.
437
438         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
439         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
440         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
441         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
442         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
443         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
444         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
445         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
446         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
447         config/mcore/mcore-protos.h, config/mcore/mcore.c,
448         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
449         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
450         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
451         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
452         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
453         referencing existing function.  Make function static.
454
455         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
456         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
457         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
458         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
459         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
460         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
461         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
462         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
463         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
464         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
465         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
466         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
467         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
468         Move ENCODE_SECTION_INFO to out-of-line function and add
469         TARGET_ENCODE_SECTION_INFO.
470
471         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
472         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
473
474         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
475         from SUBTARGET_*
476         (switch_to_section): Replace in_rdata case with in_readonly_data.
477
478         * config/h8300/h8300.c (h8300_encode_label): Make static.
479         * config/h8300/h8300-protos.h: Update.
480
481         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
482         from rs6000_encode_section_info; make static.
483         (rs6000_xcoff_encode_section_info): New.
484
485         * config/v850/v850.c (v850_encode_data_area): Make static.
486         * config/v850/v850-protos.h: Update.
487
488         * config/vax/vax.c: Include flags.h.
489         (vms_select_section): Fix typo.
490
491         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
492         ENCODE_SECTION_INFO docs.
493
494 2002-05-18  Richard Henderson  <rth@redhat.com>
495
496         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
497         REGISTER_TARGET_PRAGMAS.
498         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
499
500         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
501
502 2002-05-18  Richard Henderson  <rth@redhat.com>
503
504         * system.h (SELECT_RTX_SECTION): Poison.
505         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
506         * target.h (select_rtx_section): New.
507         * varasm.c (output_constant_pool): Use it.
508         (default_select_rtx_section, default_elf_select_rtx_section): New.
509         * output.h: Declare them.
510
511         * config/darwin.h (SELECT_RTX_SECTION): Move ...
512         * config/darwin.c (machopic_select_rtx_section): ... here.
513         * config/darwin-protos.h: Update.
514
515         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
516         * config/nextstep.c (machopic_select_rtx_section): ... here.
517         (nextstep_select_section): Rename variable to avoid macro clash.
518         * config/nextstep-protos.h: Update.
519
520         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
521         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
522         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
523         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
524         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
525         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
526         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
527         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
528         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
529         (SELECT_RTX_SECTION): Remove.
530
531         * config/darwin.h, config/elfos.h, config/nextstep.h,
532         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
533         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
534         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
535         config/sparc/lynx.h, config/xtensa/xtensa.c
536         (TARGET_ASM_SELECT_RTX_SECTION): New.
537
538         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
539         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
540         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
541         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
542         (ia64_aix_select_rtx_section): New.
543         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
544         redefining.
545         * config/mips/mips.c (mips_select_rtx_section): Make static.
546         Support ELF SHF_MERGE features.
547         * config/mips/mips-protos.h: Update.
548         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
549         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
550         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
551         make static, fall back to default_elf_select_rtx_section.
552         * config/rs6000/rs6000-protos.h: Update.
553         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
554         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
555         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
556         * config/romp/romp.c (romp_select_rtx_section): New.
557         * config/s390/s390.c (s390_select_rtx_section): New.
558         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
559         declarations before target macro definition.
560         (xtensa_emit_call): Use static buffer.
561         (xtensa_select_rtx_section): New.
562         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
563         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
564         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
565
566         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
567         SELECT_RTX_SECTION docs.
568
569 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
570
571         * i386.md (movsi/movdi): Fix template.
572         (sse2 patterns): Set attributes consistently.
573
574         * i386.md (pushqi2, ashrqi_*): Fix constraint.
575
576 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
577
578         * optabs.c (complex_part_zero_p): New.
579         * (expand_cmplxdiv_straight): Use it.
580         * (expand_cmplxdiv_wide): Ditto.
581         * (expand_binop): Ditto.
582
583 2002-05-18  Richard Henderson  <rth@redhat.com>
584
585         * final.c (HAVE_READONLY_DATA_SECTION): New.
586         (shorten_branches): Use it instead of ifdefs.
587         * varasm.c (enum in_section): Add in_readonly_data.
588         (text_section, data_section): Tidy.
589         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
590
591         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
592         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
593         (READONLY_DATA_SECTION): Don't undef.
594
595         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
596         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
597         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
598
599         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
600         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
601         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
602         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
603
604         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
605         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
606         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
607         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
608         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
609         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
610         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
611         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
612         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
613
614         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
615         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
616         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
617         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
618         config/pa/pa64-hpux.h, config/sparc/litecoff.h
619         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
620
621         * config/elfos.h, config/netware.h, config/svr3.h,
622         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
623         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
624         config/h8300/h8300.h, config/i386/i386-interix.h,
625         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
626         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
627
628         * config/elfos.h, config/netware.h, config/svr3.h,
629         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
630         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
631         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
632         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
633
634         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
635         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
636         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
637         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
638         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
639         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
640         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
641         config/rs6000/sysv4.h, config/v850/v850.h
642         (EXTRA_SECTIONS): Remove in_const/in_rdata.
643         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
644
645         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
646         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
647         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
648         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
649         * config/alpha/alpha.c (alpha_start_function): Likewise.
650         (alpha_write_linkage): Likewise.
651         * config/m32r/m32r.c (m32r_select_section): Likewise.
652         * config/m88k/m88k.c (m88k_select_section): Likewise.
653         * config/mips/mips.c (mips_select_rtx_section): Likewise.
654         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
655         (rs6000_elf_select_section): Likewise.
656         * config/v850/v850.c (v850_select_section): Likewise.
657
658         * config/1750a/1750a.h, config/i860/sysv3.h
659         (READONLY_DATA_SECTION_ASM_OP): New.
660         READONLY_DATA_SECTION_ASM_OP.
661         * config/i386/interix.c, config/i386/winnt.c
662         (i386_pe_unique_section): Always use .rdata prefix.
663         * config/pa/som.h (readonly_data): Always switch to read-only section.
664         (READONLY_DATA_SECTION): Predicate on flag_pic.
665         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
666         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
667         (READONLY_DATA_SECTION): Update.
668
669 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
670
671         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
672         is used without -Wformat.
673         * c-common.h (warn_format_zero_length): Declare extern.
674         * c-decl.c (warn_options): Add "format-zero-length".
675         * c-format.c (warn_format_zero_length): Declare.
676         (set_Wformat): Set warn_format_zero_length for -Wformat.
677         (check_format_info): Only warn about zero-length formats if
678         warn_format_zero_length is true.  Include the format type
679         name in the warning message.
680         * doc/invoke.texi: Document -Wformat-zero-length.
681         * testsuite/gcc.dg/format/zero-length-1.c: New test.
682
683 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
684
685         * timevar.c: Fix formatting.
686         * tlink.c: Likewise.
687         * toplev.c: Likewise.
688         * tree-dump.c: Likewise.
689         * tree-inline.c: Likewise.
690
691 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
692
693         * cppinit.c (cpp_post_options): If preprocessed, turn off
694         traditional.  If traditional, turn off column numbers.
695         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
696         * cpptrad.c (handle_newline): Update line_base.
697         (skip_comment): Handle -Wcomment.
698
699 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
700
701         * cppinit.c (struct builtin): Remove unused fields.
702         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
703         (operator_array): New - was second half of builtin_array.
704         (init_builtins): Simplify loop over builtin_array/operator_array.
705
706 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
707
708         * defaults.h (UNIQUE_SECTION): Remove.
709         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
710
711 2002-05-17  Richard Henderson  <rth@redhat.com>
712
713         * expr.c (init_expr_once): Don't use start/end_sequence.
714         Use rtx_alloc instead of emit_insn.
715         * toplev.c (lang_dependent_init): Run init_expr_once here ...
716         (lang_independent_init): ... not here.
717
718 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
719
720         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
721
722 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
723
724         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
725         for fixed registers, possibly used for global register variables.
726         (initial_elimination_offset, avr_output_function_prologue,
727         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
728
729 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
730
731         * Makefile.in: Update for cpptrad.c.
732         * cpphash.h (struct cpp_buffer): New members for buffer
733         overlays.
734         (struct cpp_reader): New members for traditional output.
735         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
736         * cppinit.c (cpp_create_reader): Set trad_line.
737         (cpp_destroy): Free trad_out_base if used.
738         (cpp_read_main_file): Overlay an empty buffer if traditional.
739         (cpp_finish_options): Don't do builtins.
740         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
741         (cpp_handle_option): Handle it.
742         * cpplex.c (continue_after_nul): New.
743         (_cpp_lex_direct): Use handle_nul.
744         * cpplib.h (struct cpp_options): New traditional option.
745         * cpptrad.c: New file.
746
747 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
748
749         * c-common.c (c_common_init_options): Use C89 for Objective-C,
750         and set the options flag.
751         * cppinit.c (lang_flags): Remove objc.
752         (lang_defaults): Remove OBJC and OBJCXX.
753         (set_lang): Update.
754         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
755         (cpp_handle_option): Remove -+ and -lang-objc++.
756         For ObjC, just set a flag.
757         (print_help): Update.
758         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
759
760 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
761
762         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
763         bootstrap with -mips3.
764
765 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
766
767         * final.c: Fix formatting.
768         * fix-header.c: Likewise.
769         * flow.c: Likewise.
770         * fold-const.c: Likewise.
771         * function.c: Likewise.
772
773 2002-05-17  David S. Miller  <davem@redhat.com>
774
775         PR c/6689, PR optimization/6615
776         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
777         and make it a pointer to rtx.  Update comments.
778         (update_equiv_regs): When scanning for equivalences, record
779         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
780         it while making the equiv replacements.
781
782 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
783
784         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
785
786 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
787
788         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
789         when encoding visibility into SYMBOL_REF_FLAG.
790
791 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
792
793         * expr.c (force_operand): Fix reversed move.
794
795 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
796
797         * doc/install.texi (Testing): Mention two common DejaGnu warnings
798         that can be ignored.
799
800 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
801
802         * doc/install.texi (Final install): Recommend to install into a
803         "clean" target directory.
804
805 2002-05-17  Richard Henderson  <rth@redhat.com>
806
807         * config/ia64/ia64.md: Use braced strings instead of quoted strings
808         for code blocks.  Tidy whitespace.
809
810 2002-05-17  Richard Henderson  <rth@redhat.com>
811
812         * hooks.c (hook_tree_bool_false): New.
813         * hooks.h: Declare it.
814         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
815         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
816         * target.h (select_section, unique_section): New.
817         (in_small_data_p): New.
818         * varasm.c (resolve_unique_section): Use hooks instead of macros.
819         (variable_section, output_constant_def_contents): Likewise.
820         (default_select_section, default_unique_section): New.
821         (categorize_decl_for_section, default_elf_select_section): New.
822         * output.h: Declare them.
823
824         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
825         (TARGET_ASM_SELECT_SECTION): New.
826         (SELECT_SECTION): Move ...
827         * config/darwin.c (machopic_select_section): ... here.
828         * config/darwin-protos.h: Update.
829
830         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
831         (SELECT_SECTION): Move ...
832         * config/nextstep.c (nextstep_select_section): ... here.
833         * config/nextstep-protos.h: Update.
834
835         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
836         (TARGET_ASM_SELECT_SECTION): New.
837         * config/svr3.h (SELECT_SECTION): Remove.
838
839         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
840         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
841         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
842         (alpha_encode_section_info): Use it.
843         * config/alpha/alpha-protos.h: Update.
844         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
845         (SELECT_SECTION, UNIQUE_SECTION): Remove.
846         (TARGET_ASM_SELECT_SECTION): New.
847         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
848
849         * config/arm/pe.h (UNIQUE_SECTION): Remove.
850         (TARGET_ASM_UNIQUE_SECTION): New.
851
852         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
853         (avr_unique_section): Rename from unique_section; make static.
854         * config/avr/avr-protos.h: Update.
855         * config/avr/avr.h (UNIQUE_SECTION): Remove.
856
857         * config/c4x/c4x.h (SELECT_SECTION): Remove.
858
859         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
860         (TARGET_ASM_UNIQUE_SECTION): New.
861         * config/i386/i386-interix.h: Likewise.
862         * config/i386/win32.h: Likewise.
863         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
864         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
865         * config/i386/sco5.h (SELECT_SECTION): Remove.
866         (TARGET_ASM_SELECT_SECTION): New.
867         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
868
869         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
870         instead of SELECT_SECTION.
871         * config/m68k/dpx2.h: Likewise.
872         * config/rs6000/lynx.h: Likewise.
873
874         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
875         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
876         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
877         (ia64_in_small_data_p): New.
878         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
879         (ia64_aix_select_section, ia64_aix_unique_section): New.
880         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
881         (SELECT_SECTION, UNIQUE_SECTION): Remove.
882
883         * config/m32r/m32r.h (SELECT_SECTION): Remove.
884         (TARGET_ASM_SELECT_SECTION): New.
885         * config/m32r/m32r.c (m32r_select_section): Take align argument.
886         * config/m32r/m32r-protos.h: Update.
887
888         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
889         (SELECT_SECTION): Move ...
890         * config/m88k/m88k.c (m88k_select_section): ... here.
891
892         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
893         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
894         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
895         (mcore_unique_section): Make static.
896         * config/mcore/mcore-protos.h: Update.
897
898         * config/mips/elf.h (UNIQUE_SECTION): Remove.
899         (TARGET_ASM_UNIQUE_SECTION): New.
900         * config/mips/elf64.h: Likewise.
901         * config/mips/iris6gld.h: Likewise.
902         * config/mips/linux.h: Likewise.
903         * config/mips/mips-protos.h: Update.
904         * config/mips/mips.c (mips_select_section): Add align argument.
905         * config/mips/mips.h (SELECT_SECTION): Remove.
906         (TARGET_ASM_SELECT_SECTION): New.
907
908         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
909         * config/mmix/mmix.c (mmix_select_section): Remove.
910         (mmix_unique_section): Remove.
911         * config/mmix/mmix-protos.h: Update.
912
913         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
914         (SELECT_SECTION): Move ...
915         * config/pa/pa.c (pa_select_section): ... here.
916         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
917
918         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
919         from rs6000_select_section and make static.
920         (rs6000_elf_unique_section): Similarly.
921         (rs6000_xcoff_select_section): From xcoff.h.
922         (rs6000_xcoff_unique_section): Likewise.
923         * config/rs6000/rs6000-protos.h: Update.
924         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
925         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
926         * config/rs6000/xcoff.h: Likewise.
927
928         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
929         (SELECT_SECTION): Move ...
930         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
931
932         * config/v850/v850.h (SELECT_SECTION): Move ...
933         * config/v850/v850.c (v850_select_section): ... here.
934         (TARGET_ASM_SELECT_SECTION): New.
935
936         * config/vax/vms.h (SELECT_SECTION): Move ...
937         * config/vax/vax.c (vms_select_section): ... here.
938         (TARGET_ASM_SELECT_SECTION): New.
939
940         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
941         for the target hooks.
942
943 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
944
945         * config/arm/arm.c (emit_multi_reg_push): Do not set
946         RTX_FRAME_RELATED_P on the SEQUENCE.
947
948 2002-05-16  Richard Henderson  <rth@redhat.com>
949
950         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
951         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
952
953 2002-05-16  Richard Henderson  <rth@redhat.com>
954
955         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
956
957         * config/ia64/ia64.c (saveable_obstack): Do not declare.
958
959 2002-05-16  Richard Henderson  <rth@redhat.com>
960
961         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
962         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
963         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
964         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
965         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
966         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
967         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
968         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
969         Revert "Basic block renumbering removal", and two followup patches.
970
971 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
972
973         * lcm.c (optimize_mode_switching): Revert previous change.
974
975 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
976
977         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
978         with only extant block numbers.
979
980 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
981
982         * lcm.c (optimize_mode_switching): Fix typo.
983
984 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
985
986         * flow.c (calculate_global_regs_live): Queue blocks in program order.
987
988 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
989
990         * doc/install.texi (Configuration): Document PWDCMD.
991
992 2002-05-16  Dale Johannesen  <dalej@apple.com>
993
994         * combine.c (cant_combine_insn_p):  Reenable combinations
995         involving hard regs unless CLASS_LIKELY_SPILLED_P.
996
997 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
998
999         * c-common.c (cb_register_builtins): Handle more built-ins
1000         here rather than in gcc.c specs.
1001         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
1002         (cpp_options): Pass -O flags even when only preprocessing.
1003         * toplev.c (set_fast_math_flags): New prototype.
1004         (fast_math_flags_set_p): New.
1005         (set_no_fast_math_flags): Remove.
1006         (decode_f_option): Update.
1007         * toplev.h (set_fast_math_flags): Update.
1008         (fast_math_flags_set_p): New.
1009         (set_no_fast_math_flags): Remove.
1010 config:
1011         * c4x/c4x.c (c4x_override_options): Update.
1012
1013 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
1014
1015         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
1016         Default-define here.
1017         (builtin_define_with_value): Can now wrap the expansion in
1018         quotation marks if such is wanted.
1019         (cb_register_builtins): Update calls to builtin_define_with_value.
1020         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
1021         here.
1022         (c_common_init): Set options->stdc_0_in_system_headers.
1023         * c-lex.h: Update prototype of builtin_define_with_value.
1024         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
1025         and REGISTER_PREFIX.
1026
1027         * cppinit.c (VERS, ULP, C, X): Kill.
1028         (builtin_array): Remove entries for __VERSION__,
1029         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
1030         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
1031         a constant.
1032         (init_builtins): Kill off a bunch of now-dead code.
1033         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
1034         -fno-leading-underscore.
1035         (cpp_handle_option): Remove code to set user_label_prefix.
1036         (cpp_post_options): Likewise.
1037
1038         * cpplib.h (struct cpp_options): Remove user_label_prefix.
1039         (stdc_0_in_system_headers): New.
1040         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
1041         stdc_0_in_system_headers) too to decide the value of __STDC__.
1042
1043         * tradcpp.c (user_label_prefix): Kill.
1044         (main): Remove code handling -f(no-)leading-underscore.
1045         (initialize_builtins): Don't define __REGISTER_PREFIX__
1046         or __USER_LABEL_PREFIX__.
1047         (install_value): Wrap compound statement in dummy loop so the
1048         macro works properly in an if statement.
1049
1050
1051 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
1052
1053         * loop.h (struct loop_info): Add member has_prefetch.
1054         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
1055         (prescan_loop): Initialize has_prefetch.
1056         (struct prefetch_info): Change prefetch_in_loop and
1057         prefetch_before_loop from bit fields to ints.
1058         (emit_prefetch_instructions): Several small fixes.
1059         (check_dbra_loop): Don't reverse loop that uses prefetch.
1060
1061 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1062
1063         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
1064         * configure.in: Likewise.
1065         * fixinc/check.tpl: Likewise.
1066         * fixinc/fixinc.dgux: Likewise.
1067         * fixinc/fixinc.svr4: Likewise.
1068         * fixinc/fixinc.winnt: Likewise.
1069         * fixinc/fixincl.sh: Likewise.
1070         * fixproto: Likewise.
1071         * configure: Regenerate.
1072
1073 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1074
1075         Basic block renumbering removal:
1076         * basic_block.h (struct basic_block_def): Renamed index to sindex,
1077         added prev_bb and next_bb fields.
1078         (n_basic_blocks): Renamed to num_basic_blocks.
1079         (last_basic_block): New, index of last basic block.
1080         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1081         traversing basic block chain.
1082         (BLOCK_NUM): index -> sindex.
1083         (create_basic_block_structure, create_basic_block): Declaration changed.
1084         (debug_num2bb): Declare.
1085         (expunge_block_nocompact): Declaration removed.
1086         (link_block, unlink_block, compact_blocks): Declare.
1087         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
1088         * cfg.c (entry_exit_blocks): Initialize new fields.
1089         (clear_edges, alloc_block, expunge_block, cached_make_edge,
1090         redirect_edge_pred, dump_flow_info, dump_edge_info,
1091         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
1092         free_aux_for_edges): Modified.
1093         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
1094         (expunge_block_nocompact): Removed.
1095         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
1096         find_unreachable_blocks, create_edge_list, print_edge_list,
1097         verify_edge_list, flow_edge_list_print, remove_fake_successors,
1098         remove_fake_edges, flow_reverse_top_sort_order_compute,
1099         flow_depth_first_order_compute, flow_preorder_transversal_compute,
1100         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
1101         flow_dfs_compute_reverse_execute): Modified.
1102         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
1103         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
1104         Modified.
1105         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1106         merge_blocks_move_predecessor_nojumps,
1107         merge_blocks_move_successor_nojumps, merge_blocks,
1108         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
1109         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
1110         * cfglayout.c (skip_insns_after_block, label_for_bb,
1111         record_effective_endpoints, scope_to_insns_finalize,
1112         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
1113         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
1114         cfg_layout_duplicate_bb): Modified.
1115         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
1116         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1117         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
1118         flow_loops_find, flow_loop_outside_edge_p): Modified.
1119         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1120         flow_delete_block, compute_bb_for_insn, split_block,
1121         try_redirect_by_replacing_jump, redirect_edge_and_branch,
1122         force_nonfallthru_and_redirect, tidy_fallthru_edge,
1123         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
1124         commit_edge_insertions, commit_edge_insertions_watch_calls,
1125         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
1126         purge_all_dead_edges): Modified.
1127         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
1128         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1129         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
1130         Modified.
1131         * conflict.c (conflict_graph_compute): Modified.
1132         * df.c (FOR_ALL_BBS): Removed.
1133         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
1134         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
1135         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
1136         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
1137         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
1138         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
1139         * final.c (compute_alignments, final_scan_insn): Modified.
1140         * flow.c (verify_local_live_at_start, update_life_info,
1141         update_life_info_in_dirty_blocks, free_basic_block_vars,
1142         delete_noop_moves, calculate_global_regs_live,
1143         initialize_uninitialized_subregs, allocate_bb_life_data,
1144         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
1145         mark_used_reg, count_or_remove_death_notes): Modified.
1146         * function.c (thread_prologue_and_epilogue_insns): Modified.
1147         * gcse.c (struct null_pointer_info): Change typo of current_block
1148         to basic_block.
1149         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
1150         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
1151         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
1152         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
1153         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
1154         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
1155         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
1156         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
1157         pre_delete, one_pre_gcse_pass, compute_transpout,
1158         invalidate_nonnull_info, delete_null_pointer_checks_1,
1159         free_code_hoist_mem, compute_code_hoist_vbeinout,
1160         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
1161         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
1162         compute_store_table, build_store_vectors, insert_insn_start_bb,
1163         insert_store, replace_store_insn, free_store_memory, store_motion):
1164         Modified.
1165         * global.c (global_alloc, global_conflicts, mark_elimination,
1166         build_insn_chain): Modified.
1167         * graph.c (print_rtl_graph_with_bb): Modified.
1168         * haifa-sched.c (sched_init): Modified.
1169         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
1170         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
1171         if_convert): Modified.
1172         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
1173         compute_insert_delete, pre_edge_lcm, compute_available,
1174         compute_farthest, compute_nearerout, compute_rev_insert_delete,
1175         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
1176         Modified.
1177         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
1178         * loop.c (loop_dump_aux): Modified.
1179         * predict.c (combine_predictions_for_insn, estimate_probability,
1180         last_basic_block_p, process_note_prediction, process_note_predictions,
1181         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
1182         expensive_function_p, estimate_bb_frequencies,
1183         compute_function_frequency): Modified.
1184         * print-rtl.c (print_rtx): Modified.
1185         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
1186         get_exec_counts, compute_branch_probabilities, compute_checksum,
1187         branch_prob, find_spanning_tree): Modified.
1188         * recog.c (split_all_insns, peephole2_optimize): Modified.
1189         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
1190         convert_regs_1, convert_regs_2, convert_regs): Modified.
1191         * regclass.c (scan_one_insn, regclass): Modified.
1192         * regmove.c (mark_flags_life_zones, regmove_optimize,
1193         combine_stack_adjustments): Modified.
1194         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
1195         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
1196         * reorg.c (dbr_schedule): Modified.
1197         * resource.c (find_basic_block, init_resource_info): Modified.
1198         * sbitmap.c (sbitmap_intersection_of_succs,
1199         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
1200         sbitmap_union_of_preds): Modified.
1201         * sched-deps.c (init_dependency_caches): Modified.
1202         * sched-ebb.c (schedule_ebbs): Modified.
1203         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
1204         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
1205         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
1206         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
1207         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
1208         ssa_const_prop): Modified.
1209         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
1210         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
1211         * ssa.c (remove_phi_alternative, find_evaluations,
1212         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
1213         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
1214         make_regs_equivalent_over_bad_edges,
1215         make_equivalent_phi_alternatives_equival,
1216         compute_conservative_reg_partition,
1217         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
1218         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
1219         Modified.
1220
1221 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
1222
1223         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
1224
1225 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
1226
1227         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
1228         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1229         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
1230         calling CONSTANT_POOL_ADDRESS_P.
1231         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
1232         to decide whether to define __arm__ or __thumb.
1233         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
1234         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1235
1236 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1237
1238         * config/arc/arc.h (CPP_PREDEFINES): Remove.
1239         (CPP_SPEC): Update.
1240         (TARGET_CPU_CPP_BUILTINS): New.
1241
1242 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1243
1244         * cpphash.h (cpp_macro): Move here, and make expansion a union.
1245         * cppmacro.c (cpp_macro): Remove.
1246         (enter_macro_context, replace_args, warn_of_redefinition,
1247         _cpp_create_definition, cpp_macro_definition): Update.
1248
1249 2002-05-16  Jason Merrill  <jason@redhat.com>
1250
1251         * config/mips/mips.c (mips_output_external): Don't do sdata
1252         optimization for a variable with DECL_COMDAT set.
1253
1254 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1255
1256         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
1257         Cleanups for accepting modifiers on pointers.
1258         Fix predicate typos.
1259         Allow long pointers as well as int pointers.
1260
1261 2002-05-15  Richard Henderson  <rth@redhat.com>
1262
1263         * varasm.c (merge_weak): Remove special case for extern and common.
1264
1265 2002-05-15  Matt Hiller  <hiller@redhat.com>
1266
1267         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
1268         XFAILing.
1269         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
1270         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
1271         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
1272         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
1273         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
1274         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
1275
1276 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1277
1278         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
1279
1280 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1281
1282         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
1283         ("altivec_mfvscr"): Read from VSCR.
1284
1285         Add vscr sets for the following insns: altivec_vctuxs,
1286         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
1287         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
1288         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
1289         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
1290         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
1291         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
1292         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
1293         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
1294         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
1295         altivec_vsum2sws, altivec_vsumsws.
1296
1297         * config/rs6000/rs6000.h: Add VSCR fixed register.
1298         (CALL_REALLY_USED_REGISTERS): Add vscr.
1299         (CALL_USED_REGISTERS): Same.
1300         (FIXED_REGISTERS): Same.
1301         (REG_ALLOC_ORDER): Same.
1302         (reg_class): Add VSCR_REGS.
1303         (REG_CLASS_NAMES): Same.
1304         (REG_CLASS_CONTENTS): Same.
1305         (VSCR_REGNO): New.
1306         (REGISTER_NAMES): Add vscr.
1307         (DEBUG_REGISTER_NAMES): Same.
1308         (ADDITIONAL_REGISTER_NAMES): Same.
1309         (FIRST_PSEUDO_REGISTER): Increment.
1310         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
1311
1312 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
1313
1314         * fold-const.c (fold): Fix a typo.
1315
1316 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
1317
1318         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
1319         comparison against the highest or lowest integer value before
1320         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
1321         transformation and that of an unsigned comparison against 0
1322         right after.
1323
1324 2002-05-15  Richard Henderson  <rth@redhat.com>
1325
1326         * varasm.c (merge_weak): Error for any weakening after definition.
1327         Adjust weakening after use warning to catch more cases.
1328         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
1329         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
1330
1331 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1332
1333         * invoke.texi (-malign-double): Re-add lost warning.
1334
1335         * i386-protos.h (x86_output_mi_thunk): Declare.
1336         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
1337         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
1338
1339         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
1340         when flag_asynchronous_unwind_tables is set.
1341
1342         * flags.h (flag_reorder_functions): Declare.
1343         * function.c (prepare_function_start): Initialize frequnecy.
1344         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
1345         * Makefile.in (predict.o): Add dependency on target.h and params.h
1346         * defaults.h (HOT_TEXT_SECTION_NAME,
1347         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
1348         * predict.c (choose_function_section): New function.
1349         (estimate_bb_frequencies): Use it.
1350         * toplev.c (flag_reorder_functions): New global variable.
1351         (lang_independent_options): New.
1352         (parse_options_and_default_flags): Set.
1353         * varasm.c (assemble_start_function): Bypass functdion alignment
1354         for never executed functions.
1355         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
1356         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
1357         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
1358         Document.
1359
1360         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
1361
1362         * predict.c: Inlude profile.h
1363         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
1364         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
1365         Use the information about maximal counter in the program.
1366
1367         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
1368
1369         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
1370         probably_never_executed_bb_p): New functions.
1371         * cfgcleanup.c (outgoing_edges_match): Use them.
1372         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
1373         (maybe_hot_bb_p, probably_cold_bb_p,
1374         probably_never_executed_bb_p): New functions.
1375
1376         * function.h (function): Add new field function_frequency.
1377         * predict.c (compute_function_frequency): New function.
1378         (estimate_probability): Call it.
1379
1380 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
1381
1382         PR optimization/5172, optimization/5200
1383         * gcse.c (gcse_main): Disable store_motion.
1384
1385 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
1386
1387         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
1388         (c_common_nodes_and_builtins): Use it.
1389         (builtin_define_with_value): New function.
1390         (cb_register_builtins): Define __SIZE_TYPE__,
1391         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
1392         using builtin_define_with_value.  Use consistent notation when
1393         defining __GXX_WEAK__.
1394         (WCHAR_TYPE_SIZE): Don't redefine.
1395         (combine_strings): Don't use WCHAR_TYPE_SIZE.
1396
1397         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
1398         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
1399         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
1400         * tradcpp.c (initialize_builtins): Likewise.
1401         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
1402
1403         * c-lex.h (builtin_define_with_value): Prototype.
1404         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
1405         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
1406         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
1407
1408         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
1409         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
1410         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
1411         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
1412         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
1413         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
1414         config/sparc/sol2-bi.h, config/sparc/sparc.h:
1415         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
1416         to __SIZE_TYPE__ etc from all spec strings. When this makes
1417         extra specs empty, delete them.
1418
1419 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1420
1421         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
1422         for PA8000 or generating dwarf2 call frame information.
1423         (output_call): Remove DO_FRAME_NOTES check from return pointer
1424         optimization.
1425         (following_call): Return 0 when scheduling for PA8000 or generating
1426         dwarf2 call frame information.  Revise comment.
1427
1428 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1429
1430 config/alpha:
1431         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
1432         and __IEEE_FP_INEXACT as appropriate.
1433         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
1434         (CPP_SPEC): Remove ieee defines.
1435         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
1436
1437 2002-05-14  Richard Henderson  <rth@redhat.com>
1438
1439         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
1440         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
1441
1442 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1443
1444         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
1445         (CPP_SPEC): Update.
1446         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
1447         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
1448         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
1449         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
1450         (EXTRA_SPECS): Update.
1451         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
1452         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
1453         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
1454         define TARGET_OS_CPP_BUILTINS if necessary.
1455
1456 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1457
1458         * gcc.c (cpp_options): Must pass -m* and -f* options
1459         to the front end even when only preprocessing.
1460         (cc1_options): Remove redundant -lang-c.
1461         * tradcpp.c (main): Ignore -m options.
1462 objc:
1463         * lang-specs.h: Similarly.
1464
1465 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
1466
1467         * genautomata.c (transform_3): Add code for transformation
1468         `(A,B,...)+C -> A+C,B,...'.
1469
1470 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
1471
1472         * final.c (end_final): Do not output profile_arcs constructor, when
1473         no functions are instrumented.
1474
1475 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
1476
1477         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
1478
1479 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1480
1481         * doc/install.texi: Remove special markup originally required for
1482         HTML generation with texi2html.
1483
1484 2002-05-14  Andreas Schwab  <schwab@suse.de>
1485
1486         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
1487         SELECT_SECTION.
1488         (UNIQUE_SECTION): Define to get small data correctly.
1489
1490         * varasm.c (resolve_unique_section): Add third parameter
1491         flag_function_or_data_sections and use it instead of
1492         flag_function_sections.
1493         (assemble_start_function): Pass flag_function_sections.
1494         (asm_emit_uninitialised): Pass flag_data_sections.
1495         (assemble_variable): Likewise.
1496
1497 2002-05-14  Richard Henderson  <rth@redhat.com>
1498
1499         * config/i386/i386.md: Use define_constants for unspec numbers.
1500         * config/i386/i386.c: Likewise.
1501
1502 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1503
1504         * doc/contrib.texi: Update my entry.
1505
1506 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
1507
1508         * fixinc/inclhack.def (winidss_valist): Limit applicability.
1509         * fixinc/fixincl.x: Regenerated.
1510         * fixinc/tests/base/math.h: Update.
1511         * fixinc/tests/base/testing.h: Likewise.
1512
1513 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
1514
1515         * genattr.c (gen_attr): Don't emit a comma after the last
1516         enumerator.
1517
1518 2002-05-13  Richard Henderson  <rth@redhat.com>
1519
1520         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
1521         by non-local gotos.
1522         * recog.c (peephole2_optimize): Likewise.
1523
1524 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
1525
1526         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
1527         input to O_BINARY.
1528
1529 2002-05-13  Jeffrey A Law  (law@redhat.com)
1530
1531         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
1532         Update prototype and callers.
1533         (propagate_one_insn): Stack pointer adjustments kill MEMs on
1534         the mem_set_list which reference the stack pointer, as do
1535         calls to constant functions as they may clobber outgoing
1536         argument space.
1537
1538         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
1539
1540         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
1541         (ia32_multipass_dfa_lookahead): New function.
1542
1543 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1544
1545         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
1546         (translate_options): Remove 'V'.
1547         (process_command): Similarly.
1548 doc:
1549         * invoke.texi: Remove documentation of 'V'.
1550
1551 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
1552
1553         * config/s390/linux.h: Revert 2002-04-22 changes.
1554
1555 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
1556
1557         * config/fr30/fr30.md: Only allow splits of immediate loads
1558         if the destination is a register.
1559
1560 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1561
1562         * Makefile.in (c-common.o, cppinit.o): Update.
1563         * c-common.c: Include except.h.
1564         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
1565         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
1566         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
1567         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
1568         CPP_PREDEFINES): Handle here.
1569 config:
1570         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
1571         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
1572         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
1573         TARGET_OS_CPP_BUILTINS.
1574         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
1575         (CPP_SPEC, EXTRA_SPECS): Update.
1576         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
1577         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
1578         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
1579         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
1580         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
1581 doc:
1582         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
1583         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
1584
1585 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
1586
1587         * emit-rtl.c (global_rtl): Update comment.
1588         (const_double_htab, const_double_htab_hash,
1589         const_double_htab_hash, lookup_const_double): New.
1590         (const_int_htab_hash, const_int_htab_eq): Remove const
1591         qualifiers, which cause tons of warnings with RTL checking on.
1592         (gen_rtx_CONST_DOUBLE): Deleted.
1593         (const_double_from_real_value): New function - bears some
1594         resemblance to the former immed_real_const_1.
1595         (immed_double_const): Moved here from varasm.c and
1596         simplified.
1597         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
1598         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
1599         (gen_rtx): Use immed_double_const.
1600         (init_emit_once): Initialize the const_double_htab.  Use
1601         REAL_VALUE_FROM_INT where possible.  Can now use
1602         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
1603         * varasm.c (struct varasm_status): Remove x_const_double_chain.
1604         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
1605         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
1606         (init_varasm_status, mark_varasm_status): Don't touch
1607         x_const_double_chain.
1608
1609         * output.h: Delete prototype for clear_const_double_mem.
1610         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
1611         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
1612         const_double_from_real_value, not immed_real_const_1, and use
1613         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
1614         CONST_DOUBLE_ATOF.
1615         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
1616         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
1617         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
1618         (gen_rtx_REG): Second arg is unsigned.
1619
1620         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
1621         (excluded_rtx): New, return true for CONST_DOUBLE.
1622         (genmacro): Write nothing for excluded codes.
1623         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
1624         * expr.c (expand_expr): Likewise.
1625         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
1626         CONST_DOUBLE_CHAIN.
1627         * toplev.c (rest_of_compilation): Don't call
1628         clear_const_double_mem.
1629
1630         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
1631         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
1632         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
1633         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
1634         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
1635         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
1636         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
1637         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
1638
1639 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1640
1641         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
1642
1643 2002-05-12  Tom Tromey  <tromey@redhat.com>
1644
1645         * tree.h (copy_node): Don't mention TREE_PERMANENT.
1646
1647 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
1648
1649         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
1650         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
1651         * gensupport.h: Prototype new routines.
1652         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
1653         use of printf.
1654         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
1655         (next_comma_elt): Use scan_comma_elt.
1656
1657         * config/i386/i386.md: Use new attribute notation to break up
1658         long lines in define_attr forms.
1659
1660 2002-05-12  Richard Henderson  <rth@redhat.com>
1661
1662         * expr.c (compress_float_constant): New.
1663         (emit_move_insn): Use it.
1664         (float_extend_from_mem): New.
1665         (init_expr_once): Initialize it.
1666         * real.c (exact_real_truncate): New.
1667
1668         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
1669         dropped into memory; penalize for size.
1670         (RTX_COSTS): FLOAT_EXTEND is free.
1671         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
1672         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
1673
1674 2002-05-12  Richard Henderson  <rth@redhat.com>
1675
1676         * profile.h (profile_info): Add missing extern to declaration.
1677         * profile.c (profile_info): Define it.
1678
1679 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1680
1681         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
1682         used for DImode and TImode.
1683
1684 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1685
1686         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
1687         fake a newline.
1688
1689 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
1690
1691         * config/rs6000/rs6000.c (rs6000_default_long_calls,
1692         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
1693         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
1694         (rs6000_override_options): Handle -m(no-)longcall.
1695         (init_cumulative_args, output_mi_thunk): Check for both
1696         longcall and shortcall attributes on the function.
1697         (rs6000_attribute_table): Add "shortcall".
1698         (rs6000_handle_longcall_attribute): Update comment.
1699         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
1700         altivec_expand_ternop_builtin): Add default clauses to switches
1701         to silence warnings.
1702
1703         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
1704         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
1705         (TARGET_OPTIONS): Add longcall and no-longcall.
1706
1707         * config/rs6000/rs6000.md (call_nonlocal_sysv,
1708         call_value_nonlocal_sysv): Split by alternatives.  One pair
1709         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
1710         the call cookie.  The other pair accepts only LR/CTR and has
1711         no restriction.
1712
1713         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
1714         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
1715         tmake_file.
1716         * config/rs6000/rs6000-c.c: New file.
1717         * config/rs6000/t-rs6000-c-rule: New file.
1718         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
1719         Prototype rs6000_pragma_longcall.
1720
1721         * doc/extend.texi: Document shortcall attribute.
1722         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
1723
1724 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1725
1726         * reorg.c (dbr_schedule): Remove unnecessary test.
1727
1728 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
1729
1730         * i386.md (testsi to testqi spliters): New.
1731
1732         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
1733
1734         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
1735
1736         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
1737
1738         * basic-block.h: New flag EDGE_CAN_FALLTHRU
1739         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
1740         that can be made fallthru.
1741
1742         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
1743
1744         * cfglayout.c (cleanup_unconditional_jumps): New static function.
1745         (cfg_layout_initialize): Use it.
1746
1747 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1748
1749         * config/avr/avr.c (avr_mcu_types): Update supported devices.
1750         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1751         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1752
1753 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1754
1755         * dbxout.c: Fix formatting.
1756         * dependence.c: Likewise.
1757         * df.c: Likewise.
1758         * diagnostic.c: Likewise.
1759         * doloop.c: Likewise.
1760         * dominance.c: Likewise.
1761         * doschk.c: Likewise.
1762         * dwarf2asm.c: Likewise.
1763         * dwarf2out.c: Likewise.
1764         * dwarfout.c: Likewise.
1765
1766 2002-05-10  Richard Henderson  <rth@redhat.com>
1767
1768         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
1769         Convert integers constants as needed.  Replace "nwords" field with
1770         "sizeof_bb".
1771         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
1772         * function.h: Fix typo in comment.
1773         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
1774
1775 2002-05-10  Roger Sayle  <roger@eyesopen.com>
1776
1777         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
1778         into the equivalent (signed char)c > 0.
1779
1780 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
1781
1782         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
1783         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
1784         (struct prefetch_info): Fix spelling of member bytes_accessed.
1785         (emit_prefetch_instructions): Make dump messages more regular;
1786         restructure code to add more dump messages; use new macros for
1787         heuristics. (There are no code generation changes in any of this).
1788
1789 2002-05-10  David S. Miller  <davem@redhat.com>
1790
1791         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
1792         (struct rtx_def): Update unchanging flag comment.
1793         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
1794         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
1795         to be handled to INSN too.
1796         (dbr_schedule): Likewise.
1797         * resource.c (next_insn_no_annul): Likewise.
1798
1799         * cse.c (rtx_cost): Remove multiplication by power of 2 special
1800         casing.
1801
1802 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1803
1804         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
1805         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
1806         (possibly) work around broken /bin/sh.
1807
1808 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1809
1810         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
1811         . as N64/N32 libgcc_s.so subdirs.
1812
1813 2002-05-10  David S. Miller  <davem@redhat.com>
1814
1815         * config/sparc/sparc.md: Use define_constants for unspec numbers.
1816
1817         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
1818         more accurately.
1819         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
1820         comment.
1821         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
1822         * doc/rtl.texi: Document these macros more accurately.
1823         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
1824         JUMP_INSNs and CALL_INSNs.
1825         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
1826         or INSN_FROM_TARGET_P if the code is appropriate.
1827
1828 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1829
1830         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
1831         before using SYMBOL_REF_FLAG (addr).
1832
1833         * config/avr/avr-protos.h (avr_io_address_p): Declare.
1834         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
1835         Make non-static.  Update all callers.
1836         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
1837         New insns to clear/set/test a single bit in I/O address space.
1838
1839 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1840
1841         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
1842
1843 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1844
1845         * Makefile.in: Update.
1846         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
1847         builtin_define_std): New.
1848         (c_common_init): Register CPP builtins callback.
1849         * c-common.h (flag_iso, flag_undef): New.
1850         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
1851         * c-lex.c: Don't include target.h.
1852         (cb_register_builtins): Move to c-common.c.
1853         (init_c_lex): Don't register hook here.
1854         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
1855         (cpp_define, cpp_assert): Remove.
1856         * gcc.c (cc1_options): Pass -undef to front end.
1857         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
1858         (TARGET_INITIALIZER): Update.
1859         * target.h (struct cpp_reader): Don't predeclare.
1860         (struct gcc_target): Remove cpp builtin hook.
1861         * tree.c (default_register_cpp_builtins): Remove.
1862 doc:
1863         * tm.texi: Update.
1864
1865 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1866
1867         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
1868
1869 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1870
1871         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
1872         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
1873
1874 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
1875
1876         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
1877         * config/sparc/libgcc-sparc-glibc.ver: New file.
1878         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
1879         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
1880
1881 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
1882
1883         PR target/6429
1884         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
1885         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
1886         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
1887         base multilibs.
1888         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
1889         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1890         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
1891         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
1892
1893 2002-05-09  Richard Henderson  <rth@redhat.com>
1894
1895         * config/ia64/ia64.md: Use define_constants for unspec numbers.
1896         * config/ia64/ia64.c: Likewise.
1897
1898 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
1899
1900         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
1901         (save_restore_insns): Likewise.
1902         (mips_expand_prologue, mips_expand_epilogue): Update callers.
1903         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
1904
1905 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
1906
1907         * athlon.md, k6.md, pentium.md, ppro.md): New files.
1908         * i386.md: Move scheduling information into new files.
1909
1910         * i386.md (type attribute): Add "rotate" for rotate insns.
1911         (rotate insns): Set type to "rotate".
1912         (various attributes and function units): Treat rotate like shift.
1913         (pent_pair attribute): Only rotates by one bit position are
1914         pairable.
1915         (sbb insns): Explicitly set pent_pair attribute on a couple
1916         that were missing it.
1917
1918 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
1919
1920         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
1921         make sure that buffer starts on odd word address.
1922         (sh_va_arg): Skip odd fp registers when reading a double precision
1923         value.
1924
1925 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1926
1927         * tree.h (preserve_data, object_permanent_p, type_precision):
1928         Remove.
1929
1930 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1931
1932         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
1933         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
1934 doc:
1935         * cpp.texi: Update for removal of obsolete features.
1936
1937 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
1938                           Jeffrey A Law  (law@redhat.com)
1939
1940         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
1941         the DFA interface for Pentium processors.
1942         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
1943         (attr_pent_pair, ix86_pent_find_pair): Remove.
1944         (ix86_sched_reorder_pentium): Remove.
1945         (ix86_sched_reorder): Remove reordering for Pentium.
1946         * i386.md (Pentium scheduling): Rewrite using DFA description.
1947
1948 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
1949
1950         * cfganal.c (can_fallthru): Fix fast path.
1951         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
1952         with edges to the next block.
1953
1954 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
1955                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
1956
1957         * final.c (end_final): Use C trees to output data structures for profiling.
1958
1959         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
1960         (profile.o): New dependency profile.h
1961         (final.o): New dependency profile.h
1962         * profile.h: New file. New global structure profile_info.
1963         * final.h (count_edges_instrumented_now): Declare.
1964         (current_function_cfg_checksum): Declare.
1965         (function_list): New structure.
1966         (functions_head, functions_tail): New static variables.
1967         (end_final): Emits more data, removed some -ax stuff.
1968         (final): Stores function names and chcksums.
1969         * gcov-io.h (__write_gcov_string): New function.
1970         (__read_gcov_string): New function.
1971         * gcov.c (read_profile): New function.
1972         (create_program_flow_graph): Uses read_profile instead of reading
1973         da_file.
1974         (read_files): Removed da_file checking, it's done by read_profile now.
1975         * libgcc2.c (bb_function_info): New structure.
1976         (bb): New field in structure, removed some -ax stuff.
1977         (__bb_exit_func): Changed structure of da_file.
1978         * profile.c (count_edges_instrumented_now): New global variable.
1979         (current_function_cfg_checksum): New global variable.
1980         (max_counter_in_program): New global variable.
1981         (get_exec_counts): New function.
1982         (compute_checksum): New function.
1983         (instrument_edges): Sets count_edges_instrumented_now.
1984         (compute_branch_probabilities): Uses get_exec_counts instead of
1985         reading da_file.
1986         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
1987         (init_branch_prob): Removed da_file checking, done in get_exec_counts
1988         now.
1989         (end_branch_prob): Removed da_file checking, done in get_exec_counts
1990         now.
1991         * gcov.texi: Updated information about gcov file format.
1992
1993 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1994
1995         * sbitmap.c: Fix formatting.
1996         * scan.c: Likewise.
1997         * scan-decls.c: Likewise.
1998         * sched-deps.c: Likewise.
1999         * sched-ebb.c: Likewise.
2000         * sched-rgn.c: Likewise.
2001         * sched-vis.c: Likewise.
2002         * sdbout.c: Likewise.
2003         * sibcall.c: Likewise.
2004         * simplify-rtx.c: Likewise.
2005         * ssa.c: Likewise.
2006         * ssa-ccp.c: Likewise.
2007         * ssa-dce.c: Likewise.
2008         * stmt.c: Likewise.
2009         * stor-layout.c: Likewise.
2010         * stringpool.c: Likewise.
2011
2012 2002-05-09  David S. Miller  <davem@redhat.com>
2013
2014         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2015
2016 2002-05-07  David S. Miller  <davem@redhat.com>
2017
2018         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
2019         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
2020         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
2021         library implementation clobbers the output before the inputs
2022         are fully consumed, use stack temporary for the output.
2023
2024 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
2025
2026         * config/netbsd.h (CPP_SPEC): Remove.
2027         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
2028         * config/i386/netbsd.h (CPP_SPEC): Define.
2029         * config/ns32k/netbsd.h (CPP_SPEC): Define.
2030         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
2031         * config/sparc/netbsd.h (CPP_SPEC): Define.
2032         * config/vax/netbsd.h (CPP_SPEC): Define.
2033
2034 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2035
2036         * read-rtl.c: Fix formatting.
2037         * real.c: Likewise.
2038         * recog.c: Likewise.
2039         * regclass.c: Likewise.
2040         * regmove.c: Likewise.
2041         * reg-stack.c: Likewise.
2042         * reload1.c: Likewise.
2043         * reload.c: Likewise.
2044         * resource.c: Likewise.
2045         * rtlanal.c: Likewise.
2046         * rtl.c: Likewise.
2047         * rtl-error.c: Likewise.
2048
2049 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2050
2051         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2052         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2053
2054 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
2055
2056         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2057         use __SSE2__ macro instead.
2058         * config/i386/xmmintrin.h: Likewise.
2059
2060 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
2061
2062         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
2063         and use it in all invocations of these macros.  Clean up comments.
2064         * rtl.c (rtl_check_failed_flag): Add an argument for the name
2065         of the flag access macro whose check failed.
2066         * doc/rtl.texi (Flags): Document additional flag uses.
2067
2068 2002-05-08  Robert Spier <rspier@pobox.com>
2069             Neil Booth  <neil@daikokuya.demon.co.uk>
2070
2071         PR preprocessor/6521
2072         * cppfiles.c (handle_missing_header): Don't do anything
2073         different for <> includes.
2074 doc:
2075         * cppopts.texi: Update documentation for -MG.
2076
2077 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2078
2079         * cpplex.c (cpp_interpret_charconst): Truncate as well as
2080         sign-extend.
2081 doc:
2082         * cpp.texi: Clarify multichar charconst valuation.
2083
2084 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2085
2086         * doc/invoke.texi: Document -mwindiss option.
2087
2088 2002-05-08  Jason Merrill  <jason@redhat.com>
2089
2090         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
2091
2092         * dwarf2out.c (gen_type_die): Abort on broken recursion.
2093
2094         PR c++/6381
2095         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
2096         REAL_CST.
2097
2098 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
2099
2100         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
2101         little-endian multilibs to override arm/thumb multilibs.
2102         Do not build hardware floating point multilibs, nor apcs-26
2103         multilibs for the Thumb.
2104
2105 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2106
2107         PR c/6569.
2108         * varasm.c (mark_weak): New function.
2109         (merge_weak): Use it.  Do not call declare_weak.
2110         (declare_weak): Use merge_weak.
2111
2112 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2113
2114         * cse.c (dead_libcall_p): Update counts.
2115         (delete_trivially_dead_insns): Update call of dead_libcall_p.
2116
2117 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
2118
2119         * cfglayout.c (function_tail_eff_head): Rename to ...
2120         (function_footer): ... this one.
2121         (unlink_insn_chain): New functions.
2122         (label_for_bb): Only call block_label and emit debug message.
2123         (record_effective_endpoints): Actually unlink the headers and footers.
2124         (fixup_reorder_cahin): Re-insert the unlinked sequences.
2125         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
2126         * cfglayout.h (struct reorder_block_def): New fields footer/header;
2127         remove eff_head/eff_end.
2128         * rtl.h (set_first_insn): Declare.
2129         * emit-rtl.c (set_first_insn): New function.
2130
2131         * cfglayout.c (fixup_reorder_chain): Dump duplicated
2132         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2133         cfg_layout_duplicate_bb): New global function.
2134         (duplicate_insn_chain): New static function.
2135         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2136         cfg_layout_duplicate_bb): Declare.
2137         (struct reorder_block_def): Add "original" field.
2138         * emit-rtl.c (emit_copy_of_insn_after): New function.
2139         * rtl.h (emit_copy_of_insn_after): Declare.
2140
2141         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
2142         (fixup_reorder_chain): properly handle edges to exit block.
2143
2144 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2145                                Jan Hubicka  <jh@suse.cz>
2146
2147         * basic-block.h (note_prediction_to_br_prob): declare.
2148         * c-semantics.c: Inlucde predit.h
2149         (expand_stmt): predict GOTO_STMT as not taken.
2150         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
2151         (cleanup_cfg): Do not free tail_recursion_list.
2152         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
2153         (flow_delete_block): Kill predictions past end of basic block.
2154         * output.h (delete_unreachable_blocks): Declare.
2155         * predict.c (predicted_by_p, process_note_predictions,
2156         process_note_prediction, last_block_p): New function.
2157         (estimate_probability): Bypass loop on PRED_CONTINUE;
2158         do not handle noreturn heuristics; kill PRED_RETURN; add
2159         PRED_EARLY_RETURN.
2160         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
2161         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
2162         * predict.h (IS_TAKEN): New constant.
2163         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
2164         * rtl.c (NOTE_INSN_PREDICTION): New.
2165         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
2166         New macro.
2167         (insn_note): add NOTE_INSN_PREDICTION.
2168         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
2169         CFG; free tail_recursion_label_list.
2170         * stmt.c: Include predict.h;
2171         (return_prediction): New.
2172         (expand_value_return): Use it.
2173         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
2174
2175 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
2176
2177         * config/mips/mips.md: Name the unspecs with define_constant.
2178         (*HILO_delay): Rename to 'hilo_delay' (no star).
2179         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
2180         (reload_outdi, reload_outsi): Likewise.
2181
2182 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2183
2184         * toplev.c: Fix formatting.
2185
2186 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
2187
2188         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
2189         * configure.in (ac_rtlflag_checking): New.
2190         * doc/install.texi (--enable-checking): Document RTL flag checking.
2191
2192 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2193
2194         * c-common.c (c_common_init): Set options->unsigned_wchar.
2195         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
2196         group target dependencies.
2197         (init_builtins, cpp_handle_option): Update.
2198         * cpplex.c (cpp_interpret_charconst): Update.
2199         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
2200         signed_char to unsigned_char, group target dependencies.
2201         * defaults.h (WCHAR_UNSIGNED): Remove.
2202         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
2203 config:
2204         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
2205         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
2206         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
2207         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
2208         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
2209 doc:
2210         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
2211
2212 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2213
2214         * fixinc/inclhack.def (windiss_math1): New fix.
2215         (windiss_math2): Likewise.
2216         (windiss_valist): Likewise.
2217         * fixinc/fixincl.x: Regenerated.
2218
2219 2002-05-07  Andreas Jaeger  <aj@suse.de>
2220
2221         * genautomata.c (output_internal_min_issue_delay_func): Add
2222         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
2223         (output_internal_trans_func): Likewise.
2224
2225 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
2226
2227         * pa.c (hppa_profile_hook): Use force_reg to get the address
2228         of the profile hook into an appropriate pseudo register.
2229
2230 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2231
2232         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
2233         (LINK_START_SPEC): Handle it.
2234         (LINK_OS_SPEC): Likewise.
2235         (CPP_SPEC): Likewise.
2236         (STARTFILE_SPEC): Likewise.
2237         (LIB_SPEC): Likewise.
2238         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
2239         all platforms.
2240         (CRTSAVRES_DEFAULT_SPEC): New macro.
2241         (LIB_WINDISS_SPEC): New macro.
2242         (CPP_OS_WINDISS_SPEC): Likewise.
2243         (STARTFILE_WINDISS_SPEC): Likewise.
2244         (ENDFILE_WINDISS_SPEC): Likewise.
2245         (LINK_START_WINDISS_SPEC): Likewise.
2246         (LINK_OS_WINDISS_SPEC): Likewise.
2247         * config/rs6000/windiss.h: New file.
2248
2249 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
2250
2251         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2252
2253 2002-05-06  David S. Miller  <davem@redhat.com>
2254
2255         * config/sparc/sparc.md (shift insns): Do not mask off
2256         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
2257         take care of it.
2258
2259 2002-05-06  Richard Henderson  <rth@redhat.com>
2260
2261         PR c++/6212
2262         * expr.c (highest_pow2_factor_for_type): New.
2263         (expand_assignment): Use it.
2264
2265 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
2266
2267         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
2268         unspec_volatile.
2269         ("altivec_mfvscr"): Same.
2270
2271 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2272
2273         * rtl.h (struct rtx_def): Update comments.
2274         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
2275         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
2276         RTL_FLAG_CHECK macros with list of expected RTL codes.
2277         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
2278         (rtl_check_failed_flag): New.
2279         * reload1.c (reload): Use REG macro before changing rtx to MEM.
2280         (reload_cse_noop_set_p): Check rtx code before using access macro.
2281         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
2282         before using access macro.
2283
2284 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2285
2286         * doc/rtl.texi (Flags): Update to reflect current usage.
2287
2288 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2289
2290         PR opt/3995
2291         * fold-const.c (sign_bit_p): New function.
2292         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
2293         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
2294         Reapply fold when converting (A & C) == C into (A & C) != 0.
2295         (fold_binary_op_with_conditional_arg): Fix typo in comment.
2296
2297 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2298
2299         * c-common.c (warn_multichar): New.
2300         (c_common_init): Set CPP's warn_multichar.
2301         * c-common.h (warn_multichar): New.
2302         * c-decl.c (warn_multichar): Remove.
2303         * c-lex.c (lex_charconst): Update.
2304         * c-tree.h (warn_multichar): Remove.
2305         * cppexp.c (eval_token): Sign-extend charconst value.
2306         * cppinit.c (cpp_create_reader): Set warn_multichar.
2307         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
2308         each character.  Update prototype.  Sign-extend the result.
2309         * cpplib.h: Fix conditions.
2310         (struct cpp_options): Add new warning flag.
2311         (cpp_interpret_charconst): Update prototype.
2312 doc:
2313         * cpp.texi: Update documentation.
2314
2315 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
2316
2317         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
2318         Fix typo in usage of allof instead of unit.
2319
2320 2002-05-06  Richard Henderson  <rth@redhat.com>
2321
2322         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
2323         and any jump or call for IN.
2324
2325 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
2326
2327         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
2328         -msse2.
2329         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
2330
2331 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2332
2333         * fold-const.c (lshift-double): Cast the high word to an unsigned
2334         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
2335         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
2336         avoid compiler warning.  (fold): Remove redundant code from
2337         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
2338
2339 2002-05-06  Jeff Law  <law@redhat.com>
2340
2341         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
2342         * pa.c (pa_adjust_cost): Remove all true dependency cost
2343         adjustments.  Also remove support for non-DFA scheduling.
2344         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
2345         to adjust true dependency costs.  Update various comments.
2346         (7100lc, 7200, 7300 scheduling): Simplify by combining the
2347         FP ALU & MPY units into a single unit.
2348
2349 2002-05-06  Catherine Moore  <clm@redhat.com>
2350
2351         * config/v850/v850.c (compute_register_save_size): Make sure
2352         to count all of the registers that will be saved.
2353
2354 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2355
2356         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
2357
2358 2002-05-06  David S. Miller  <davem@redhat.com>
2359
2360         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
2361         allow result to overlap input operands in memory.
2362
2363 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2364
2365 doc:
2366         * cpp.texi: Update multichar charconst docs.
2367
2368 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2369
2370         * cpplex.c (cpp_interpret_charconst): Sign-extend each
2371         character.  Don't ignore excess characters.  Treat
2372         multicharacter character constants as signed.
2373         (cpp_parse_escape): Clarify diagnostic.
2374
2375 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2376
2377         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
2378         use add instead of shift.
2379         (ashldi3_sp64): Likewise.
2380         (ashlsi3_const1, ashldi3_const1): Remove.
2381         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
2382         * config/sparc/sparc.c (const1_operand): New.
2383
2384 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2385
2386         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
2387
2388 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2389
2390         PR target/6561
2391         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
2392
2393 2002-05-05  Richard Henderson  <rth@redhat.com>
2394
2395         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
2396         memory latency adjustments.
2397         (alpha_variable_issue): Remove.
2398         (alpha_use_dfa_pipeline_interface): New.
2399         (alpha_multipass_dfa_lookahead): New.
2400         * config/alpha/alpha.md: Remove define_function_unit scheduling;
2401         include new dfa scheduling.
2402         (attr type): Add none.
2403         (blockage): Use it.
2404         * config/alpha/ev4.md: New.
2405         * config/alpha/ev5.md: New.
2406         * config/alpha/ev6.md: New.
2407
2408 2002-05-05  David S. Miller  <davem@redhat.com>
2409
2410         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
2411
2412 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2413
2414         * cse.c: Fix formatting.
2415         * emit-rtl.c: Likewise.
2416
2417 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2418
2419         * genautomata.c (initiate_states): Add additional guard to
2420         initialize `units_array'.
2421
2422 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2423
2424         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
2425         process_unit_to_form_the_same_automaton_unit_lists,
2426         form_the_same_automaton_unit_lists
2427         check_unit_distributions_to_automata): New prototypes and
2428         functions.
2429         (check_automata): Rename it into `check_automata_insn_issues'.
2430         (unit_decl): New fields `the_same_automaton_unit' and
2431         `the_same_automaton_message_reported_p'.
2432         (unit_decl_t): New typedef.
2433         (the_same_automaton_lists): New gloval variable.
2434         (unit_regexp, unit_set_el, units_array, units_cmp,
2435         output_get_cpu_unit_code_func): Use the typedef.
2436         (evaluate_max_reserv_cycles): Increment
2437         `description->max_insn_reserv_cycles'.
2438         (initiate_states): Don't increment `max_cycles_num'.
2439         (transform_insn_regexps): Move code around transformation of
2440         regexps from `generate'.
2441         (generate): Remove call of `transform_insn_regexps'.
2442         (expand_automata): Call `transform_insn_regexps' and
2443         `check_unit_distributions_to_automata'.  Check errors before
2444         `generate'.
2445
2446         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
2447         automaton `ultrasparc3_1'.
2448
2449 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2450
2451         * c-common.c (c_common_init): Set up CPP arithmetic.
2452         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
2453         something reasonable for the host.
2454         (sanity_checks): Add checks.
2455         (cpp_read_main_file): Call sanity_checks() from here...
2456         (cpp_post_options): ... not here.
2457         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
2458         * cpplib.h (struct cpp_options): New member int_precision.
2459
2460 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2461
2462         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
2463
2464 2002-05-04  David S. Miller  <davem@redhat.com>
2465
2466         * config/sparc/linux.h, config/sparc/linux64.h
2467         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
2468
2469         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
2470         more RTX codes.
2471         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
2472
2473         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
2474         of SETs.
2475
2476 2002-05-05  Tim Josling  <tej@melbpc.org.au>
2477
2478         * treelang; New directory for new sample language treelang.
2479
2480 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2481
2482         * Makefile.in (c-lex.o): Update.
2483         * c-lex.c: Include target.h.
2484         (cb_register_builtins): New.
2485         (init_c_lex): Set builtins callback.
2486         * c-lex.h (cpp_define, cpp_assert): New prototypes.
2487         * cppinit.c (init_builtins): Use callback, including for
2488         GXX_WEAK.
2489         * cpplib.h (struct cpp_callbacks): New member.
2490         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
2491         (TARGET_INITIALIZER): Update.
2492         * target.h (struct gcc_target): New hook.
2493         * tree.c (default_register_cpp_builtins): New.
2494         * tree.h (default_register_cpp_builtins): New.
2495 doc:
2496         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
2497
2498 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2499
2500         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
2501         (cpp_post_options): Move sanity checks to...
2502         (sanity_checks): New.
2503         * cpplex.c (maybe_read_ucs): Fix prototype.
2504         (parse_string, cpp_parse_escape): Cast for %c format specifier.
2505         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
2506         if necessary.
2507
2508 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
2509
2510         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
2511         builtins.  Use V2DI patterns instead of TI for logical operations.
2512         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
2513         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
2514         (ix86_expand_builtins): Change the pattern used for movntdq.
2515         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
2516         sse2_nandv2di3): New patterns.
2517         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
2518         on operands.
2519         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
2520         (cvtdq2pd): Correct mode on operand 1.
2521         (sse2_umulsidi3): Describe without unspec.
2522         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
2523         machine modes.
2524         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
2525         (ashlv2di3): Likewise, from sse2_ashlv2di3.
2526         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
2527         ashlv4si3, ashlv2di3): Use SImode for shift count.
2528         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
2529         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
2530         New patterns.
2531         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
2532         New typedefs.
2533         (__m128i, __m128d): New macros.
2534         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
2535         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
2536         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
2537         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
2538         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
2539         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
2540         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
2541         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
2542         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
2543         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
2544         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
2545         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
2546         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
2547         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
2548         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
2549         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
2550         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
2551         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
2552         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
2553         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
2554         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
2555         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
2556         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
2557         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
2558         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
2559         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
2560         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
2561         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
2562         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
2563         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
2564         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
2565         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
2566         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
2567         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
2568         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
2569         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
2570         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
2571         functions.
2572         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
2573         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
2574
2575 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2576
2577         * dwarf2out.c: Fix formatting.
2578         * varasm.c: Likewise.
2579
2580 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
2581
2582         PR c/6543
2583         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
2584         clobber and use result as temporary value.
2585
2586 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
2587
2588         * expr.c (force_operand): Use expand_simple_* to handle more
2589         cases.
2590
2591 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2592
2593         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
2594         and sign-extension.
2595         (lex_charconst): Update for change in prototype of
2596         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
2597         appropriately.
2598         * cpphash.h (BITS_PER_CPPCHAR_T): New.
2599         * cppinit.c (cpp_create_reader): Initialize them for no
2600         change in semantics.
2601         (cpp_post_options): Add sanity checks.
2602         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
2603         and truncation issues.  Calculate in type cppchar_t.
2604         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
2605         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
2606         run-time dependent precision correctly.  Return whether the
2607         result is signed or not.
2608         * cpplib.c (dequote_string): Use cppchar_t; update.
2609         * cpplib.h (cppchar_signed_t): New.
2610         struct cpp_options): New precision members.
2611         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
2612         * cppexp.c (eval_token): Update.
2613
2614 2002-05-03  David S. Miller  <davem@redhat.com>
2615
2616         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
2617         * config/sparc/sparc.c (sparc_rtx_costs): New function
2618         implementing RTX_COSTS and CONST_COSTS.
2619         * config/sparc/sparc.h (CONST_COSTS): Delete.
2620         (RTX_COSTS_CASES): Define.
2621         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
2622         the work.
2623
2624         * config/sparc/sparc.md (DFA schedulers): Split out...
2625         * config/sparc/cypress.md, config/sparc/hypersparc.md,
2626         config/sparc/sparclet.md, config/sparc/supersparc.md,
2627         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
2628
2629         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
2630         checks on it, always defined for Sparc.
2631
2632         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
2633         Tweak, and add more detailed comments.
2634
2635 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
2636
2637         * Re-apply patch accidentally reverted with
2638         DFA scheduler merge: remove all rules and variables to slurp
2639         source files out of libiberty and rebuild them with HOST_CC.
2640         ($(HOST_PREFIX_1)varray.o): New rule.
2641         (genattrtab rule): Word wrap.
2642
2643 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2644
2645         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
2646         (CPP_SUBTARGET_SPEC): Define.
2647         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
2648         cpp_subtarget specs.
2649         (CPP_SPEC): Redefine to include %(cpp_subtarget).
2650
2651 2002-05-03  David S. Miller  <davem@redhat.com>
2652
2653         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
2654         * target.h (struct gcc_target): Delete cycle_display member.
2655
2656         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
2657         (rtx_needs_barrier): Delete reference to cycle_display unspec.
2658         (ia64_sched_reorder2): Mention need for cycle display handling
2659         once such notes exist.
2660
2661 2002-05-03  Richard Henderson  <rth@redhat.com>
2662
2663         * real.c (etoasc): Strip most trailing zeros for clarity.
2664         * sched-vis.c: Include real.h.
2665         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
2666         * Makefile.in (sched-vis.o): Add real.h.
2667
2668 2002-05-03  David S. Miller  <davem@redhat.com>
2669
2670         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
2671         no longer needed.
2672
2673 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
2674
2675         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
2676         when we get an out of range literal.
2677         (altivec_expand_ternop_builtin): Same.
2678         (altivec_expand_unop_builtin): Same.
2679         (altivec_expand_builtin): Same, for dss.
2680         (altivec_expand_builtin): Use trees instead of rtl when
2681         determining literal argument validity.
2682
2683 2002-05-03  David S. Miller  <davem@redhat.com>
2684
2685         Delete cycle display scheduling hook.
2686         * config/ia64/ia64.c (ia64_cycle_display,
2687         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
2688         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
2689         and use emit_insn_before instead of ia64_emit_insn_before.
2690         * config/ia64/ia64.md (unspec usage): Delete cycle display.
2691         (cycle_display): Delete insn pattern.
2692         * config/sparc/sparc.md (unspec usage): Delete cycle display.
2693         (cycle_display): Delete insn pattern.
2694         * config/sparc/sparc.c (sparc_cycle_display,
2695         TARGET_SCHED_CYCLE_DISPLAY): Delete.
2696         * doc/md.texi (cycle_display): Don't mention.
2697         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
2698
2699 2002-05-03  Richard Henderson  <rth@redhat.com>
2700
2701         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
2702         * recog.h: Declare them.
2703
2704         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
2705         * config/sparc/sparc.md: Use store_data_bypass_p instead.
2706         * config/sparc/sparc-protos.h: Update.
2707
2708 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2709
2710         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
2711         -D__arch64__.  Add -D_LP64.
2712         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
2713         from sparc.h.
2714         (CPP_ARCH64_SPEC): Likewise.
2715         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
2716         (NO_BUILTIN_SIZE_TYPE): Undef.
2717
2718 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
2719
2720         * genautomata.c (min_issue_delay_pass_states): Change return type
2721         in the prototype.
2722         (min_issue_delay_pass_states): Change the algorithm.
2723         (min_issue_delay): Set up min_insn_issue_delay for the state.
2724         (output_min_issue_delay_table): Interchange the nested loops and
2725         and initiate min_insn_issue_delay for states.
2726
2727 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
2728
2729         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
2730         jump is simplejump.
2731
2732 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
2733
2734         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
2735         sequence.
2736
2737 2002-05-03  Richard Henderson  <rth@redhat.com>
2738
2739         PR opt/6534
2740         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
2741         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
2742         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
2743         code before JUMP, not EARLIEST.
2744
2745 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
2746
2747         * c-format.c (check_format_info_main): Don't check for presence of
2748         parameter for * width until after operand number has been read,
2749         and only check for it if format parameters are available.
2750         Fixes PR c/6547.
2751
2752 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
2753
2754         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
2755         (LINK_SPEC): Undef before defining.
2756
2757 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2758
2759         PR preprocessor/6489
2760         * tradcpp.c (fixup_newlines): New.
2761         (main, finclude): Use it.
2762
2763 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
2764
2765         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
2766         * config/mips/mips.c (mips_unique_section): Strip encoding from
2767         decl name.
2768
2769 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2770
2771         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
2772         mode.
2773
2774 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2775
2776         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
2777         (Specific): Removed buildstats references.
2778         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
2779         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
2780         Accomodate Solaris versions beyond 8.
2781         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
2782         (Specific, *-*-solaris2.8): Removed, obsolete.
2783
2784 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
2785
2786         PR target/6542
2787         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
2788         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
2789         fill leaf_reg_remap with identity.
2790         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
2791
2792 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2793
2794         * config/h8300/crti.asm: Remove trailing spaces.
2795         * config/h8300/h8300.c: Likewise.
2796         * config/h8300/lib1funcs.asm: Likewise.
2797
2798 2002-05-02  Jason Merrill  <jason@redhat.com>
2799
2800         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
2801         * c-decl.c (c_init_decl_processing): Use it.
2802         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
2803         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
2804         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
2805
2806 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2807
2808         * regrename.c: Fix formatting.
2809         * tree.c: Likewise.
2810
2811 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
2812
2813         * i386.md (attribute memory): Handle compares properly.
2814
2815 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
2816
2817         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
2818         to none.
2819
2820 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2821
2822         * function.c: Fix formatting.
2823
2824 2002-05-02  Jan Hubicka  <jh@suse.cz>
2825
2826         * haifa-sched.c (schedule_insn): Print table of instructions and
2827         reservations.
2828         (sched_block): Do not print ready list at verbosity level 1.
2829         * sched-vis.c (print_insn): Make global.
2830         * sched-ebb.c (ebb_print_insn): Rename from...
2831         (print_insn): ... this one.
2832         * sched-int.h (print_insn): Declare
2833
2834 2002-05-02  Richard Henderson  <rth@redhat.com>
2835
2836         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
2837         emitted by cycle_display.
2838
2839 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
2840
2841         * doc/install.texi (*-*-freebsd*): Update to latest status.
2842
2843 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
2844
2845         PR target/6540
2846         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
2847         * config/float-sparc.h: Assume 128-bit long double if
2848         __LONG_DOUBLE_128__ is defined.
2849
2850 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
2851
2852         * genattrtab.c (write_function_unit_info): Add a dummy element
2853         when num_units == 0.
2854
2855 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2856
2857         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
2858         TYPE_MODE (double_type_node) instead of DFmode.
2859
2860 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
2861
2862         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
2863         jumps post reload.
2864         * toplev.c (rest_of_compilation): Revert Richard's patch.
2865
2866 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2867
2868         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
2869
2870 2002-05-02  Catherine Moore  <clm@redhat.com>
2871
2872         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
2873
2874 2002-05-02  Kazu Hirata  <kazu@hxi.com>
2875
2876         * combine.c: Fix comment typos.
2877         * expr.c: Likewise.
2878         * genautomata.c: Likewise.
2879         * stmt.c: Likewise.
2880         * tree.h: Likewise.
2881
2882 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2883
2884         * doc/install.texi: State GNAT version requirements.
2885
2886 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
2887
2888         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
2889         of the frame pointer or arg pointer register which strict register
2890         checking is not enabled.
2891
2892 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
2893
2894         * gcc.dg/altivec-8.c: New.
2895
2896         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
2897         PRE_INC and PRE_DEC for altivec modes.
2898
2899 2002-05-01  Bruce Korb  <bkorb@gnu.org>
2900
2901         * fixinc/check.tpl(set-writable): make sure the function exists first
2902         * fixinc/inclhack.def(alpha_assert): fix test_text
2903         * fixinc/tests/base/assert.h: add in missing result
2904
2905 2002-05-01  Jeff Law  <law@redhat.com>
2906
2907         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
2908         'T' constraint.
2909
2910 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
2911
2912         * dbxout.c (dbxout_type): Emit size information for range types,
2913         as well, but only when using GDB extensions.
2914
2915 2002-05-01  Richard Henderson  <rth@redhat.com>
2916
2917         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
2918         target-independent gnu binutils date test.
2919
2920 2002-05-01  Richard Henderson  <rth@redhat.com>
2921
2922         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
2923         info before expunging the block.
2924
2925 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
2926
2927         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
2928         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
2929         -M -or -MM is in effect.
2930
2931 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
2932
2933         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
2934         A29k configurations.
2935         * doc/install.texi: Update to match.
2936
2937 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2938
2939         PR bootstrap/6514
2940         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
2941         for duplicates. Always loop over whole list.
2942
2943 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2944
2945         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
2946
2947 2002-05-01      Joel Sherrill <joel@OARcorp.com>
2948
2949         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
2950         support routines.
2951
2952 2002-05-01      Joel Sherrill <joel@OARcorp.com>
2953
2954         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
2955
2956 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
2957
2958         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
2959         (nabs_nopower): Same.
2960         (floatdisf2): New pattern.
2961         (absdi2): Convert to define_insn_and_split.
2962         (nabsdi2): Same.
2963         (trunctfsf2): Same.
2964         (floatditf2): Same.
2965         (floatsitf2): Same.
2966         (fix_trunctfdi2): Same.
2967         (fix_trunctfsi2): Same.
2968
2969 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2970
2971         * doc/install.texi: Update Texinfo version requirement
2972         documentation.
2973
2974 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
2975
2976         PR target/6512, PR target/5628
2977         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
2978         when memory is not aligned.
2979         (movdf_insn_v9only_vis): Likewise.
2980         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
2981         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
2982         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
2983
2984 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
2985
2986         * gcc.dg/altivec-7.c: New.
2987
2988         * config/rs6000/altivec.h: Cleanup.
2989
2990 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
2991
2992         * doc/invoke.texi (Option Summary): Add -mvrsave=.
2993         (RS/6000 and PowerPC Options): Document -mvrsave=.
2994
2995         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
2996         (rs6000_altivec_vrsave_string): Same.
2997         (rs6000_override_options): Call rs6000_parse_vrsave_option.
2998         (rs6000_parse_vrsave_option): New.
2999         (rs6000_stack_info): Only generate vrsave instructions when
3000         TARGET_ALTIVEC_VRSAVE.
3001
3002         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
3003         (rs6000_altivec_vrsave_string): Define extern.
3004         (rs6000_altivec_vrsave): Same.
3005         (TARGET_ALTIVEC_VRSAVE): New.
3006
3007 2002-04-30  Richard Henderson  <rth@redhat.com>
3008
3009         PR opt/6516
3010         * toplev.c (rest_of_compilation): Don't run cross-jump before
3011         bb-reorder.
3012
3013 2002-04-30  Tom Rix  <trix@redhat.com>
3014
3015         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
3016         check which_alternative.
3017
3018 2002-04-30  Kazu Hirata  <kazu@hxi.com>
3019
3020         * cpplex.c: Fix comment formatting.
3021         * function.c: Likewise.
3022         * integrate.c: Likewise.
3023         * regrename.c: Likewise.
3024         * sibcall.c: Likewise.
3025         * simplify-rtx.c: Likewise.
3026         * tree-inline.c: Likewise.
3027
3028 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3029
3030         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
3031         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
3032         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
3033         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
3034         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
3035         * pa/x-ada: New file.  Define ADA_CFLAGS.
3036
3037 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
3038
3039         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
3040         from MMIX_LAST_REGISTER_FILE_REGNUM.
3041         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
3042         (struct machine_function): New member highest_saved_stack_register
3043         previously static variable in mmix.c.
3044         (MACHINE_DEPENDENT_REORG): Define.
3045         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
3046         (MMIX_OUTPUT_REGNO): New.
3047         (mmix_target_asm_function_prologue): Move calculation of last used
3048         saved-stack-register into...
3049         (mmix_machine_dependent_reorg): New function.  Update to also handle
3050         !TARGET_ABI_GNU.
3051         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
3052         register names, simplify somewhat by new variable regno.
3053         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
3054         register.
3055         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
3056         emitting register names.
3057         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
3058         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
3059         Remove fixed FIXME.
3060         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
3061         Declare.
3062
3063         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
3064
3065 2002-04-30  Richard Henderson  <rth@redhat.com>
3066
3067         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
3068         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
3069         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
3070         emit_tfmode_cvt): New.
3071         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
3072         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
3073         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
3074         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
3075         * config/sparc/sparc-protos.h: Update.
3076
3077 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
3078
3079         * install.texi (Final install): Add to the list of info to include
3080         in a report of a successful bootstrap, and add link to 3.1 list.
3081
3082 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
3083
3084         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
3085         (mode): Add vector modes
3086         (i387): Kill attribute.
3087         (unit): New attribute.
3088         (length_immediate): Grok new types.
3089         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
3090         (modrm): Use "unit".
3091         (memory): Handle MMX/SSE properly.
3092         (scheduling descriptions): Kill uses of fop1.
3093         (sse, mmx, fp patterns): Set type and mode properly.
3094
3095 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
3096
3097         * pa.c (override_options): Default to PA8000 scheduling.
3098         * doc/invoke.texi (HP-PA options): Mention newly added 7300
3099         scheduling parameter.
3100
3101         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
3102         handling of double precision multiplies.
3103
3104         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
3105         fpdiv and fpsqrt instructions.
3106         (7200 & 7300 scheduling): Fix typo in handling of
3107         store-load and store-store penalties.
3108
3109 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3110
3111         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
3112         mips.  Add two missing commas.
3113
3114 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
3115
3116         * doc/contrib.texi (Contributors): Update Paolo Carlini's
3117         and Benjamin Kosnik's entries.
3118
3119 2002-04-29  David S. Miller  <davem@redhat.com>
3120
3121         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
3122         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
3123         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
3124         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
3125
3126 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3127
3128         * combine.c (find_split_point): Use gen_int_mode.
3129
3130 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
3131
3132         Merging code from dfa-branch:
3133
3134         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3135
3136         * genautomata.c (output_reserv_sets): Fix typo.
3137
3138         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
3139
3140         * genautomata.c (output_reserv_sets): Remove
3141         next_cycle_output_flag.
3142
3143         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
3144
3145         * sched-rgn.c (init_ready_list): Make the DFA code handle
3146         USE/CLOBBER insns in the same way as the traditional
3147         scheduler.
3148         (new_ready): Similarly..
3149
3150         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
3151
3152         * haifa-sched.c (schedule_block): Change the DFA state only after
3153         issuing insn.
3154
3155         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
3156
3157         * pa.c (hppa_use_dfa_pipeline_interface): New function.
3158         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
3159         (override_options): Add PA7300 scheduling support.
3160         (pa_adjust_cost): Update various comments.  Properly
3161         handle anti and output dependencies when using the
3162         DFA scheduler.
3163         (pa_issue_rate): Add PA7300 scheduling support.
3164         (pa_can_combine_p): Call extract_insn before calling
3165         constrain_operands (taken from mainline tree).
3166         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
3167         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
3168         descriptions using DFA descriptions.  Add PA7300
3169         scheduling support.
3170
3171         2002-03-30  David S. Miller  <davem@redhat.com>
3172
3173         Add UltraSPARC-III DFA scheduling support.
3174         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
3175         Update FP conditional move on register insn patterns to use it, as
3176         appropriate.
3177         (define_attr cpu): Add ultrasparc3.
3178         (define_attr us3load_type): New, update integer load patterns to
3179         set it, as appropriate.
3180         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
3181         (rest): Add UltraSPARC3 scheduling description.
3182         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
3183         (PROCESSOR_ULTRASPARC3): New.
3184         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
3185         ({ASM,CPP}_CPU_SPEC): Likewise.
3186         (REGISTER_MOVE_COST): Likewise.
3187         (RTX_COSTS): Likewise.
3188         * config/sparc/sparc.c (sparc_override_options,
3189         sparc_initialize_trampoline, sparc64_initialize_trampoline,
3190         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3191         sparc_issue_rate): Likewise.
3192         * config/sparc/sol2.h: Likewise.
3193         * config/sparc/sol2-sld-64.h: Likewise.
3194         * config/sparc/linux64.h: Likewise.
3195
3196         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
3197
3198         * doc/md.texi: Add comments about usage the latency time for the
3199         different dependencies and about case when two or more conditions
3200         in different define_insn_reservations returns TRUE for an insn.
3201
3202         * doc/md.texi: Add reference for automaton based pipeline
3203         description.
3204
3205         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
3206
3207         * doc/passes.texi: Add missed information about genattrtab.
3208
3209         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
3210
3211         * genautomata.c (output_automata_list_transition_code): Check
3212         automata_list on NULL.
3213
3214         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
3215
3216         * genautomata.c (output_insn_code_cases,
3217         output_automata_list_min_issue_delay_code,
3218         output_automata_list_transition_code,
3219         output_automata_list_state_alts_code): Comment the functions.
3220
3221         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
3222
3223         * genautomata.c (automata_list_el_t): New typedef.
3224         (get_free_automata_list_el,free_automata_list_el,
3225         free_automata_list, automata_list_hash, automata_list_eq_p,
3226         initiate_automata_lists, automata_list_start, automata_list_add,
3227         automata_list_finish, finish_automata_lists,
3228         output_insn_code_cases, output_automata_list_min_issue_delay_code,
3229         output_automata_list_transition_code,
3230         output_automata_list_state_alts_code, add_automaton_state,
3231         form_important_insn_automata_lists): New functions and prototypes.
3232         (insn_reserv_decl): Add members important_automata_list and
3233         processed_p.
3234         (ainsn): Add members important_p.
3235         (automata_list_el): New structure.
3236         (first_free_automata_list_el, current_automata_list,
3237         automata_list_table): New global variables.
3238         (create_ainsns): Initiate member important_p.
3239         (output_internal_min_issue_delay_func): Generate the switch and
3240         call output_insn_code_cases.
3241         (output_internal_trans_func, output_internal_state_alts_func):
3242         Ditto.
3243         (generate): Call initiate_automata_lists.
3244         (automaton_states): New global variable.
3245         (expand_automata): Call form_important_insn_automata_lists.
3246         (write_automata): Call finish_automata_lists.
3247
3248         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
3249
3250         * genautomata.c (add_excls, add_presence_absence): Check that
3251         cpu units in the sets belong the same automaton.
3252
3253         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
3254         about that cpu units in the sets belong the same automaton.
3255
3256         * doc/md.texi: Ditto.
3257
3258         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
3259                     Nitin Gupta  <niting@noida.hcltech.com>
3260
3261         * config/sh/sh.c (sh_use_dfa_interface): New function.
3262
3263         (sh_issue_rate): New Function.
3264         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
3265         TARGET_SCHED_ISSUE_RATE: define.
3266
3267         * config/sh/sh.md: Add DFA based pipeline description for SH4.
3268
3269         (define_attr insn_class): New attribute used for DFA
3270          scheduling.
3271         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
3272         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
3273          cmpeqdi_t): Likewise.
3274
3275         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
3276          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
3277          ex_group.
3278         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
3279
3280         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3281
3282         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
3283         break.
3284
3285         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3286
3287         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
3288         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
3289         necessary.
3290         (output_dfa_start_func): Initiate new variable insn_codes_length,
3291         (write_automata): Output definition of the new variable.
3292
3293         2001-10-02  David S. Miller  <davem@redhat.com>
3294
3295         * haifa-sched.c (advance_one_cycle): New function.
3296         (schedule_block): Use it.
3297         (queue_to_ready): Use it, and also make sure to advance the DFA
3298         state on all stall cycles, not just those where insn_queue links
3299         are found.
3300
3301         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
3302
3303         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
3304         non-zero if the highest-priority instruction could be scheduled.
3305         (choose_ready): Remove last argument from max_issue call.
3306
3307         2001-09-28  David S. Miller  <davem@redhat.com>
3308
3309         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
3310         ultrasparc and 3 for other multi-issue sparcs.
3311
3312         2001-09-27  David S. Miller  <davem@redhat.com>
3313
3314         * config/sparc/sparc.md (cycle_display): New pattern.
3315         * config/sparc/sparc.c (sparc_cycle_display): New.
3316         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
3317
3318         2001-09-25  David S. Miller  <davem@redhat.com>
3319
3320         Convert all of Sparc scheduling to DFA
3321         * config/sparc/sparc.md: Kill all define_function_unit
3322         directives and replace with DFA equivalent.
3323         * config/sparc/sparc.c (ultrasparc_adjust_cost,
3324         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
3325         ultra_fpmode_conflict_exists, ultra_find_type,
3326         ultra_build_types_avail, ultra_flush_pipeline,
3327         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
3328         ultrasparc_variable_issue, ultrasparc_sched_init,
3329         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
3330         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
3331         ultra_cur_hist, ultra_cycles_elapsed): Kill.
3332         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3333         ultrasparc_store_bypass_p): New.
3334         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
3335         Declare.
3336
3337         2001-09-24  David S. Miller  <davem@redhat.com>
3338
3339         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
3340         ready->vec[foo] not ready[foo].
3341
3342         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3343
3344         * doc/md.texi: Correct examples for define_insn_reservations
3345         `mult' and `div'.
3346
3347         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3348
3349         * genautomata.c (create_automata): Print message about creation of
3350         each automaton.
3351         (generate): Remove printing meease about creation of
3352         automata.
3353
3354         2001-09-05  David S. Miller  <davem@redhat.com>
3355
3356         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3357         * config/sparc/linux64.h: Likewise.
3358
3359         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
3360
3361         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
3362         schedule_block, sched_init, sched_finish): Add missed calls of
3363         use_dfa_pipeline_interface.
3364
3365         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
3366         Ditto.
3367
3368         * sched-vis.c (get_visual_tbl_length): Ditto.
3369
3370         2001-08-27  Richard Henderson  <rth@redhat.com>
3371
3372         * genattr.c (main): Emit state_t even when not doing scheduling.
3373
3374         2001-08-27  Richard Henderson  <rth@redhat.com>
3375
3376         * genautomata.c (expand_automata): Always create a description.
3377
3378         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
3379
3380         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
3381         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
3382         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
3383         RTL constructions.
3384
3385         * genattr.c (main): New variable num_insn_reservations.  Increase
3386         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
3387         pipeline hazard recognizer interface.
3388
3389         * genattrtab.h: New file.
3390
3391         * genattrtab.c: Include genattrtab.h.
3392         (attr_printf, check_attr_test, make_internal_attr,
3393         make_numeric_value): Move protypes into genattrtab.h.  Define them
3394         as external.
3395         (num_dfa_decls): New global variable.
3396         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
3397         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
3398         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
3399         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
3400
3401         * genautomata.c: New file.
3402
3403         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
3404
3405         * sched-int.h: (curr_state): Add the external definition for
3406         automaton pipeline interface.
3407         (haifa_insn_data): Add comments for members blockage and units.
3408
3409         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3410         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3411         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3412         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3413         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3414         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3415         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3416         macros.
3417         (TARGET_SCHED): Use the new macros.
3418
3419         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3420         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3421         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3422         dfa_bubble): New members in gcc_target.sched.
3423
3424         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3425         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3426         (insn_queue): Redefine it as pointer to array.
3427         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3428         INSN_QUEUE_SIZE.
3429         (max_insn_queue_index_macro_value): New variable.
3430         (curr_state, dfa_state_size, ready_try): New varaibles for
3431         automaton interface.
3432         (ready_element, ready_remove, max_issue): New function prototypes
3433         for automaton interface.
3434         (choose_ready): New function prototype.
3435         (insn_unit, blockage_range): Add comments.
3436         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3437         FUNCTION_UNITS_SIZE == 0.
3438         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3439         actual_hazard, potential_hazard): Add comments.
3440         (insn_cost): Use cost -1 as undefined value.  Remove
3441         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3442         pipeline interface.
3443         (ready_element, ready_remove): New functions for automaton
3444         interface.
3445         (schedule_insn): Add new code for automaton pipeline interface.
3446         (queue_to_ready): Add new code for automaton pipeline interface.
3447         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3448         (debug_ready_list): Print newline when the queue is empty.
3449         (max_issue): New function for automaton pipeline interface.
3450         (choose_ready): New function.
3451         (schedule_block): Add new code for automaton pipeline interface.
3452         Print ready list before scheduling each insn.
3453         (sched_init): Add new code for automaton pipeline interface.
3454         Initiate insn cost by -1.
3455         (sched_finish): Free the current automaton state and finalize
3456         automaton pipeline interface.
3457
3458         * sched-rgn.c: Include target.h.
3459         (init_ready_list, new_ready, debug_dependencies): Add new code for
3460         automaton pipeline interface.
3461
3462         * sched-vis.c: Include target.h.
3463         (get_visual_tbl_length): Add code for automaton interface.
3464         (target_units, print_block_visualization):  Add comments.
3465
3466         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3467         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3468         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3469         (getruntime.o, genautomata.o): New entries.
3470         (genattrtab.o): Add new dependency file genattrtab.h.
3471         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3472         (getruntime.o, hashtab.o): New entries for canadian cross.
3473
3474         * doc/md.texi: Description of automaton based model.
3475
3476         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3477         Add comments.
3478         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3479         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3480         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3481         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3482         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3483         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3484         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3485         hook descriptions.
3486         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3487         MAX_DFA_ISSUE_RATE): New macro descriptions.
3488
3489         * doc/contrib.texi: Add dfa based scheduler contribution.
3490
3491         * doc/gcc.texi: Add more information about genattrtab.
3492
3493 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3494
3495         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
3496         adjust_address_nv call.
3497
3498 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
3499
3500         * doc/install.texi (Testing): Provide additional information, and
3501         a stronger encouragement, for running the testsuites.
3502
3503 2002-04-29  DJ Delorie  <dj@redhat.com>
3504
3505         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
3506         given in upper case.
3507
3508 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3509
3510         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
3511         Solaris 2 <widec.h> if missing.
3512         * fixinc/fixincl.x: Regenerate.
3513         * fixinc/tests/base/widec.h: New file.
3514
3515 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
3516
3517         * toplev.c (f_options): Add "profile" switch so that
3518         -fno-profile can be used to disable -p.
3519
3520 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
3521
3522         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
3523         UV2DImode.
3524         * tree.c (build_common_tree_nodes_2): Likewise.
3525         * tree.h (enum tree_index): Likewise.
3526         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
3527
3528         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
3529         entries.
3530         (init_mmx_sse_builtins): Initialize SSE2 builtins.
3531         (ix86_expand_builtin): Add support for SSE2 builtins.
3532         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
3533         (VALID_SSE_REG_MODE): Use it.
3534         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
3535         (enum ix86_builtins): Add SSE2 builtins.
3536         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
3537         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
3538         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
3539         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
3540         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
3541         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
3542         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
3543         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
3544         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
3545         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
3546         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
3547         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
3548         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
3549         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
3550         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
3551         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
3552         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
3553         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
3554         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
3555         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
3556         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
3557         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
3558         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
3559         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
3560         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
3561         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
3562         lfence_insn): New patterns.
3563         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
3564         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
3565
3566 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
3567
3568         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
3569
3570 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3571
3572         * doc/contrib.texi (Contributors): Add Paolo Carlini and
3573         Janis Johnson.
3574         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
3575         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
3576         and CPU instead of cpu.
3577
3578 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3579
3580         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
3581         variables.
3582         (lang_independent_options): Add -fif-conversion, -fif-conversion2
3583         (rest_of_compilation): Do if conversion only when asked for.
3584         (parse_options_and_default_flags): Set new variables to 1 for -O1
3585         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
3586
3587 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3588
3589         * i386.c (dbx64_register_map): Fix typo.
3590
3591 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
3592
3593         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
3594         real_one_half, real_bb_freq_max): New static variables.
3595         (debug_profile_bbauxs): Kill.
3596         (process_note_predictions): Kill unused variable.
3597         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
3598         volatile double.
3599         (propagate_freq): Use REAL_ARITHMETICS.
3600         (estimate_bb_frequencies): Likevise; init new static variables.
3601         * Makefile.in (predict.o): Add dependency on real.h
3602
3603 2002-04-28  David S. Miller  <davem@redhat.com>
3604
3605         PR target/6500
3606         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
3607         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
3608         several {reads,writes} instead.
3609         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
3610         Define.
3611
3612 2002-04-27  David S. Miller  <davem@redhat.com>
3613
3614         PR target/6494
3615         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
3616         of the stack bias.
3617
3618         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
3619         including signal.h and sys/ucontext.h, not needed.
3620
3621 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
3622
3623         * varasm.c (output_constant_def): Correct test for not calling
3624         ENCODE_SECTION_INFO for INTEGER_CST.
3625
3626 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3627
3628         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
3629         keep most cases as function eval_token.
3630         (eval_token): New function.
3631         (_cpp_parse_expr): Read token here for improved diagnostics.
3632         Don't use op_as_text.  Detect bad ':' here.
3633         (reduce): Don't detect bad ':' here.
3634         (op_as_text): Remove.
3635         * cpphash.h (_cpp_test_assertion): Change prototype.
3636         * cpplib.c (_cpp_test_assertion): Change prototype.
3637
3638 2002-04-28  Richard Henderson  <rth@redhat.com>
3639
3640         PR c/5154
3641         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
3642         (ggc_mark_rtx_children): New.
3643
3644 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3645
3646         PR target/6496
3647         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
3648         after call peepholes for UltraSPARC.
3649         (call + jump 64-bit peepholes): Remove.
3650
3651 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3652
3653         PR c/6497
3654         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
3655         result as temporary value.
3656
3657 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3658
3659         PR c++/6396
3660         * toplev.c (rest_of_compilation): Only run regrename and copy
3661         propagation if optimizing.
3662
3663 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3664
3665         PR optimization/6475
3666         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
3667         register of REGNO_DECL (i).
3668         * Makefile.in (reload1.o): Add $(TREE_H).
3669
3670 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
3671
3672         * cppexp.c (lex): Update to use state.skip_eval.
3673         (struct op): Remove prio and flags members.
3674         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
3675         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
3676         (LEFT_ASSOC): New macro.
3677         (optab): New table of operator priorities and flags.
3678         (SHIFT): Update.
3679         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
3680         malloc-ed parser stack.
3681         (reduce): New; reduce the operator stack.
3682         (_cpp_expand_op_stack): Expand the operator stack as necessary.
3683         * cpphash.h (struct op): Predeclare.
3684         (struct cpp_reader): New members op_stack, op_limit.
3685         (struct lexer_state): New member skip_eval.
3686         (_cpp_parse_expr): Update.
3687         (_cpp_expand_op_stack): New.
3688         * cpplib.c (do_if): Update.
3689         * cppinit.c (cpp_create_reader): Create op stack.
3690         (cpp_destroy): And destroy it.
3691         * cpplib.h (CPP_LAST_CPP_OP): Correct.
3692         (TTYPE_TABLE): Correct.
3693
3694 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3695
3696         PR c/6343
3697         * c-decl.c (duplicate_decls): Call merge_weak.
3698         * c-pragma.c (apply_pragma_weak): Warn about misuse.
3699         * output.h (merge_weak): Prototype merge_weak.
3700         * varasm.c (merge_weak): New function.
3701         (declare_weak): Make sure we don't give an error on VAR_DECLs.
3702         Mark RTL with SYMBOL_REF_WEAK.
3703
3704 2002-04-27  Kurt Garloff <garloff@suse.de>
3705
3706         * tree-inline.c (inlinable_function_p): Improve heuristics
3707         by using a smoother function to cut down allowable inlinable size.
3708         * param.def: Add parameters max-inline-insns-single,
3709         max-inline-slope, min-inline-insns that determine the exact
3710         shape of the above function.
3711         * param.h: Likewise.
3712
3713 2002-04-26  Richard Henderson  <rth@redhat.com>
3714
3715         * c-parse.in (malloced_yyss, malloced_yyvs): New.
3716         (yyoverflow): Re-add.  Set them.
3717         (free_parser_stacks): New.
3718         * c-common.h: Declare it.
3719         * c-lex.c (c_common_parse_file): Call it.
3720
3721 2002-04-26  Richard Henderson  <rth@redhat.com>
3722
3723         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
3724         for fallthru search.
3725
3726 2002-04-26  Eric Christopher  <echristo@redhat.com>
3727
3728         PR optimization/3700
3729         * config/mips/mips.c (mips_issue_rate): Define.  New function.
3730         (TARGET_SCHED_ISSUE_RATE): Use.
3731
3732 2002-04-25  David S. Miller  <davem@redhat.com>
3733
3734         PR target/6422
3735         * reorg.c (optimize_skip): Do not allow exception causing
3736         instructions to be considered for delay slots.
3737         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
3738         (relax_delay_slots): Do not try to consider exception causing
3739         instructions as redundant.
3740
3741 2002-04-26  Richard Henderson  <rth@redhat.com>
3742
3743         PR c/5225
3744         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
3745
3746 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
3747
3748         PR bootstrap/6445
3749         * config/i386/i386.md (untyped_call): Return the value in a float
3750         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
3751         TARGET_80387.
3752
3753 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
3754
3755         * tree.c (tree_int_cst_lt): Compare constants whose types differ
3756         in unsigned-ness correctly.
3757
3758 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3759
3760         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
3761         portable runtime model.
3762
3763 2002-04-26  Richard Henderson  <rth@redhat.com>
3764
3765         * c-parse.in (yyoverflow): Revert.
3766
3767 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
3768             Richard Henderson  <rth@redhat.com>
3769
3770         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
3771         result as temporary value.
3772
3773 2002-04-26  Richard Henderson  <rth@redhat.com>
3774
3775         PR c/3581
3776         * c-common.c (fix_string_type): Split out of ...
3777         (combine_strings): ... here.  Take a varray, not a tree list.
3778         (c_expand_builtin_printf): Use fix_string_type.
3779         * c-common.h: Update decls.
3780         * c-parse.in (string): Remove.  Update all uses to use STRING
3781         instead, and not call combine_strings.
3782         (yylexstring): New.
3783         (_yylex): Use it.
3784         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
3785         (build_asm_stmt): Likewise.
3786         * objc/objc-act.c (my_build_string): Use fix_string_type.
3787         (build_objc_string_object): Build varray for combine_strings.
3788
3789 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
3790
3791         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
3792         x86-64.
3793
3794 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3795
3796         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
3797         (HAVE_NO_R_OPERAND): Remove.
3798         (HAVE_VALUE): Remove.
3799         (op_to_prio): Update.
3800         (UNARY): Don't alter flags.
3801         (_cpp_parse_expr): want_value used to indicate whether
3802         a number or unary operator is expected next.  Distinguish
3803         unary and binary +/-.
3804         (op_as_text): Update for unary operators.
3805
3806 2002-04-25  Richard Henderson  <rth@redhat.com>
3807
3808         PR c/2161
3809         * c-parse.in (yyoverflow): New.
3810
3811 2002-04-25  Richard Henderson  <rth@redhat.com>
3812
3813         PR c/2098
3814         * c-common.c (shorten_compare): Simplfy conditions leading to
3815         the generation of a warning.
3816
3817 2002-04-25  Richard Henderson  <rth@redhat.com>
3818
3819         PR c/2035
3820         * expmed.c (extract_bit_field): Fall through to generic code rather
3821         than aborting on subreg special case.
3822
3823 2002-04-25  David S. Miller  <davem@redhat.com>
3824
3825         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
3826         for DECL being NULL.
3827
3828 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
3829
3830         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
3831
3832 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
3833
3834         * c-decl.c (grokdeclarator): Remove outdated ??? note
3835         on invalid declaration of flexible array members.
3836
3837 2002-04-25  Richard Henderson  <rth@redhat.com>
3838
3839         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
3840
3841 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
3842
3843         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
3844         needed by the compiler, even if they are used as global regs.
3845
3846 2002-04-25  Matt Hiller  <hiller@redhat.com>
3847
3848         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
3849         functions.
3850         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
3851         of the corresponding functions.
3852         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
3853         New prototypes.
3854
3855 2002-04-25  Matt Hiller  <hiller@redhat.com>
3856
3857         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
3858
3859         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
3860         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
3861         registers, adjust comment accordingly.
3862         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
3863         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
3864         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
3865         for coprocessor registers.
3866         (ADDITIONAL_REGISTER_NAMES): Include
3867         ALL_COP_ADDITIONAL_REGISTER_NAMES.
3868
3869         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
3870         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
3871         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
3872         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
3873         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
3874
3875         (mips_char_to_class): Adjust comment to include coprocessor
3876         constraint letters.
3877
3878         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
3879         New functions.
3880         (mips_reg_names, mips_regno_to_class): Include coprocessor
3881         information.
3882         (mips_sw_reg_names): Ditto, make non-static.
3883         (mips_move_1word): Handle moves to and from coprocessor registers.
3884         (mips_move_2words): Handle moves to and from coprocessor
3885         registers.
3886         (mips_class_max_nregs, mips_register_move_cost): Handle
3887         coprocessor register classes.
3888         (override_options): Initialize mips_char_to_class and
3889         mips_hard_regno_mode_ok properly for coprocessor registers.
3890
3891         * config/mips/mips.md (movdi_internal, movdi_internal2,
3892         movsi_internal1, movsi_internal2): Add constraint-sets for
3893         coprocessor registers.
3894         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
3895         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
3896         isn't mips.
3897         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
3898         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
3899         isn't mips.
3900         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
3901         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
3902         isn't mips.
3903         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
3904         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
3905         isn't mips.
3906
3907         * doc/tm.texi: Document feature.
3908
3909 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3910
3911         * integrate.c (function_attribute_inlinable_p): Simplify.
3912         Check the table pointer is not NULL.
3913
3914 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
3915
3916         * doc/c-tree.texi: Fix typo in introduction.
3917
3918 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3919
3920         * c-common.h (c_common_parse_file): Update.
3921         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
3922         * c-lex.c (YYDEBUG): Get from c-lex.h.
3923         (c_common_parse_file): Update.
3924         * c-lex.h (YYDEBUG, yydebug): New.
3925         * c-parse.in (YYDEBUG): Get from c-lex.h.
3926         (c_set_yydebug): Remove.
3927         * c-tree.h (c_set_yydebug): Remove.
3928         * langhooks-def.h (lhd_do_nothing_i): New.
3929         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
3930         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
3931         * langhooks.c  (lhd_do_nothing_i): New.
3932         (lhd_set_yydebug): Remove.
3933         * langhooks.h (struct lang_hooks): Update.
3934         * toplev.c (set_yydebug): New.
3935         (compile_file): Update call to parse_file hook.
3936         (decode_d_option): Update.
3937 objc:
3938         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
3939
3940 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
3941
3942         * loop.c (load_mems): Don't change the interface of called functions.
3943
3944         * calls.c (expand_call): Take current_function_pretend_args_size
3945         into account when setting argblock for sibcalls.
3946
3947 2002-04-24  Matt Hiller  <hiller@redhat.com>
3948
3949         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
3950         * c-lex.c: Ditto.
3951
3952         * cpplex.c (skip_line_comment): Process comment one multibyte
3953         character at a time rather than one char at a time, if
3954         appropriate.
3955         (parse_string): Process string one multibyte character at a time
3956         rather than one char at a time, if appropriate.
3957         * c-lex.c (lex_string): Lex and copy multibyte strings
3958         appropriately.
3959         * cpplib.h (cppchar_t): Change to unsigned.
3960
3961 2002-04-24  Richard Henderson  <rth@redhat.com>
3962
3963         PR c/3467
3964         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
3965         for c99.
3966
3967 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
3968
3969         * sh.c (sh_va_arg): If argument was passed by reference,
3970         dereference the pointer.
3971
3972         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3973
3974         * sh.md (divsi3_i4_media): Use match_operand for input values
3975         rather than hard registers.
3976         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
3977         unnecessarily through hard registers.  Keep copies of pseudo
3978         registers outside of the libcall sequence.
3979
3980         * sh.md (casesi_shift_media): Add modes.
3981
3982         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
3983         values in memory.
3984
3985 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3986
3987         * attribs.c (c_common_attribute_table): Move table and handlers
3988         to c-common.c.
3989         (format_attribute_table, lang_attribute_table,
3990         lang_attribute_common): Remove.
3991         (init_attributes): Replace NULL pointers with pointers to the
3992         empty table.
3993         (handle_packed_attribute, handle_nocommon_attribute,
3994         handle_common_attribute, handle_noreturn_attribute,
3995         handle_noinline_attribute, handle_always_inline_attribute,
3996         handle_used_attribute, handle_unused_attribute,
3997         handle_const_attribute, handle_transparent_union_attribute,
3998         handle_constructor_attribute, handle_destructor_attribute,
3999         handle_mode_attribute, handle_section_attribute,
4000         handle_aligned_attribute, handle_weak_attribute,
4001         handle_alias_attribute, handle_visibility_attribute,
4002         handle_no_instrument_function_attribute, handle_malloc_attribute,
4003         handle_no_limit_stack_attribute, handle_pure_attribute,
4004         handle_deprecated_attribute, handle_vector_size_attribute,
4005         vector_size_helper): Move to c-common.c.
4006         * c-common.c (c_common_attribute_table,
4007         handle_packed_attribute, handle_nocommon_attribute,
4008         handle_common_attribute, handle_noreturn_attribute,
4009         handle_noinline_attribute, handle_always_inline_attribute,
4010         handle_used_attribute, handle_unused_attribute,
4011         handle_const_attribute, handle_transparent_union_attribute,
4012         handle_constructor_attribute, handle_destructor_attribute,
4013         handle_mode_attribute, handle_section_attribute,
4014         handle_aligned_attribute, handle_weak_attribute,
4015         handle_alias_attribute, handle_visibility_attribute,
4016         handle_no_instrument_function_attribute, handle_malloc_attribute,
4017         handle_no_limit_stack_attribute, handle_pure_attribute,
4018         handle_deprecated_attribute, handle_vector_size_attribute,
4019         vector_size_helper): Move from attribs.c.
4020         * c-common.h (c_common_attribute_table,
4021         c_common_format_attribute_table): New.
4022         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4023         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4024         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4025         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
4026         (LANG_HOOKS_INITIALIZER): Update.
4027         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
4028         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
4029         * target.h: Update comment.
4030         * tree.c (default_target_attribute_table): Remove.
4031         * tree.h (default_target_attribute_table, format_attribute_table,
4032         lang_attribute_table, lang_attribute_common): Remove.
4033 objc:
4034         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4035     &nbs