1 2002-05-21 Bruce Korb <bkorb@gnu.org>
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.
7 2002-05-21 Kazu Hirata <kazu@cs.umass.edu>
9 * cfgbuild.c: Fix formatting.
11 * cfgcleanup.c: Likewise.
12 * cfglayout.c: Likewise.
13 * cfgloop.c: Likewise.
16 2002-05-21 Richard Henderson <rth@redhat.com>
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.
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.
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.
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.
42 * doc/extend.texi (Thread-Local): New node describing language-level
44 * doc/invoke.texi (-ftls-model): Document.
46 * fixinc/inclhack.def (thread_keyword): New.
47 * fixinc/fixincl.x: Rebuild.
49 2002-05-21 Jeffrey A Law <law@redhat.com>
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).
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.
59 2002-05-21 Vladimir Makarov <vmakarov@redhat.com>
61 * genautomata.c (reserv_sets_hash_value): Fix a typo.
63 2002-05-21 Vladimir Makarov <vmakarov@redhat.com>
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)'.
70 2002-05-21 NIIBE Yutaka <gniibe@m17n.org>
72 * reload1.c (do_output_reload): Run delete_output_reload
75 2002-05-21 Roger Sayle <roger@eyesopen.com>
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.
83 2002-05-21 Richard Henderson <rth@redhat.com>
85 * flow.c (life_analysis): Fix test for deleted label.
87 2002-05-21 Neil Booth <neil@daikokuya.demon.co.uk>
89 * doc/tm.texi: Fix typo.
91 2002-05-21 Zack Weinberg <zack@codesourcery.com>
93 * c-common.c (c_common_init): Set options->unsigned_char from
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
100 (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
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.
108 2002-05-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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.
138 2002-05-21 Andreas Jaeger <aj@suse.de>
140 * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
142 2002-05-21 Richard Henderson <rth@redhat.com>
144 * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
145 unspec names, not numbers.
147 2002-05-21 Joseph S. Myers <jsm28@cam.ac.uk>
149 * doc/sourcebuild.texi: Mention snapshot-README and
150 snapshot-index.html as needing updating for new front ends.
152 2002-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
154 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
155 disabling checking, and avoid multiple evaluation of RTX.
157 2002-05-21 Richard Earnshaw <rearnsha@arm.com>
159 * bitmap.c (bitmap_find_bit): Return early if we have the correct
162 Tue May 21 10:51:54 CEST 2002 Jan Hubicka <jh@suse.cz>
164 * profile.c (gen_edge_profiler): Set alias set before the memory is
167 2002-05-20 David S. Miller <davem@redhat.com>
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
173 (clear_table): Initialize it.
174 (cselib_invalidate_regno): Use it to determine which hard
175 registers to scan when mode is not VOIDmode.
177 2002-05-20 Duraid Madina <duraid@fl.net.au>
179 * tradcpp.c (fixup_newlines): Use old-style function header.
181 2002-05-20 Krister Walfridsson <cato@df.lth.se>
183 * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
185 2002-05-20 H.J. Lu (hjl@gnu.org)
187 Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
189 * config/mips/mips.h (DFMODE_NAN): Defined.
190 (SFMODE_NAN): Likewise.
192 2002-05-20 Dale Johannesen <dalej@apple.com>
194 * combine.c (cant_combine_insn_p): Back out my
197 2002-05-20 Kazu Hirata <kazu@cs.umass.edu>
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.
207 2002-05-20 H.J. Lu (hjl@gnu.org)
209 * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
211 2002-05-20 Nick Clifton <nickc@cambridge.redhat.com>
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.
222 2002-05-20 Richard Henderson <rth@redhat.com>
224 * cse.c (canon_hash): Reorder do_not_record test. Always
225 allow pic_offset_table_rtx.
227 2002-05-19 Toon Moene <toon@moene.indiv.nluug.nl>
229 * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
230 (expand_binop): Ditto (3 times).
232 2002-05-19 Mark Mitchell <mitchell@doubledemon.codesourcery.com>
234 * Makefile.in (distclean): Remove QMTest stuff.
235 (QMTEST_PATH): New variable.
236 (QMTESTFLAGS): Likewise.
237 (QMTESTRUNFLAGS): 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.
246 2002-05-19 Aldy Hernandez <aldyh@redhat.com>
248 * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
249 an altivec register if TARGET_ALTIVEC.
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
257 2002-05-19 Kazu Hirata <kazu@cs.umass.edu>
259 * protoize.c: Fix formatting.
261 2002-05-19 Richard Henderson <rth@redhat.com>
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.
269 2002-05-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
271 * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
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.
288 2002-05-19 Neil Booth <neil@daikokuya.demon.co.uk>
290 * c-common.c (preprocessing_asm): New macro.
291 * c-lex.h (builtin_define, builtin_assert): Use pfile.
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.
309 2002-05-19 Richard Henderson <rth@redhat.com>
311 * varasm.c (default_binds_local_p): Fix typo.
313 2002-05-19 Marek Michalkiewicz <marekm@amelek.gda.pl>
315 * config/avr/avr.c (machine_dependent_reorg): Sign extend the
316 CONST_INT operand to the correct mode after adding 1 to it.
318 2002-05-19 Mark Mitchell <mark@codesourcery.com>
320 * config.gcc (powerpc-wrs-windiss*): New target.
322 2002-05-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
324 * config/rs6000/rs6000.md (ashrdi3_no_power): New.
327 2002-05-18 Mark Mitchell <mark@codesourcery.com>
329 * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
331 * config.in: Regenerated.
332 * configure: Regenerated.
334 2002-05-19 Richard Henderson <rth@redhat.com>
336 * target-def.h (TARGET_BINDS_LOCAL_P): New.
337 * target.h (struct gcc_target): Move boolean fields to the end.
339 * varasm.c (default_binds_local_p): New.
340 * output.h: Declare it.
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.
348 * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
349 (TARGET_BINDS_LOCAL_P): New.
351 2002-05-19 Richard Henderson <rth@redhat.com>
353 * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
354 FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
355 MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
357 * toplev.c (display_help): Kill -a -ax help.
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.
365 * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
366 * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
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.
377 2002-05-19 Richard Henderson <rth@redhat.com>
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.
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.
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.
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.
413 * xcoffout.c: Include target.h
414 * Makefile.in (xcoffout.o): Update.
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.
422 * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
423 STRIP_NAME_ENCODING docs.
425 2002-05-19 Andreas Jaeger <aj@suse.de>
427 * gengenrtl.c: Add prototype for excluded_rtx.
429 * real.h: Add prototype for exact_real_truncate.
431 2002-05-18 Richard Henderson <rth@redhat.com>
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.
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.
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.
473 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
474 (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
476 * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
478 (switch_to_section): Replace in_rdata case with in_readonly_data.
480 * config/h8300/h8300.c (h8300_encode_label): Make static.
481 * config/h8300/h8300-protos.h: Update.
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.
487 * config/v850/v850.c (v850_encode_data_area): Make static.
488 * config/v850/v850-protos.h: Update.
490 * config/vax/vax.c: Include flags.h.
491 (vms_select_section): Fix typo.
493 * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
494 ENCODE_SECTION_INFO docs.
496 2002-05-18 Richard Henderson <rth@redhat.com>
498 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
499 REGISTER_TARGET_PRAGMAS.
500 * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
502 * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
504 2002-05-18 Richard Henderson <rth@redhat.com>
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.
513 * config/darwin.h (SELECT_RTX_SECTION): Move ...
514 * config/darwin.c (machopic_select_rtx_section): ... here.
515 * config/darwin-protos.h: Update.
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.
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.
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.
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
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.
568 * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
569 SELECT_RTX_SECTION docs.
571 Sun May 19 00:24:23 CEST 2002 Jan Hubicka <jh@suse.cz>
573 * i386.md (movsi/movdi): Fix template.
574 (sse2 patterns): Set attributes consistently.
576 * i386.md (pushqi2, ashrqi_*): Fix constraint.
578 2002-05-18 Toon Moene <toon@moene.indiv.nluug.nl>
580 * optabs.c (complex_part_zero_p): New.
581 * (expand_cmplxdiv_straight): Use it.
582 * (expand_cmplxdiv_wide): Ditto.
583 * (expand_binop): Ditto.
585 2002-05-18 Richard Henderson <rth@redhat.com>
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
671 2002-05-18 Jason Thorpe <thorpej@wasabisystems.com>
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.
685 2002-05-18 Kazu Hirata <kazu@cs.umass.edu>
687 * timevar.c: Fix formatting.
689 * toplev.c: Likewise.
690 * tree-dump.c: Likewise.
691 * tree-inline.c: Likewise.
693 2002-05-18 Neil Booth <neil@daikokuya.demon.co.uk>
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.
701 2002-05-17 Zack Weinberg <zack@codesourcery.com>
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.
708 2002-05-18 Neil Booth <neil@daikokuya.demon.co.uk>
710 * defaults.h (UNIQUE_SECTION): Remove.
711 * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
713 2002-05-17 Richard Henderson <rth@redhat.com>
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.
720 2002-05-17 Jason Thorpe <thorpej@wasabisystems.com>
722 * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
724 2002-05-17 Marek Michalkiewicz <marekm@amelek.gda.pl>
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.
731 2002-05-17 Neil Booth <neil@daikokuya.demon.co.uk>
733 * Makefile.in: Update for cpptrad.c.
734 * cpphash.h (struct cpp_buffer): New members for buffer
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.
749 2002-05-17 Neil Booth <neil@daikokuya.demon.co.uk>
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.
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.
762 2002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
764 * doc/install.texi (Specific, mips-sgi-irix6): Document need to
765 bootstrap with -mips3.
767 2002-05-17 Kazu Hirata <kazu@cs.umass.edu>
769 * final.c: Fix formatting.
770 * fix-header.c: Likewise.
772 * fold-const.c: Likewise.
773 * function.c: Likewise.
775 2002-05-17 David S. Miller <davem@redhat.com>
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.
784 2002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
786 * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
788 2002-05-17 kaz Kojima <kkojima@rr.iij4u.or.jp>
790 * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
791 when encoding visibility into SYMBOL_REF_FLAG.
793 2002-05-17 Richard Sandiford <rsandifo@redhat.com>
795 * expr.c (force_operand): Fix reversed move.
797 2002-05-17 Kurt Wall <kwall@kurtwerks.com>
799 * doc/install.texi (Testing): Mention two common DejaGnu warnings
802 2002-05-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
804 * doc/install.texi (Final install): Recommend to install into a
805 "clean" target directory.
807 2002-05-17 Richard Henderson <rth@redhat.com>
809 * config/ia64/ia64.md: Use braced strings instead of quoted strings
810 for code blocks. Tidy whitespace.
812 2002-05-17 Richard Henderson <rth@redhat.com>
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.
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.
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.
837 * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
838 (TARGET_ASM_SELECT_SECTION): New.
839 * config/svr3.h (SELECT_SECTION): Remove.
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.
851 * config/arm/pe.h (UNIQUE_SECTION): Remove.
852 (TARGET_ASM_UNIQUE_SECTION): New.
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.
859 * config/c4x/c4x.h (SELECT_SECTION): Remove.
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.
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.
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.
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.
890 * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
891 (SELECT_SECTION): Move ...
892 * config/m88k/m88k.c (m88k_select_section): ... here.
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.
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.
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.
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.
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.
930 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
931 (SELECT_SECTION): Move ...
932 * config/sparc/sparc.c (sparc_aout_select_section): ... here.
934 * config/v850/v850.h (SELECT_SECTION): Move ...
935 * config/v850/v850.c (v850_select_section): ... here.
936 (TARGET_ASM_SELECT_SECTION): New.
938 * config/vax/vms.h (SELECT_SECTION): Move ...
939 * config/vax/vax.c (vms_select_section): ... here.
940 (TARGET_ASM_SELECT_SECTION): New.
942 * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
943 for the target hooks.
945 2002-05-17 Nick Clifton <nickc@cambridge.redhat.com>
947 * config/arm/arm.c (emit_multi_reg_push): Do not set
948 RTX_FRAME_RELATED_P on the SEQUENCE.
950 2002-05-16 Richard Henderson <rth@redhat.com>
952 * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
953 splitting. Use split_all_insns; update_life_info_in_dirty_blocks.
955 2002-05-16 Richard Henderson <rth@redhat.com>
957 * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
959 * config/ia64/ia64.c (saveable_obstack): Do not declare.
961 2002-05-16 Richard Henderson <rth@redhat.com>
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.
973 2002-05-16 Jason Thorpe <thorpej@wasabisystems.com>
975 * lcm.c (optimize_mode_switching): Revert previous change.
977 2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
979 * sched-rgn.c (schedule_insns): Initialize large_region_blocks
980 with only extant block numbers.
982 2002-05-16 Jason Thorpe <thorpej@wasabisystems.com>
984 * lcm.c (optimize_mode_switching): Fix typo.
986 2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
988 * flow.c (calculate_global_regs_live): Queue blocks in program order.
990 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
992 * doc/install.texi (Configuration): Document PWDCMD.
994 2002-05-16 Dale Johannesen <dalej@apple.com>
996 * combine.c (cant_combine_insn_p): Reenable combinations
997 involving hard regs unless CLASS_LIKELY_SPILLED_P.
999 2002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1013 * c4x/c4x.c (c4x_override_options): Update.
1015 2002-05-16 Zack Weinberg <zack@codesourcery.com>
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__
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.
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
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.
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__.
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.
1053 2002-05-16 Janis Johnson <janis187@us.ibm.com>
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.
1063 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
1075 2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
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):
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):
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
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):
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):
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):
1223 2002-05-16 Mark Mitchell <mark@codesourcery.com>
1225 * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
1227 2002-05-16 Nick Clifton <nickc@cambridge.redhat.com>
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.
1238 2002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
1240 * config/arc/arc.h (CPP_PREDEFINES): Remove.
1242 (TARGET_CPU_CPP_BUILTINS): New.
1244 2002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1251 2002-05-16 Jason Merrill <jason@redhat.com>
1253 * config/mips/mips.c (mips_output_external): Don't do sdata
1254 optimization for a variable with DECL_COMDAT set.
1256 2002-05-15 Aldy Hernandez <aldyh@redhat.com>
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.
1263 2002-05-15 Richard Henderson <rth@redhat.com>
1265 * varasm.c (merge_weak): Remove special case for extern and common.
1267 2002-05-15 Matt Hiller <hiller@redhat.com>
1269 * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
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.
1278 2002-05-15 Aldy Hernandez <aldyh@redhat.com>
1280 * reload1.c (forget_old_reloads_1): Do not use subreg offset.
1282 2002-05-15 Aldy Hernandez <aldyh@redhat.com>
1284 * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
1285 ("altivec_mfvscr"): Read from VSCR.
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.
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.
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.
1314 2002-05-15 Jakub Jelinek <jakub@redhat.com>
1316 * fold-const.c (fold): Fix a typo.
1318 2002-05-15 Eric Botcazou <ebotcazou@multimania.com>
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
1326 2002-05-15 Richard Henderson <rth@redhat.com>
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.
1333 Wed May 15 10:38:27 CEST 2002 Jan Hubicka <jh@suse.cz>
1335 * invoke.texi (-malign-double): Re-add lost warning.
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.
1341 * dwarf2out.c (output_call_frame_info): Do not skip unwind info
1342 when flag_asynchronous_unwind_tables is set.
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):
1362 Thu Jan 3 21:52:09 CET 2002 Jan Hubicka <jh@suse.cz>
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.
1369 Thu Dec 20 22:14:00 CET 2001 Jan Hubicka <jh@suse.cz>
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.
1378 * function.h (function): Add new field function_frequency.
1379 * predict.c (compute_function_frequency): New function.
1380 (estimate_probability): Call it.
1382 2002-03-09 Jakub Jelinek <jakub@redhat.com>
1384 PR optimization/5172, optimization/5200
1385 * gcse.c (gcse_main): Disable store_motion.
1387 2002-05-14 Zack Weinberg <zack@codesourcery.com>
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.
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__.
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.
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.
1421 2002-05-14 John David Anglin <dave@hiauly1.hia.nrc.ca>
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
1427 (following_call): Return 0 when scheduling for PA8000 or generating
1428 dwarf2 call frame information. Revise comment.
1430 2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1439 2002-05-14 Richard Henderson <rth@redhat.com>
1441 * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
1442 (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
1444 2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
1446 * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
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.
1458 2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1465 * lang-specs.h: Similarly.
1467 2002-05-14 Vladimir Makarov <vmakarov@redhat.com>
1469 * genautomata.c (transform_3): Add code for transformation
1470 `(A,B,...)+C -> A+C,B,...'.
1472 Tue May 14 12:48:22 CEST 2002 Jan Hubicka <jh@suse.cz>
1474 * final.c (end_final): Do not output profile_arcs constructor, when
1475 no functions are instrumented.
1477 Tue May 14 12:38:30 CEST 2002 Jan Hubicka <jh@suse.cz>
1479 * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
1481 2002-05-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1483 * doc/install.texi: Remove special markup originally required for
1484 HTML generation with texi2html.
1486 2002-05-14 Andreas Schwab <schwab@suse.de>
1488 * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
1490 (UNIQUE_SECTION): Define to get small data correctly.
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.
1499 2002-05-14 Richard Henderson <rth@redhat.com>
1501 * config/i386/i386.md: Use define_constants for unspec numbers.
1502 * config/i386/i386.c: Likewise.
1504 2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
1506 * doc/contrib.texi: Update my entry.
1508 2002-05-13 Mark Mitchell <mark@codesourcery.com>
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.
1515 2002-05-13 Zack Weinberg <zack@codesourcery.com>
1517 * genattr.c (gen_attr): Don't emit a comma after the last
1520 2002-05-13 Richard Henderson <rth@redhat.com>
1522 * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
1524 * recog.c (peephole2_optimize): Likewise.
1526 2002-05-13 Andris Pavenis <pavenis@lanet.lv>
1528 * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
1531 2002-05-13 Jeffrey A Law (law@redhat.com)
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
1540 * i386.c (ia32_multipass_dfa_lookahead): Prototype.
1542 * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
1543 (ia32_multipass_dfa_lookahead): New function.
1545 2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
1547 * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
1548 (translate_options): Remove 'V'.
1549 (process_command): Similarly.
1551 * invoke.texi: Remove documentation of 'V'.
1553 2002-05-13 Ulrich Weigand <uweigand@de.ibm.com>
1555 * config/s390/linux.h: Revert 2002-04-22 changes.
1557 2002-05-13 Scott Marks <SMarks@mobile-mind.com>
1559 * config/fr30/fr30.md: Only allow splits of immediate loads
1560 if the destination is a register.
1562 2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
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.
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.
1584 * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
1585 (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
1587 2002-05-12 Zack Weinberg <zack@codesourcery.com>
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
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.
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
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.
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
1629 * toplev.c (rest_of_compilation): Don't call
1630 clear_const_double_mem.
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.
1641 2002-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1643 * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
1645 2002-05-12 Tom Tromey <tromey@redhat.com>
1647 * tree.h (copy_node): Don't mention TREE_PERMANENT.
1649 2002-05-12 Zack Weinberg <zack@codesourcery.com>
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
1656 * genattrtab.c (n_comma_elts): Moved to gensupport.c.
1657 (next_comma_elt): Use scan_comma_elt.
1659 * config/i386/i386.md: Use new attribute notation to break up
1660 long lines in define_attr forms.
1662 2002-05-12 Richard Henderson <rth@redhat.com>
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.
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.
1676 2002-05-12 Richard Henderson <rth@redhat.com>
1678 * profile.h (profile_info): Add missing extern to declaration.
1679 * profile.c (profile_info): Define it.
1681 2002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
1683 * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
1684 used for DImode and TImode.
1686 2002-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
1688 * cpplex.c (_cpp_lex_direct): When in a directive at EOF
1691 2002-05-11 Zack Weinberg <zack@codesourcery.com>
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.
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.
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
1715 * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
1716 Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
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.
1723 * doc/extend.texi: Document shortcall attribute.
1724 * doc/invoke.texi: Document -mlongcall, -mno-longcall.
1726 2002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
1728 * reorg.c (dbr_schedule): Remove unnecessary test.
1730 Sat May 11 14:34:35 CEST 2002 Jan Hubicka <jh@suse.cz>
1732 * i386.md (testsi to testqi spliters): New.
1734 2002-01-14 Josef Zlomek <zlomek@matfyz.cz>
1736 cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
1738 Wed Jan 9 2002 Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
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.
1744 Mon Nov 12 16:25:53 CET 2001 Jan Hubicka <jh@suse.cz>
1746 * cfglayout.c (cleanup_unconditional_jumps): New static function.
1747 (cfg_layout_initialize): Use it.
1749 2002-05-11 Marek Michalkiewicz <marekm@amelek.gda.pl>
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.
1755 2002-05-11 Kazu Hirata <kazu@cs.umass.edu>
1757 * dbxout.c: Fix formatting.
1758 * dependence.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.
1768 2002-05-10 Richard Henderson <rth@redhat.com>
1770 * final.c (end_final): Tidy whitespace. Don't honor flag_pack_struct.
1771 Convert integers constants as needed. Replace "nwords" field with
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".
1777 2002-05-10 Roger Sayle <roger@eyesopen.com>
1779 * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
1780 into the equivalent (signed char)c > 0.
1782 2002-05-10 Janis Johnson <janis187@us.ibm.com>
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).
1791 2002-05-10 David S. Miller <davem@redhat.com>
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.
1801 * cse.c (rtx_cost): Remove multiplication by power of 2 special
1804 2002-05-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
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.
1810 2002-05-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1812 * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
1813 . as N64/N32 libgcc_s.so subdirs.
1815 2002-05-10 David S. Miller <davem@redhat.com>
1817 * config/sparc/sparc.md: Use define_constants for unspec numbers.
1819 * rtl.h (struct rtx_def): Document unchanging and in_struct flags
1821 (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
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.
1830 2002-05-10 Marek Michalkiewicz <marekm@amelek.gda.pl>
1832 * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
1833 before using SYMBOL_REF_FLAG (addr).
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.
1841 2002-05-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1843 * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
1845 2002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1867 2002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
1869 * cppexp.c (_cpp_expand_op_stack): Set op_limit.
1871 2002-05-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1873 * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
1874 (SHLIB_LINK, SHLIB_INSTALL): Adjust.
1876 2002-05-09 Jakub Jelinek <jakub@redhat.com>
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.
1883 2002-05-09 Jakub Jelinek <jakub@redhat.com>
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
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.
1895 2002-05-09 Richard Henderson <rth@redhat.com>
1897 * config/ia64/ia64.md: Use define_constants for unspec numbers.
1898 * config/ia64/ia64.c: Likewise.
1900 2002-05-09 Richard Sandiford <rsandifo@redhat.com>
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.
1907 Thu May 9 11:50:09 2002 Jeffrey A Law (law@cygnus.com)
1909 * athlon.md, k6.md, pentium.md, ppro.md): New files.
1910 * i386.md: Move scheduling information into new files.
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
1917 (sbb insns): Explicitly set pent_pair attribute on a couple
1918 that were missing it.
1920 Thu May 9 18:29:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
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
1927 2002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
1929 * tree.h (preserve_data, object_permanent_p, type_precision):
1932 2002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
1934 * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
1935 * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
1937 * cpp.texi: Update for removal of obsolete features.
1939 Thu May 9 07:46:18 2002 Jan Hubicka <jh@suse.cz>
1940 Jeffrey A Law (law@redhat.com)
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.
1950 Thu May 9 14:55:39 CEST 2002 Jan Hubicka <jh@suse.cz>
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.
1956 Thu May 9 14:52:45 CEST 2002 Jan Hubicka <jh@suse.cz>
1957 Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
1959 * final.c (end_final): Use C trees to output data structures for profiling.
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
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
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
1991 (end_branch_prob): Removed da_file checking, done in get_exec_counts
1993 * gcov.texi: Updated information about gcov file format.
1995 2002-05-09 Kazu Hirata <kazu@cs.umass.edu>
1997 * sbitmap.c: Fix formatting.
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.
2008 * ssa-ccp.c: Likewise.
2009 * ssa-dce.c: Likewise.
2011 * stor-layout.c: Likewise.
2012 * stringpool.c: Likewise.
2014 2002-05-09 David S. Miller <davem@redhat.com>
2016 * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2018 2002-05-07 David S. Miller <davem@redhat.com>
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.
2026 2002-05-09 Jason Thorpe <thorpej@wasabisystems.com>
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.
2036 2002-05-08 Kazu Hirata <kazu@cs.umass.edu>
2038 * read-rtl.c: Fix formatting.
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.
2049 * rtl-error.c: Likewise.
2051 2002-05-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
2053 * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2054 * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2056 2002-05-08 Bernd Schmidt <bernds@redhat.com>
2058 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2059 use __SSE2__ macro instead.
2060 * config/i386/xmmintrin.h: Likewise.
2062 2002-05-08 Janis Johnson <janis187@us.ibm.com>
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.
2070 2002-05-08 Robert Spier <rspier@pobox.com>
2071 Neil Booth <neil@daikokuya.demon.co.uk>
2073 PR preprocessor/6521
2074 * cppfiles.c (handle_missing_header): Don't do anything
2075 different for <> includes.
2077 * cppopts.texi: Update documentation for -MG.
2079 2002-05-08 Neil Booth <neil@daikokuya.demon.co.uk>
2081 * cpplex.c (cpp_interpret_charconst): Truncate as well as
2084 * cpp.texi: Clarify multichar charconst valuation.
2086 2002-05-08 Mark Mitchell <mark@codesourcery.com>
2088 * doc/invoke.texi: Document -mwindiss option.
2090 2002-05-08 Jason Merrill <jason@redhat.com>
2092 * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
2094 * dwarf2out.c (gen_type_die): Abort on broken recursion.
2097 * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
2100 2002-05-08 Nick Clifton <nickc@cambridge.redhat.com>
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.
2107 2002-05-08 Mark Mitchell <mark@codesourcery.com>
2110 * varasm.c (mark_weak): New function.
2111 (merge_weak): Use it. Do not call declare_weak.
2112 (declare_weak): Use merge_weak.
2114 Wed May 8 13:12:11 CEST 2002 Jan Hubicka <jh@suse.cz>
2116 * cse.c (dead_libcall_p): Update counts.
2117 (delete_trivially_dead_insns): Update call of dead_libcall_p.
2119 Wed May 8 11:08:50 CEST 2002 Jan Hubicka <jh@suse.cz>
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.
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.
2143 * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
2144 (fixup_reorder_chain): properly handle edges to exit block.
2146 Wed May 8 11:10:31 CEST 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2147 Jan Hubicka <jh@suse.cz>
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
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):
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.
2177 2002-05-08 Richard Sandiford <rsandifo@redhat.com>
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.
2184 2002-05-07 Kazu Hirata <kazu@cs.umass.edu>
2186 * toplev.c: Fix formatting.
2188 2002-05-07 Janis Johnson <janis187@us.ibm.com>
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.
2194 2002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
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.
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.
2212 * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
2214 2002-05-07 Mark Mitchell <mark@codesourcery.com>
2216 * fixinc/inclhack.def (windiss_math1): New fix.
2217 (windiss_math2): Likewise.
2218 (windiss_valist): Likewise.
2219 * fixinc/fixincl.x: Regenerated.
2221 2002-05-07 Andreas Jaeger <aj@suse.de>
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.
2227 Tue May 7 10:06:22 2002 Jeffrey A Law (law@redhat.com)
2229 * pa.c (hppa_profile_hook): Use force_reg to get the address
2230 of the profile hook into an appropriate pseudo register.
2232 2002-05-07 Mark Mitchell <mark@codesourcery.com>
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
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.
2251 2002-05-07 Aldy Hernandez <aldyh@redhat.com>
2253 * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2255 2002-05-06 David S. Miller <davem@redhat.com>
2257 * config/sparc/sparc.md (shift insns): Do not mask off
2258 second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
2261 2002-05-06 Richard Henderson <rth@redhat.com>
2264 * expr.c (highest_pow2_factor_for_type): New.
2265 (expand_assignment): Use it.
2267 2002-05-06 Aldy Hernandez <aldyh@redhat.com>
2269 * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
2271 ("altivec_mfvscr"): Same.
2273 2002-05-06 Janis Johnson <janis187@us.ibm.com>
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.
2286 2002-05-06 Janis Johnson <janis187@us.ibm.com>
2288 * doc/rtl.texi (Flags): Update to reflect current usage.
2290 2002-05-06 Roger Sayle <roger@eyesopen.com>
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.
2299 2002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2315 * cpp.texi: Update documentation.
2317 2002-05-06 Vladimir Makarov <vmakarov@redhat.com>
2319 * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
2320 Fix typo in usage of allof instead of unit.
2322 2002-05-06 Richard Henderson <rth@redhat.com>
2324 * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
2325 and any jump or call for IN.
2327 2002-05-06 Bernd Schmidt <bernds@redhat.com>
2329 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
2331 * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
2333 2002-05-06 Roger Sayle <roger@eyesopen.com>
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.
2341 2002-05-06 Jeff Law <law@redhat.com>
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.
2351 2002-05-06 Catherine Moore <clm@redhat.com>
2353 * config/v850/v850.c (compute_register_save_size): Make sure
2354 to count all of the registers that will be saved.
2356 Mon May 6 18:03:11 CEST 2002 Jan Hubicka <jh@suse.cz>
2358 * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
2360 2002-05-06 David S. Miller <davem@redhat.com>
2362 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
2363 allow result to overlap input operands in memory.
2365 2002-05-06 Neil Booth <neil@daikokuya.demon.co.uk>
2368 * cpp.texi: Update multichar charconst docs.
2370 2002-05-06 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2377 2002-05-05 Jakub Jelinek <jakub@redhat.com>
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.
2386 2002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
2388 * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
2390 2002-05-05 Jakub Jelinek <jakub@redhat.com>
2393 * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
2395 2002-05-05 Richard Henderson <rth@redhat.com>
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.
2406 * config/alpha/ev4.md: New.
2407 * config/alpha/ev5.md: New.
2408 * config/alpha/ev6.md: New.
2410 2002-05-05 David S. Miller <davem@redhat.com>
2412 * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
2414 2002-05-05 Kazu Hirata <kazu@cs.umass.edu>
2416 * cse.c: Fix formatting.
2417 * emit-rtl.c: Likewise.
2419 2002-05-05 Vladimir Makarov <vmakarov@redhat.com>
2421 * genautomata.c (initiate_states): Add additional guard to
2422 initialize `units_array'.
2424 2002-05-05 Vladimir Makarov <vmakarov@redhat.com>
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
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
2448 * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
2449 automaton `ultrasparc3_1'.
2451 2002-05-05 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2462 2002-05-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2464 * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
2466 2002-05-04 David S. Miller <davem@redhat.com>
2468 * config/sparc/linux.h, config/sparc/linux64.h
2469 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
2471 * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
2473 * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
2475 * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
2478 2002-05-05 Tim Josling <tej@melbpc.org.au>
2480 * treelang; New directory for new sample language treelang.
2482 2002-05-04 Neil Booth <neil@daikokuya.demon.co.uk>
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
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.
2498 * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
2500 2002-05-04 Neil Booth <neil@daikokuya.demon.co.uk>
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
2510 2002-05-04 Bernd Schmidt <bernds@redhat.com>
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
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
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):
2533 * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
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
2574 (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
2575 _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
2577 2002-05-04 Kazu Hirata <kazu@cs.umass.edu>
2579 * dwarf2out.c: Fix formatting.
2580 * varasm.c: Likewise.
2582 2002-05-04 David Edelsohn <edelsohn@gnu.org>
2585 * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
2586 clobber and use result as temporary value.
2588 Sat May 4 13:20:54 CEST 2002 Jan Hubicka <jh@suse.cz>
2590 * expr.c (force_operand): Use expand_simple_* to handle more
2593 2002-05-04 Neil Booth <neil@daikokuya.demon.co.uk>
2595 * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
2597 (lex_charconst): Update for change in prototype of
2598 cpp_interpret_charconst. Extend from cppchar_t to HOST_WIDE_INT
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.
2616 2002-05-03 David S. Miller <davem@redhat.com>
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
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.
2631 * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
2632 checks on it, always defined for Sparc.
2634 * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
2635 Tweak, and add more detailed comments.
2637 2002-05-03 Zack Weinberg <zack@codesourcery.com>
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.
2645 2002-05-03 Jason Thorpe <thorpej@wasabisystems.com>
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).
2653 2002-05-03 David S. Miller <davem@redhat.com>
2655 * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
2656 * target.h (struct gcc_target): Delete cycle_display member.
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.
2663 2002-05-03 Richard Henderson <rth@redhat.com>
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.
2670 2002-05-03 David S. Miller <davem@redhat.com>
2672 * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
2675 2002-05-03 Aldy Hernandez <aldyh@redhat.com>
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.
2685 2002-05-03 David S. Miller <davem@redhat.com>
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.
2701 2002-05-03 Richard Henderson <rth@redhat.com>
2703 * recog.c (store_data_bypass_p, if_test_bypass_p): New.
2704 * recog.h: Declare them.
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.
2710 2002-05-03 Jason Thorpe <thorpej@wasabisystems.com>
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
2716 (CPP_ARCH64_SPEC): Likewise.
2717 (NO_BUILTIN_PTRDIFF_TYPE): Undef.
2718 (NO_BUILTIN_SIZE_TYPE): Undef.
2720 2002-05-03 Vladimir Makarov <vmakarov@redhat.com>
2722 * genautomata.c (min_issue_delay_pass_states): Change return type
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.
2729 Fri May 3 22:59:15 CEST 2002 Jan Hubicka <jh@suse.cz>
2731 * cfgcleanup.c (try_optimize_cfg): Call merge_block only when
2734 Fri May 3 22:53:37 CEST 2002 Jan Hubicka <jh@suse.cz>
2736 * i386.c (expand_movstr, expand_clrstr): Fix inline-all-stringops
2739 2002-05-03 Richard Henderson <rth@redhat.com>
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.
2747 2002-05-03 Joseph S. Myers <jsm28@cam.ac.uk>
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.
2754 2002-05-03 Jason Thorpe <thorpej@wasabisystems.com>
2756 * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
2757 (LINK_SPEC): Undef before defining.
2759 2002-05-03 Jakub Jelinek <jakub@redhat.com>
2761 PR preprocessor/6489
2762 * tradcpp.c (fixup_newlines): New.
2763 (main, finclude): Use it.
2765 2002-05-03 Richard Sandiford <rsandifo@redhat.com>
2767 * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
2768 * config/mips/mips.c (mips_unique_section): Strip encoding from
2771 2002-05-03 Jakub Jelinek <jakub@redhat.com>
2773 * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
2776 2002-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
2786 2002-05-03 Jakub Jelinek <jakub@redhat.com>
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.
2794 2002-05-03 Kazu Hirata <kazu@cs.umass.edu>
2796 * config/h8300/crti.asm: Remove trailing spaces.
2797 * config/h8300/h8300.c: Likewise.
2798 * config/h8300/lib1funcs.asm: Likewise.
2800 2002-05-02 Jason Merrill <jason@redhat.com>
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.
2808 2002-05-03 Kazu Hirata <kazu@cs.umass.edu>
2810 * regrename.c: Fix formatting.
2813 Fri May 3 13:34:43 CEST 2002 Jan Hubicka <jh@suse.cz>
2815 * i386.md (attribute memory): Handle compares properly.
2817 Fri May 3 10:51:38 CEST 2002 Jan Hubicka <jh@suse.cz>
2819 * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
2822 2002-05-02 Kazu Hirata <kazu@cs.umass.edu>
2824 * function.c: Fix formatting.
2826 2002-05-02 Jan Hubicka <jh@suse.cz>
2828 * haifa-sched.c (schedule_insn): Print table of instructions and
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
2836 2002-05-02 Richard Henderson <rth@redhat.com>
2838 * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
2839 emitted by cycle_display.
2841 2002-05-02 Loren J. Rittle <ljrittle@acm.org>
2843 * doc/install.texi (*-*-freebsd*): Update to latest status.
2845 2002-05-02 Jakub Jelinek <jakub@redhat.com>
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.
2852 2002-05-02 Vladimir Makarov <vmakarov@redhat.com>
2854 * genattrtab.c (write_function_unit_info): Add a dummy element
2855 when num_units == 0.
2857 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2859 * predict.c: (propagate_freq, estimate_bb_frequencies): Use
2860 TYPE_MODE (double_type_node) instead of DFmode.
2862 Thu May 2 19:50:04 CEST 2002 Jan Hubicka <jh@suse.cz>
2864 * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
2866 * toplev.c (rest_of_compilation): Revert Richard's patch.
2868 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
2870 * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
2872 2002-05-02 Catherine Moore <clm@redhat.com>
2874 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
2876 2002-05-02 Kazu Hirata <kazu@hxi.com>
2878 * combine.c: Fix comment typos.
2880 * genautomata.c: Likewise.
2884 2002-05-02 Joseph S. Myers <jsm28@cam.ac.uk>
2886 * doc/install.texi: State GNAT version requirements.
2888 2002-05-02 Nick Clifton <nickc@cambridge.redhat.com>
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.
2894 2002-05-02 Aldy Hernandez <aldyh@redhat.com>
2896 * gcc.dg/altivec-8.c: New.
2898 * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
2899 PRE_INC and PRE_DEC for altivec modes.
2901 2002-05-01 Bruce Korb <bkorb@gnu.org>
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
2907 2002-05-01 Jeff Law <law@redhat.com>
2909 * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
2912 2002-05-01 Joel Brobecker <brobecker@gnat.com>
2914 * dbxout.c (dbxout_type): Emit size information for range types,
2915 as well, but only when using GDB extensions.
2917 2002-05-01 Richard Henderson <rth@redhat.com>
2919 * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
2920 target-independent gnu binutils date test.
2922 2002-05-01 Richard Henderson <rth@redhat.com>
2924 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
2925 info before expunging the block.
2927 2002-05-01 Jakub Jelinek <jakub@redhat.com>
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.
2933 2002-05-01 Zack Weinberg <zack@codesourcery.com>
2935 * config.gcc: Correct test of --enable-obsolete. Obsolete all
2936 A29k configurations.
2937 * doc/install.texi: Update to match.
2939 2002-05-01 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2942 * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
2943 for duplicates. Always loop over whole list.
2945 Wed May 1 10:32:37 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2947 * reload.c (find_reloads, case 'p'): Set BADOP to 0.
2949 2002-05-01 Joel Sherrill <joel@OARcorp.com>
2951 * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
2954 2002-05-01 Joel Sherrill <joel@OARcorp.com>
2956 * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
2958 2002-05-01 David Edelsohn <edelsohn@gnu.org>
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.
2968 (fix_trunctfdi2): Same.
2969 (fix_trunctfsi2): Same.
2971 2002-05-01 Joseph S. Myers <jsm28@cam.ac.uk>
2973 * doc/install.texi: Update Texinfo version requirement
2976 2002-05-01 Jakub Jelinek <jakub@redhat.com>
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.
2986 2002-05-01 Aldy Hernandez <aldyh@redhat.com>
2988 * gcc.dg/altivec-7.c: New.
2990 * config/rs6000/altivec.h: Cleanup.
2992 2002-04-30 Aldy Hernandez <aldyh@redhat.com>
2994 * doc/invoke.texi (Option Summary): Add -mvrsave=.
2995 (RS/6000 and PowerPC Options): Document -mvrsave=.
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.
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.
3009 2002-04-30 Richard Henderson <rth@redhat.com>
3012 * toplev.c (rest_of_compilation): Don't run cross-jump before
3015 2002-04-30 Tom Rix <trix@redhat.com>
3017 * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
3018 check which_alternative.
3020 2002-04-30 Kazu Hirata <kazu@hxi.com>
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.
3030 2002-04-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
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.
3039 2002-04-30 Hans-Peter Nilsson <hp@bitrange.com>
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
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
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.
3062 * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
3065 * config/mmix/mmix.md ("divmoddi4"): Update head comment.
3067 2002-04-30 Richard Henderson <rth@redhat.com>
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.
3079 2002-04-30 Janis Johnson <janis187@us.ibm.com>
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.
3084 Tue Apr 30 19:15:36 CEST 2002 Jan Hubicka <jh@suse.cz>
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.
3097 Tue Apr 30 09:31:59 2002 Jeffrey A Law (law@cygnus.com)
3099 * pa.c (override_options): Default to PA8000 scheduling.
3100 * doc/invoke.texi (HP-PA options): Mention newly added 7300
3101 scheduling parameter.
3103 * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
3104 handling of double precision multiplies.
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.
3111 2002-04-30 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3113 * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
3114 mips. Add two missing commas.
3116 2002-04-30 Paolo Carlini <pcarlini@unitus.it>
3118 * doc/contrib.texi (Contributors): Update Paolo Carlini's
3119 and Benjamin Kosnik's entries.
3121 2002-04-29 David S. Miller <davem@redhat.com>
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.
3128 2002-04-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3130 * combine.c (find_split_point): Use gen_int_mode.
3132 2002-04-29 Vladimir Makarov <vmakarov@redhat.com>
3134 Merging code from dfa-branch:
3136 2002-04-24 Vladimir Makarov <vmakarov@redhat.com>
3138 * genautomata.c (output_reserv_sets): Fix typo.
3140 2002-04-23 Vladimir Makarov <vmakarov@redhat.com>
3142 * genautomata.c (output_reserv_sets): Remove
3143 next_cycle_output_flag.
3145 Thu Apr 18 08:57:06 2002 Jeffrey A Law (law@redhat.com)
3147 * sched-rgn.c (init_ready_list): Make the DFA code handle
3148 USE/CLOBBER insns in the same way as the traditional
3150 (new_ready): Similarly..
3152 2002-04-17 Vladimir Makarov <vmakarov@redhat.com>
3154 * haifa-sched.c (schedule_block): Change the DFA state only after
3157 Wed Apr 17 15:38:36 2002 Jeffrey A Law (law@redhat.com)
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
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
3173 2002-03-30 David S. Miller <davem@redhat.com>
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
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.
3198 2002-03-22 Vladimir Makarov <vmakarov@redhat.com>
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.
3204 * doc/md.texi: Add reference for automaton based pipeline
3207 2002-03-04 Vladimir Makarov <vmakarov@redhat.com>
3209 * doc/passes.texi: Add missed information about genattrtab.
3211 2002-03-01 Vladimir Makarov <vmakarov@redhat.com>
3213 * genautomata.c (output_automata_list_transition_code): Check
3214 automata_list on NULL.
3216 2002-02-28 Vladimir Makarov <vmakarov@redhat.com>
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.
3223 2002-02-22 Vladimir Makarov <vmakarov@redhat.com>
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
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):
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.
3250 2002-02-21 Vladimir Makarov <vmakarov@redhat.com>
3252 * genautomata.c (add_excls, add_presence_absence): Check that
3253 cpu units in the sets belong the same automaton.
3255 * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
3256 about that cpu units in the sets belong the same automaton.
3258 * doc/md.texi: Ditto.
3260 2001-12-20 Naveen Sharma <naveens@noida.hcltech.com>
3261 Nitin Gupta <niting@noida.hcltech.com>
3263 * config/sh/sh.c (sh_use_dfa_interface): New function.
3265 (sh_issue_rate): New Function.
3266 TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
3267 TARGET_SCHED_ISSUE_RATE: define.
3269 * config/sh/sh.md: Add DFA based pipeline description for SH4.
3271 (define_attr insn_class): New attribute used for DFA
3273 (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
3274 (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
3275 cmpeqdi_t): Likewise.
3277 (add,addc1,addsi3,subc,subc1,*subsi3_internal,
3278 negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
3280 (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
3282 2001-10-03 Vladimir Makarov <vmakarov@toke.toronto.redhat.com>
3284 * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
3287 2001-10-03 Vladimir Makarov <vmakarov@toke.toronto.redhat.com>
3289 * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
3290 (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
3292 (output_dfa_start_func): Initiate new variable insn_codes_length,
3293 (write_automata): Output definition of the new variable.
3295 2001-10-02 David S. Miller <davem@redhat.com>
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
3303 2001-10-02 Richard Sandiford <rsandifo@redhat.com>
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.
3309 2001-09-28 David S. Miller <davem@redhat.com>
3311 * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
3312 ultrasparc and 3 for other multi-issue sparcs.
3314 2001-09-27 David S. Miller <davem@redhat.com>
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.
3320 2001-09-25 David S. Miller <davem@redhat.com>
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):
3339 2001-09-24 David S. Miller <davem@redhat.com>
3341 * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
3342 ready->vec[foo] not ready[foo].
3344 2001-09-07 Vladimir Makarov <vmakarov@redhat.com>
3346 * doc/md.texi: Correct examples for define_insn_reservations
3349 2001-09-07 Vladimir Makarov <vmakarov@redhat.com>
3351 * genautomata.c (create_automata): Print message about creation of
3353 (generate): Remove printing meease about creation of
3356 2001-09-05 David S. Miller <davem@redhat.com>
3358 * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3359 * config/sparc/linux64.h: Likewise.
3361 2001-08-31 Vladimir Makarov <vmakarov@redhat.com>
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.
3367 * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
3370 * sched-vis.c (get_visual_tbl_length): Ditto.
3372 2001-08-27 Richard Henderson <rth@redhat.com>
3374 * genattr.c (main): Emit state_t even when not doing scheduling.
3376 2001-08-27 Richard Henderson <rth@redhat.com>
3378 * genautomata.c (expand_automata): Always create a description.
3380 2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
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
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.
3391 * genattrtab.h: New file.
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
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.
3403 * genautomata.c: New file.
3405 * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
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.
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
3419 (TARGET_SCHED): Use the new macros.
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.
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
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
3445 (ready_element, ready_remove): New functions for automaton