1 2003-02-28 Joel Sherrill <joel@OARcorp.com>
4 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
5 this constant defaults to 1.
7 2003-02-28 Bob Wilson <bob.wilson@acm.org>
9 * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
11 2003-02-28 Richard Earnshaw <rearnsha@arm.com>
13 * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
14 ARMv5e processor, not just for XScale. Instructions are predicable.
15 (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
17 2003-02-28 Nick Clifton <nickc@redhat.com>
19 * config/arm/arm.c (note_invalid_constants): Change parameter type
22 2003-02-28 Kazu Hirata <kazu@cs.umass.edu>
24 * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
26 (*tst_extzv_memqi_1_n): Likewise.
29 2002-02-28 Richard Sandiford <rsandifo@redhat.com>
31 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
34 Fri Feb 28 11:09:14 CET 2003 Jan Hubicka <jh@suse.cz>
36 * combine.c (gen_lowpart_for_combine): Update handling of
38 * flow.c (life_analysis, mark_used_regs): Likewise.
39 * regclass.c (subregs_of_mode): Turn into single bitmap.
40 (cannot_change-mode_set_regs, invalid_mode_change_p): Update
41 dealing with subregs_of_mode
42 * regs.h (subregs_of_mode): Update prototype.
44 2003-02-28 Josef Zlomek <zlomekj@suse.cz>
46 * emit-rtl.c (set_reg_attrs_for_parm): New function.
47 * rtl.h (set_reg_attrs_for_parm): New exported function.
48 * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
49 set_reg_attrs_from_mem.
51 2003-02-27 Roger Sayle <roger@eyesopen.com>
52 Zack Weinberg <zack@codesourcery.com>
54 * gcc.c (do_spec_1): Treat %U like %u for unique associations.
56 2003-02-27 Kazu Hirata <kazu@cs.umass.edu>
58 * reload1.c (sext_for_mode): Remove.
59 (reload_cse_move2add): Use trunc_int_for_mode instead of
61 (move2add_note_store): Likewise.
62 Reset register information if we see a set in non-integer
65 2003-02-27 David Edelsohn <edelsohn@gnu.org>
67 * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
69 (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
70 * config/rs6000/aix51.h: Same.
71 * config/rs6000/aix52.h: Same.
72 * config/rs6000/power4.md: Additional VMX bypasses.
74 2003-02-27 Geert Bosch <bosch@gnat.com>
76 * toplev.c (print_version): Add indentation for GGC heuristics and
77 output after printing version information.
79 2003-02-27 James E Wilson <wilson@tuliptree.org>
81 * combine.c (simplify_comparison): Require integral mode when
82 permuting SUBREG with AND.
84 2003-02-27 Steve Ellcey <sje@cup.hp.com>
86 * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
88 2003-02-27 Nick Clifton <nickc@redhat.com>
90 * config/arm/arm.md (extendsfdf2): Add pattern accidentally
91 deleted when cirrus instructions were added.
93 2003-02-27 Jason Thorpe <thorpej@wasabisystems.com>
95 * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
96 POSIX thread support by default.
98 2003-02-27 Roger Sayle <roger@eyesopen.com>
100 * config/i386/cygwin.h: Don't include any other files directly.
101 * config/i386/mingw32.h: Don't include cygwin.h directly.
102 * config.gcc (cygwin, mingw32, uwin): Instead make these files
103 explicit in the tm_files variable.
105 2003-02-27 Alan Modra <amodra@bigpond.net.au>
107 * config/rs6000/rs6000.md: Add TI constant splitter.
109 2003-02-26 Alexandre Oliva <aoliva@redhat.com>
111 * builtins.c (purge_builtin_constant_p): Handle subreg of
114 * function.c (assign_stack_local_1): Truncate constant added to
115 frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
117 2003-02-26 David Edelsohn <edelsohn@gnu.org>
119 * config.gcc: Add power4 to PowerPC with_cpu list.
121 Wed Feb 26 19:46:25 CET 2003 Jan Hubicka <jh@suse.cz>
123 * objc-act.c: (mark_referenced_methods): Fix compilation problem.
125 2003-02-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
127 * gcov-dump.c (print_prefix): Fix signedness warning.
128 * gcov-io.h (struct counter_section, struct counter_section_data): New.
129 (struct function_info): n_arc_counts field removed, n_counter_sections,
130 counter_sections fields added.
131 (struct gcov_info): arc_counts, n_arc_counts fields removed,
132 n_counter_sections, counter_sections fields added.
133 * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
135 * profile.h (MAX_COUNTER_SECTIONS): New.
136 (struct section_info): New.
137 (struct profile_info): count_instrumented_edges,
138 count_edges_instrumented_now fields removed, n_sections, section_info
140 (find_counters_section): Declare.
141 * profile.c (struct function_list): count_edges field removed,
142 n_counter_sections, counter_sections fields added.
143 (set_purpose, label_for_tag, build_counter_section_fields,
144 build_counter_section_value, build_counter_section_data_fields,
145 build_counter_section_data_value, build_function_info_fields,
146 build_function_info_value, build_gcov_info_fields,
147 build_gcov_info_value): New static functions.
148 (find_counters_section): New function.
149 (instrument_edges, get_exec_counts, compute_branch_probabilities,
150 branch_prob, create_profiler): Modified to support multiple profile
153 2003-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
155 * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
156 is 8 * STACK_BOUNDARY.
157 * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
159 2003-02-26 Michael Matz <matz@suse.de>
161 * ra-colorize.c (merge_moves): Fix list handling.
163 2003-02-26 Nick Clifton <nickc@redhat.com>
165 * config/arm/arm.c (is_load_address): Rename to...
166 (arm_memory_load_p) ... this and make it check for SUBREGs and
167 constant loads that will be converted into loads from the
169 (is_cirrus_insn): Rename to ...
170 (arm_cirrus_insn_p): ... this, for consistency. Replace test
171 of CIRRUS_NO with CIRRUS_NOT.
172 (cirrus_reorg): Use renamed functions.
173 (note_invalid_constants): Change from a void function to bool.
174 Add an extra parameter, saying whether the fixups should be
175 pushed. Return true if fixups are needed.
176 (arm_reorg): Use renamed functions. Use INSN_P. Replace test
177 of CIRRUS_NO with CIRRUS_NOT.
178 * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
179 other floating point co-processors can also affect this.
180 * config/arm/arm.md ("type" attribute): Add mav_farith and
181 mav_dmult. Replace references to "cirrus_type" attribute with
183 * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
184 ("cirrus_type" attribute): Delete - use "type" instead.
185 ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
188 Tue Feb 25 22:46:27 CET 2003 Jan Hubicka <jh@suse.cz>
190 * objc-act.c: Include cgraph.h
191 (mark_referenced_methods): New function.
192 (objc_init): Call it.
193 * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
195 * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
198 * optabs.c (expand_fix): Do not widen the input operand.
200 * expr.c (emit_group_store): Fix crash when converting single
201 register into complex register.
203 * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
204 * alias.c: Include timevar.h
205 (init_alias_analysis): Set timevar
206 * jump.c: Include timevar.h
207 (rebuild_jump_labels): Set timevar
208 * regcalss.c: Include timevar.h
209 (reg_scan): Set timevar
210 * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
212 2003-02-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
214 * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
216 * Makefile.in (loop-unroll.o): New.
217 * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
218 (unroll_and_peel_loops): Declare.
219 * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
220 flag_old_unroll_loops.
221 * loop.c (loop_invariant_p): Ditto.
222 * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
223 flag_old_unroll_all_loops.
224 * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
225 (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
226 * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
227 (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
228 PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
229 PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
230 PARAM_MAX_ONCE_PEELED_INSNS): New.
231 * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
232 (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
234 (flag_peel_loops): New.
235 (lang_independent_options): The new flags added.
236 (rest_of_compilation): Call new unroller.
237 (process_options): Setup flags for coexistence of old and new unroller.
238 * doc/invoke.texi: Document new options.
239 * doc/passes.texi: Document new unroller pass.
241 2003-02-26 David Billinghurst <David.Billinghurst@riotinto.com>
243 * fixinc/fixincl.x: Regenerate
245 2003-02-26 Josef Zlomek <zlomekj@suse.cz>
247 * function.c (assign_parms): Set reg_attrs for parameters passed in
250 2003-02-26 Alan Modra <amodra@bigpond.net.au>
253 * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
255 2003-02-25 David Edelsohn <edelsohn@gnu.org>
257 * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
260 2003-02-25 Roger Sayle <roger@eyesopen.com>
262 * combine.c (combine_simplify_rtx, simplfy_comparison): Use CC0_P.
263 * cse.c (invalidate_skipped_set): Likewise.
264 * integrate.c (subst_constants): Likewise.
265 * jump.c (reversed_comparison_code_parts): Likewise.
266 * loop.c (canonicalize_condition): Likewise.
267 * simplify-rtx.c (simplify_relational_operation): Likewise.
269 2003-02-25 Roger Sayle <roger@eyesopen.com>
271 * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
272 (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit): Use
273 the appropriate macro to define built-in function.
274 (fmod,fmodf,fmodl): New built-in functions.
276 * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
278 2003-02-25 Richard Henderson <rth@redhat.com>
280 * config/i386/i386.c (function_arg): Pass variable sized
281 structures correctly on the stack.
283 2003-02-25 Kazu Hirata <kazu@cs.umass.edu>
285 * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
286 does not reduce the cost of SET.
288 2003-02-25 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
291 * config/rs6000/rs6000.c (first_reg_to_save): Handle
292 PIC_OFFSET_TABLE_REGNUM for -fPIC too.
293 (rs6000_emit_prologue): Likewise.
294 (rs6000_emit_epilogue): Likewise.
295 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
296 PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
298 2003-02-25 Richard Henderson <rth@redhat.com>
300 * real.c (real_to_integer2): Force overflow result only for
303 2003-02-25 Kazu Hirata <kazu@cs.umass.edu>
305 * gcse.c (cprop_jump): Revert the 2003-02-23 change.
307 2003-02-25 Vladimir Makarov <vmakarov@toke.toronto.redhat.com>
308 Richard Henderson <rth@redhat.com>
310 * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
311 there is no similar load.
313 2003-02-25 Vladimir Makarov <vmakarov@redhat.com>
314 Richard Henderson <rth@redhat.com>
316 * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
318 (add_forward_dependence): New function prototype.
320 * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
322 (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
323 them to haifa-sched.c.
325 * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
326 haifa_classify_insn): Move them from sched-rgn.c.
328 * sched-deps.c (add_dependence): Return flag of creating a new
330 (add_forward_dependence): New function.
331 (compute_forward_dependences): Use the function.
333 * sched-ebb.c (earliest_block_with_similiar_load): New function.
334 (add_deps_for_risky_insns): New function.
335 (schedule_ebb): Call the function.
337 2003-02-20 Aldy Hernandez <aldyh@redhat.com>
339 * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
340 TARGET_VECTOR_OPAQUE_P. Document accordingly.
342 * testsuite/gcc.dg/20030218-1.c: Check that initialization of
345 * c-typeck.c (comptypes): Change call to vector_types_compatible
347 (convert_for_assignment): Call vector_opaque_p instead of
348 vector_types_compatible.
349 (really_start_incremental_init): Disallow initialization of opaque
352 * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
353 Define TARGET_VECTOR_OPAQUE_P.
354 (TARGET_INITIALIZER): Same.
356 * target.h (struct gcc_target): Remove vector_types_compatible.
359 * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
361 (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
362 a vector type. Change return type to bool.
363 (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
364 (TARGET_VECTOR_OPAQUE_P): Define.
366 * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
369 (cp_parser_init_declarator): Fix typo in function comments.
371 Tue Feb 25 12:35:34 CET 2003 Jan Hubicka <jh@suse.cz>
373 * Makefile.in (lcm.o): Add dependency on function.h
374 * lcm.c (function.h): Include.
375 * i386.c (machine_function, ix86_stack_locals,
376 * ix86_save_varrargs_registers) : Move to
378 * i386.h (machine_function, ix86_stack_locals,
379 ix86_save_varrargs_registers): ... here; add optimize_mode_switching
380 (ix86_optimize_mode_switching): New.
381 * i386.md (fix patterns): Set ix86_optimize_mode_switching
383 2003-02-25 Nick Clifton <nickc@redhat.com>
385 * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo. Name
386 of fourth arg is 'fndecl' not 'indirect'. Update comment
387 describing the function's parameters.
389 Mon Feb 24 22:08:22 CET 2003 Jan Hubicka <jh@suse.cz>
391 * combine.c (simplify_shift_const): Fix previous patch.
393 2003-02-24 Jeff Law <law@redhat.com>
395 * i386.md (testdi_1_rex64): Discourage reload from using the %eax
397 (testsi_1, testhi_1, testqi_1): Likewise.
399 2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
401 * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
402 __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
403 * doc/extend.texi (Tru64 Pragmas): Reflect this.
405 * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
406 extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
407 * fixinc/fixincl.x: Regenerate.
408 * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
410 Fixes PR c/5059, c/6126, other/9671.
412 2003-02-24 Roger Sayle <roger@eyesopen.com>
414 * gcc.c (do_spec_1) ['{']: Handle pending argument upon return
415 from handle_braces in "%{...}".
417 2003-02-24 Kaz Kojima <kkojima@gcc.gnu.org>
419 * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
420 (prepare_move_operands): Handle TLS operands.
421 (tls_symbolic_operand): New.
422 (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
423 (legitimize_pic_address): Do nothing for the TLS symbol.
424 (sh_encode_section_info): Handle TLS case.
425 (sh_strip_name_encoding): Drop TLS encoding.
426 * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
427 * config/sh/sh.h (SH_TLS_ENCODING): Define.
428 (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
429 (ASM_OUTPUT_LABELREF): Drop TLS encoding.
430 (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
431 * config/sh/sh.md: Define TLS UNSPEC constants.
432 (type): Add tls_load.
433 ("tls_global_dynamic", "tls_local_dynamic"): New insns.
434 ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
435 ("tls_initial_exec"): New insn.
436 ("sym2TPOFF", "symTPOFF2reg"): New expanders.
437 ("load_gbr"): New insn.
439 * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
440 * configure: Regenerate.
442 2003-02-24 Alan Modra <amodra@bigpond.net.au>
445 * calls.c (store_one_arg): Revert 1999-02-16 change. Revert
446 2000-12-17 change. Pass EXPAND_STACK_PARM to expand_expr.
447 * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
448 (enum block_op_methods): Reorder for better store_expr optimization.
449 * expr.c (store_expr): Test bit 1 of "want_value" for call param
450 stores, test bit 0 for original want_value meaning. Pass
451 BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set. Adjust
452 recursive calls, and calls to expand_param.
453 (expand_expr): Handle EXPAND_STACK_PARM modifier. When cse
454 expected, set target to 0 rather than to subtarget. Formatting.
456 2003-02-23 Kazu Hirata <kazu@cs.umass.edu>
458 * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
460 2003-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
462 * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
463 new default behavior.
464 * ggc-common.c: Include sys/resource.h.
465 (ggc_rlimit_bound): New function.
466 (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
467 defaults to account for rlimits.
469 2003-02-22 Richard Henderson <rth@redhat.com>
471 * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
473 2003-02-22 Kelley Cook <kelley@dwhoops.info>
475 * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
476 (ix86_tune_string): Rename from ix86_cpu_string.
478 2003-02-22 Kelley Cook <kelleycook@comcast.net>
480 * config/i386/i386.c: Replace "mcpu" with "mtune".
481 * config/i386/i386.h (TARGET_OPTIONS): Likewise.
482 (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
483 * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
484 with "mtune". Note that "mcpu" is a deprecated synonym for "mtune".
486 2003-02-23 Andreas Schwab <schwab@suse.de>
488 * config.gcc: Delete references to m68k/t-linux and
490 * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
492 Sat Feb 22 20:22:19 CET 2003 Jan Hubicka <jh@suse.cz>
494 * toplev.c (rest_of_compilation): Apply fotgotten hunk
495 of track scheduling patch.
497 Sat Feb 22 19:29:28 CET 2003 Jan Hubicka <jh@suse.cz>
499 * config/linux.h (TARGET_HAS_F_SETLKW): Define.
500 * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
502 Sat Feb 22 12:42:16 CET 2003 Jan Hubicka <jh@suse.cz>
504 * c-decl.c (c_expand_body_1): Fix.
506 Sat Feb 22 03:13:36 CET 2003 Jan Hubicka <jh@suse.cz>
508 * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
510 * cfgcleanup.c (try_forward_edges): Don't check loop structures
512 (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
514 * toplev.c (rest_of_compilation): Duplicate loop headers only when
515 optimizing; Delete trivially dead insns early; fix optimize check.
517 * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
518 dependency on cgraph.h
519 * c-decl.c: Include cgraph.h
520 (finish_function): Update call of tree_inlinable_function_p.
521 * c-objc-common.c: Include cgraph.h
522 * cgraph.h: New file.
523 * cgraphunit.c: New file.
524 * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
525 (cgraph_nodes, cgraph_n_nodes): Globalize.
526 (cgraph_finalize_function, cgraph_finalize_compilation_unit
527 cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
528 Move into cgraphunit.c
529 * tree-inline.c: Include cgraph.h
530 * tree-inline.c: Include cgraph.h
532 2003-02-22 Josef Zlomek <zlomekj@suse.cz>
534 * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
535 for copying a register.
537 2003-02-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
540 * toplev.c (process_options): If flag_detailed_statistics is set,
541 then set time_report as well.
544 * jump.c (never_reached_warning): Don't fall through BARRRIER
545 insns. Update comments to reflect what the function really does.
547 2003-02-21 Roger Sayle <roger@eyesopen.com>
549 * fold-const.c (omit_one_operand): No longer static.
550 * tree.h (omit_one_operand): Prototype here.
551 (div_and_round_double): Keep fold-const.c prototypes together.
552 * builtins.c (builtin_mathfn_code): Handle binary built-in
553 funtions, such as "pow" and "atan2".
554 (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
555 Simplify optimizations using "type" the builtin's return type.
557 2003-02-22 Hans-Peter Nilsson <hp@axis.com>
559 * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
560 Fix functionalization typo.
562 * regmove.c (optimize_reg_copy_1): Do not replace a hard register
565 2003-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
567 * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
568 * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
570 * ggc-common.c: Include params.h
571 (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
572 init_ggc_heuristics): New functions.
573 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
574 init_ggc_heuristics): Prototype.
575 * toplev.c (print_version): Output GGC heuristics.
576 (parse_options_and_default_flags): Call init_ggc_heuristics.
578 Sat Feb 22 02:35:07 CET 2003 Jan Hubicka <jh@suse.cz>
580 * i386.c (def_builtin): Special case 64bit builtins.
581 (MASK_SSE164, MASK_SSE264): New constants.
582 (builtin_description): Add 64bit builtins.
583 (ix86_init_mmx_sse_builtins): Likewise.
584 * i386.h (enum ix86_builtins): Likewise.
585 * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
586 sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
587 (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
588 * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
589 * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
590 _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
591 _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
593 Sat Feb 22 00:48:22 CET 2003 Jan Hubicka <jh@suse.cz>
595 * i386.c (builtin_description): Add __builtin_ia32_paddq and
596 __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
597 and __builtin_ia32_psubq128.
598 * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
599 * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
600 (mmx_adddi3, mmx_subdi3): New.
601 * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
602 * xmmintrin.h (_mm_movepi64_pi64): New.
603 (_mm_add_epi64, _mm_sub_epi64): fix.
604 (_mm_mul_pu16): Rename to...
605 (_mm_mul_su32): ... this one.
607 * builtins.c (expand_builtin_expect): Do not predict
608 flag_guess_branch_prob is not set.
609 * c-semantics.c (expand_stmt): Likewise.
610 * predict.c (predict_insn): Likewise.
611 * stmt.c (expand_continue_loop): Likewise.
612 * toplev.c (rest_of_compilation): Do not call
613 note_prediction_to_br_prob and note_prediction_to_br_prob
616 Fri Feb 21 23:10:13 CET 2003 Jan Hubicka <jh@suse.cz>
618 * cfgrtl.c (commit_edge_insertions): Call
619 find_many_sub_basic_block only when some code has been emitted.
620 (commit_edge_insertions_watch_calls): Bring into sync with
621 commit_edge_insertions
623 Fri Feb 21 20:41:29 2003 J"orn Rennecke <joern.rennecke@superh.com>
625 * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
627 * sh.md (binary_sf_op): Use extra constant operand instead of
628 negating constant operand 4.
629 * sh.c (sh_expand_binop_v2sf): Supply it.
631 2003-02-21 Zack Weinberg <zack@codesourcery.com>
633 * cpphash.h (struct lexer_state): Add directive_wants_padding.
634 * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
635 for directives of type INCL.
636 (glue_header_name, parse_include): Use get_token_no_padding.
637 * cppmacro.c (replace_args): If directive_wants_padding,
638 provide padding tokens.
640 2003-02-21 Kazu Hirata <kazu@cs.umass.edu>
642 * config/h8300/h8300.md (a peephole2): New.
644 Fri Feb 21 11:05:44 CET 2003 Jan Hubicka <jh@suse.cz>
646 * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
647 (commit_edge_insertions): Call find_many_sub_basic_blocks
649 * reg-stack.c (convert_regs): Cleax aux for blocks.
651 Fri Feb 21 10:29:52 CET 2003 Jan Hubicka <jh@suse.cz>
653 * toplev.c (parse_options_and_default_flags): Undo accidental commit.
655 2003-02-21 Glen Nakamura <glen@imodulo.com>
658 * builtins.c (expand_builtin): Emit postincrements before expanding
661 2003-02-21 Ben Elliston <bje@redhat.com>
664 * doc/install.texi (Configuration): Explain using $HOME instead of
665 the ~ metacharacter when referring to home directories.
667 2003-02-20 Alexandre Oliva <aoliva@redhat.com>
669 * configure.in (TARGET_SYSTEM_ROOT): Set default to
670 ${exec_prefix}/${target_alias}/sys-root. Match explicit
671 '${exec_prefix}' (in addition to the expansion thereof) as
673 * configure: Rebuilt.
675 2003-02-20 Kazu Hirata <kazu@cs.umass.edu>
677 * config/h8300/h8300.md (addhi3_incdec): Change the name to
679 (addsi3_incdec): Change the name to *addsi3_incdec.
681 2003-02-20 Roger Sayle <roger@eyesopen.com>
683 * explow.c (force_reg): Avoid useless REG_EQUAL notes.
685 2003-02-20 Toon Moene <toon@moene.indiv.nluug.nl>
688 * c-opts.c (sanitize_cpp_opts): Add Fortran front end
689 options to be ignored.
690 (c_common_decode_option): Ignore them when preprocessing.
692 Thu Feb 20 21:41:19 CET 2003 Jan Hubicka <jh@suse.cz>
694 * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
696 (lang_independent_options): Add -fsched2-use-superblocks
698 (rest_of_compilation): Deal with it.
699 * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks): Declare.
700 * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
702 * rtl.h (reg_to_stack): Update prototype.
703 * reg-stack.c (reg_to_stack): Return when something has changed;
704 update liveness when executing after superblock scheduling.
706 * combine.c (simplify_shift_const): Simplify few special cases
709 2003-02-20 David Edelsohn <edelsohn@gnu.org>
711 * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
712 (add.,subf.,neg.): Change attribute to fast_compare.
713 All DFA descriptions updated.
715 2003-02-20 Nathan Sidwell <nathan@codesourcery.com>
717 Change base class access representation.
718 * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
719 TREE_VIA_PRIVATE): Remove.
720 (BINFO_BASEACCESSES): New binfo elt.
721 (BINFO_BASEACCESS): New accessor.
722 (BINFO_ELTS): Increase.
723 (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
724 (access_public_node, access_protected_node,
725 access_private_node): New global nodes.
726 * tree.c (build_common_tree_nodes_2): Initialize access nodes.
727 * dbxout.c (dbxout_type): Adjust.
728 * dwarf2out.c (gen_inheritance_die): Add access parameter.
729 (gen_member_die): Adjust.
730 * dwarfout.c (output_inheritance_die): ARG is array of two trees.
731 (output_type): Adjust.
732 * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
734 Change base class access representation. Share virtual base
736 * cp/call.c (build_special_member_call): Remove binfo_for_vbase
738 * cp/class.c (build_base_path): Likewise.
739 (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
740 (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
741 (make_new_vtable): Adjust.
742 (force_canonical_binfo_r): Delete.
743 (force_canonical_binfo): Delete.
744 (mark_primary_virtual_base): Delete.
745 (dfs_unshared_virtual_bases): Delete.
746 (mark_primary_bases): Adjust.
747 (maybe_warn_about_overly_private_class): Adjust.
748 (dfs_base_derived_from): Delete.
749 (base_derived_from): Follow the inheritance chain.
750 (struct find_final_overrider_data): Add vpath member.
751 (dfs_find_final_overrider): Adjust.
752 (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
753 (find_final_overrider): Adjust.
754 (update_vtable_entry_for_fn): Adjust.
755 (modify_all_vtables): Adjust.
756 (walk_subobject_offsets): Adjust.
757 (layout_nonempty_base_or_field): Adjust.
758 (layout_empty_base): Remove last parameter. Adjust.
759 (build_base_field): Adjust.
760 (build_base_fields): Adjust.
761 (propagate_binfo_offsets): Remove last parameter. Adjust.
762 (dfs_set_offset_for_unshared_vbases): Delete.
763 (layout_virtual_bases): Adjust.
764 (finish_struct_1): Adjust.
765 (init_class_processing): Don't init access nodes.
766 (dfs_get_primary_binfo): Delete.
767 (get_primary_binfo): Adjust.
768 (dump_class_hierarchy_r): Remove most derived arg, add IGO
770 (dump_class_hierarchy): Adjust.
771 (finish_vtbls): Adjust.
772 (get_original_base): Delete.
773 (build_vtt_inits): Adjust.
774 (dfs_build_secondary_vptr_vtt_inits): Adjust.
775 (dfs_ctor_vtable_bases_queue_p): Adjust.
776 (build_ctor_vtbl_group): Adjust.
777 (dfs_accumulate_vtbl_inits): Adjust.
778 (build_vtbl_initializer): Adjust.
779 (build_vbase_offset_vtbl_entries): Adjust.
780 (add_vcall_offset_vtbl_entries_1): Adjust.
781 * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
782 (access_*_node): Remove.
783 (CANONICAL_BINFO): Delete.
784 (BINFO_UNSHARED_MARKED): Remove.
785 (BINFO_MARKED): Set LANG_FLAG_0 directly.
786 (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
787 (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
788 (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
790 (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
791 (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
792 (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
794 (BINFO_DEPENDENT_BASE_P): New.
795 (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
797 (markedp, unmarkedp): Adjust.
798 (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
799 dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
800 find_vbase_instance, binfo_for_vbase): Delete.
801 (copied_binfo, original_binfo): Declare.
802 (finish_base_specifier): Add virtual_p arg.
803 (unshare_base_binfos): Delete.
804 (copy_base_binfos): Declare.
805 (reverse_path): Delete.
806 * cp/decl.c (xref_basetypes): Access and virtuality passed
807 differently. Don't copy direct base binfos here. Call
809 * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
810 (initialize_vtbl_ptrs): Adjust.
811 (expand_member_init): Adjust.
812 * cp/parser.c (cp_parser_base_specifier): Adjust.
813 * cp/pt.c (instantiate_class_template): Adjust.
814 (get_template_base_recursive): Adjust.
815 * cp/rtti.c (get_pseudo_ti_init): Adjust.
816 (get_pseudo_ti_desc): Adjust.
817 * cp/tree.c (unshare_base_binfos): Rename to ...
818 (copy_base_binfos): ... here, reimplement.
819 (make_binfo): Set BINFO_DEPENDENT_BASE_P.
820 (reverse_path): Remove.
821 * cp/typeck.c (get_delta_difference): Adjust error messages.
822 * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
823 * cp/search.c (lookup_base_r): Adjust.
824 (dynamic_cast_base_recurse): Adjust.
825 (canonical_binfo): Remove.
826 (dfs_canonical_queue): Remove.
827 (dfs_assert_unmarked_p): Remove.
828 (assert_canonical_unmarked): Remove.
829 (shared_marked_p, shared_unmarked_p): Remove.
830 (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
831 (dfs_access_in_type): Adjust.
832 (access_in_type): Adjust.
833 (dfs_accessible_queue_p): Adjust.
834 (dfs_accessible_p): Adjust.
835 (is_subobject_of_p_1, is_subobject_of_p): Remove.
836 (struct lookup_field_info): Remove from_dep_base_p field.
837 (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
838 (lookup_field_r): Remove dependent base code.
839 (lookup_member): Likewise.
840 (dfs_walk, dfs_walk_real): Add access arg to queue fn.
841 (dfs_unmarked_real_bases_queue_p): Remove.
842 (dfs_marked_real_bases_queue_p): Remove.
843 (dfs_skip_vbases): Remove.
844 (dfs_get_pure_virtuals): Adjust.
845 (markedp, unmarkedp): Adjust.
846 (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
847 (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
848 (dfs_unmark): Adjust.
849 (dfs_get_vbase_types):Remove.
850 (dfs_build_inheritance_graph_order): Remove.
851 (get_vbase_types): Remove
852 (dfs_find_vbase_instance): Remove.
853 (find_vbase_instance): Remove.
854 (dfs_debug_unmarkedp): Adjust.
855 (dependent_base_p): Remove.
856 (dfs_push_type_decls): Adjust.
857 (dfs_push_decls): Adjust.
858 (dfs_no_overlap_yet): Adjust.
859 (copied_binfo): New function.
860 (original_binfo): New function.
861 (binfo_for_vbase): Remove.
863 Change base class access representation.
864 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
865 (add_interface_do): Likewise.
867 2003-02-20 David Edelsohn <edelsohn@gnu.org>
869 * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
870 * config/rs6000/power4.md (power4-store,power4-vecstore): New
872 (power4-fpstore): Compact.
874 2003-02-20 Kazu Hirata <kazu@cs.umass.edu>
876 * config/h8300/h8300.md (*iorsi3_w): New.
878 2003-02-20 Josef Zlomek <zlomekj@suse.cz>
880 * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
881 * rtl.c (reg_note_name): Likewise.
882 * rtl.h (enum reg_note): Likewise.
883 * doc/invoke.texi: Likewise.
884 * doc/rtl.texi: Likewise.
886 2003-02-20 Josef Zlomek <zlomekj@suse.cz>
888 * bb-reorder.c (find_traces_1_round): Fix comment typo.
890 2003-02-19 Roger Sayle <roger@eyesopen.com>
892 * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
893 addition in the presence of signaling NaNs.
895 2003-02-19 Krister Walfridsson <cato@df.lth.se>
897 * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
899 2003-02-19 Kazu Hirata <kazu@cs.umass.edu>
901 * config/h8300/h8300.c (output_logical_op): Optimize or.l when
902 ORing with 0xffff??00 with the highest bit of the ?? part set.
903 (compute_logical_op_length): Update.
904 (compute_logical_op_cc): Likewise.
906 2003-02-19 Josef Zlomek <zlomekj@suse.cz>
908 * bb-reorder.c (find_traces_1_round): Fixed condition for small
909 destination block with multiple predecessors.
910 (connect_traces): Check whether the block is a start of trace.
912 Wed Feb 19 19:00:24 CET 2003 Jan Hubicka <jh@suse.cz>
914 * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
915 * function.c (assign_params): Likewise.
916 * arm-protos.h (arm_init_cumulative_args): Update prototype.
917 * arm.c (arm_init_cumulative_args): Update function.
918 * arm.h (INIT_CUMULATIVE_ARGS): Update.
919 * avr-protos.h (init_cumulative_args): Update prototype.
920 * avr.c (init_cumulative_args): Update function.
921 * avr.h (INIT_CUMULATIVE_ARGS): Update.
922 * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
923 * d30v.c (d30v_init_cumulative_args): Update function.
924 * d30v.h (INIT_CUMULATIVE_ARGS): Update.
925 * frv-protos.h (frv_init_cumulative_args): Update prototype.
926 * frv.c (frv_init_cumulative_args): Update function.
927 * frv.h (INIT_CUMULATIVE_ARGS): Update.
928 * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
929 * pa.h (INIT_CUMULATIVE_ARGS): Update.
930 * sparc-protos.h (init_cumulative_args): Update prototype.
931 * sparc.c (init_cumulative_args): Update function.
932 * sparc.h (INIT_CUMULATIVE_ARGS): Update.
933 * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
935 2003-02-19 Kazu Hirata <kazu@cs.umass.edu>
937 * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
938 (*ashiftsi_sextqi_7): Likewise.
940 2003-02-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
942 * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
945 * fixinc/inclhack.def (irix___restrict): Don't change __restrict
946 for C++ on IRIX 6.5.1[89].
947 * fixinc/tests/base/internal/sgimacros.h: New file.
949 * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
950 * fixinc/tests/base/internal/wchar_core.h: New file.
952 * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
953 socklen_t definition.
954 * fixinc/fixincl.x: Regenerate.
955 * fixinc/tests/base/sys/socket.h: New file.
956 Fixes PR libgcj/9652.
958 Wed Feb 19 17:22:51 CET 2003 Jan Hubicka <jh@suse.cz>
960 * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
962 2003-02-19 David Edelsohn <edelsohn@gnu.org>
964 * config/rs6000/rs6000.c (rs6000_override_options): Initialize
965 align_jumps_max_skip and align_loops_max_skip.
967 2003-02-19 Thierry Moreau <thierry.moreau@connotech.com>
969 * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
970 test size if named section.
972 2003-02-19 Daniel Jacobowitz <drow@mvista.com>
974 * expr.c (expand_expr): Use gen_int_mode for the argument
977 Wed Feb 19 14:22:42 CET 2003 Jan Hubicka <jh@suse.cz>
979 * i386.md (cosxf2): Fix conditional.
981 2003-02-19 Kazu Hirata <kazu@cs.umass.edu>
983 * config/h8300/h8300.md (extendqisi2): Change to an expander.
984 (*extendqisi2_h8300): New.
985 (*extendqisi2_h8300hs): Likewise.
987 2003-02-19 Kazu Hirata <kazu@cs.umass.edu>
989 * config/h8300/h8300-protos.h: Update the prototype for
990 split_adds_subs. Remove the prototypes for
991 const_int_le_2_operand and const_int_le_6_operand.
992 * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
993 (const_int_le_2_operand): Remove.
994 (const_int_le_6_operand): Likewise.
995 * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
996 for const_int_le_2_operand and const_int_le_6_operand.
997 * config/h8300/h8300.md: Update all uses of split_adds_subs.
1000 Tue Feb 18 23:50:59 CET 2003 Jan Hubicka <jh@suse.cz>
1002 * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
1003 (cgraph_expand_function): Rewrite.
1005 2003-02-18 Matt Austern <austern@apple.com>
1007 * toplev.c, langhooks.c, langhooks-def.h: Move
1008 write_global_declarations from toplev.c to langhooks.c.
1010 2003-02-18 Kazu Hirata <kazu@cs.umass.edu>
1012 * config/h8300/h8300.c (general_operand_src): Always check
1014 (general_operand_dst): Likewise.
1016 2003-02-18 Roger Sayle <roger@eyesopen.com>
1018 * convert.c (convert_to_real): Also optimize (float)log(x) into
1019 logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
1021 2003-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
1023 * config/sh/sh.c (unspec_caller_rtx_p): New.
1024 (sh_cannot_copy_insn_p): New.
1025 (TARGET_CANNOT_COPY_INSN_P): New.
1027 2003-02-18 Richard Henderson <rth@redhat.com>
1029 * c-common.c (handle_used_attribute): Accept static data too.
1031 2003-02-18 Nick Clifton <nickc@redhat.com>
1032 Aldy Hernandez <aldyh@redhat.com>
1034 * testsuite/gcc.dg/20030218-1.c: New.
1036 * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
1038 * target-def.h (TARGET_INITIALIZER): Add
1039 TARGET_VECTOR_TYPES_COMPATIBLE.
1040 (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
1042 * target.h (struct gcc_target): Add field vector_types_compatible.
1044 * c-typeck.c (comptypes): Take into account
1045 TARGET_VECTOR_TYPES_COMPATIBLE.
1046 (convert_for_assignment): Same.
1048 * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
1049 (rs6000_spe_vector_types_compatible): New.
1050 (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
1052 2003-02-19 Andreas Schwab <schwab@suse.de>
1054 * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
1055 * toplev.c: Include langhooks-def.h.
1057 2003-02-18 Chris Demetriou <cgd@broadcom.com>
1059 * config/mips/mips.h (enum processor_type): Sort entries
1061 * config/mips/mips.md (define_attr cpu): Sync with processor_type
1062 enum values, including adding entries that were missing.
1064 Tue Feb 18 20:15:54 2003 J"orn Rennecke <joern.rennecke@superh.com>
1066 * sh.c (calc_live_regs): Also check GET_CODE when checking if
1067 initial value for PR_REG is still the PR_REG register.
1069 2003-02-18 Jim Wilson <wilson@redhat.com>
1071 * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
1072 instruction in output template.
1073 (bsp_value): Change output template from string to C code, add %,
1074 before actual instruction.
1075 (flushrs): Mark as not predicable.
1077 2003-02-18 Krister Walfridsson <cato@df.lth.se>
1079 * inclhack.def (netbsd_bogus_semicolon): New fix.
1080 * fixincl.x: Rebuilt.
1081 * tests/base/ctype.h: Update.
1083 2003-02-18 Roger Sayle <roger@eyesopen.com>
1085 * fold-const.c (negate_expr_p): New function to determine whether
1086 an expression can be negated cheaply.
1087 (fold) [MINUS_EXPR]: Use it to determine whether to transform
1088 -A - B into -B - A for floating point types.
1090 2003-02-18 Roger Sayle <roger@eyesopen.com>
1092 * sbitmap.c (sbitmap_resize): New function.
1093 * sbitmap.h (sbitmap_resize): Prototype here.
1094 * recog.c (split_all_insns): Use sbitmap_resize.
1096 2003-02-18 Kazu Hirata <kazu@cs.umass.edu>
1098 * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
1100 (extendqisi2): Likewise.
1101 (*extendhisi2_h8300): Likewise.
1103 2003-02-18 Matt Austern <austern@apple.com>
1105 * langhooks.h, langhooks-def.h: introduce new langhook,
1106 final_write_globals, with write_global_declarations as default.
1107 * toplev.c: Move invocation of wrapup_global_declarations from
1108 compile_file to new function, write_global_declarations. Change
1109 compile_file to use final_write_globals hook. Change
1110 wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
1113 2003-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1115 * pa.md: Correct and enhance comment.
1117 2003-02-18 Geoffrey Keating <geoffk@apple.com>
1119 * gcc.c (validate_switches): Don't scan past closing '}'.
1121 2003-02-18 Ben Elliston <bje@redhat.com>
1124 * doc/extend.texi (Function Attributes): Document the effect of
1125 the C++ "this" parameter on the counting of arguments for the
1126 "format" and "format_arg" attributes.
1128 2003-02-17 Aldy Hernandez <aldyh@redhat.com>
1130 * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
1134 Mon Feb 17 16:16:54 CET 2003 Jan Hubicka <jh@suse.cz>
1136 * recog.c (split_all_insns): Fix memory overflow.
1138 2003-02-17 Kazu Hirata <kazu@cs.umass.edu>
1140 * config/h8300/h8300.md (cmpqi): Remove mode from compare.
1142 (*cmphi_h8300): Likewise.
1143 (*cmphi_h8300hs): Likewise.
1145 (7 peephole2): Likewise.
1147 Sun Feb 16 23:07:52 CET 2003 Jan Hubicka <jh@suse.cz>
1149 * c-typeck.c (build_c_cast): Fold constant variables into
1152 2003-02-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1154 * doc/install.texi (Specific): Fix link for m68k-att-sysv.
1155 (Binaries): Ditto for Sinix/Reliant Unix.
1157 2003-02-16 Richard Earnshaw <rearnsha@arm.com>
1159 * arm.c (arm_reload_in_hi): Ensure that the scratch register does
1160 not overlap the final result register.
1162 2003-02-16 Arend Bayer <arend.bayer@web.de>
1163 Richard Henderson <rth@redhat.com>
1166 * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
1167 rearrange mult arguments for less recursion.
1168 (extract_muldiv): New. Prevent runaway recursion.
1170 2003-02-16 Danny Smith <dannysmith@users.sourceforge.net>
1172 * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
1175 2003-02-15 Roger Sayle <roger@eyesopen.com>
1177 * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
1178 to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
1179 (ext_80387_constants_table): Global table of 80387 special constants
1180 guarded by ext_80387_constants_init flag when not initialized.
1181 (init_ext_80387_constants): New function to initialize this table.
1182 (standard_80387_constant_p): Extend to recognize extra 80387
1183 constants, in XFmode, on processors where this is a win.
1184 (standard_80387_constant_opcode): New function to return the
1185 opcode associated with standard_80387_constant_p.
1186 (standard_80387_constant_rtx): New function to return the XFmode
1187 CONST_DOUBLE associated with standard_80387_constant_p.
1188 (ix86_rtx_costs): Give the new constants the same cost as 1.0.
1190 * config/i386/i386-protos.h (standard_80387_constant_opcode):
1192 (standard_80387_constant_rtx): Likewise.
1194 * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
1195 *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
1196 *movtf_integer): Simplify using new standard_80387_constant_opcode.
1198 2003-02-15 Geoffrey Keating <geoffk@apple.com>
1200 * doc/invoke.texi (Optimize Options): Correct @option syntax.
1202 2003-02-15 Richard Henderson <rth@redhat.com>
1204 * Makefile.in (cfglayout.o): Depend on TARGET_H.
1205 * cfglayout.c: Include target.h.
1206 (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
1207 * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
1208 * target.h (struct gcc_target): Add cannot_copy_insn_p.
1210 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
1211 (TARGET_CANNOT_COPY_INSN_P): New.
1212 (override_options): Revert 2003-02-08 hack.
1214 2003-02-15 Richard Henderson <rth@redhat.com>
1216 * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
1217 (bypass_conditional_jumps): Accept computed_jump_p insns as well.
1219 2003-02-15 David Edelsohn <edelsohn@gnu.org>
1221 * config/rs6000/rs6000.h (processor_type): Add PPC440.
1222 * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
1223 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
1224 TARGET_SCHED_VARIABLE_ISSUE): Define.
1225 (rs6000_use_dfa_pipeline_interface): New function.
1226 (rs6000_multipass_dfa_lookahead): New Function.
1227 (rs6000_variable_issue): New function.
1228 (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
1229 (rs6000_issue_rate): Add PPC440.
1230 * config/rs6000/rs6000.md (unspec list): Correct typo.
1231 (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
1232 store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
1233 cmp, delayed_cr, mfcr, mtcr.
1234 (automata_option): Set "ndfa".
1235 (extendMMNN2): Update attributes.
1236 (movcc_internal1): Discourage move to non-cr0. Update
1238 (movMM_update): Update attributes.
1239 (cmpMM_internal): Update attributes.
1240 (sCC CR materialization): Update attributes.
1241 (branch patterns): Do not discourage non-cr0.
1242 (cr logical patterns): Prefer destructive register allocation.
1244 (movesi_from_cr): Update attribute.
1245 (mtcrf_operation): Update attribute.
1246 (mtcrfsi): Update attribute.
1247 * config/rs6000/40x.md: New file.
1248 * config/rs6000/603.md: New file.
1249 * config/rs6000/6xx.md: New file.
1250 * config/rs6000/7450.md: New file.
1251 * config/rs6000/7xx.md: New file.
1252 * config/rs6000/mpc.md: New file.
1253 * config/rs6000/power4.md: New file.
1254 * config/rs6000/rios1.md: New file.
1255 * config/rs6000/rios2.md: New file.
1256 * config/rs6000/rs64.md: New file.
1257 [Some DFA descriptions based on work by Michael Hayes]
1259 2003-02-15 Richard Henderson <rth@redhat.com>
1261 * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
1262 successors with multiple predecessors.
1263 (connect_traces): Try harder to copy traces of length 1.
1265 * function.h (struct function): Add computed_goto_common_label,
1266 computed_goto_common_reg.
1267 * function.c (free_after_compilation): Zap them.
1268 * stmt.c (expand_computed_goto): Use them to produce one
1269 indirect branch per function.
1271 2003-02-15 Richard Henderson <rth@redhat.com>
1273 * cfgcleanup.c: Include params.h.
1274 (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES. Fix test for
1275 too many outgoing edges from a block.
1276 * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
1277 * params.def (max-crossjump-edges): New.
1278 * doc/invoke.texi: Document it.
1280 2003-02-15 Richard Henderson <rth@redhat.com>
1282 * recog.c (split_all_insns): Include new blocks in life update;
1283 do a global life update.
1285 2003-02-15 Danny Smith <dannysmith@users.sourceforge.net>
1287 * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
1289 * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
1292 2003-02-14 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
1294 PR optimization/7702
1295 * reload1.c (reload_cse_simplify_set): Honor
1296 CANNOT_CHANGE_MODE_CLASS.
1298 2003-02-14 Alexandre Oliva <aoliva@redhat.com>
1300 * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
1302 * config/mn10300/mn10300-protos.h: Declare it.
1303 * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
1304 attribute cc of instructions that may use clr.
1306 2003-02-14 Kazu Hirata <kazu@cs.umass.edu>
1308 * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
1309 (x - (x & y)) is found.
1311 2003-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1313 * configure.in: Fix typo.
1314 * configure: Regenerate.
1316 2003-02-14 Kazu Hirata <kazu@cs.umass.edu>
1318 * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
1320 2003-02-13 Adam Nemet <anemet@lnxw.com>
1323 * combine.c: Fix spelling in comment.
1324 (cached_nonzero_bits): New function.
1325 (cached_num_sign_bit_copies): New function.
1326 (nonzero_bits_with_known): New macro.
1327 (num_sign_bit_copies_with_known): New macro.
1328 (nonzero_bits1): Rename from nonzero_bits. Add three new
1329 arguments. Change calls from nonzero_bits to
1330 nonzero_bits_with_known.
1331 (num_sign_bit_copies1): Rename from num_sign_bit_copies. Add
1332 three new arguments. Change calls from num_sign_bit_copies to
1333 num_sign_bit_copies_with_known.
1334 (nonzero_bits): New macro.
1335 (num_sign_bit_copies): New macro.
1336 (update_table_tick): Don't traverse identical subexpression more
1338 (get_last_value_validate): Likewise.
1340 2003-02-13 Zack Weinberg <zack@codesourcery.com>
1342 * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
1343 * function.h (struct emit_status): Length of regno_pointer_align
1344 and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
1345 not regno_pointer_align_length (i.e. length actually used, not
1346 length as allocated)
1348 * config/i386/i386.c (struct stack_local_entry): New.
1349 (struct machine_function): Replace huge array with alist.
1350 (assign_386_stack_local): Change to match.
1352 2003-02-13 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
1354 * inclhack.def (hpux_long_double): Tighten select and add bypass
1356 * fixincl.x: Rebuilt.
1358 2003-02-13 Josef Zlomek <zlomekj@suse.cz>
1360 * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
1361 edge and block ends with a jump insn it must be simple jump.
1363 2003-02-13 Daniel Jacobowitz <drow@mvista.com>
1365 * Makefile.in (PREPROCESSOR_DEFINES): Add
1366 @TARGET_SYSTEM_ROOT_DEFINE@.
1367 * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
1368 is specified or if building a cross compiler.
1369 (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
1370 if the sysroot is under $exec_prefix.
1371 * configure: Regenerated.
1372 * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
1374 (struct default_include): Add add_sysroot field.
1375 (cpp_SYSROOT): Declare.
1376 * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
1378 (cpp_SYSROOT): New variable.
1379 * cppinit.c (cpp_create_reader): Initialize
1380 CPP_OPTION (pfile, sysroot).
1381 (init_standard_includes): Handle add_sysroot. Do not
1382 add unrelocated copies of relocated directories.
1383 (COMMAND_LINE_OPTIONS): Add -isysroot.
1384 (cpp_handle_option): Handle -isysroot.
1385 * cpplib.h (struct cpp_options): Add sysroot member.
1386 * gcc.c (The Specs Language): Update description of %I.
1387 (target_system_root_changed): New variable.
1388 (process_command): Conditionalize make_relative_prefix call
1389 on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE. Set
1390 target_system_root_changed.
1391 (do_spec_1): Add -isysroot to %I.
1392 * doc/invoke.texi (Spec Files): Update description of %I.
1393 * doc/install.texi (--with-sysroot): Update comment about
1396 2003-02-13 Kazu Hirata <kazu@cs.umass.edu>
1398 * config/h8300/h8300.md (a peephole2): New.
1400 2003-02-13 Robert Lipe <robertlipe@usa.net>
1401 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1403 * doc/install.texi (Specific): Update three SCO-related URLs.
1405 2003-02-13 Andreas Schwab <schwab@suse.de>
1407 * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
1408 Parenthesize properly.
1409 (NPREDECESORS): Parenthesize properly.
1411 2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
1413 * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
1415 2003-02-12 Roger Sayle <roger@eyesopen.com>
1417 * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
1418 (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
1420 * reg-stack.c (subst_stack_regs_pat): Add support for binary
1421 UNSPEC instructions (e.g. "fpatan").
1423 2003-02-12 Mike Stump <mrs@apple.com>
1425 * varray.c (element_size): Remove.
1428 (varray_init): Use new interface.
1429 (varray_grow): Use new interface.
1430 (varray_clear): Use new interface.
1432 2003-02-12 Aldy Hernandez <aldyh@redhat.com>
1434 * config/rs6000/spe.h: Add casts to the arguments of the following
1435 macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
1436 evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
1437 evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
1438 __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
1439 __ev_get_u16, __ev_get_s16.
1441 2003-02-12 Kazu Hirata <kazu@cs.umass.edu>
1443 * config/h8300/h8300.md (a peephole2): New.
1445 Wed Feb 12 22:47:18 CET 2003 Jan Hubicka <jh@suse.cz>
1447 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
1448 (OBJS): Add callgraph.o
1450 * c-decl.c (expand_body_1): Break out from ...
1451 (expand_body): This one; change calling convention
1452 (finish_function): Move some of expand_body logic here.
1453 (c_expand_deferred_function): Update call of expand_body
1454 (c_expand_stmt): Use c_expand_body_1.
1455 * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
1456 * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
1457 * c-tree.h (c_expand_body): Declare.
1458 * callgraph.c: New file.
1459 * flags.h (flag_unit_at_a_time): Declare.
1460 * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
1461 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
1462 LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
1463 * langhooks.h (struct lang_hooks_for_callgraph): New.
1464 (struct lang_hooks): Add callgraph field.
1465 * toplev.c (flag_unit_at_a_time): New.
1466 (lang_independent_options): Add flag_unit_at_a_time.
1467 (process_options): Disable unit-at-a-time mode for frontends not
1468 supporting callgraph.
1469 * tree-inline.c (typedef struct inline_data): Add "decl"
1470 (expand_call_inline): Update callgraph.
1471 (optimize_inline_calls): Set id.decl.
1472 * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
1473 cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
1474 cgraph_calls_p): Declare.
1475 * invoke.texi (-funit-at-a-time): Document
1477 2003-02-12 Aldy Hernandez <aldyh@redhat.com>
1479 * config/rs6000/spe.h: Fix misc formatting.
1480 (__ev_create_ufix32_fs): Cast ev argument.
1481 (__ev_create_sfix32_fs): Same.
1482 (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
1483 (__ev_get_ufix32_fs_internal): Same.
1485 2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
1487 * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
1488 * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
1490 2003-02-12 Zack Weinberg <zack@codesourcery.com>
1492 * cpplib.c (do_include_common): Move warnings for
1493 #include_next and #import out to callers. Use early-return
1494 instead of nested ifs. Don't do check_eol here.
1495 (parse_include): Do check_eol here with the rest of the
1497 (do_include_next, do_import): Now handle warnings.
1499 2003-02-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1501 * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
1503 Wed Feb 12 15:19:42 CET 2003 Jan Hubicka <jh@suse.cz>
1505 * predict.c (estimate_probability): Fix roundoff error.
1507 2003-02-12 Kazu Hirata <kazu@cs.umass.edu>
1509 * config/h8300/h8300.md (a peephole2): Don't handle 65535.
1510 (two peephole2): New.
1512 2003-02-12 Kazu Hirata <kazu@cs.umass.edu>
1514 * config/h8300/h8300.md (several peephole2): Replace
1515 find_regno_note with peep2_reg_dead_p.
1517 2003-02-11 Richard Henderson <rth@redhat.com>
1519 * gcse.c (lookup_set): Remove unused argument PAT. Update
1522 2003-02-11 Geoffrey Keating <geoffk@apple.com>
1524 * diagnostic.c (real_abort): New.
1525 (diagnostic_report_diagnostic): Call real_abort on error.
1526 * diagnostic.h (diagnostic_abort_on_error): New.
1527 (struct diagnostic_context): Add abort_on_error field.
1528 * toplev.c (setup_core_dumping): New.
1529 (decode_d_option): Handle 'H' case.
1530 * doc/invoke.texi (Debugging Options): Document -dH.
1532 2003-02-11 Nathanael Nerode <neroden@gcc.gnu.org>
1534 * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
1535 which refers to obsolete directories.
1537 2003-02-11 Richard Henderson <rth@redhat.com>
1539 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
1541 Mon Oct 21 17:07:47 CEST 2002 Jan Hubicka <jh@suse.cz>
1543 * i386.c (contains_128bit_aligned_vector_p): New function.
1544 (ix86_function_arg_boundary): Properly align vector modes.
1546 2003-02-11 Bob Wilson <bob.wilson@acm.org>
1548 * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
1549 * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
1552 2003-02-11 Roger Sayle <roger@eyesopen.com>
1554 * builtins.c: Fix failure caused by commiting wrong patch.
1556 2003-02-11 Dale Johannesen <dalej@apple.com>
1557 * ra-build.c (compare_and_free_webs): Relax checking.
1558 * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1559 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1561 2003-02-11 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
1563 PR optimization/9651
1564 * rtlanal.c (may_trap_p): Handle FIX.
1566 2003-02-11 Dave Jones <davej@codemonkey.org.uk>
1568 * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
1569 * doc/invoke.texi: Extra alias.
1571 2003-02-11 Geoffrey Keating <geoffk@apple.com>
1573 * config/rs6000/host-darwin.c: Fix comment.
1575 2003-02-11 David Edelsohn <edelsohn@gnu.org>
1577 * config/rs6000/rs6000.md (divmodsi4): Use register_operand
1578 predicate for mod result.
1580 2003-02-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1582 * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
1583 hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
1584 * fixincl.x: Rebuilt.
1585 * tests/base/stdlib.h: Update.
1586 * tests/base/ctype.h: New file.
1588 Tue Feb 11 20:44:45 CET 2003 Jan Hubicka <jh@suse.cz>
1590 * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
1592 2003-02-11 Richard Henderson <rth@redhat.com>
1594 * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
1595 appropriated as globals.
1596 (ix86_expand_clrstr): Similarly.
1597 * config/i386/i386.md (cmpstrsi): Similarly.
1599 2003-02-11 Kazu Hirata <kazu@cs.umass.edu>
1601 * config/h8300/h8300.md (a peephole2): Add a case of 255.
1603 2003-02-11 Roger Sayle <roger@eyesopen.com>
1605 * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
1606 (pow_optab, atan2_optab): Define corresponding macros.
1607 * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
1608 * genopinit.c (optabs): Implement pow_optab and atan2_optab
1609 using pow?f3 and atan2?f3 patterns.
1610 * builtins.c (expand_errno_check): New function to update errno
1611 if necessary, split out from expand_builtin_mathfn.
1612 (expand_builtin_mathfn): Use expand_errno_check.
1613 (expand_builtin_mathfn_2): New function to handle expanding binary
1614 math functions, reusing the code in expand_errno_check.
1615 (expand_builtin): Handle the pow and atan2 math built-ins,
1616 BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
1617 expand_builtin_mathfn_2.
1619 * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
1621 Tue Feb 11 19:03:22 MET 2003 Jan Hubicka <jh@suse.cz>
1623 * combine.c (combine_simplify_rtx): Fix folding of
1624 nested float_truncates.
1626 2003-02-11 Kazu Hirata <kazu@cs.umass.edu>
1628 * config/h8300/h8300.md (a peephole2): Fix a typo.
1630 2003-02-11 Richard Earnshaw <rearnsha@arm.com>
1632 * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
1635 2003-02-11 Kazu Hirata <kazu@cs.umass.edu>
1637 * config/h8300/h8300-protos.h: Add a prototype for
1639 * config/h8300/h8300.c (gtuleu_operator): New.
1640 * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
1641 * config/h8300/h8300.md (a peephole2): New.
1643 Tue Feb 11 13:32:12 CET 2003 Jan Hubicka <jh@suse.cz>
1645 * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
1647 Tue Feb 11 10:02:54 CET 2003 Jan Hubicka <jh@suse.cz>
1649 * predict.c (choose_function_section): Choose sections correctly.
1651 2003-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1653 * reload1.c (first_label_num): New.
1654 (reload): Index offsets_known_at and offsets_at using difference of
1655 label number and first label number. Don't use offset pointers.
1656 (set_label_offsets, set_initial_label_offsets): Likewise.
1658 2003-02-10 Roger Sayle <roger@eyesopen.com>
1660 * mips-tfile.c (init_file): Add missing initializers in the
1661 "#ifdef __alpha" case.
1662 (file_offset, max_file_offset): Declare as unsigned long.
1663 (write_varray): Cast to "unsigned long" in comparisons against
1664 either file_offset or max_file_offset.
1665 (write_object): Likewise.
1666 (read_seek): Likewise.
1667 (copy_object): Likewise. Declare "ifd" as int to match its use
1668 in add_ext_symbol, and avoid signed/unsigned conditional warning.
1670 2003-02-10 Nick Clifton <nickc@redhat.com>
1671 Aldy Hernandez <aldyh@redhat.com>
1673 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
1674 override options which have been specified on the command line.
1676 2003-02-10 Kazu Hirata <kazu@cs.umass.edu>
1678 * config/h8300/h8300.md (abssf2): New.
1679 (*abssf2_h8300): Likewise.
1680 (*abssf2_h8300hs): Likewise.
1682 2003-02-10 Phil Edwards <pme@gcc.gnu.org>
1684 * tree.c (build_tree_list): Fix parameter names in comment.
1686 2003-02-10 Janis Johnson <janis187@us.ibm.com>
1688 * config/rs6000/ppc64-fp.c: New file.
1689 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
1691 2003-02-10 Josef Zlomek <zlomekj@suse.cz>
1693 * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
1694 * bb-reorder.c (make_reorder_chain): Deleted.
1695 (make_reorder_chain_1): Deleted.
1696 (find_traces): New function.
1697 (rotate_loop): New function.
1698 (mark_bb_visited): New function.
1699 (find_traces_1_round): New function.
1700 (copy_bb): New function.
1701 (bb_to_key): New function.
1702 (better_edge_p): New function.
1703 (connect_traces): New function.
1704 (copy_bb_p): New function.
1705 (get_uncond_jump_length): New function.
1706 (reorder_basic_blocks): Use new functions (Software Trace Cache).
1707 * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
1710 2003-02-10 Aldy Hernandez <aldyh@redhat.com>
1712 * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
1714 2003-02-09 Dan Nicolaescu <dann@ics.uci.edu>
1716 * tree.h (struct tree_decl): Remove unused live_range_rtl field.
1717 (DECL_LIVE_RANGE_RTL): Remove.
1719 2003-02-10 Nick Clifton <nickc@redhat.com>
1721 * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
1722 config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
1723 config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
1724 config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
1725 config/arm/freebsd.h, config/arm/linux-elf.h,
1726 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
1727 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
1728 config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
1729 config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
1730 config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
1731 config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
1732 config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
1733 and reformat as appropriate.
1735 2003-02-10 Kazu Hirata <kazu@cs.umass.edu>
1737 * config/h8300/clzsi2.c: Remove.
1738 * config/h8300/ctzsi2.c: Likewise.
1739 * config/h8300/paritysi2.c: Likewise.
1740 * config/h8300/popcountsi2.c: Likewise.
1741 * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
1742 ctzsi2, paritysi2, and popcountsi2.
1744 2003-02-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1745 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
1748 * c-decl.c (duplicate_decls): Discard the initializer of the
1749 new decl when the types are conflicting.
1751 2003-02-10 Josef Zlomek <zlomekj@suse.cz>
1753 * Makefile.in (sreal.o): Added.
1754 (predict.o): Depends on sreal.h instead of real.h.
1755 * sreal.c: New file.
1756 * sreal.h: New file.
1757 * predict.c: Use sreal.c instead of real.c.
1759 2003-02-10 Nick Clifton <nickc@redhat.com>
1761 * Contributed support for the Cirrus EP9312 "Maverick"
1762 floating point co-processor. Written by Aldy Hernandez
1764 (config/arm/arm.c): Add Cirrus support.
1765 (config/arm/arm.h): Likewise.
1766 (config/arm/aout.h): Likewise.
1767 (config/arm/arm.md): Likewise.
1768 (config/arm/arm-protos.h): Likewise.
1769 (config.gcc): Likewise.
1770 (doc/invoke.texi): Describe new -mcpu value and new
1771 -mcirrus-fix-invalid-insns switch,
1772 (cirrus.md): New file.
1774 Mon Feb 10 11:40:18 CET 2003 Jan Hubicka <jh@suse.cz>
1776 * combine.c (combine_simplify_rtx): Simplify using
1777 (float_truncate (float x)) is (float x)
1778 (float_extend (float_extend x)) is (float_extend x).
1780 2003-02-10 Alan Modra <amodra@bigpond.net.au>
1782 * calls.c (try_to_integrate): Tidy stack_usage_map access.
1783 (emit_library_call_value_1): Likewise. Formatting.
1784 (store_one_arg): Likewise.
1786 2003-02-09 Nick Clifton <nickc@redhat.com>
1787 Aldy Hernandez <aldyh@redhat.com>
1789 * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
1790 spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
1791 spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
1792 spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
1793 spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
1794 docs. Add range test for immediate value.
1796 2003-02-09 Aldy Hernandez <aldyh@redhat.com>
1798 Rename spe_evxor to xorv2si3.
1802 2003-02-10 Glen Nakamura <glen@imodulo.com>
1804 * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
1807 Mon Feb 10 00:29:17 CET 2003 Jan Hubicka <jh@suse.cz>
1809 * i386.c (vector_move_operand): New predicate.
1810 (ix86_expand_vector_move): Be happy about 0.
1811 * i386.h (PREDICATE_CODES): Add sse-move_operand.
1812 * i386.md (mov*_internal): Add 'C' alternative.
1814 Sun Feb 9 23:58:33 CET 2003 Jan Hubicka <jh@suse.cz>
1816 * i386.md (floathi*): Deal with SSE.
1818 Sun Feb 9 23:54:59 CET 2003 Jan Hubicka <jh@suse.cz>
1820 * simplify-rtx.c (simplify_unary_operation,
1821 simplify_binary_operation): Deal with vector modes
1822 (simplify_ternary_operation): Deal with no-op VEC_MERGE.
1824 2002-02-09 Richard Sandiford <rsandifo@redhat.com>
1826 * toplev.c (rest_of_compilation): Recompute register usage after
1829 2003-02-09 Richard Henderson <rth@redhat.com>
1831 * libgcc-std.ver (__clztf2): New.
1832 (__ctztf2, __popcounttf2, __paritytf2): New.
1833 * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
1834 __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
1835 adjust code to match the different type sizes.
1836 * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
1837 __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
1839 * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
1840 TImode; select word_mode and twice that.
1841 (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
1842 select the modes from float, double, and long double.
1843 (init_optabs): Remove duplicate initializations.
1845 2003-02-09 Wolfgang Bangerth <bangerth@ticam.utexas.edu>
1847 * doc/install.texi: Squeeze and streamline section on
1848 testing and regression checking.
1850 Sun Feb 9 13:33:34 CET 2003 Jan Hubicka <jh@suse.cz>
1852 * i386.md (ahi?v*3): Set third operand type to TImode.
1853 * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
1855 * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
1858 * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
1859 Change code so they are arithmetic expressions now.
1860 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
1861 simplify_ternary_operation): Deal with VEC_* expressions.
1863 * i386.md (vmaskcmp, pinsrw, movd patterns): Fix RTL representation.
1865 Sat Feb 8 00:21:22 CET 2003 Jan Hubicka <jh@suse.cz>
1867 * cfgrtl.c (verify_flow_info): Use control_flow_insn_p.
1868 * reload1.c (fixup_abnormal_edges): Split basic blocks when EH edges
1869 possibly got duplicated.
1871 2003-02-08 Richard Henderson <rth@redhat.com>
1873 * config/alpha/alpha.c (override_options): Turn off explicit
1874 relocs until post-peep2 code duplication resolved.
1876 2003-02-08 Kazu Hirata <kazu@cs.umass.edu>
1878 * optabs.c (expand_unop): Widen clz properly when clz is done
1881 2003-02-08 Kazu Hirata <kazu@cs.umass.edu>
1883 * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
1884 * config/h8300/crti.asm: Likewise.
1885 * config/h8300/crtn.asm: Likewise.
1886 * config/h8300/ctzsi2.c: Likewise.
1887 * config/h8300/fixunssfsi.c: Likewise.
1888 * config/h8300/h8300-protos.h: Likewise.
1889 * config/h8300/h8300.c: Likewise.
1890 * config/h8300/h8300.h: Likewise.
1891 * config/h8300/h8300.md: Likewise.
1892 * config/h8300/paritysi2.c: Likewise.
1893 * config/h8300/popcountsi2.c: Likewise.
1894 * config/h8300/rtems.h: Likewise.
1896 2003-02-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1898 * doc/invoke.texi: Documentation for my previous commit.
1899 * doc/passes.texi: Ditto.
1901 2003-02-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1903 * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
1904 duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
1906 (DLTHE_FLAG_UPDATE_FREQ): New.
1907 * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
1908 loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
1909 rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
1910 fix_bb_placement, fix_bb_placements, place_new_loop,
1911 scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
1912 New static functions.
1913 (fix_loop_placement, can_duplicate_loop_p,
1914 duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
1917 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
1918 unswitch_loops): Declare.
1919 * loop-init.c: New file.
1920 * loop-unswitch.c: New file.
1921 * Makefile.in (loop-init.o, loop-unswitch.o): New.
1922 * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
1923 * toplev.c (DFI_loop2): New dump.
1924 (flag_unswitch_loops): New.
1925 (lang_independent_options): Add it.
1926 (rest_of_compilation): Call new loop optimizer.
1927 (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
1929 2003-02-08 Kazu Hirata <kazu@cs.umass.edu>
1931 * config/h8300/clzsi2.c: New.
1932 * config/h8300/ctzsi2.c: Likewise.
1933 * config/h8300/paritysi2.c: Likewise.
1934 * config/h8300/popcountsi2.c: Likewise.
1935 * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
1937 2003-02-07 David Edelsohn <edelsohn@gnu.org>
1939 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
1940 * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
1941 (ctzsi2): New pattern.
1942 (ffssi2): Use clz instead of unspec.
1943 (clzdi2): Rename from cntlzd2.
1944 (ctzdi2): New pattern.
1945 (ffsdi2): Use clz instead of unspec.
1947 2003-02-07 Loren James Rittle <ljrittle@acm.org>
1949 * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
1950 * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1951 * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1952 * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
1954 2003-02-07 Wolfgang Bangerth <bangerth@ticam.utexas.edu>
1956 * doc/trouble.texi: Document pitfalls of two-stage name lookup.
1958 2003-02-07 Richard Henderson <rth@redhat.com>
1961 * gcse.c (local_cprop_find_used_regs): New.
1962 (local_cprop_pass): Use it.
1964 2003-02-07 Fred Fish <fnf@intrinsity.com>
1966 * mips-tfile.c (parse_def): Parenthesize assignments to fix
1969 2003-02-07 Segher Boessenkool <segher@koffie.nl>
1971 * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
1973 2003-02-07 Roger Sayle <roger@eyesopen.com>
1975 * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
1976 (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
1977 (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
1978 * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
1979 builtin functions (and their __builtin_* variants).
1980 * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
1981 (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
1982 when not optimizing.
1984 * doc/extend.texi: Document new pow and atan2 builtins, and
1985 their float and long double variants. Realphabetize builtins.
1987 Fri Feb 7 23:24:28 CET 2003 Jan Hubicka <jh@suse.cz>
1989 * i386.md (sse2_nandv2di3): Fix.
1991 2003-03-07 Danny Smith <dannysmith@users.sourceforge.net>
1993 * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
1994 * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
1996 * config/i386/i386.h (ix86_return_in_memory): Return aggregate
1997 types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
1999 Fri Feb 7 22:22:40 CET 2003 Jan Hubicka <jh@suse.cz>
2001 * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
2003 2003-02-07 Daniel Berlin <dberlin@dberlin.org>
2005 * cfg.c (dump_flow_info): Add back accidently deleted line.
2007 2003-02-07 Andrey Petrov <petrov@netbsd.org>
2009 * optabs.c (expand_float): Search wider integer modes first.
2011 2003-02-07 Bob Wilson <bob.wilson@acm.org>
2013 * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
2014 based on preprocessor flag.
2016 2003-02-07 Roger Sayle <roger@eyesopen.com>
2017 Richard Henderson <rth@redhat.com>
2019 * gcse.c (implicit_sets): New.
2020 (compute_hash_table_work): Include them in hash table.
2021 (find_implicit_sets, fis_get_condition): New.
2022 (one_cprop_pass): Allocate and free implicit_sets; call
2023 find_implicit_sets before building hash table.
2025 2003-02-07 Jason Thorpe <thorpej@wasabisystems.com>
2027 * config/t-netbsd (USER_H): Revert previous change.
2029 2003-02-07 Gabor Greif <ggreif@lucent.com>
2031 * doc/c-tree.texi (Namespaces): Fix typo.
2033 Fri Feb 7 02:18:57 CET 2003 Jan Hubicka <jh@suse.cz>
2035 * regrename.c (do_replace, find_oldest_value_reg,
2036 copyprop_hardreg_forward_1): Update register attributes.
2038 2003-02-06 Vladimir Makarov <vmakarov@redhat.com>
2040 * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
2041 VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
2042 variables starting with underscore.
2043 (struct unit_usage): New structure.
2044 (unit_usages, cycle_alt_unit_usages): New global variables.
2045 (check_unit_distribution_in_reserv): Remove it.
2046 (store_alt_unit_usage): New function.
2047 (check_regexp_units_distribution): Rewrite it.
2049 2003-02-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2051 * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
2053 * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
2054 if not MASK_NO_SPACE_REGS.
2055 (output_call): Adjust return pointer, don't load new space register
2056 into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
2057 (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
2058 TARGET_NO_SPACE_REGS is true.
2059 * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
2061 (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
2062 (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
2063 true. Use bve when TARGET_64BIT is true.
2065 2003-02-06 Richard Henderson <rth@redhat.com>
2067 * combine.c (nonzero_bits): Fix double break.
2069 2003-02-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2070 Richard Henderson <rth@redhat.com>
2073 * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
2074 from functions that return a float to functions that don't.
2076 Thu Feb 6 00:18:38 CET 2003 Jan Hubicka <jh@suse.cz>
2078 * i386.c (x86_inter_unit_moves): New variable.
2079 (ix86_secondary_memory_needed): Fix 64bit case, honor
2080 TARGET_INTER_UNIT_MOVES
2081 * i386.h (x86_inter_unit_moves): Declare.
2082 (TARGET_INTER_UNIT_MOVES): New macro.
2083 * i386.md (movsi_1): Cleanup constraints; disable
2084 when not doing inter-unit moves.
2085 (movsi_1_nointernunit): New.
2086 (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
2087 (movdi_1_rex64_nointerunit): New.
2088 (mivsf_1): disable when not doing inter-unit moves.
2089 (movsf_1_nointerunit): New.
2091 * basic-block.h (inside_basic_block_p): Declare.
2092 * cfgbuild.c (inside_basic_block_p): Make global.
2093 * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
2094 * scheudle-ebb.c (schedule_ebb): Return last basic block of trace;
2096 (fix_basic_block_boundaries, add_missing_bbs): New.
2097 (rank): Use profile.
2098 (scheudle_ebbs): Rely on CFG; update coments.
2100 2003-02-05 Geoffrey Keating <geoffk@apple.com>
2102 * Makefile.in (host_hook_obj): New.
2103 (OBJS): Add $(host_hook_obj).
2104 (host_default.o): New rule.
2105 * config.gcc (host_hook_obj): New, default to host-default.o.
2106 (powerpc-*-darwin*): Use host-darwin.o.
2107 (out_host_hook_obj): New.
2108 * configure: Regenerate.
2109 * configure.in: Print information about out_host_hook_obj, substitute
2111 * host-default.c: New file.
2112 * hosthooks.h: New file.
2113 * toplev.c (general_init): Call host_hooks.extra_signals.
2114 * config/rs6000/host-darwin.c: New file.
2115 * config/rs6000/x-darwin: New file.
2116 * doc/hostconfig.texi: Add documentation for new host hook.
2117 Rearrange existing documentation.
2119 2003-02-05 Roger Sayle <roger@eyesopen.com>
2121 * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
2122 with *targetm.delegitimize_address.
2123 (rtl_for_decl_location): Likewise.
2124 * dwarfout.c (output_mem_loc_descriptor): Likewise. Include target.h.
2125 * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
2127 * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
2128 * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
2130 * config/i386/i386.c (ix86_delegitimize_address): Renamed from
2131 i386_simplify_dwarf_addr. Made static. Prototyped.
2132 (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
2133 i386_simplify_dwarf_addr to ix86_delegitimize_address.
2134 (ix86_find_base_term): Likewise.
2135 (maybe_get_pool_constant): Likewise.
2137 * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
2138 * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
2140 * config/s390/s390.c (s390_delegitimize_address): Renamed from
2141 s390_simplify_dwarf_addr. Made static. Prototyped.
2142 (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
2144 2003-02-05 Richard Henderson <rth@redhat.com>
2147 * integrate.c (output_inline_function): Reset input_filename
2148 and lineno from the decl before rest_of_compilation.
2150 2003-02-05 Richard Henderson <rth@redhat.com>
2152 * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
2153 (CTZ_DEFINED_VALUE_AT_ZERO): New.
2154 * doc/rtl.texi, doc/tm.texi: Document them.
2156 * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
2157 of the value at zero properly.
2158 * fold-const.c (tree_expr_nonnegative_p): Likewise.
2159 * simplify-rtx.c (simplify_unary_operation): Likewise.
2161 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
2162 (CTZ_DEFINED_VALUE_AT_ZERO): New.
2164 * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
2165 (TARGET_EXPAND_BUILTIN): Remove.
2166 (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
2167 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
2168 (enum arm_builtins): Remove.
2169 * config/arm/arm.md (UNSPEC_CLZ): Remove.
2170 (clzsi2): Rename from clz; use clz instead of unspec.
2172 * config/arm/arm-protos.h: Update.
2174 Wed Feb 5 23:12:57 CET 2003 Jan Hubicka <jh@suse.cz>
2176 * i386-protos.h (x86_emit_floatuns): Declare.
2177 * i386.c (x86_emit_floatuns): New global function.
2178 * i386.md (floatunssisf2, floatunsdisf2,
2179 floatunsdidf2): New patterns.
2181 2003-01-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2183 * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
2185 2003-02-05 Hans Boehm <Hans.Boehm@hp.com>
2187 * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
2190 2002-02-05 Roger Sayle <roger@eyesopen.com>
2192 * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
2194 2003-02-05 Jakub Jelinek <jakub@redhat.com>
2196 PR optimization/8555
2197 * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
2198 instead of aborting.
2200 2003-02-04 Richard Henderson <rth@redhat.com>
2202 * config/i386/i386.md (UNSPEC_BSF): Remove.
2203 (ffssi2): Split into cmove and no_cmove insns and splitters;
2204 lose pentium float trick for now.
2205 (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
2206 (ctzsi2, clzsi2, bsr): New.
2208 2003-02-04 Richard Henderson <rth@redhat.com>
2210 * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
2211 UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
2212 * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
2213 (ffsdi2): Use popcount instead of unspec.
2214 (popcountdi2): Rename from *popcnt.
2215 (ctzdi2, clzdi2, getf_exp_tf): New.
2217 2003-02-04 Kazu Hirata <kazu@cs.umass.edu>
2219 * genconfig.c (main): Generate CC0_P.
2220 * rtl.h (CC0_P): Remove.
2222 2003-02-04 Richard Henderson <rth@redhat.com>
2224 * libgcc2.h, libgcc2.c (__ffsSI2): New.
2225 (__ffsDI2): Rename from __ffsdi2.
2226 * mklibgcc.in (lib2funcs): Add _ffssi2.
2228 2003-02-04 Richard Henderson <rth@redhat.com>
2230 * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
2231 rounds with a "bit table" lookup.
2233 2003-02-04 Ulrich Weigand <uweigand@de.ibm.com>
2235 * reload.c (find_reloads): Do not use the mode specified in the insn
2236 pattern as reload mode for address operands. Do not generate optional
2237 reloads for operands where a mandatory reload was already pushed.
2239 2003-02-04 Richard Henderson <rth@redhat.com>
2241 * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
2242 builtins instead of inline assembly.
2244 2003-02-04 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
2247 * libgcc2.c (__subvdi3): Fix typo.
2249 Tue Feb 4 21:46:05 CET 2003 Jan Hubicka <jh@suse.cz>
2251 * i386.md (movti_rex64): Fix constraint.
2253 Tue Feb 4 18:40:42 CET 2003 Jan Hubicka <jh@suse.cz>
2255 * i386.md (vector push splitters): Fix typo in resolving conflict.
2257 2003-02-04 Rodney Brown <rbrown64@csc.com.au>
2259 * config/i386/i386.c (x86_function_profiler): Fix typo in format.
2261 2003-02-04 Phil Edwards <pme@gcc.gnu.org>
2263 * doc/install.texi (*-*-linux-gnu): Mention glibc requirements
2264 for recent libstdc++. Remove formatting cruft.
2266 2003-02-04 Jakub Jelinek <jakub@redhat.com>
2268 * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
2269 attribute even if input file name is absolute, but one of the
2270 includes is relative.
2272 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
2274 * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
2275 doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
2276 * doc/install.texi: Update copyright dates. Update to GFDL 1.2.
2278 2003-02-03 Richard Henderson <rth@redhat.com>
2280 * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
2281 __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
2282 return type to "int". Shuffle declarations and undef int trap.
2283 * libgcc2.h: Remove their declarations.
2284 * optabs.c (expand_unop): Force outmode to int for bitops.
2286 2003-02-03 Bob Wilson <bob.wilson@acm.org>
2288 * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
2289 coprocessor registers before floating-point registers.
2290 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
2291 to account for a previously removed register.
2292 (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
2293 Delete unused macros.
2295 Mon Feb 3 21:19:11 CET 2003 Jan Hubicka <jh@suse.cz>
2297 * i386.c (ix86_expand_store_builtin): Always force op1 to register.
2298 (mov*_internal): Fix predicates; require one of operands to not be
2300 (SSE?MMX move expanders): Fix predicates; force one of operands to
2302 (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
2303 (movups/movupd/movdqu patterns): Force one of operands to not be
2306 2002-02-03 Roger Sayle <roger@eyesopen.com>
2308 * hooks.c (hook_rtx_rtx_identity): Generic hook function that
2309 takes a single rtx and returns it unmodified.
2310 * hooks.h (hook_rtx_rtx_identity): Prototype here.
2311 * target.h (struct gcc_target): Add "delegitimize_address"
2312 field to target structure.
2313 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Provide default
2314 for delegitimize_address target using hook_rtx_rtx_identity.
2315 (TARGET_INITIALIZER): Initialize delegitimize_address field
2316 using TARGET_DELEGITIMIZE_ADDRESS macro.
2317 * simplify-rtx.c (avoid_constant_pool_reference): Handle float
2318 extensions of constant pool references. Use delegitimize_address
2319 to undo the obfuscation of "-fpic".
2320 * Makefile.in (simplify-rtx.o): Add dependency on target.h.
2322 * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
2323 i386_simplify_dwarf_addr.
2324 (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
2325 (maybe_get_pool_constant): Likewise.
2327 Mon Feb 3 16:01:17 CET 2003 Jan Hubicka <jh@suse.cz>
2329 * i386.c (ix86_expand_int_movcc): Fix setcc sign bit case.
2331 Mon Feb 3 01:30:11 CET 2003 Jan Hubicka <jh@suse.cz>
2333 * regclass.c (cannot_change_mode_set_regs): Correct argument order.
2335 2003-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2337 * mips/_tilib.c: Don't include tsystem.h or defaults.h. Don't
2338 define LIBGCC2_WORDS_BIG_ENDIAN. Include coretypes.h and tm.h.
2340 2003-02-02 Andreas Schwab <schwab@suse.de>
2342 * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
2344 2003-02-02 Richard Earnshaw <rearnsha@arm.com>
2346 * arm.md (sibcall_epilogue): Set the "conds" to "clob".
2347 (epilogue_insns): Likewise.
2349 2003-02-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2351 * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
2353 2003-02-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2355 * pa-protos.h (attr_length_millicode_call): Remove second argument.
2356 (attr_length_indirect_call, attr_length_indirect_call,
2357 attr_length_save_restore_dltp): New prototypes.
2358 * pa.c (attr_length_millicode_call): Remove second argument. Check
2359 INSN_ADDRESSES_SET_P in distance calculation.
2360 (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
2362 (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
2363 (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
2364 Call attr_length_call directly.
2365 (attr_length_indirect_call, output_indirect_call,
2366 attr_length_save_restore_dltp): New functions.
2367 * pa.md (attr_length_millicode_call): Drop second argument from all
2369 (return_internal_pic): Delete.
2370 (return_external_pic): Remove use of PIC register and pic operand and
2372 (epilogue): Use return_internal for both normal and pic code.
2373 (call, call_value): Emit new 32-bit pic patterns for symref and
2374 indirect calls. Remove uses for arg pointer and pic register.
2375 (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
2376 call_reg_pic_post_reload, call_val_symref_pic,
2377 call_val_symref_pic_post_reload, call_val_reg_pic,
2378 call_val_reg_pic_post_reload): New pre and post reload insn patterns.
2379 Implement define_split and define_peephole2 patterns for pre reload
2381 (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
2382 call_value_internal_reg_64bit): Shorten names.
2383 (all call patterns): Explicitly indicate registers used and clobbered.
2384 Use attr_length_indirect_call and attr_length_save_restore_dltp for
2385 attribute length calculation. Move code generation for indirect calls
2386 to output_indirect_call.
2387 (sibcall, sibcall_value): Don't restore PIC register.
2388 (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
2391 2003-02-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2393 * doc/install.texi (Testing): Simplify and compress instructions
2396 2003-02-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2398 * collect2.c (pexecute_pid): Rename to pid.
2399 (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
2402 2003-02-01 Geoffrey Keating <geoffk@apple.com>
2404 * doc/extend.texi (Function Attributes): Remove documentation
2405 for PowerPC Windows NT function attributes..
2407 2003-02-01 Daniel Jacobowitz <drow@mvista.com>
2409 * dwarf2out.c (gen_type_die): Check for typedefs before calling
2410 for TYPE_MAIN_VARIANT.
2412 2003-02-01 Richard Henderson <rth@redhat.com>
2414 * libgcc2.c: Include auto-host.h.
2415 (ATTRIBUTE_HIDDEN): New.
2416 (__clz_tab): Don't declare here for clz and ctz.
2417 (__clzsi2, __clzdi2): Use count_leading_zeros.
2418 (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
2419 (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
2420 (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
2421 * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
2423 2003-02-01 Richard Henderson <rth@redhat.com>
2425 * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
2427 (ashlsi3_1_zext splitter): Likewise.
2429 2003-02-01 Richard Henderson <rth@redhat.com>
2431 * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
2432 * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
2433 __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
2434 return type to Wtype.
2436 * libgcc-std.ver (GCC_3.4): Fix inheritance.
2438 * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
2439 expander input constraint.
2441 2003-02-01 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
2443 * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
2445 (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
2446 * optabs.c (widen_clz, expand_parity): New.
2447 (expand_unop): Handle clz and parity. Hardcode SImode as outmode
2448 for libcalls to clz, ctz, popcount, and parity.
2449 (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
2450 parity_optab, and set up libfunc handlers.
2451 * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
2452 __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
2453 __popcount_tab): New.
2454 * libgcc2.h: Declare them.
2455 * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
2456 * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
2458 * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
2459 * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
2460 BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
2461 BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
2462 BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
2463 BUILT_IN_PARITYLL): New.
2464 * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
2465 and add optab argument.
2466 (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
2467 * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
2468 * expr.c (expand_expr): Handle them.
2469 * fold-const.c (tree_expr_nonnegative_p): Likewise.
2470 * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
2471 * reload1.c (eliminate_regs): Handle them.
2472 (elimination_effects): Likewise.
2473 * function.c (instantiate_virtual_regs_1): Likewise
2474 * genattrtab.c (check_attr_value): Likewise.
2475 * simplify-rtx.c (simplify_unary_operation): Likewise.
2476 * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
2477 * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
2478 (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
2479 * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
2480 * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
2482 * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
2483 * mklibgcc.in (lib2funcs): ...here and merge. Add new members.
2484 * doc/extend.texi (Other Builtins): Add new builtins.
2485 * doc/md.texi (Standard Names): Add new patterns.
2487 2003-02-01 Ulrich Weigand <uweigand@de.ibm.com>
2489 * reload.c: Revert 2003-01-31 change.
2491 Sat Feb 1 14:14:40 CET 2003 Jan Hubicka <jh@suse.cz>
2493 * combine.c (combine_simplify_rtx): Use reversed_comparison_code_parts.
2495 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
2497 * flags.h (flag_volatile): Remove declaration.
2498 (flag_volatile_global, flag_volatile_static): Likewise.
2499 * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
2500 * toplev.c (flag_volatile): Remove definition.
2501 (flag_volatile_global, flag_volatile_static): Likewise.
2502 (f_options): Remove corresponding entries here.
2503 * varasm.c (make_decl_rtl): Don't check flag_volatile_global
2504 or flag_volatile_static.
2505 * doc/invoke.texi: Remove documentation of -fvolatile,
2506 -fvolatile-global and -fvolatile-static.
2508 2003-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2510 * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
2511 updating of total_code_bytes from prologue to epilogue.
2513 2003-01-31 Ulrich Weigand <uweigand@de.ibm.com>
2515 * reload.c (find_reloads): Do not use the mode specified in the insn
2516 pattern as reload mode for address operands. Do not generate optional
2517 reloads for operands where a mandatory reload was already pushed.
2518 Generate optional reloads only in the final pass though find_reloads.
2519 (have_replacement_p): New function.
2521 2003-01-31 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2523 * doc/install.texi (Testing): Remove a reference to our obsolete
2524 /testresults web pages and strip redundant information concerning
2526 (Binaries): Refer to Microsoft Windows instead of listing all
2529 Sat Feb 1 00:28:30 CET 2003 Jan Hubicka <jh@suse.cz>
2531 * loop.c (emit_prefetch_instructions): Do conversion at right place in
2534 * combine.c (simplify_set): Reverse order of ragumetns to
2535 REG_CANNOT_CHANGE_MODE_P
2536 * df.c (df_def_record_1): Likewise.
2537 * recog.c (register_operand): Likewise.
2538 * simplify-rtx.c (simplify_subreg): Likewise.
2539 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
2540 CANNOT_CHANGE_MODE_CLASS.
2541 * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
2543 * reload.c (push_reload): Likewise.
2544 * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2545 * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2546 * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2547 * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
2548 * mips.c (mips_cannot_change_mode_class): Update.
2549 * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2550 * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2551 * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2552 * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
2553 * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
2554 * sh.c (sh_cannot_change_mode_class): Update.
2555 * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
2556 * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
2558 2003-01-31 Geoffrey Keating <geoffk@apple.com>
2560 * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
2561 change to LINK_COMMAND_SPEC in gcc.c.
2563 2003-01-31 Jan Hubicka <jh@suse.cz>
2566 * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
2568 2003-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2570 * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
2573 2003-01-31 Nathan Sidwell <nathan@codesourcery.com>
2575 * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
2576 (BINFO_ELTS): New #define.
2577 * stor-layout.c (finalize_record_size): Don't set them.
2578 * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
2579 BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
2580 (BINFO_LANG_ELTS): New #define.
2581 * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
2582 * java/class.c (make_class): Use BINFO_ELTS.
2583 (set_super_info): Likewse.
2584 (add_interface_do): Likewise.
2585 * objc/objc-act.c (start_class): Use BINFO_ELTS.
2587 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
2589 * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
2590 (times): Don't ever declare if not HAVE_TIMES.
2591 (clock): Don't ever declare if not HAVE_CLOCK.
2593 2003-01-30 Richard Henderson <rth@redhat.com>
2595 * flow.c (update_life_info): Zap life info after cleanup_cfg.
2596 (regno_uninitialized): Use correct live at function entry set.
2597 (regno_clobbered_at_setjmp): Likewise.
2599 * expr.c (store_expr): Promote all MEM intermediates to regs.
2601 2003-01-30 Kazu Hirata <kazu@cs.umass.edu>
2603 * config/arm/arm.c: Fix comment typos.
2604 * config/arm/arm.h: Likewise.
2605 * config/arm/netbsd-elf.h: Likewise.
2606 * config/arm/netbsd.h: Likewise.
2608 2003-01-30 Geoffrey Keating <geoffk@apple.com>
2610 * gengtype.c (struct walk_type_data): Add needs_cast_p.
2611 (walk_type): Set needs_cast_p in walk_type_data.
2612 (write_types_process_field): Supply casts when required to suppress
2614 (write_root): Cast gt_pch_n_S to suppress warning.
2615 * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
2616 * config/rs6000/rs6000.c (print_operand): Mask off high bits only
2617 when they might exist.
2618 * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
2619 insn-conditions.o, and rs6000.o.
2621 2003-01-30 Richard Henderson <rth@redhat.com>
2623 * ggc-page.c (G.context_depth_allocations): New.
2624 (G.context_depth_collections): New.
2625 (alloc_page): Set G.context_depth_allocations.
2626 (ggc_collect): Set G.context_depth_collections.
2627 (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
2628 (ggc_pop_context): Early exit for no allocations or collections.
2630 2003-01-30 Richard Henderson <rth@redhat.com>
2632 * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
2634 2003-01-30 Richard Earnshaw <rearnsha@arm.com>
2636 * arm.c (arm_compute_initial_elimination_offset): If optimizing for
2637 size, the link register is always saved if any other register is
2640 2003-01-30 Kazu Hirata <kazu@cs.umass.edu>
2642 * config/h8300/h8300-protos.h: Update the prototype for
2644 (cpp_reader): Declare before it is used.
2645 * config/h8300/h8300.c (compute_plussi_cc): Change the return
2647 * config/h8300/h8300.md (monitor_prologue): Call abort() if we
2648 see an unknown H8 variant.
2650 2003-01-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2653 * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
2654 * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
2655 * config/rs6000/t-rtems: New file. multilib variants to match OS.
2656 * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
2657 rs6000/t-ppcgas so we get the desired multilibs.
2659 2003-01-30 Nick Clifton <nickc@redhat.com>
2661 * config/arm/arm.c (arm_output_epilogue): Update stack pointer
2662 when popping saved IP register off the stack.
2664 2003-01-30 Kazu Hirata <kazu@cs.umass.edu>
2666 * config/rs6000/aix43.h: Fix comment typos.
2667 * config/rs6000/aix51.h: Likewise.
2668 * config/rs6000/aix52.h: Likewise.
2669 * config/rs6000/altivec.h: Likewise.
2670 * config/rs6000/rs6000.c: Likewise.
2671 * config/rs6000/rs6000.h: Likewise.
2672 * config/rs6000/rs6000.md: Likewise.
2673 * config/rs6000/spe.md: Likewise.
2675 2003-01-29 Mark Mitchell <mark@codesourcery.com>
2677 * c-common.c (builtin_define_float_constants): Define
2678 __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
2680 2003-01-30 Kazu Hirata <kazu@cs.umass.edu>
2682 * config/sh/lib1funcs.asm: Fix comment typos.
2683 * config/sh/linux.h: Likewise.
2684 * config/sh/sh.c: Likewise.
2685 * config/sh/sh.md: Likewise.
2687 2003-01-30 Loren James Rittle <ljrittle@acm.org>
2689 * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
2691 2003-01-30 Alexandre Oliva <aoliva@redhat.com>
2693 * config/fp-bit.h (__make_dp): Declare if TMODES.
2695 2003-01-29 Kazu Hirata <kazu@cs.umass.edu>
2697 * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
2698 general_operand_src and general_operand_dst.
2700 2003-01-29 David Edelsohn <edelsohn@gnu.org>
2702 * config/rs6000/rs6000.c (function_arg_pass_by_reference):
2703 Return true for variable sized types.
2704 (rs6000_va_arg): Handle variable sized types passed by reference
2707 2003-01-29 Richard Earnshaw <rearnsha@arm.com>
2709 * arm.c (arm_legtimize_address): New function.
2710 * arm-protos.h (arm_legtimize_address): Add prototype.
2711 * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
2712 (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
2715 2003-01-29 Joel Sherrill <joel@OARcorp.com>
2718 * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT. Apparently no code
2719 depended on it being defined until now.
2721 2003-01-29 Joel Sherrill <joel@OARcorp.com>
2724 * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
2725 RTEMS code knows which C++ initialization style the toolset
2726 configuration is using.
2728 2003-01-29 Joel Sherrill <joel@OARcorp.com>
2731 * config/m68k/t-crtstuff: Replace spaces with tabs, add
2732 $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
2734 2003-01-29 Joel Sherrill <joel@OARcorp.com>
2737 * config.gcc (hppa1.1-rtems): Did not include t-rtems nor enable
2739 * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
2741 2003-01-29 Nick Clifton <nickc@redhat.com>
2743 * Makefile.in (c-parse.o): Locate source file in $(parsedir)
2746 2003-01-29 Andrew Haley <aph@redhat.com>
2748 * tree-inline.c (walk_tree): Add CHAR_TYPE.
2750 Wed Jan 29 10:26:12 CET 2003 Jan Hubicka <jh@suse.cz>
2752 * i386.md (subdi3_carry_rex64): Fix typo.
2754 2003-01-28 Stan Shebs <shebs@apple.com>
2756 * coretypes.h (cpp_reader): Forward declare struct.
2757 * c-pragma.h (cpp_reader): Remove forward declaration.
2758 * hashtable.h (cpp_reader): Likewise.
2759 * scan.h (cpp_reader): Likewise.
2760 * tree.h (cpp_reader): Likewise.
2761 * config/darwin-protos.h (cpp_reader): Likewise.
2762 * config/arm/arm-protos.h (cpp_reader): Likewise.
2763 * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
2764 struct cpp_reader in prototypes.
2766 2003-01-28 Christian Cornelssen <ccorn@cs.tu-berlin.de>
2768 * doc/install.texi: Add documentation for installation into
2769 tooldirs and with DESTDIR.
2771 2003-01-28 Richard Henderson <rth@redhat.com>
2773 * config.gcc (ia64*-*-aix*): Remove.
2774 * config/ia64/aix.h, config/ia64/t-aix: Remove file.
2775 * config/ia64/unwind-aix.c: Remove file.
2777 2003-01-28 Andreas Schwab <schwab@suse.de>
2779 * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
2781 * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
2782 * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
2783 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
2784 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
2785 * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
2786 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
2787 * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
2789 2003-01-28 Richard Sandiford <rsandifo@redhat.com>
2791 * combine.c (nonzero_bits): Fix check for negative divide operands.
2793 2003-01-28 Richard Henderson <rth@redhat.com>
2795 * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
2796 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
2798 2003-01-28 Richard Henderson <rth@redhat.com>
2800 * cse.c (find_best_addr): Kill !ADDRESS_COST code.
2802 * config/cris/cris.c (cris_address_cost): Make static.
2803 (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
2804 * config/cris/cris.h (ADDRESS_COST): Remove.
2805 * config/cris/cris-protos.h: Update.
2807 2003-01-23 Mike Stump <mrs@apple.com>
2809 * regclass.c (init_reg_autoinc): New function.
2810 (regclass): Move initialization of forbidden_inc_dec_class from
2812 (init_regs): to here. Avoids reinitialization for each function,
2813 saving compilation time.
2815 2003-01-28 Jason Merrill <jason@redhat.com>
2817 * cpplib.h (struct cpp_options): Add warn_deprecated field.
2818 * cppinit.c (cpp_create_reader): Turn it on by default.
2819 * c-opts.c (c_common_decode_option): Set it.
2820 * cpplib.c (do_pragma_once): Only complain about #pragma once
2821 if warn_deprecated is set.
2823 2003-01-28 Dale Johannesen <dalej@apple.com>
2825 * emit-rtl.c (const_double_htab_hash): Use mode in the hash.
2826 * loop.c (scan_loop): Move movables on -Os rich-register targets.
2827 * config/rs6000/rs6000.md (sibcall*): Use match_operand for LR.
2829 2003-01-28 Richard Henderson <rth@redhat.com>
2831 * target.h (targetm.address_cost): New.
2832 * target-def.h (TARGET_ADDRESS_COST): New.
2833 (TARGET_RTX_COSTS): Uncomment. Oops.
2834 * cse.c (address_cost): Use new target hook.
2835 (default_address_cost): New.
2836 * output.h (default_address_cost): Declare.
2837 * hooks.c (hook_int_rtx_0): New.
2838 * hooks.h (hook_int_rtx_0): Declare.
2839 * loop.c (combine_givs_p): Remove if 0 code.
2840 * system.h (ADDRESS_COST): Poison.
2842 * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
2843 config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
2844 config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
2845 config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
2846 config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
2847 config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
2848 config/xtensa/xtensa.c, config/xtensa/xtensa.h
2849 (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
2850 (ADDRESS_COST): Remove.
2852 * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
2853 config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
2854 config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
2855 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
2856 config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
2857 config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
2858 config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
2859 config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
2860 config/mips/mips.c, config/mips/mips.h,
2861 config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
2862 config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
2863 config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
2864 config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
2865 config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
2866 config/vax/vax.c, config/vax/vax.h
2867 (foo_address_cost): Make static.
2868 (TARGET_ADDRESS_COST): New.
2869 (ADDRESS_COST): Remove.
2871 * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
2872 config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
2873 config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
2874 config/stormy16/stormy16.h
2875 (ADDRESS_COST): Move code ...
2876 (foo_address_cost): ... here.
2877 (TARGET_ADDRESS_COST): New.
2879 * config/m32r/m32r.c (m32r_address_cost): Remove.
2880 * config/m32r/m32r-protos.h: Update.
2882 * config/mmix/mmix.c (mmix_address_cost): Remove.
2883 * config/mmix/mmix-protos.h: Update.
2885 * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
2886 mn10300_address_cost; move unsig allocation ...
2887 (mn10300_address_cost): ... here.
2888 (TARGET_ADDRESS_COST): New.
2889 * config/mn10300/mn10300-protos.h: Update.
2890 * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
2892 * doc/tm.texi: Update.
2894 2003-01-28 Vladimir Makarov <vmakarov@redhat.com>
2896 * haifa-sched.c (schedule_insn): Return necessary cycle advance
2897 after issuing the insn.
2898 (rank_for_schedule): Make a insn with /S the highest priority
2900 (move_insn): Ignore schedule groups. Clear SCHED_GROUP_P.
2901 (choose_ready): Check SCHED_GROUP_P.
2902 (schedule_block): Advance cycle after issuing insn if it is
2903 necessary. Don't reorder insns if there is an insn with /S.
2904 (set_priorities): Ignore schedule groups.
2906 * sched-deps.c (remove_dependence, group_leader): Remove the
2908 (add_dependence): Ignore schedule groups.
2909 (set_sched_group_p): Don't make copy of dependencies from previous
2910 insn of the schedule group. Add anti-dependency to the previous
2911 insn of the schedule group.
2912 (compute_forward_dependences): Ignore schedule groups.
2914 * sched-ebb.c (init_ready_list): Ignore schedule groups.
2916 * sched-rgn.c (init_ready_list): Ditto.
2917 (can_schedule_ready_p): Ditto.
2919 2003-01-28 Vladimir Makarov <vmakarov@redhat.com>
2921 * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
2922 register to another one.
2924 2003-01-28 Richard Henderson <rth@redhat.com>
2926 * calls.c (default_must_pass_in_stack): Fix typo in !type case.
2928 2003-01-28 Roger Sayle <roger@eyesopen.com>
2930 * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
2932 2003-01-28 Richard Sandiford <rsandifo@redhat.com>
2934 * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
2935 class contains a floating-point register, return the size of the
2938 Tue Jan 28 12:15:13 CET 2003 Jan Hubicka <jh@suse.cz>
2940 * i386.c (ix86_carry_flag_operator): New predicate.
2941 (fcmov_operator): Fix whitespace.
2942 (ix86_expand_carry_flag_compare): Deal with floating point.
2943 (ix86_expand_int_movcc): Deal with fp; update insn expansion
2944 (ix86_expand_int_addcc): Likewise.
2945 (ix86_expand_strlensi_unroll_1): likewsie.
2946 * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
2947 * i386.md (add?i_carry_rex64): Use new predicate.
2948 (sub?i3_carry_rex64): Likewise.
2949 (x86_mov?icc_0_m1*): Likewise.
2951 2003-01-28 Andreas Schwab <schwab@suse.de>
2953 * cfgloopmanip.c (create_preheader): Initialize src to avoid
2956 * expmed.c (emit_store_flag): Fix cast to avoid sign
2959 * combine.c (force_to_mode): Add cast to fix warning when
2960 STORE_FLAG_VALUE is negative.
2962 2003-01-27 Richard Henderson <rth@redhat.com>
2964 * Makefile.in (cse.o): Depend on TARGET_H.
2965 * cse.c (rtx_cost): Use targetm.rtx_costs.
2966 * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
2967 * doc/tm.texi: Update.
2969 * target.h (targetm.rtx_costs): New.
2970 * target-def.h (TARGET_RTX_COSTS): New.
2971 * hooks.c (hook_bool_rtx_int_int_intp_false): New.
2974 * config/alpha/alpha.c (alpha_rtx_cost_data): New.
2975 (alpha_rtx_costs, TARGET_RTX_COSTS): New.
2976 * config/alpha/alpha.h (PROCESSOR_MAX): New.
2977 (CONST_COSTS, RTX_COSTS): Remove.
2979 * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
2980 config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
2981 config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
2982 config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
2983 config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
2984 config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
2985 config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
2986 config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
2987 config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
2988 config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
2989 config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
2990 config/mn10200/mn10200.h, config/mn10300/mn10300.c,
2991 config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2992 config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
2993 config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
2994 config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
2995 config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
2996 config/stormy16/stormy16.c, config/stormy16/stormy16.h,
2997 config/v850/v850.c, config/v850/v850.h,
2998 config/xtensa/xtensa.c, config/xtensa/xtensa.h
2999 (CONST_COSTS, RTX_COSTS): Move code ...
3000 (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
3002 * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
3003 (arm_rtx_costs, TARGET_RTX_COSTS): New.
3004 * config/arm/arm-protos.h: Update.
3005 * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
3007 * config/avr/avr.h (CONST_COSTS): Move code ...
3008 * config/avr/avr.c (avr_rtx_costs): ... here.
3009 (default_rtx_costs): Make static.
3010 * config/avr/avr-protos.h: Update.
3012 * config/h8300/h8300.c (const_costs): Make static.
3013 (h8300_and_costs, h8300_shift_costs): Likewise.
3014 * config/h8300/h8300-protos.h: Update.
3016 * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
3017 (CONST_COSTS): Move code ...
3018 * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here. Rename from
3019 default_rtx_costs; update for signature change.
3020 * config/ip2k/ip2k-protos.h: Update.
3022 * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
3023 (CONST_COSTS): Move code ...
3024 * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
3025 (TARGET_RTX_COSTS): New.
3026 (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
3027 * config/m68hc11/m68hc11-protos.h: Update.
3029 * config/m68k/m68k.c (const_int_cost): Make static.
3030 * config/m68k/m68k-protos.h: Update.
3032 * config/mcore/mcore.c (mcore_const_costs): Make static.
3033 (mcore_and_cost, mcore_ior_cost): Likewise.
3034 * config/mcore/mcore-protos.h: Update.
3036 * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
3037 (mmix_rtx_cost_recalculated): Remove.
3038 * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
3039 * config/mmix/mmix-protos.h: Update.
3041 * config/sh/sh.c (shiftcosts): Make static.
3042 (addsubcosts, andcosts, multcosts): Likewise.
3043 * config/sh/sh-protos.h: Update.
3045 * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
3046 (sparc_rtx_costs): Make static; update for change in signature.
3047 * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
3048 * config/sparc/sparc-protos.h: Update.
3050 * config/v850/v850.c (const_costs): Make static.
3051 * config/v850/v850-protos.h: Update.
3053 * config/vax/vax.h (RTX_COSTS): Remove.
3054 (CONST_COSTS): Move code ...
3055 * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
3057 (vax_rtx_costs, TARGET_RTX_COSTS): New.
3059 2003-01-27 Richard Henderson <rth@redhat.com>
3061 * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove. Really.
3062 * config/vax/vax-protos.h: Update. Really.
3064 2003-01-28 Alexandre Oliva <aoliva@redhat.com>
3066 * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
3067 (UNITS_PER_FPVALUE): Defined as the width of a long double, or
3068 zero if no hardware floating point.
3069 (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
3070 (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
3071 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
3072 (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
3073 (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
3074 * config/mips/mips.c (mips_arg_info): Pass TFmode values in
3075 even FP registers on N32 and N64.
3076 (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
3077 (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
3078 (mips_va_arg): Use UNITS_PER_HWFPVALUE. Impose additional
3079 even-register-like alignment to 128-bit arguments.
3080 (save_restore_insns): Use UNITS_PER_HWFPVALUE.
3081 (mips_function_value): Likewise. Return TFmode in $f0 and $f2
3083 * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
3084 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
3085 (TPBIT): Set to tp-bit.c.
3086 (tp-bit.c): Create out of fp-bit.c.
3088 2003-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3090 * c-parse.in: Remove '%expect 32' directive in objc mode.
3092 2003-01-27 Nathan Sidwell <nathan@codesourcery.com>
3094 * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
3095 (LIBGCOV): New variable.
3096 (libgcc.mk): Add LIBGCOV.
3097 (LIBGCC_DEPS): Add libgcov.c.
3098 (libgcov.a): New target.
3099 (clean): Remove libgcov.a.
3100 (install-libgcc): Do libgcov too.
3101 (stage1-start, stage2-start, stage3-start, stage4-start): Deal
3103 * libgcc2.c (L_gcov): Move into ...
3104 * libgcov.c: ... here. New file.
3105 * mklibgcc.in: Add libgcov rules.
3106 * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
3108 * doc/invoke.texi (profile-arcs, test-coverage): Update and
3111 * profile.c (index_counts_file): Remove duplicate check for open file.
3113 2003-01-27 Jerry Quinn <jlquinn@optonline.net>
3115 * gcc/doc/invoke.texi (Optimization Options): Group together
3116 optional and experimental flags. Move trapv and bounds-check
3117 out of this section. Group floating point flags together.
3118 (Code Gen Options): Move trapv and bounds-check to here.
3120 2003-01-27 Josef Zlomek <zlomekj@suse.cz>
3122 * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
3124 2003-01-27 Richard Earnshaw <rearnsha@arm.com>
3126 PR optimization/9090
3127 * function.c (purge_addressof_1): After pushing an addressed register
3128 onto the stack, simplify the result.
3130 2003-01-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3132 * doc/extend.texi: Fix typo.
3134 2003-01-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3136 * doc/cppopts.texi: Fix typo.
3137 * doc/objc.texi: Likewise.
3138 * doc/passes.texi: Likewise.
3140 2003-01-27 Alexandre Oliva <aoliva@redhat.com>
3142 * real.c (ibm_extended_format): Add 53 to minimum exponent.
3143 (encode_ibm_extended): Adjust.
3145 2003-01-26 Gabriel Dos Reis <gdr@soliton.integrable-solutions.net>
3147 * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
3148 timevar_id enumerations.
3150 2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
3152 * combine.c: Fix formatting.
3154 2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
3156 * doc/gccint.texi: Update the copyright.
3158 2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
3160 * doc/cpp.texi: Fix typos.
3161 * doc/extend.texi: Likewise.
3162 * doc/gty.texi: Likewise.
3163 * doc/install.texi: Likewise.
3164 * doc/passes.texi: Likewise.
3165 * doc/rtl.texi: Likewise.
3166 * doc/tm.texi: Likewise.
3168 2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
3170 * config/ia64/fde-glibc.c: Fix comment typos.
3171 * config/ia64/hpux.h: Likewise.
3172 * config/ia64/ia64.c: Likewise.
3173 * config/ia64/ia64.h: Likewise.
3174 * config/ia64/unwind-ia64.c: Likewise.
3176 2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
3178 * config/i386/i386-modes.def: Fix comment typos.
3179 * config/i386/i386.c: Likewise.
3180 * config/i386/i386.md: Likewise.
3182 2003-01-26 Steven Bosscher <s.bosscher@student.tudelft.nl>
3184 * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
3185 config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
3186 ASM_FINISH_DECLARE_OBJECT before defining it.
3187 * toplev.c (rest_of_decl_compilation): Don't define
3188 ASM_FINISH_DECLARE_OBJECT. Only use it if it is defined.
3189 (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
3190 parameters for DWARF2 targets because they _are_ used.
3192 2003-01-26 Alexandre Oliva <aoliva@redhat.com>
3194 * fp-bit.h: Define macros for TFmode floating-point constants
3195 in IBM-extended TFmode types.
3196 (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
3198 * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
3201 * config/fp-bit.h: Define macros for TFmode floating-point
3202 constants in IEEE quad TFmode type. Declare functions according
3204 (TMODES): Define if __LDBL_MANT_DIG__ is 113.
3205 (TFtype, TItype, UTItype): Define if TMODES is defined.
3206 (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
3207 (F_T_BITOFF, D_T_BITOFF): Define.
3208 (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
3209 guaranteed to be wide enough.
3210 * config/fp-bit.c: Check for L_ macros for tf functions.
3213 (pack_d, unpack_d): Support IEEE 854 quad type.
3214 (_fpmul_parts): Support TFmode. Compute exponent adjustment
3215 from FRAC_NBITS, FRAC_BITS and NGARDS.
3216 (usi_to_float): Cast constants to be shifted to fractype
3217 instead of assuming long long is wide enough.
3218 (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
3220 2003-01-26 Andreas Jaeger <aj@suse.de>
3222 * df.c: Remove prototype of unused function df_regno_rtl_debug.
3224 2003-01-26 Alexandre Oliva <aoliva@redhat.com>
3226 * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
3227 (DBBIT_FUNCS): Added _df_to_tf.
3229 (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
3230 (LIBGCC_DEPS): Added TPBIT.
3231 * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
3233 * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
3234 been able to move the result to target.
3236 * expr.c (emit_group_store): Initialize dst with CONST0_RTX
3237 for the appropriate mode.
3239 * calls.c (emit_library_call_value_1): Handle return values
3242 * rtl.c (get_mode_alignment): Moved to...
3243 * stor-layout.c: ... here.
3245 * print-rtl.c (print_rtx): Don't print MEM details in
3248 2003-01-26 Michael Hayes <mph@paradise.net.nz>
3250 * df.h: Update comments, tidy formatting.
3251 (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
3252 REVERSE, UNION, INTERSECTION. All uses updated.
3253 (OLD_DF_INTERFACE): Remove.
3254 (struct insn_info): Remove commented out insn field.
3255 * df.c: Update comments, tidy formatting.
3256 (df_def_table_realloc): Remove.
3259 2003-01-26 Alan Modra <amodra@bigpond.net.au>
3261 * calls.c (save_fixed_argument_area): Tidy.
3262 (restore_fixed_argument_area): Tidy. Set alignment of stack_area.
3263 (expand_call): Comment typo fixes. Don't init low_to_save. Start
3264 call chain loop at 1 if !try_tail_call. Formatting.
3265 (emit_library_call_value_1): Don't init low_to_save or high_to_save.
3266 Use save_fixed_argument_area and restore_fixed_argument_area.
3268 2003-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3270 * df.c (df_uses_record): Handle CC0.
3272 2003-01-25 Ulrich Weigand <uweigand@de.ibm.com>
3274 * reload.c (maybe_memory_address_p): New function.
3275 (find_reloads_address): Use it instead of memory_address_p.
3277 2003-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
3279 * final.c (shorten_branches): Align the address of code label
3280 when computing initial lengths and addresses.
3282 2003-01-25 Kazu Hirata <kazu@cs.umass.edu>
3284 * config/m68hc11/m68hc11.md: Fix a comment typo.
3286 2003-01-25 Andreas Jaeger <aj@suse.de>
3288 * config/i386/i386.c (x86_output_mi_thunk): Correct test for
3291 2003-01-25 Roger Sayle <roger@eyesopen.com>
3293 * gcse.c (bypass_last_basic_block): New global variable.
3294 (bypass_block): Use redirect_edge_and_branch_force to redirect
3295 fall-through edges. Use bypass_last_basic_block to determine
3296 which blocks have valid PRE information.
3297 (bypass_conditional_jumps): Initialize bypass_last_basic_block.
3299 Sat Jan 25 22:31:59 CET 2003 Jan Hubicka <jh@suse.cz>
3301 * gcse.c (local_cprop_pass): Update reg_sets table when needed.
3303 Sat Jan 25 21:04:33 CET 2003 Jan Hubicka <jh@suse.cz>
3304 Eric Botcazou <ebotcazou@libertysurf.fr>
3306 * gcse.c (one_cprop_pass): Delete unreachable blocks.
3308 2003-01-25 Richard Henderson <rth@redhat.com>
3310 * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
3311 from ia64_aix_select_rtx_section.
3312 (ia64_rwreloc_select_section): Simlarly; use default*_1 function
3313 instead of saving and restoring flag_pic.
3314 (ia64_rwreloc_unique_section): Similarly.
3315 * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
3316 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
3317 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
3318 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
3320 2003-01-25 Kazu Hirata <kazu@cs.umass.edu>
3322 * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
3325 2002-01-25 Richard Henderson <rth@redhat.com>
3327 * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
3329 2002-01-25 Kelley Cook <kelleycook@comcast.net>
3331 * ggc-simple.c (debug_ggc_tree): Add PTR cast.
3333 2003-01-25 Segher Boessenkool <segher@koffie.nl>
3335 * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
3336 type for bitmaps. Use unsigned long.
3337 (nBITMAP_WORD_BITS): New macro.
3338 (BITMAP_WORD_BITS): New macro.
3339 (rest of file): Use it.
3342 2003-01-25 Richard Henderson <rth@redhat.com>
3344 2002-02-19 Robert Lipe <robertlipe@usa.net>
3345 * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
3347 2002-01-25 Roger Sayle <roger@eyesopen.com>
3349 * builtins.c (purge_builtin_constant_p): Scan insn stream
3350 sequentially rather than by basic block.
3351 * function.c (purge_addressof): Simplify test with INSN_P.
3353 2003-01-25 Kazu Hirata <kazu@cs.umass.edu>
3355 * combine.c (simplify_comparison, case AND): Remove a redundant test.
3357 2002-01-25 Roger Sayle <roger@eyesopen.com>
3359 * function.h (struct function): New field calls_constant_p.
3360 (current_function_calls_constant_p): New macro for above.
3361 * function.c (prepare_function_start): Initialize calls_eh_return
3362 and calls_constant_p.
3363 * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
3364 * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
3365 when the current_function_calls_constant_p.
3366 * integrate.c (expand_inline_function): Set calls_constant_p if
3367 the function being inlined has calls_constant_p set.
3369 2002-01-25 Roger Sayle <roger@eyesopen.com>
3371 * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
3372 optimizing, even if flag_gcse is true.
3373 * toplev.c (rest_of_compilation): purge_builtin_constant_p
3374 only needs to be called when "optimize > 0 && flag_gcse".
3376 2003-01-25 Roger Sayle <roger@eyesopen.com>
3378 * stmt.c (emit_case_bit_tests): New routine to implement suitable
3379 switch statements using the equivalent of "if ((1<<x) & cst) ... ".
3380 (case_bit_test_cmp): New comparison function for "qsort" to order
3381 case_bit_tests by decreasing number of destination nodes.
3382 (lshift_cheap_p): New function to determine if "1 << x" is cheap.
3383 (expand_end_case_type): Use emit_case_bit_tests to implement
3384 suitable switch statments.
3385 (CASE_USE_BIT_TESTS): New target macro to disable the above.
3386 * Makefile.in (stmt.o): Add dependency on optab.h.
3387 * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
3389 2003-01-23 Andreas Schwab <schwab@suse.de>
3391 * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
3392 __do_global_ctors_aux hidden global and don't put it in
3394 * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
3395 instead so that it comes first.
3397 Sat Jan 25 16:11:22 CET 2003 Jan Hubicka <jh@suse.cz>
3399 * df.c (read_modify_subreg_p): When osize == UNITS_PER_WORD,
3400 subreg is read/modify.
3402 Sat Jan 25 15:55:08 CET 2003 Jan Hubicka <jh@suse.cz>
3404 * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
3405 do libcall for large blocks.
3406 * i386.md (comi patterns): Set type to ssecomi.
3407 (sse2_unpck?pd): Fix mode of vec_select.
3409 * cse.c: Include except.h
3410 (cse_set_around_loop): Do not create new basic blocks.
3411 * Makefile.in (cse.o): Add dependnecy on except.h
3413 Sat Jan 25 12:05:17 CET 2003 Jan Hubicka <jh@suse.cz>
3415 * builtins.c (fold_trunc_transparent_mathfn): New function.
3416 (fold_builtin): Use it.
3417 * convert.c (convert_to_real): Re-enable code to convert
3418 math functions; add support for floor familly functions.
3420 2003-01-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3422 * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
3423 dependencies on coretypes.h and $(TM_H).
3425 Sat Jan 25 11:10:03 CET 2003 Jan Hubicka <jh@suse.cz>
3427 * builtins.c (fold_trunc_transparent_mathfn): Undo accidental commit.
3429 2002-01-24 Stuart Hastings <stuart@apple.com>
3431 * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
3433 2003-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3435 * config/c4x/c4x.md (UNSPEC_BU): New constants.
3436 (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
3437 (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
3438 (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
3439 (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST): Likewise.
3440 (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP): Likewise.
3441 (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST): Likewise.
3442 (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE): Likewise.
3444 Fri Jan 24 23:44:12 CET 2003 Jan Hubicka <jh@suse.cz>
3446 * emit-rtl.c (reg_attrs_htab): New static variable.
3447 (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
3449 (reg_rtx): Do not maintain regno_decl.
3450 (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
3451 set_mem_attrs_from_reg): New global function.
3452 (init_emit): Do not initialize regno_decl.
3453 (init_emit_once): initialize reg_attrs_htab.
3454 * final.c (alter_subreg): Do not replace REG by SUBREG.
3455 (gen_mem_expr_from_op): Improve output.
3456 (output_asm_operands): Likewise.
3457 * function.c (assign_params): Do not set REGNO_DECL.
3458 * function.h (struct function): Kill regno_decl.
3460 * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
3461 * print_rtl.c (print_rtx): Output REG information.
3462 * regclass.c (reg_scan_mark_refs): Update attrs.
3463 * reload1.c (alter_reg): Likewise.
3464 * simplify_rtx.c (simplify_subreg): Likewise.
3465 * stmt.c (expand_decl): Likewise.
3466 * rtl.def (REG): Add new field.
3467 * rtl.h (struct reg_attrs): New.
3468 (rtunion_def): At rtreg.
3469 (X0MEMATTR): Add checking.
3470 (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
3471 (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
3473 * tree.h (SET_DECL_RTL): Call set_decl_rtl.
3475 2003-01-24 Bob Wilson <bob.wilson@acm.org>
3477 * config/xtensa/xtensa.c: Remove unused include of machmode.h.
3478 (xtensa_emit_call, print_operand): Fix printf format strings
3479 to avoid compile warnings.
3480 (xtensa_function_prologue, xtensa_function_epilogue): Change type
3481 of "size" argument to HOST_WIDE_INT to fix compile warnings.
3482 * config/xtensa/xtensa-protos.h