OSDN Git Service

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