blob: 4bef4bee79927bccd5d183aff007aa9f2e56d0ca [file] [log] [blame]
2003-12-31 Jan Hubicka <>
PR opt/13473
* recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
ASM input operands
PR opt/12617
* toplev.c (dump_file_index): Reorder ce3 and bbro.
(dump_file): Likewise.
(rest_of_compilation): Likewise.
PR debug/13367
* cgraph.c (cgraph_function_possibly_inlined): Even with
flag_really_no_inline we inline always_inline functions.
* cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
for non-always_inline functions when there is flag_really_no_inline.
(cgraph_decide_inlining): Limit work done when not inlining.
(cgraph_decide_inlining_incrementally): Likewise.
(cgraph_optimize_function): Check whether something got inlined.
* c-objc-common.c (c_disregard_inline_limits): Do not always inline
extern inline functions when not inlining.
* opts.c (decode_options): Disable crossjumping at -O1
* invoke.texi (-O1): Document change.
2003-12-31 Richard Kenner <>
* print-rtl.c (print_rtx): For hard register, write out register
number and register name instead of calling PRINT_REG.
* defaults.h (PRINT_REG): Deleted.
* config/i386/i386.c (print_reg): Remove handling of CODE of -1.
Move comments here from i386.h.
(print_operand, print_operand_address): Call print_reg directly.
* config/i386/i386.h (PRINT_REG): Deleted.
2003-12-31 Roger Sayle <>
* config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define
2003-12-31 Zack Weinberg <>
* gcc.c (init_spec): Add -lunwind to shared case too if
2003-12-31 Joseph S. Myers <>
* doc/include/texinfo.tex: Update to version 2003-12-21.10.
* doc/gcc.texi, doc/gccint.texi: Don't set font for
@def... commands.
* doc/invoke.texi: Don't use empty @opindex.
2003-12-31 Mark Mitchell <>
* c-common.c (c_expand_expr): Remove code to return a value
different from that returned by expand_expr.
* expr.c (store_expr): Use the validity of a target MEM, rather
than checking DECL_RTL (exp), to figure out if a copy is
2003-12-31 Kazu Hirata <>
* config/v850/lib1funcs.asm: Fix comment formatting.
* config/v850/v850.c: Likewise.
* config/v850/v850.h: Likewise.
* config/v850/ Likewise.
2003-12-31 Kazu Hirata <>
* config/i386/ (*movqi_insv_2): Remove AND in the
set source.
2003-12-31 Kazuhiro Inaoka <>
* config.gcc: Added m32r-linux m32rle-elf and m32le-linux targets.
* doc/invoke.texi: Document -mflush-func, -mflush-trap options.
Also add documentation for -mdebug, -malign-loops, -missue-rate,
and -mbranch-cost options.
* config/m32r/t-linux: New file: m32r-linux support.
* config/m32r/xm-linux.h: Likewise.
* config/m32r/xm-m32r.h: Likewise.
* config/m32r/linux.h: Likewise.
* config/m32r/little.h: New file: Little endian code generation
* config/m32r/m32r-protos.h (m32r_legitimize_pic_address,
m32r_legitimate_pic_operand_p, load_pic_register): Add
* config/m32r/m32r.c (m32r_init): Add options for cache-flush.
(addr24_operand): Changes for PIC code generation.
* config/m32r/m32r.h (LABEL_ALIGN): Define to calculate PNOP
length at labels.
(ASM_SPEC): Add PIC support.
(move_src_operand, m32r_compute_frame_size, m32r_expand_prologue,
m32r_finalize_pic): Changes for PIC and profile support.
(global_offset_table, load_pic_register, m32r_legitimate_pic_operand_p,
m32r_legitimize_pic_address): Add for PIC support.
(m32r_file_start): Changed for little-endian-target.
* config/m32r/ (mvqi, movhi, movsi, movdi, movsf, movdf,
tablejump, tablejump_insn, call, call_value, call_value_via_label):
Changes for PIC.
(pic_load_addr, get_pc, builtin_setjmp_receiver): Added for PIC.
(flush_icache): Changes for cache-flush trap.
2003-12-30 Kazu Hirata <>
* config/i386/i386.h: Remove an unnecessary #undef.
2003-12-30 Roger Sayle <>
* cppfiles.c (pch_open_file): Minor tweak to work-around native
HPPA compiler bug.
2003-12-30 Kazu Hirata <>
* config/rs6000/aix.h: Fix comment formatting.
* config/rs6000/rs6000-modes.def: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/rs6000/ Likewise.
2003-12-30 Kazu Hirata <>
* config/i386/i386-protos.h: Remove prototype for
* config/i386/i386.c (const_int_1_operand): Remove.
* config/i386/i386.h (PREDICATE_CODES): Remove
* config/i386/ Replace all uses of const_int_1_operand
with const1_operand.
* config/i386/ Likewise.
2003-12-30 Geoffrey Keating <geoffk@greed.local>
* doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS
with constants.
2003-12-30 Mark Mitchell <>
* stor-layout.c (layout_decl): Turn bitfields into ordinary
fields, even if they are the first field in a structure.
2003-12-30 Roger Sayle <>
* fold-const.c (fold) <COND_EXPR>: Don't require strict type
equality, instead just prevent replacing a COND_EXPR of non-void
type by one of its operands of void type.
2003-12-30 Andreas Schwab <>
* doc/c-tree.texi: Fix @item vs. @itemx.
* doc/cpp.texi: Likewise.
* doc/install.texi: Likewise.
* doc/invoke.texi: Likewise.
2003-12-30 Nathan Sidwell <>
* builtins.c (expand_builtin_apply_args_1): Fix typo in previous
2003-12-30 Jan Hubicka <>
PR target/11936
* i386.h (CLASS_LIKELY_SPILLED_P): Return true for
2003-12-30 Steven Bosscher <>
Backport from tree-ssa (relevant changes only):
2003-12-18 Zdenek Dvorak <>
* et-forest.h (et_forest_create, et_forest_delete,
et_forest_add_node, et_forest_add_edge, et_forest_remove_node,
et_forest_remove_edge, et_forest_parent,
et_forest_common_ancestor, et_forest_node_value,
et_forest_enumerate_sons): Declarations removed.
(struct et_node): New.
(et_new_tree, et_free_tree, et_set_father, et_split, et_nca,
et_below): Declare.
* et-forest.c (struct et_forest_occurrence, struct et_forest,
struct et_forest_node): Removed.
(et_forest_create, et_forest_delete,
et_forest_add_node, et_forest_add_edge, et_forest_remove_node,
et_forest_remove_edge, et_forest_parent,
et_forest_common_ancestor, et_forest_node_value,
et_forest_enumerate_sons, splay, remove_all_occurrences,
find_leftmost_node, find_rightmost_node, calculate_value): Removed.
(struct et_occ): New.
(et_nodes, et_occurences): New.
(set_depth, set_depth_add, set_prev, set_next, et_recomp_min,
et_check_occ_sanity, et_check_sanity, et_check_tree_sanity,
record_path_before_1, record_path_before, check_path_after_1,
check_path_after, et_splay, et_new_occ, et_new_tree,
et_free_tree, et_set_father, et_split, et_nca, et_below): New.
* basic-block.h (struct basic_block_def): New field dom.
(struct dominance_info): Type removed.
(calculate_dominance_info, free_dominance_info,
nearest_common_dominator, set_immediate_dominator,
get_immediate_dominator, dominated_by_p, get_dominated_by,
add_to_dominance_info, delete_from_dominance_info,
recount_dominator, redirect_immediate_dominators,
iterate_fix_dominators, verify_dominators): Declarations
(enum dom_state): New.
(dom_computed): New variable.
(first_dom_son, next_dom_son): Declare.
* dominance.c (struct dominance_info): Removed.
(BB_NODE, SET_BB_NODE): Removed.
(calculate_dominance_info, free_dominance_info,
nearest_common_dominator, set_immediate_dominator,
get_immediate_dominator, dominated_by_p, get_dominated_by,
add_to_dominance_info, delete_from_dominance_info,
recount_dominator, redirect_immediate_dominators,
iterate_fix_dominators, verify_dominators,
debug_dominance_info): Work over new datastructure. Access
dominance datastructures through CFG.
(assign_dfs_numbers, compute_dom_fast_query, first_dom_son,
next_dom_son): New.
* bt-load.c (dom): Variable removed.
(augment_live_range, combine_btr_defs, migrate_btr_def,
migrate_btr_defs, branch_target_load_optimize): Updated for the
new interface for dominance information.
* cfg.c {exit_entry_blocks): Update initializer.
* cfglayout.c (copy_bbs): Removed loops argument. Updated for
the new interface for dominance information.
* cfglayout.h (copy_bbs): Declaration changed.
* cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump,
flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated
for the new interface for dominance information.
(flow_loop_scan): Loops argument removed.
(flow_loops_free): Don't release dominators.
* cfgloop.h (struct cfg): Dom field removed.
(flow_loop_scan, loop_split_edge_with, simple_loop_p,
just_once_each_iteration_p, split_loop_bb): Declaration changed.
* cfgloopanal.c (simple_loop_exit_p, simple_increment,
just_once_each_iteration_p, simple_loop_p): Remove loops argument.
Updated for the new interface for dominance information.
* cfgloopmanip.c (remove_bbs, find_path, create_preheader,
split_loop_bb, loopify, duplicate_loop_to_header_edge,
force_single_succ_latches, loop_split_edge_with): Ditto.
* gcse.c (dominators): Variable removed.
(free_code_hoist_mem, compute_code_hoist_data, hoist_code):
Updated for the new interface for dominance information.
* ifcvt.c (post_dominators): Variable removed.
(mark_loop_exit_edges, merge_if_block, find_if_header,
find_cond_trap, find_if_case_1, find_if_case_2, if_convert):
Updated for the new interface for dominance information.
* loop-init.c (rtl_loop_optimizer_init,
rtl_loop_optimizer_finalize): Ditto.
* loop-unroll.c (decide_peel_simple, decide_peel_once_rolling,
decide_peel_completely, decide_unroll_stupid,
decide_unroll_runtime_iterations): Loops argument removed.
Updated for the new interface for dominance information.
(unroll_and_peel_loops, peel_loops_completely,
unroll_loop_runtime_iterations): Updated for the new interface for
dominance information.
* loop-unswitch.c (may_unswitch_on_p, unswitch_loops,
unswitch_single_loop, unswitch_loop): Updated for the new
interface for dominance information.
* predict.c (process_note_predictions, process_note_prediction,
estimate_probability, note_prediction_to_br_prob): Ditto.
* sched-rgn.c (find_rgns, init_regions): Ditto.
* toplev.c (rest_of_handle_branch_prob): Free the dominators.
2003-12-30 Jan Hubicka <>
PR target/13456
* (allocate_stack_worker): Use different pattern for pre and
post reload expansion.
(allocate_stack_worker_1, allocate_stack_worker_rex64): Use
allocate_stack_worker_rex64_postreload): New.
2003-12-29 Nathan Sidwell <>
* builtins.c (expand_builtin_apply_args_1): Add pretend args size
to the virtual incoming args pointer for downward stacks.
2003-12-29 Roger Sayle <>
PR fortran/12632
* fold-const.c (fold) <COND_EXPR>: Don't fold a constant condition,
if the type of the selected branch doesn't match its' parent.
2003-12-29 Jan Hubicka <>
* coverage.c (read_counts_file): Better error messages; cause corrupted
profiles to produce hard errors, not just warnings
(get_coverage_counts): Similarly.
* toplev.c (rest_of_handle_loop_optimize): Enable LOOP_AUTO_UNROLL.
2003-12-29 Phil Edwards <>
* doc/cppopts.texi: Use of -idirafter, -iprefix, -iwithprefix, and
-iwithprefixbefore is not discouraged.
2003-12-28 Mostafa Hagog <>
* sbitmap.c (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg,
sbitmap_a_xor_b_cg): Accumulate "changed" properly.
(sbitmap_not): Zero all bits past n_bit.
2003-12-27 Zdenek Dvorak <>
PR opt/13159
* cfgloopanal.c (mark_irreducible_loops): Fix the strongly connected
components detection.
* loop-unswitch.c (unswitch_loop): Preserve simple preheaders.
2003-12-27 Bernardo Innocenti <>
* config/m68k/uclinux.h (LIB_SPEC): Add elf2flt magic required for
correct linking of executables using id-based shared libraries.
2003-12-27 Kazu Hirata <>
* config/i386/i386-interix.h: Remove uses of "register"
specifier in declarations of arguments and local variables.
* config/i386/i386.c: Likewise.
* config/i386/i386elf.h: Likewise.
* config/i386/ptx4-i.h: Likewise.
* config/i386/sysv4.h: Likewise.
2003-12-26 Fariborz Jahanian <>
Geoffrey Keating <>
David Edelsohn <>
* config/rs6000/rs6000.c (legitimate_offset_address_p): Do not
restrict DFmode and TFmode to word alignment.
* config/rs6000/ (movdf_hardfloat64): Use 'o' constraint
for ld/std and order before mr.
2003-12-26 Andrew Pinski <>
* config/darwin.h (LINK_COMMAND_SPEC): Arrange
-fprofile-generate to imply -lgcov.
2003-12-26 Kazu Hirata <>
* config/h8300/ (ldm_h8300s_2_normal): Use HImode for
2003-12-25 Kazu Hirata <>
* config/m32r/ Remove a constraint from a splitter.
2003-12-25 Andrew Pinski <>
PR C++/13429, C/11944
* c-common.c (c_build_qualified_type): Return early when type is
(c_apply_type_quals_to_decl): Likewise.
2003-12-25 Kazu Hirata <>
* config/alpha/alpha-modes.def: Fix comment formatting.
* config/alpha/alpha.c: Likewise.
* config/alpha/alpha.h: Likewise.
* config/alpha/elf.h: Likewise.
* config/alpha/lib1funcs.asm: Likewise.
* config/alpha/openbsd.h: Likewise.
* config/alpha/vms-cc.c: Likewise.
* config/alpha/vms-crt0-64.c: Likewise.
* config/alpha/vms-crt0.c: Likewise.
* config/alpha/vms-ld.c: Likewise.
* config/alpha/vms-psxcrt0-64.c: Likewise.
* config/alpha/vms-psxcrt0.c: Likewise.
* config/alpha/vms.h: Likewise.
* config/arc/arc.c: Likewise.
* config/arm/aof.h: Likewise.
* config/arm/arm-modes.def: Likewise.
* config/arm/arm.c: Likewise.
* config/arm/arm.h: Likewise.
* config/arm/ Likewise.
* config/arm/linux-elf.h: Likewise.
* config/arm/vxworks.h: Likewise.
* config/avr/avr.c: Likewise.
* config/avr/avr.h: Likewise.
2003-12-24 Kazu Hirata <>
* config/xtensa/elf.h: Fix comment formatting.
* config/xtensa/xtensa-protos.h: Likewise.
* config/xtensa/xtensa.c: Likewise.
* config/xtensa/xtensa.h: Likewise.
2003-12-24 Kazu Hirata <>
* config/avr/avr.c: Fix comment formatting.
* config/avr/ Likewise.
2003-12-24 Kazu Hirata <>
PR target/12721.
* config/avr/avr.c: Include ggc.h.
(tmp_reg_rtx): Declare with GTY.
(zero_reg_rtx): Likewise.
(ldi_reg_rtx): Remove.
(avr_override_options): Initialize zero_reg_rtx and
(avr_init): Remove.
Include gt-avr.h.
* config/avr/avr.h (LDI_REG_REGNO): Remove.
Remove externs for tmp_reg_rtx, zero_reg_rtx, and ldi_reg_rtx.
2003-12-24 David Edelsohn <>
* doc/md.texi: Document PowerPC vector register constraint letter.
2003-12-23 Mark Mitchell <>
* calls.c (expand_call): Recognize calls to "sqrt" and create
corresponding notes.
2003-12-23 Kaveh R. Ghazi <>
* config/mips/mips.c (override_options): Use `inform' instead
of `warning' for -g -mabi=32 and native assembler.
Don't pass -Wno-error.
2003-12-23 David Edelsohn <>
* function.c (assign_parms): Update max_parm_reg and
parm_reg_stack_loc when adding new parm reg.
2003-12-23 Kazu Hirata <>
* config/ns32k/ns32k.c: Convert to ISO-C.
2003-12-23 Zack Weinberg <>
* config/ia64/ia64.c (ia64_va_arg): Pass pointer for
variable-sized type through convert_memory_address.
(ia64_in_small_data_p): Always return false for FUNCTION_DECLs.
2003-12-23 Jan Hubicka <>
* common.opt (fprofile-generate,fprofile-use): Add.
* gcc.c (LINK_COMMAND_SPEC): Arrange -fprofile-generate to imply -lgcov
* opts.c (profile_arc_flag_set, flag_profile_values_set,
flag_unroll_loops_set, flag_tracer_set,
flag_peel_loops_set): New static variables.
(common_handle_option): Deal with -fprofile-generate/-fprofile-use
* invoke.texi (-fprofile-generate, -fprofile-use): Describe.
2003-12-23 Mark Mitchell <>
* (OBJS-common): Remove dwarfout.o.
(dwarfout.o): Remove.
* common.opt: Remove -gdwarf, -gdwarf+.
* defaults.h (PREFERRED_DEBUGGING_TYPE): Do not check for
* dwarf2out.c: Fix typo in comment.
* dwarfout.c: Remove.
* opts.c (common_handle_option): Remove OPT_gdwarf, OPT_gdwarf_.
* toplev.c (process_options): Remove check for
* config/elfos.h (DWARF_DEBUGGING_INFO): Do not #define it or
#undef it.
* config/netware.h (DWARF_DEBUGGING_INFO): Likewise.
* config/ptx4.h (DWARF_DEBUGGING_INFO): Likewise.
* config/vxworks.h (DWARF_DEBUGGING_INFO): Likewise.
* config/alpha/unicosmk.h (DWARF_DEBUGGING_INFO): Likewise.
* config/arc/arc.h (DWARF_DEBUGGING_INFO): Likewise.
* config/i386/sco5.h (DWARF_DEBUGGING_INFO): Likewise.
* config/i386/x86-64.h (DWARF_DEBUGGING_INFO): Likewise.
* config/m32r/m32r.h (DWARF_DEBUGGING_INFO): Likewise.
* config/mcore/mcore-elf.h (DWARF_DEBUGGING_INFO): Likewise.
* config/sparc/linux64.h (DWARF_DEBUGGING_INFO): Likewise.
* config/sparc/liteelf.h (DWARF_DEBUGGING_INFO): Likewise.
* config/sparc/sol26-sld.h (DWARF_DEBUGGING_INFO): Likewise.
* config/sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO): Likewise.
* doc/invoke.texi: Do not mention -gdwarf, -gdwarf-1, -gdwarf-1+,
or -gdwarf+.
* doc/tm.texi: Likewise.
* c-common.c (flag_abi_version): Default to 2.
* c-cppbuiltin.c (c_cpp_builtins): Define __GXX_ABI_VERSION
uniformly for versions above 2.
* doc/invoke.texi: Update documentation for -fabi-version.
2003-12-22 Geoffrey Keating <>
* config/rs6000/ Change many instances of '!
TARGET_POWERPC64' to 'TARGET_32BIT' when the pattern being guarded
was guarded only because it changed CR0 or the carry bit in XER.
2003-12-23 Eric Botcazou <>
PR optimization/13394
* toplev.c (rest_of_compilation): Move call to
check_function_return_warnings right after the sibcall
optimization pass.
2003-12-23 Eric Botcazou <>
PR c/13382
* c-typeck.c (convert_for_assignment): When converting from
integral type to pointer type, always call convert.
2003-12-22 Mark Mitchell <>
* doc/invoke.texi: Deprecate -fwritable-strings.
* c-common.c (flag_external_templates): Remove.
(flag_alt_external_templates): Likewise.
* c-common.h (flag_external_templates): Remove.
(flag_alt_external_templates): Likewise.
* c-opts.c (c_common_handle_option): Unsupport
-falt-external-templates and -ftemplates.
* doc/invoke.texi: Remove mention of -fexternal-templates and
2003-12-22 Andrew Pinski <>
PR target/13466
* config.gcc (powerpc-*-darwin): Remove overridden value of need_64bit_hwint.
* emit-rtl.c (copy_rtx_if_shared): Add comment about its use of
(copy_rtx_if_shared_1): Add comment about what the function does.
* c-decl.c (finish_function): Change order of checks.
(c_expand_body): Likewise.
2003-12-22 Fariborz Jahanian <>
* config/rs6000/rs6000.c (legitimate_offset_address_p): Correct
check for the legitimate offset when memory of
DImode/DFmode/TFmode/TImode mode is being referenced and target
2003-12-22 Dale Johannesen <>
* reload1.c: Add reg_reloaded_call_part_clobbered.
(reload_as_needed): Use it.
(forget_old_reloads_1): Ditto.
(emit_reload_insns): Ditto.
2003-12-22 Dale Johannesen <>
PR optimization/12828
* loop.c: Add find_regs_nested to look inside CLOBBER(MEM).
(scan_loop): Call it.
* regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM).
2003-12-22 Andrew Pinski <>
PR c/9163
* c-decl.c (poplevel): Only set DECL_INITIAL of a current function
if it is non-null.
(finish_function): Check for error_mark_node or null on DECL_RESULT and
DECL_RESULT of fndecl.
(c_expand_body): Only expand when DECL_INITIAL of fndecl is not
error_mark_node and not null.
2003-12-21 Dan Nicolaescu <>
* rtl.h (dump_rtx_statistics): Declare it.
* rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
rtx_alloc_sizes): New static vars.
(rtx_alloc, rtvec_alloc): Update them.
(dump_rtx_statistics): New function.
* toplev.c (finalize): Call it.
* ggc-page.c (struct globals): Fix comments. Add new member
(ggc_alloc): Keep track of the total allocated memory.
(ggc_print_statistics): Clarify message. Print total allocated
memory stats.
* (gather-detailed-mem-stats): New flag.
* configure: Regenerate.
* Regenerate.
* doc/install.texi (Configuration): Document
2003-12-22 Kazu Hirata <>
* system.h (CONVERT_HARD_REGISTER_TO_SSA_P): Poison.
* config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Remove.
2003-12-21 Roger Sayle <>
* config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define _ILP32
when compiling in ILP32 mode.
2003-12-21 Andrew Pinski <>
* config/rs6000/rs6000.c (rs6000_tls_referenced_p): Return early if
2003-12-21 Kazu Hirata <>
* config/ip2k/ip2k-protos.h: Remove the prototype for
* config/ip2k/ip2k.c (asm_output_section_name): Remove.
2003-12-21 Kazu Hirata <>
* alias.c: Fix comment formatting.
* alloc-pool.c: Likewise.
* bitmap.c: Likewise.
* bitmap.h: Likewise.
* bt-load.c: Likewise.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-decl.c: Likewise.
* c-opts.c: Likewise.
* c-pretty-print.c: Likewise.
* caller-save.c: Likewise.
* cfghooks.h: Likewise.
* cgraph.c: Likewise.
* collect2.c: Likewise.
* cppfiles.c: Likewise.
* cpplib.h: Likewise.
* dwarf2out.c: Likewise.
* dwarfout.c: Likewise.
* emit-rtl.c: Likewise.
* final.c: Likewise.
* function.c: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* genemit.c: Likewise.
* ggc.h: Likewise.
* haifa-sched.c: Likewise.
* ifcvt.c: Likewise.
* libgcc2.h: Likewise.
* loop.c: Likewise.
* predict.h: Likewise.
* unwind-libunwind.c: Likewise.
* varasm.c: Likewise.
2003-12-21 Kazu Hirata <>
* config/mn10300/mn10300.c (mn10300_encode_section_info): Fix
a warning.
2003-12-21 Kazu Hirata <>
* config/arm/arm.c: Convert to ISO-C.
* config/avr/avr.h: Likewise.
* config/fr30/fr30.c: Likewise.
* config/ip2k/ip2k.c: Likewise.
* config/mn10300/mn10300.c: Likewise.
2003-12-20 Andrew Pinski <>
Matt Thomas <>
PR target/12749
* config/i386/i386.c (print_operand): Print only the first
8 characters of the float in hex.
2003-12-20 John David Anglin <>
* pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA
2.0 code.
(INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start
and end addresses to I and D cache instruction patterns.
* (anddi3, iordi3): Change predicates of operands 1 and 2 to
and_operand and ior_operand, respectively. When generating 64-bit
code, only one operand needs to be a register operand.
(xordi3): Change predicates of operands 1 and 2 to register_operand.
(one_cmpldi2): Change predicate of operand 1 to register_operand.
(dcacheflush, icacheflush): Revise to flush an arbitrary number of
cache lines.
2003-12-20 Josef Zlomek <>
PR optimization/13430, PR optimization/12322
* bb-reorder.c (copy_bb_p): Do not allow block with many successors to
be copied.
(find_traces_1_round): Surround check for fake edges by
#ifdef ENABLE_CHECKING #endif.
2003-12-20 Eric Botcazou <>
PR other/7956
* genmultilib: New variable disable_multilib. Set it to 'yes'
if enable_multilib was set to 'no'. Emit DISABLE_MULTILIB
if disable_multilib was set to 'yes'.
* gcc.c: Include multilib.h before tm.h.
* config/sparc/sol2-bi.h (LINK_ARCH_SPEC): Emit an error
message for multiarch options if DISABLE_MULTILIB is set.
* config/sparc/sol2-gld-bi.h (LINK_ARCH_SPEC): Likewise.
2003-12-20 Eric Botcazou <>
PR c/12085
* c-typeck.c (build_function_call): Issue a warning if a
function is called through an incompatible prototype and
replace the call by a trap in this case.
2003-12-19 James E Wilson <>
* install.texi (ia64-*-linux): Document minimum libunwind version
2003-12-19 Per Bothner <>
* langhooks.c (lhd_print_error_function): Fix for PR c/13110.
Don't do pp_newline; it causes an extra blank line.
* pretty-print.c (pp_base_flush): Clear pp_needs_newline.
2003-12-19 Jason Merrill <>
* tree.c (get_unwidened): Decide whether to narrow a bitfield
reference based on TYPE_SIZE, not TYPE_PRECISION.
* stmt.c (parse_output_constraint): Warn about in-out constraint
that doesn't allow a register.
(parse_input_constraint): Warn about matching constraint that
doesn't allow a register.
2003-12-19 James E Wilson <>
* flow.c (mark_set_regs, case PARALLEL): Scan loop forwards.
Add case for ASM_OPERANDS.
* global.c (global_alloc): Set regs_ever_live for regs_asm_clobbered
2003-12-19 Kazu Hirata <>
* expr.c (check_max_integer_computation_mode): Remove.
* dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE.
* fold-const.c (fold): Likewise.
* doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove.
2003-12-19 James E Wilson <>
* Delete libunwind_has_eh_support test.
* configure: Regenerate.
* config.gcc (ia64*-*-linux*): Delete reference to t-libunwind-no-eh
and libunwind_has_eh_support check.
* config/t-libunwind-no-eh: Delete.
2003-12-19 Joseph S. Myers <>
* c-format.c (print_char_table): Allow 'I' flag on floating point
decimal formats.
2003-12-19 Stuart Hastings <>
* gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk):
Trivial fixes for i386.c on Darwin/x86.
2003-12-19 Fariborz Jahanian <>
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to
recognize macho-style lo_sum adrress patterns.
2003-12-19 Kazu Hirata <>
* dwarfout.c: Remove uses of "register" specifier in
declarations of arguments and local variables.
* gensupport.c: Likewise.
* local-alloc.c: Likewise.
* regclass.c: Likewise.
2003-12-19 Kelley Cook <>
* config.guess: Remove.
2003-12-19 Jakub Jelinek <>
* config/ia64/unwind-ia64.c (ia64_copy_rbs): New function.
(unw_access_gr): Only call ia64_rse_rnat_addr if addr is above
(uw_frame_state_for): Handle locations inside bundles.
(uw_init_context_1): Initialize context->rnat.
Set context->regstk_top to lowest rbs address which has nat collection
in context->rnat.
(uw_install_context): Fix rnat restoring.
Restore ar.rsc to previous state.
* config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR,
MD_HANDLE_UNWABI): Handle unwinding through SA_ONSTACK frames.
2003-12-19 Jakub Jelinek <>
PR c++/13239
* builtins.c (expand_builtin_expect_jump): Update
TREE_VALUE (arglist) if unsave_expr_now langhook
created a new tree.
2003-12-19 Richard Earnshaw <>
* arm.c (thumb_base_register_rtx_p): Use regno in comparison against
2003-12-18 Hartmut Penner <>
* gcc/config/rs6000/rs6000.c (USE_ALTIVEC_FOR_ARG_P): Don't check
for SVR4 ABI.
2003-12-18 Geoffrey Keating <>
* config/rs6000/aix.h (OS_MISSING_POWERPC64): Define.
* config/rs6000/darwin.h (ASM_SPEC): Be generous about supplying
* config/rs6000/rs6000.c (rs6000_override_options): Rearrange
CPU information table; now always set all CPU-specific values.
Also, use Altivec and powerpc64 when chip and OS supports them.
2003-12-18 Geoffrey Keating <>
* fixinc/inclhack.def (darwin_macho_dyldh): New.
* fixinc/fixincl.x: Regenerate.
2003-12-18 Dara Hazeghi <>
* version.c (version_string): Renumber as 3.4.0
* doc/include/gcc-common.texi: Likewise
2003-12-18 Richard Henderson <>
* genrecog.c (print_host_wide_int): New.
(write_switch, write_cond): Use it.
2003-12-18 Richard Henderson <>
* c-decl.c (check_bitfield_type_and_width): Remove enum special
case suppression of pedwarn.
* system.h (ENUM_BITFIELD): Use __extension__.
(CHAR_BITFIELD): Likewise.
2003-12-18 Ulrich Weigand <>
Mark Dettinger <>
* config/s390/ (UNSPEC_SRST): New constant.
("strlendi", "strlensi"): New expanders.
("*strlendi", "*strlensi"): New insns.
2003-12-18 Mark Mitchell <>
* config/sol2.h (LINK_ARCH32_SPEC): Define in terms of ...
(LINK_ARCH32_SPEC_BASE): ... this new macro.
* config/sparc/sol2-bi.h (LINK_ARCH64_SPEC): Define in terms of
(LINK_ARCH64_SPEC_BASE): ... this new macro.
* config/sparc/sol2-gld-bi.h (LINK_ARCH32_SPEC): New macro.
(LINK_ARCH64_SPEC): Likewise.
2003-12-18 Jason Merrill <>
PR middle-end/13234
* tree-dump.c (dequeue_and_dump): Handle 'r' and 's' code
2003-12-18 Steven Bosscher <>
* (tracer.o, bb-reorder.o): Depend on timevar.h
* toplev.c (rest_of_handle_reorder_blocks, rest_of_handle_tracer):
Don't push and pop TV_REORDER_BLOCKS timevars, do it...
* bb-reorder.c (reorder_basic_blocks):, and...
* tracer.c (tracer): here.
2003-12-18 Ulrich Weigand <>
* loop.c (move_movables): Handle combination of m->consec,
m->move_insn_first, and m->insert_temp all nonzero correctly.
2003-12-18 Kazu Hirata <>
* calls.c (load_register_parameters): Don't use
* system.h (LOAD_ARGS_REVERSED): Poison.
* doc/tm.texi (LOAD_ARGS_REVERSED): Remove.
2003-12-17 Per Bothner <>
* emit-rtl.c (set_new_first_and_last_label_num): Remove function.
* rtl.h (set_new_first_and_last_label_num): Remove declaration.
2003-12-17 Alexandre Oliva <>
* config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
scratch insns of the then branch that clobber regs needed by the
else branch.
2003-12-17 Kazu Hirata <>
* calls.c (expand_call): Update comments.
* targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED.
2003-12-17 James E Wilson <>
Roger Sayle <>
* (gcse.o): Add $(TREE_H) to dependencies.
* gcse.c: Include tree.h.
(implicit_set_cond_p): New.
(find_implicit_sets): Call it.
2003-12-17 Santiago Vila <>
* config/kfreebsdgnu.h (TARGET_OS_CPP_BUILTINS): Rename from
2003-12-16 Kazu Hirata <>
* emit-rtl.c: Fix signed/unsigned comparison warnings.
2003-12-17 Joseph S. Myers <>
* predict.c (struct block_info_def, struct edge_info_def): Change
bit-fields of width 1 to unsigned int.
2003-12-16 Geoffrey Keating <>
PR 12480
* c-pch.c (pch_init): Improve error message when precompiled
header can't be written.
PR 12606
* c-pch.c (pch_init): Make a PCH file appear invalid while it's
being written.
(c_common_write_pch): Make it valid once it's done.
2003-12-17 Ulrich Weigand <>
PR target/11992
* config/s390/ ("*cmpmem_long_64"): Use CLCLE instruction
instead of CLCL.
("*cmpmem_long_31"): Likewise.
2003-12-17 Vladimir Makarov <>
* config/ia64/ia64.c: Add more comments about insn bundling.
2003-12-17 Richard Earnshaw <>
PR optimization/10592
* caller-save.c (mark_referenced_regs): Don't short-circuit a reg
or subreg in SET_DEST if it isn't a hard register.
2003-12-17 David Edelsohn <>
* collect2.c (main): Add -fno-profile-arcs -fno-test-coverage
-fno-branch-probabilities to arguments when compiling ctors and
2003-12-17 Eric Botcazou <>
* config/sparc/sol2.h: Set SUPPORTS_INIT_PRIORITY to 0.
* config/sparc/sol2-gld.h: Set SUPPORTS_INIT_PRIORITY to 1.
2003-12-17 Richard Earnshaw <>
* arm.c (thumb_base_register_rtx_p): Don't allow virtual registers
as base registers for sub-word operations.
(thumb_legitimate_address_p): Simplify REG+REG test.
2003-12-17 Segher Boessenkool <>
* opts.c (wrap_help): Fix overflow.
2003-12-17 Fred Fish <>
* Remove code to examine linker scripts and set
* configure, Regenerate.
2003-12-16 Mark Mitchell <>
PR c++/12218
* varasm.c (initializer_constant_valid_p): Allow a conversion from
an integral constant to an OFFSET_TYPE.
2003-12-16 Kazu Hirata <>
PR target/11012
* config/m32r/m32r.c (gen_compare): Call gen_addsi3 instead of
* config/m32r/ (cmp_ne_small_const_insn): Remove.
2003-12-17 Neil Booth <>
Joseph S. Myers <>
PR c/3347
* c-decl.c (enum_decl_context): Remove BITFIELD.
(grokdeclarator): Take bit-field width as an input.
Perform bit-field width validation with
check_bitfield_type_and_width rather than waiting for
(groktypename, groktypename_in_parm_context, start_decl,
push_parm_decl, grokfield, start_function): Update calls to
(check_bitfield_type_and_width): New function.
(finish_struct): Move bit-field validation to grokdeclarator
and check_bitfield_type_and_width.
2003-12-16 John David Anglin <>
PR bootstrap/13386
* (gcc_cv_ld_hidden): Set to yes on hppa64*-*-hpux* when
using HP native linker.
* configure: Rebuilt.
2003-12-16 Mark Mitchell <>
PR c++/13275
* c-common.h (enum rid): Add RID_OFFSETOF.
* (rid_to_yy): Ignore RID_OFFSETOF.
* ginclude/stddef.h (offsetof): Reimplement for C++, using
* doc/extend.texi: Document __offsetof__.
2003-12-16 Stan Cox <>
* config/iq2000/iq2000.h: Formatting.
* config/iq2000/iq2000.c: Formatting.
(iq2000_rtx_costs): New.
2003-12-16 Richard Earnshaw <>
* (addsi3_carryin_shift): Add missing register constraints.
2003-12-16 Loren James Rittle <>
* testsuite/g++.old-deja/ Tweak to
pass with -pthread on FreeBSD systems.
2003-12-16 Richard Sandiford <>
* config/mips/mips.c (mips_file_end): Only write symbols that have
been referenced at some point.
2003-12-16 Richard Sandiford <>
* config/mips/mips.c: Include langhooks.h
(mips_build_builtin_va_list): Use lang_hooks.types.make_type.
2003-12-16 Eric Botcazou <>
PR optimization/13313
* combine.c (make_extraction) [REG]: Do not use
gen_lowpart_for_combine when POS is non-zero.
2003-12-16 Hartmut Penner <>
* altivec.h (vec_cmple, vec_all_numeric): Fix typo.
* testsuite/gcc.dg/altivec-10.c: Test for above.
2003-12-15 David O'Brien <>
* (CPPFLAGS): Initialize from configure.
2003-12-15 Roger Sayle <>
PR middle-end/13400
* ifcvt.c (noce_process_if_block): Disable unconditional write
optimizations if we could introduce a store to trapping memory
that wasn't present previously.
2003-12-15 Kazu Hirata <>
* system.h (DEFAULT_CALLER_SAVES): Poison.
* toplev.c (flag_caller_saves): Always initialize with 0.
* doc/tm.texi (DEFAULT_CALLER_SAVES): Remove.
2003-12-15 Kazu Hirata <>
* flow.c (EXIT_IGNORE_STACK): Move to ...
* defaults.h (EXIT_IGNORE_STACK): ... here.
* dojump.c (clear_pending_stack_adjust): Don't use #ifdef
* function.c (expand_function_end): Likewise.
* global.c (global_alloc): Likewise.
* ra.c (init_ra): Likewise.
* reload1.c (init_elim_table): Likewise.
* reorg.c (fill_simple_delay_slots): Likewise.
* resource.c (init_resource_info): Likewise.
* doc/tm.texi (EXIT_IGNORE_STACK): Document that the default
is 0.
2003-12-15 J"orn Rennecke <>
* reload.c (reg_overlap_mentioned_for_reload_p):
When looking at a PLUS in X, avoid spuriously returning nonzero
when IN is a REG or another simple PLUS, or a MEM containing one.
* loop.c (loop_invariant_p): Amend comment about where new registers
might come from.
2003-12-15 Andreas Jaeger <>
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Remove
handling of obsolete language CHILL.
2003-12-15 Waldek Hebisch <>
* tree.c (initializer_zerop): Add test for empty set.
* integrate.c (function_cannot_inline_p): Forbid inlining
functions calling `longjmp'.
2003-12-15 Nathan Sidwell <>
PR c++/11773
* doc/gcov.texi (Gcov and Optimization): Document inline function
behaviour. Fix some file suffixes.
2003-12-14 David O'Brien <>
* config/i386/i386.h (__amd64, __amd64__): Remove duplicates.
2003-12-14 Mark Mitchell <>
* c-common.h (c_parse_error): Declare it.
* c-common.c (c_parse_error): New function.
* c-parse.y (yyerror): Use it.
2003-12-14 John David Anglin <>
PR target/13054
* pa-protos.h (indexed_memory_operand, borx_reg_operand,
move_dest_operand, move_src_operand): New protypes.
(basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted.
* pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand,
move_src_operand): New functions.
(basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete.
(reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed
address until cse is not expected on targets with non-equivalent
space registers.
(hppa_legitimize_address): Canonicalize unscaled indexed addresses
on targets non-equivalent space registers.
(emit_move_sequence): Break out indexed addresses from destination
operand. Similarly, break out unscaled indexed addresses from
source operand on targets with non-equivalent space registers. Fix
REG_POINTER flag when possible. Mark register pointer when creating
new pointers.
(print_operand): Handle unscaled index addresses.
* pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines
(EXTRA_CONSTRAINT): Rework to make more readable.
(GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines. Allow scaled
and unscaled addresses. Canonicalize unscaled indexed addresses on
targets with non-equivalent space registers. Document issues in
handling indexed address modes on PA-RISC.
(PREDICATE_CODES): Update for new and deleted predicates.
* (move_dest_operand, move_src_operand, indexed_memory_operand):
Use new predicates in move patterns.
Add peephole2 patterns to optimize floating point stores. Fix
constrain preferencing in move patterns. Delete patterns for handling
unscaled indexed memory loads. Add missing load and store with
base-register modification patterns. Correct SFmode floating point
store pattern. Add missing zero extension loads.
2003-12-13 Steven Bosscher <>
* ggc-zone.c (struct alloc_zone): Don't pre-declare, it already
comes in with ggc.h. Add a new bool field `dead'.
(destroy_ggc_zone): Don't destroy a zone at once. Instead, only
set the `dead' flag for the dead zone. Wrap a sanity check in
(ggc_collect_1): Always mark and sweep if a zone has the `dead'
flag set.
(ggc_collect): Free dead zones after collecting.
2003-12-13 Jan Hubicka <>
* coverage.c (get_coverage_counts): Use inform instead of warning
about missing profile.
2003-12-12 Steven Bosscher <>
* (opts.o, explow.o): Depend on langhooks.h
2003-12-12 Geoffrey Keating <>
* config.gcc <i[34567]86-*-darwin*>: Don't use fixproto.
<powerpc-*-darwin*>: Likewise.
2003-12-12 Jakub Jelinek <>
* config/ia64/linux.h (IA64_GATE_AREA_END): Increase by 64K.
(MD_FALLBACK_FRAME_STATE_FOR): Set fpsr_loc, br_loc[6] and
br_loc[7]. Update comment.
* config/ia64/unwind-ia64.c (struct unw_state_record): Add
unwabi field.
(struct _Unwind_Context): Increase br_loc array size to 8 entries.
(desc_abi): Set unwabi.
(uw_update_reg_address): Allow br up to 7.
(uw_update_context): Invoke MD_HANDLE_UNWABI if defined.
(uw_install_context): Load b1..b5 from correct locations.
Fix insn loading ar.fpsr.
* doc/tm.texi: Document MD_HANDLE_UNWABI.
2003-12-12 Roger Sayle <>
PR optimization/13037
* loop.c (update_giv_derive): Ignore redundant sets of a biv when
calculating how to derive a giv from a biv.
2003-12-12 Neil Booth <>
PR preprocessor/12935 preprocessor/12952 preprocessor/13046
* cpplib.c (prepare_directive_trad): Clear skipping only in
#if and #elif directives.
(do_undef): Call the handler even if the identifier is not a macro.
* cpptrad.c (scan_parameters): Emit an error message.
(_cpp_create_trad_definition): Remember the params list even on
2003-12-11 Zack Weinberg <>
* arm.c (ARM_ADDRESS_COST, THUMB_ADDRESS_COST): Convert macros
to inline functions: arm_arm_address_cost, arm_thumb_address_cost
(arm_address_cost): Use 'em.
2003-12-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define
__STDC_VERSION__ to ISO C94 for C++.
* fixinc/inclhack.def (alpha_wchar): New fix.
* fixinc/fixincl.x: Regenerate.
* fixinc/tests/base/wchar.h: New file.
2003-12-11 David Mosberger <>
* unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as
required by C++ ABI for Itanium.
* config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c.
* config/t-libunwind-no-eh: New file.
* Check libunwind for _Unwind_Resume() and if it's
present, set libunwind_has_eh_support to "yes".
* configure: Regenerate.
* config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is
set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh.
2003-12-11 Richard Sandiford <>
* config/mips/mips.c (mips_global_pointer): Force functions with
a nonlocal goto to set up $gp.
2003-12-11 James E Wilson <>
PR target/13132
* function.c (gen_mem_addressof): When no decl, explicitly clear flag
2003-12-12 Nick Clifton <>
* config/m32r/m32r.c: Convert to ISO-C
2003-12-12 Kazuhiro Inaoka <>
* doc/invoke.texi: Replace Mitsubishi with Renesas.
* config/m32r/m32r.h: Ditto.
* config/m32r/m32r.c: Ditto.
* config/m32r/ Ditto.
2003-12-11 Steven Bosscher <>
* basic-block.h (BLOCK_HEAD, BLOCK_END): Remove.
(basic_block_def): Rename `head' to `head_' and `end' to `end_'.
(BB_HEAD, BB_END): New accessor macros for the `head_' and `end_'
fields of a basic block.
* bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c,
cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c,
cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c,
final.c, flow.c, function.c, gcse.c, global.c, graph.c,
haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c,
loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c,
ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c,
regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c,
sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c,
config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of
accessing the `head' and `end' fields of a basic block directly.
* gengtype.c: Teach about "void**" pointers and "void *" function
types. Fixes earlier commit.
2003-12-10 Geoffrey Keating <>
* doc/extend.texi (Vector Extensions): Document that bitwise
operations also work on vectors.
2003-12-10 Richard Earnshaw <>
* New split patterns for optimizing bitfield accesses.
2003-12-10 Steven Bosscher <>
* README.Portability: Remove K+R section.
* gengtype-lex.l: Teach about "void**" pointers and
"void*" function types.
2003-12-10 Eric Botcazou <>
PR target/13354
* config/sparc/sparc.c (sparc_output_mi_thunk): Load DELTA
manually if one can do that with only one instruction.
2003-12-10 Nick Clifton <>
* config.gcc (arm-linux): Include linux.h in tm_file so that
* config/arm/linux-elf.h (LIB_SPEC): Protect the definition.
2003-12-09 James E Wilson <>
* rtl.def (CODE_LABEL, NOTE): Correct operand numbers in comments.
2003-12-09 Matt Austern <>
PR c/13134
* c-decl.c (duplicate_decls): Copy visibility flag when appropriate.
2003-12-09 Kazuhiro Inaoka <>
* config/m32r/m32r.h: Add support for m32r2 processor. Including
a new command line option -m32r2 to select it.
* config/m32r/m32r.c: Add support for the new processor variant.
* config/m32r/ Likewise.
* config/m32r/t-m32r: Add m32r2 multilibs.
* doc/invoke.texi: Document the new command line switch.
2003-12-08 Kazu Hirata <>
* defaults.h (LOCAL_REGNO): Give the default definition.
* flow.c (LOCAL_REGNO): Remove.
* reload1.c (LOCAL_REGNO): Likewise.
2003-12-08 Geoffrey Keating <>
PR target/11848
* rs6000.h (CANNOT_CHANGE_MODE_CLASS): Allow change of mode
in floating-point registers between TFmode and DImode.
* rs6000.c (rs6000_emit_move): Split moves early.
(secondary_reload_class): Random Whitespace Change.
(rs6000_split_multireg_move): Support moves involving FP registers.
Emit instructions directly.
* rs6000-protos.h (rs6000_split_multireg_move): Update prototype.
* Update for changes to rs6000_split_multireg_move.
* Update for changes to rs6000_split_multireg_move.
(movtf_internal): Support moves to/from GPRs.
2003-12-08 Stuart Hastings <>
* config/i386/ Typo in split of fp-valued if_then_else.
2003-12-08 James E Wilson <>
PR target/13132
* expmed.c (extract_bit_field): Only call mode_for_size for scalar
integer modes.
2003-12-08 Nathanael Nerode <>
* doc/install.texi: Revert change of Dec 7; gcc is still a 2.13
2003-12-08 Alexandre Oliva <>
* config/frv/ (subdi2): Merge with _internal insn_and_split,
by using match_scratch.
(negdi2): New.
2003-12-08 Jason Merrill <>
Daniel Berlin <>
PR debug/11114
Support namespaces in DWARF 2 output.
* dwarf2out.c (gen_namespace_die): New function.
(force_namespace_die, setup_namespace_context): New fns.
(declare_in_namespace): New fn.
(gen_decl_die): Call declare_in_namespace. Handle namespaces.
(dwarf2out_decl): Handle namespaces.
(scope_die_for): Pass through a namespace scope.
(class_scope_p): Rename to class_or_namespace_scope_p.
(gen_subprogram_die, gen_variable_die): Adjust.
(gen_struct_or_union_die): Always emit a declaration
if context_die is a namespace.
2003-12-08 Jan Hubicka <>
* unwind-pe.h (read_uleb128): Fix handling of large values
(read_sleb128): Fix handling of large values
2003-12-08 Andrew Pinski <>
PR middle-end/10060
* emit-rtl.c (copy_rtx_if_shared): Split out into ...
(copy_rtx_if_shared_1): here and optimize the last one
in the sequence into tail-recursion.
(reset_used_flags): Optimize the last one
in the sequence into tail-recursion.
2003-12-08 Richard Earnshaw <>
* New split to transform ((X << y) - 1) into ~(~(X-1) << y)
for constant X.
2003-12-08 Richard Sandiford <>
* calls.c (expand_call): Don't try using tail or recursive calls
after the function body has been expanded.
2003-12-08 Jan Hubicka <>
* (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS
2003-12-08 Arnaud Charlet <>
PR ada/13324, PR ada/12614
* doc/install.texi: Update requirements for building Ada.
2003-12-07 David Edelsohn <>
Graham Reed <>
* collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT.
2003-12-07 Kazu Hirata <>
* final.c (final_scan_insn): Don't use FINAL_PRESCAN_LABEL.
* system.h (FINAL_PRESCAN_LABEL): Poison.
* doc/tm.texi (FINAL_PRESCAN_LABEL): Remove.
2003-12-07 Kaveh R. Ghazi <>
* (compare): Combine toplevel and $(SUBDIRS) cases.
2003-12-07 Nathanael Nerode <>
*, aclocal.m4: Revert to pre-2.5x conversion status.
* configure: Regenerate with autoconf 2.13.
with modern equivalents.
* configure: Regenerate.
* Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
* aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
* configure: Regenerate.
* configure: Regenerate with (preferred) autoconf 2.57.
* doc/install.texi: Note that 'gcc' is now a 2.57 directory.
2003-12-07 Eric Botcazou <>
PR optimization/12965
* caller-save.c (save_call_clobbered_regs): Do not save/restore
registers around no-return calls.
2003-12-07 Nathanael Nerode <>
* Make minimum necessary changes for autoconf 2.5x.
* aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
* configure: Regenerate with autoconf 2.58.
2003-12-07 Eric Botcazou <>
PR optimization/13318
* loop.c (express_from): Protect integer division from overflow.
2003-12-07 Eric Botcazou <>
PR optimization/13060
* function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a
replacement already exists. Fix again the whole insn if that fails.
2003-12-06 Andrew Pinski <>
* config/rs6000/rs6000.c (macho_branch_islands): Use
2003-12-06 Richard Sandiford <>
* varasm.c (incorporeal_function_p): New.
(assemble_external): Use it as a filter.
* config/mips/mips.c (mips_output_external): Don't check for builtin
functions here.
2003-12-06 Richard Earnshaw <>
* (IOR (COMPARISON) (AND)): New define_splits.
2003-12-06 Kelley Cook <>
* (program_transform_cross_name): Delete.
(install_cpp, install_driver, install-man, uninstall): Likewise.
2003-12-06 Alan Modra <>
PR 13169
* basic-block.h (PROP_ASM_SCAN): Define.
* final.c (regs_asm_clobbered): New array.
* regs.h (regs_asm_clobbered): Declare.
* flow.c (life_analysis): Init it.
(mark_set_regs): Set PROP_ASM_SCAN for asms.
(mark_set_1): Set regs_asm_clobbered.
* global.c (global_alloc): Don't set eliminable_regset when
2003-12-05 Mark Mitchell <>
* config/ia64/ia64.h (MUST_PASS_IN_STACK): Define.
PR c++/13314
* emit-rtl.c (set_mem_attributes_minus_bitpos): Robustify.
2003-12-05 Andrew Pinski <>
PR driver/13211
* gcc.c (execute) Increment execution_count when returning
early because verbose_only_flag is true.
2003-12-05 Per Bothner <>
* cppfiles.c (file_hash_hash): New static function.
(hash_string_eq): Renamed static function to file_hash_eq.
(_cpp_init_files): Create file_hash table with above callbacks.
(cpp_included): Must use htab_find_with_hash insead of htab_find.
(_cpp_find_find, make_cpp_dir): Must use htab_find_slot_with_hash.
2003-12-05 Per Bothner <>
* line-map.h (source_location): New typedef.
(fileline): Redefined as source_location.
(struct line_map, linemap_add, linemap_lookup): Replace filefile
by source_location.
* line-map.c (linemap_add, linemap_lookup): Use source_location.
2003-12-05 Richard Henderson <>
* config/alpha/alpha.c (alpha_build_builtin_va_list): Add dummy
field to suppress -Wpadded warnings.
2003-12-05 Stuart Hastings <>
* config/rs6000/ Correct macro test of TARGET_MACHO.
2003-12-05 Stuart Menefy <>
J"orn Rennecke <>
PR target/13302
* sh.c (sh_build_builtin_va_list): Use (*lang_hooks.types.make_type).
2003-12-05 Roger Sayle <>
* dojump.c (do_jump): If the expression being compared against
zero, is the subreg of a promoted variable, perform the comparison
in the promoted mode.
* simplify-rtx.c (simplify_unary_operation): Optimize sign and
zero-extensions of subregs of promoted variables where the
extension is identical to that used to promote the variable.
2003-12-05 Hans-Peter Nilsson <>
PR target/13256
* resource.h (enum mark_resource_type): Remove member MARK_DEST.
The only user changed as follows:
* resource.c (mark_set_resources) <case SET>: Always recurse for
SET_SRC (x).
<case SIGN_EXTRACT, case ZERO_EXTRACT>: Always recurse on
<case STRICT_LOW_PART>: Delete, deferring to default code.
2003-12-05 Waldek Hebisch <>
* stmt.c (expand_nl_goto_receiver): Copy hard register clobbers
and ASM_INPUT barrier from expand_builtin_setjmp_receiver.
2003-12-05 Richard Sandiford <>
* config/mips/mips.c (mips_expand_call): Don't allow laziy binding
for n32 & n64 abicalls.
2003-12-05 Richard Sandiford <>
PR bootstrap/13145
* config/mips/mips.h (FIRST_PSEUDO_REGISTER): Adjust comment.
* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Add $fcall.
(mips_load_got): Always create a constant MEM.
(mips_expand_call): Use load_callsi and load_calldi.
* config/mips/ (UNSPEC_LOAD_CALL, FAKE_CALL_REGNO): New consts.
(load_callsi, load_calldi): New patterns.
2003-12-05 Peter Gerwinski <>
* tree.def (PLACEHOLDER_EXPR): Clarify commentary.
2003-12-05 Steven Bosscher <>
* config/d30v/d30v-protos.h , config/d30v/d30v.c,
config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
config/fr30/fr30-protos.h, config/fr30/fr30.c,
config/i370/i370-protos.h, config/i370/i370.c,
config/i960/i960-protos.h, config/i960/i960.c,
config/ip2k/ip2k-protos.h, config/ip2k/ip2k.c,
config/m32r/m32r-protos.h, config/m32r/m32r.c,
config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c:
Convert to ISO C90 function declarations and definitions.
2003-12-05 Eric Botcazou <>
* doc/extend.texi (Constructing Calls): Add warning about
the limitations of the functions.
2003-12-05 Eric Botcazou <>
PR middle-end/11151
* function.h (struct function): New field 'x_naked_return_label'.
* function.c (free_after_compilation): Set it to NULL.
(expand_function_end): Emit 'naked_return_label' if it exists.
* rtl.h (expand_naked_return): Declare.
* stmt.c (expand_naked_return): New function to generate a
jump to 'naked_return_label'.
* builtins.c (expand_builtin_return): Call expand_naked_return
instead of expand_null_return.
* config/sparc/ (untyped_return): Likewise.
2003-12-04 Andrew Pinski <>
PR target/11322
* config/sh/netbsd-elf.h (NO_PROFILE_COUNTERS): Define.
PR target/12467
* config/rs6000/ (altivec_vmsummbm): Fix typo.
2003-12-04 Stuart Hastings <>
* rs6000.c (output_call, macho_branch_islands,
add_compiler_branch_island, no_previous_def, get_previous_label)
Revisions of xx_stub functions for branch islands,
add -fPIC support for Darwin.
* rs6000-protos.h (output_call) Prototype.
* Use output_call.
* invoke.texi Explain Darwin semantics of -longcall.
* testsuite/gcc.dg/darwin-abi-1.c Revise testcase for -longcall/jbsr.
2003-12-04 Richard Henderson <>
* config/i386/ (addqi3_carry): Use q not r constraints.
(subqi3_carry): Likewise.
2003-12-04 J"orn Rennecke <>
PR optimization/13260
* sh-protos.h (sh_expand_t_scc): Declare.
* sh.h (PREDICATE_CODES): Add cmpsi_operand.
* sh.c (cmpsi_operand, sh_expand_t_scc): New functions.
* (cmpsi): Use cmpsi_operand. If T_REG is compared to
something that is not a CONST_INT, copy it into a pseudo register.
(subc): Fix description of new T value.
(slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over.
(sltu, sleu, sgeu): Likewise.
(seq, sne): Likewise. Use sh_expand_t_scc.
2003-12-04 Nathanael Nerode <>
* Generalize the CONFIG_HEADERS pattern under which
we stamp cstamp-h.
* configure: Regenerate.
* Pull AC_CHECK_HEADER call out of shell if statement
to avoid trouble when updating to autoconf 2.5x.
* configure: Regenerate (with autoconf 2.13 still).
2003-12-04 J"orn Rennecke <>
* (truncdiqi2): Use andi opcode for immediate.
(reload_outdf+1,reload_outdf+2): Remove constraints.
(movv16sf_i): Fxi multiplier for SUBREG_BYTE.
(movv8qi_i+2): Zero-extend low byte before adding it to high byte.
(fipr, ftrv): Add .s suffix to opcode.
2003-12-04 Richard Sandiford <>
PR target/13186
Revert all of the following patch, except the addition of
2003-11-02 Richard Sandiford <>
* (targhooks.o, reload.o): Update dependencies.
(GTFILES): Add targhooks.c.
(gt-targhooks.h): New rule; depend on s-gtype.
* target.h (direct_pool_load_p): New hook.
* target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
* targhooks.h (default_direct_pool_load_p): Declare.
(hook_bool_machine_mode_true): Declare.
* targhooks.c: Include insn-config.h, recog.h, ggc.h and
(pool_symbol): New variable.
(default_direct_pool_load_p): New function.
(hook_bool_machine_mode_true): New function.
* reload.c: Include target.h.
(find_reloads): If an alternative will force a constant into memory,
count an extra reload if constant pool symbols are not valid
addresses. If an alternative uses memory to move values between
registers, count the move as two reloads rather than one.
* config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
* doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
2003-12-03 Mark Mitchell <>
* config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false.
* config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if
HAVE_AS_TLS is true.
* config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it.
2003-12-03 James E Wilson <>
* gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name.
* gcc-page.c (extra_order_size_tab): Correct comment.
2003-12-03 Kazu Hirata <>
* config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced
instead of gen_push_h8300hs.
(pop): Call gen_pop_h8300hs_advanced instead of
* config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode.
* config/h8300/ (*tablejump_h8300hs_advanced):
Tighten the predicate.
(*tablejump_h8300hs_normal): Tighten the predicate.
(push_h8300hs): Change to
(pop_h8300hs): Change to pop_h8300hs_advanced.
2003-12-03 Eric Christopher <>
* rtl.c: Fix typo.
* config/mips/mips.h: Ditto. Fix formatting.
2003-12-04 Ben Elliston <>
* future.options: Remove. Move to web pages.
2003-12-03 Eric Christopher <>
* (c_in_iteration_stmt, c_in_case_stmt): Move
from here...
* c-tree.h: to here.
2003-12-03 Jan Hubicka <>
PR optimization/12324
* toplev.c (rest_of_decl_compilation): Do not deffer when compiling
in unit-at-a-time mode.
2003-12-03 Jakub Jelinek <>
* expr.c (store_constructor): Only set RTX_UNCHANGING_P for
read-only field if cleared is 0.
2003-12-03 Nathanael Nerode <>
* config.gcc: Mark obsolete targets for GCC 3.4.
2003-12-03 Zack Weinberg <>
* aclocal.m4 (AM_ICONV): Add explicit check for iconv.h.
*, Regenerate.
* cpphash.h: Check both HAVE_ICONV and HAVE_ICONV_H before
including iconv.h.
2003-12-03 Alan Modra <>
PR target/11229
* cse.c (cse_insn): Set classp using src_const_elt if
src_eqv_elt is NULL.
2003-12-03 Richard Earnshaw <>
* gcse.c (reg_clear_last_set): New function.
(reg_set_info): If data is non-null, treat it as an sbitmap of
registers, set the bit for the register being set.
(compute_store_table): Allocate last_set_in with xcalloc. Do not
memset this array on each iteration. Pass reg_set_in_block[bb->index]
to note_stores while computing last_set_in instead of scanning
last_set_in after the first pass through the insns.
Clear last_set_in using reg_clear_last_set instead of explicitly
rescanning after each insn. If checking is enabled, assert that
last_set_in is completely zeroed after each bb has been processed.
2003-12-02 Geoffrey Keating <>
* df.c (df_uses_record) <MEM>: The argument of a MEM is read-only,
never read-write.
<REG>: Delete incorrect comment.
<SET>: Remove 'use_flags' variable.
2003-12-03 David Edelsohn <>
* function.c (assign_parms): Make sure parm PARALLEL combined
in reg is composed of more than one object and the mode really
produces a reg.
2003-12-03 Jan Hubicka <>
* i386.c (classify_argument): Make it 64bit clean.
2003-12-02 Richard Sandiford <>
* config/mips/mips.c (mips_output_external): Replace checks for
specific builtin-in functions with a check for DECL_BUILTIN_IN.
2003-12-02 Richard Henderson <>
* rtl.h (PUT_CODE, PUT_MODE): Remove ENUM_BITFIELD cast.
* tree.h (TREE_SET_CODE): Likewise.
* recog.h (struct insn_operand_data): Move const after ENUM_BITFIELD.
2003-12-02 Ben Elliston <>
* dbxstclass.h: Rename from this ..
* xcoff.h: .. to this.
* xcoffout.c: Include xcoff.h.
2003-12-01 Kaveh R. Ghazi <>
* (GCC_CFLAGS): Add -Wold-style-definition.
2003-12-01 James Lemke <>
* config/arm/arm.c (arm_rtx_costs): Improve for xscale multiply.
2003-12-01 Roger Sayle <>
PR optimization/11634
* recog.c (split_insn): Factor test of INSN_P and handling of
set_noop_p out of here into the two callers.
(split_all_insns): Add INSN_P test and set_noop_p handling here.
If deleting a no-op set after reload that has a REG_UNUSED note,
mark the basic block as changed and recalculate life information.
(split_all_insns_noflow): Add INSN_P test and set_noop_p handling
2003-12-01 Roger Sayle <>
PR optimization/12322
* gcse.c (struct ls_expr): Change type of hash_index from int to
unsigned int.
(hash_expr): Document hash_table_size parameter and wrap long line.
(ldst_entry): Calculate expression's hash_index and record in ptr.
(trim_ld_motion_mems): Use hash_index to search a single bucket
instead of scanning the entire hash_table. Remove the "del" local
variable and use the equivalent "expr == 0" instead. Change last
to be a pointer to the pointer to the current element, to simplify
and speed-up deleting from a linked list.
2003-12-01 James E Wilson <>
* doc/contrib.texi: Update David Mosberger.
* doc/c-tree.texi (CONSTRUCTOR): Clarify element order and handling
of missing fields.
PR target/8407
* config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call
gen_rtx_REG to create new reg with argument mode.
2003-12-01 Steven Bosscher <>
* ggc.h (struct alloc_zone): Move forward declaration up.
(new_ggc_zone): New function prototype.
(destroy_ggc_zone): Ditto.
* ggc-simple.c (new_ggc_zone): New function, does nothing.
(destroy_ggc_zone): Ditto.
* ggc-page.c (new_ggc_zone): New function, does nothing.
(destroy_ggc_zone): Ditto.
* ggc-zone.c (struct page_entry): Fix comment.
(ggc_alloc_typed): Use a switch statement instead of ifs.
(new_ggc_zone): New function to set up a new GC zone.
(destroy_ggc_zone): New function to remove a GC zone.
init_ggc): Use new_ggc_zone to set up the default zones.
(ggc_collect): Walk a list of zones, instead of just the
default zones. Report statistics using the zone name.
2003-12-01 Ulrich Weigand <>
* unroll.c (find_splittable_givs): Add missing extend_value_for_giv.
2003-12-01 Roger Sayle <>
PR optimization/12628
* toplev.c (rest_of_handle_jump_bypass): Call reg_scan.
* regclass.c (reg_scan): Include allocate_reg_info time in
TV_REG_SCAN. Minor clean-ups.
(reg_scan_update): Minor clean-ups.
2003-12-01 Ulrich Weigand <>
* config.gcc (s390x-ibm-tpf*): Add extra_parts.
2003-12-01 James E Wilson <>
* config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not
2003-12-01 Zack Weinberg <>
* common.opt: Remove -fgnu-linker.
* flags.h: Remove flag_gnu_linker.
* opts.c: Don't handle OPT_fgnu_linker.
* toplev.c: Don't initialize flag_gnu_linker.
Remove gnu-linker entry from f_options.
* config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS):
Don't reset flag_gnu_linker.
* config/mips/mips.c (override_options): Likewise.
* doc/invoke.texi: Remove all mention of -fgnu-linker.
2003-12-01 Daniel Berlin <>
* ggc-zone.c (ggc_pch_write_object): Calculate object size using
ggc_get_size (which accounts for large objects properly).
2003-12-01 Jeff Sturm <>
PR optimization/13024
* toplev.c (rest_of_handle_new_regalloc): Remove rebuild_notes
(rest_of_handle_old_regalloc): Likewise. Add rebuild_notes
declaration. Rebuild jump labels following local_alloc if necessary.
(rest_of_compilation): Remove rebuild_label_notes_after_reload
declaration. Don't pass rebuild_notes parameter to
rest_of_handle_new_regalloc and rest_of_handle_old_regalloc.
Don't rebuild jump labels.
2003-12-01 Jeff Law <>
* flow.c (count_or_remove_death_notes_bb): New. Extracted from
(count_or_remove_death_notes): Use EXECUTE_IF_SET_IN_SBITMAP.
2003-12-01 Andreas Krebbel <>
* builtins.c (expand_builtin_longjmp): Added two memory clobbers.
2003-12-01 Ulrich Weigand <>
* reload.c (find_reloads_address): Split addresses of type
(plus (plus (reg) (reg)) (const_int)) only if one register
is either a valid base register or else one of the stack
frame related registers (sp/fp/ap).
2003-12-01 Steven Bosscher <>
* function.c (update_epilogue_consts): Don't use PARAMS.
* rtl.h (web_main): Ditto.
* target.h (is_costly_dependence): Ditto
2003-12-01 Eric Botcazou <>
PR middle-end/7847
* expr.c (expand_expr) [normal_inner_ref]: When 'offset' is non-zero,
do not recheck that 'op0' is a MEM. Move comment. When testing for
unaligned objects, take also into account the alignment of 'op0' and
'mode1' if 'op0' is a MEM.
2003-12-01 Gabriel Dos Reis <>
* doc/c-tree.texi (Function Bodies): Update HANDLER documentation.
2003-12-01 Kelley Cook <>
* doc/install.texi: Note that fastjar is built with automake 1.7.x
and autoconf 2.57.
2003-12-01 Alan Modra <>
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
target_flags directly rather than using TARGET_* defines.
2003-11-30 Ben Elliston <>
* doschk.c: Remove.
2003-11-30 Richard Sandiford <>
PR target/12727
* config/mips/mips.c (mips_save_reg): Fix frame information for sdc1
on 32-bit big-endian targets.
2003-11-30 Kazu Hirata <>
* genemit.c (register_constraints): Remove.
2003-11-30 Andreas Krebbel <>
* config/s390/ ("tmdi_reg", "tmsi_reg", "*movdi_64", "*movdi_31",
"iordi3"): Insns now use multiple letter constraints.
("*movdi_lhi", "*movdi_lli", "*movdi_lay"): Insns deleted. They are now
covered by "*movdi_64".
("*movsi_lhi", "*movsi_lli", "*movsi_lay"): Insns deleted. They are now
covered by "*movsi_zarch" and "*movsi_esa".
("*movsi_zarch", "*movsi_!zarch"): New insns.
("*llgt_sisi_split", "*llgt_didi_split"): Insns deleted. Now covered
by "*andsi3_zarch" and "anddi3".
("*anddi3_ni"): Insn merged with "anddi3".
("*andsi3_ni"): Insn merged with "*andsi3_zarch".
("*andsi3_zarch", "*andsi3_esa"): New insns.
("*iordi3_oi"): Insn merged with "iordi3".
("*iorsi3_oi"): Insn merged with "*iorsi3_zarch".
("*iorsi3_zarch", "*iorsi3_esa"): New insns.
* config/s390/s390.c (s390_single_qi, s390_single_hi): Functions
merged to s390_single_part.
(s390_single_part): New function.
NOTE: Semantics have changed a bit. Now the value of the part must
be different from the others to get a non-negative return value.
(s390_extract_qi, s390_extract_hi): Functions merged to
(s390_extract_part, s390_extra_constraint_str,
s390_const_ok_for_constraint_p): New functions. The L constraint got a
new meaning and the N constraint was added as a multiple letter
(s390_extra_constraint): Function deleted.
(print_operand): New output modifier 'i' and 'j' added.
All uses of CONST_OK_FOR_LETTER_P were replaced by
* config/s390/s390-protos.h: Function prototypes adapted.
* doc/md.texi: Documentation for new constraint letters added.
2003-11-30 Andreas Schwab <>
* ($(DESTDIR)$(infodir)/ Fix missing semicolon.
2003-11-29 James E Wilson <>
* gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name
instead of in shared_name.
* final.c (final_start_function): Delete code for NON_SAVING_SETJMP.
* reload1.c (reload): Re-add it here.
2003-11-30 Alan Modra <>
* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't
2003-11-29 Kazu Hirata <>
* config/h8300/h8300.h (LIBCALL_VALUE): Use R0_REG.
2003-11-28 Gunther Nikl <>
* config/m68k/m68k.c (MOTOROLA): Move from here...
* config/m68k/m68k.h (MOTOROLA): ... to here.
(OUTPUT_JUMP): Use do {...} while (0).
* config/m68k/ Replace #ifdef MOTOROLA with C statements.
2003-11-28 Gunther Nikl <>
* config.gcc (m68020-*-elf*, m68k-*-elf*, m68010-*-netbsdelf*,
m68k*-*-netbsdelf*, m68k-*-rtems*): Add tm_defines containing
* config/m68k/rtemself.h (MOTOROLA): Delete.
* config/m68k/netbsd-elf.h (MOTOROLA, USE_GAS): Delete.
* config/m68k/m68kelf.h (MOTOROLA, USE_GAS, SGS_CMP_ORDER): Delete.
2003-11-29 Kazu Hirata <>
* config/h8300/h8300.h (WORDS_BIG_ENDIAN): Update the comment.
2003-11-29 Kelley Cook <>
* (install-info): Install too.
2003-11-29 Ulrich Weigand <>
* config/s390/ ("cmpint_di"): Fix incorrect instruction lengths.
2003-11-29 Ulrich Weigand <>
* config/s390/ ("movhi"): Do not emit extender pattern
when loading from a (MEM (ADDRESSOF ...)).
("movqi"): Likewise.
2003-11-29 Joseph S. Myers <>
PR c/10333
* (typespec_reserved_nonattr): Reject typeof on
2003-11-29 Richard Sandiford <>
* stmt.c (expand_asm_operands): Check whether force_const_mem
2003-11-28 Kaveh R. Ghazi <>
* config/gnu.h (HURD_TARGET_OS_CPP_BUILTINS): New.
* config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): New.
* config/alpha/gnu.h, config/alpha/linux.h,
config/arm/linux-elf.h, config/cris/cris.h, config/cris/linux.h,
config/i370/linux.h, config/i386/gnu.h, config/i386/i386.h,
config/i386/linux-aout.h, config/i386/linux.h,
config/i386/linux64.h, config/ia64/linux.h, config/m68k/linux.h,
config/m68k/uclinux.h, config/mips/linux.h,
config/mn10300/linux.h, config/pa/pa-linux.h,
config/rs6000/sysv4.h, config/s390/linux.h, config/sh/linux.h,
config/sparc/linux.h, config/sparc/linux64.h,
config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Use
all necessary assertions are included.
2003-11-28 Jan Hubicka <>
* emit-rtl.c (set_used_flags): New.
(verify_rtx_sharing, verify_rtl_sharing): New.
(unshare_all_rtl_1): Rename to....
(unshare_all_rtl_in_chain): ... this one; make static.
(copy_rtx_if_shared): LABEL_REF chan be shared.
* ifcvt.c (unshare_ifcvt_sequence): New.
(noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask,
noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax,
noce_try_abs, noce_process_if_block, find_cond_trap
* rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain):
2003-11-28 Kazu Hirata <>
* config/h8300/ Fix a comment typo.
2003-11-28 Kazu Hirata <>
* config/h8300/ (*movsf_h8300h): Change to
(addsi_h8300): Change to *addsi_h8300.
(addsi_h8300h): Change to *addsi_h8300hs.
(subsi3_h8300): Change to *subsi3_h8300.
(subsi3_h8300h): Change to *subsi3_h8300hs.
(neghi2_h8300h): Change to *neghi2_h8300hs.
(negsi2_h8300h): Change to *negsi2_h8300hs.
2003-11-28 Kazu Hirata <>
* config/h8300/ (*subhi3_h8300): Remove '&' from the
(*subhi3_h8300hs): Likewise.
2003-11-28 David Edelsohn <>
* config/rs6000/rs6000.h (MASK_MFCRF): New.
(TARGET_MFCRF): Test target_flags, not processor type.
(TARGET_SWITCHES): Add mfcrf and no-mfcrf.
Change Don't to Do not.
* config/rs6000/rs6000.c (processors_target_table): Add MASK_MFCRF
to power4, 970, G5.
2003-11-27 J"orn Rennecke <>
* cse.c (cse_set_around_loop): When changing a constant load
to a register -register copy, add a REG_EQUAL note.
2003-11-27 Randolph Chung <>
John David Anglin <>
* pa.c (hppa_profile_hook): Split gen_call_profiler into separate
insns. Use the regular call expander for the call to the profiler.
* (call_profiler): Delete.
(load_offset_label_address): New insn to load the address of the
current function for the profiler.
(lcla1, lcla2): New insns to output a code label and load its address.
2003-11-27 Kazu Hirata <>
* final.c (final_scan_insn): Remove commented-out code.
2003-11-27 Nathanael Nerode <>
* doc/install.texi: Remove ADAC reference and make accurate.
2003-11-27 Kazu Hirata <>
* config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG.
* config/h8300/ Define R0_REG.
2003-11-27 Kazu Hirata <>
* config/h8300/h8300.c: Fix formatting.
* config/h8300/ Likewise.
2003-11-27 Kazu Hirata <>
* config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment.
2003-11-27 Kazu Hirata <>
* config/h8300/ Give names to anonymous insns.
2003-11-27 Kazu Hirata <>
* config/h8300/ (extendqisi2): Remove constraints.
2003-11-27 Gunther Nikl <>
* doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo.
2003-11-27 Eric Botcazou <>
PR optimization/13041
* final.c (frame_pointer_needed): Fix comment.
* reload1.c (reload): Decrease alignment of the frame
pointer if it was used for register allocation.
2003-11-27 Eric Botcazou <>
PR target/12900
* reg-stack (move_for_stack_reg): New prototype. Return
whether a control flow insn was deleted.
(subst_stack_regs_pat): Likewise, using the information provided
by move_for_stack_reg.
(subst_stack_regs): Likewise, using the information provided
by subst_stack_regs_pat.
(convert_regs_1): Record whether a control flow insn was deleted,
using the information provided by subst_stack_regs. Purge dead
edges only if a control flow insn was deleted.
2003-11-27 Eric Botcazou <>
PR middle-end/8028
PR middle-end/9890
PR middle-end/11151
PR middle-end/12210
PR middle-end/12503
PR middle-end/12692
* builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx
as the base address to copy the memory arguments to.
2003-11-26 Danny Smith <>
* config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare
function aliases as functions.
2003-11-26 Nathanael Nerode <>
* aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal
of ADAC.
* configure: Regenerate.
* Remove references to ADAC.
* Remove check for whether ${ADAC} accepts -Wno-long-long.
* configure: Regenerate.
2003-11-26 Eric Botcazou <>
Olivier Hainque <>
PR target/6466
* config/sparc/sparc-protos.h (compute_frame_size): New prototype.
(sparc_flat_compute_frame_size): Likewise.
(sparc_flat_save_restore): Move prototype...
* config/sparc/sparc.c (sparc_flat_save_restore):
(save_regs): New prototype.
(build_big_number): Likewise.
(apparent_fsize): Change type to HOST_WIDE_INT.
(actual_fsize): Likewise.
(frame_base_offset): Likewise.
(build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64.
Change string descriptor to HOST_WIDE_INT_PRINT_DEC.
[TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway
to load a 64-bit constant.
(sparc_nonflat_function_prologue): Change string descriptor to
(output_restore_regs): Change offset type to HOST_WIDE_INT.
(sparc_nonflat_function_epilogue): Change string descriptor to
HOST_WIDE_INT_PRINT_DEC. Use build_big_number.
(output_sibcall): Change size type to HOST_WIDE_INT. Use
build_big_number. Change string descriptor to HOST_WIDE_INT_PRINT_DEC.
(sparc_frame_info): Change types for several components.
(sparc_flat_compute_frame_size): Update types according to previous
(sparc_flat_function_prologue): Change string descriptor to
HOST_WIDE_INT_PRINT_DEC. Change offset type to int. Use
(sparc_flat_function_epilogue): Change offset type to int.
Rename 'size1' into 'reg_offset1'. Change string descriptor to
HOST_WIDE_INT_PRINT_DEC. Use build_big_number. Change big number
limit to 4096 instead of 4095.
* config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to
2003-11-24 Waldek Hebisch <>
* function.c: Make outer_function-chain external.
* function.h: Likewise.
2003-11-24 Richard Sandiford <>
* config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when
using GNU ld.
* config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the
whole of the previous STARTFILE_SPEC except crtbegin.o%s.
(IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s.
(STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above.
* config/mips/iris6gld.h (LINK_SPEC): Change -init function
to __gcc_init and -fini function to __gcc_fini.
(STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o.
(ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o.
* config/mips/t-iris6gld,
* config/mips/irix6-crti.asm,
* config/mips/irix6-crtn.asm: New files.
2003-11-24 Eric Christopher <>
PR C/13014
* c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New.
(start_function): Use.
(c_push_function_context): Ditto.
(c-pop_function_context): Ditto.
(language_function): Move...
* c-tree.h: ... here. Add x_in_iteration_stmt, and
* (do_stmt_start, select_or_iter_stmt, stmt): Use
c_in_iteration_stmt, c_in_case_stmt for parser state. Move
check for valid break or continue statment here...
* c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From
here. Change original errors to abort.
2003-11-24 Jan Hubicka <>
* fold-const.c (fold): Do not return early when optimizing
COMPONENT_REF and constant.
2003-11-24 Kazu Hirata <>
* config/h8300/ (tablejump_h8300): Change to
(tablejump_h8300h): Change to *tablejump_h8300hs_advanced.
(tablejump_normal_mode): Change to *tablejump_h8300hs_normal.
(indirect_jump_h8300): Change to *indirect_jump_h8300.
(indirect_jump_h8300h): Change to
(indirect_jump_normal_mode): Change to
2003-11-24 Kazu Hirata <>
* config/h8300/ Remove constraints from expanders.
2003-11-24 Kazu Hirata <>
* config/h8300/ (stm_h8300s_2): Change the name to
(stm_h8300s_2_normal): New.
(stm_h8300s_2): Likewise.
(stm_h8300s_3): Change the name to stm_h8300s_3_advanced.
(stm_h8300s_3_normal): New.
(stm_h8300s_3): Likewise.
(stm_h8300s_4): Change the name to stm_h8300s_4_advanced.
(stm_h8300s_4_normal): New.
(stm_h8300s_4): Likewise.
(ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced.
(ldm_h8300s_2_normal): New.
(ldm_h8300s_2): Likewise.
(ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced.
(ldm_h8300s_3_normal): New.
(ldm_h8300s_3): Likewise.
(ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced.
(ldm_h8300s_4_normal): New.
(ldm_h8300s_4): Likewise.
(two peephole2's): Enable only with !TARGET_NORMAL_MODE.
(two peephole2's): New.
2003-11-24 Zdenek Dvorak <>
* genattrtab.c (simplify_cond): Update indices correctly.
(attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection,
attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New.
(check_attr_test, encode_units_mask, compute_alternative_mask,
make_alternative_compare, simplify_and_tree,
attr_rtx_cost, simplify_test_exp, gen_attr,
write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT.
* rtl.def (EQ_ATTR_ALT): New.
2003-11-23 Zdenek Dvorak <>
* genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros.
(length_str, delay_type_str, delay_1_0_str, num_delay_slots_str):
New variables.
(main): Initialize them.
(find_attr): Canonicalize the attribute name string.
(attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize
string arguments.
(attr_printf, attr_eq): Use DEF_ATTR_STRING.
(check_attr_test, check_attr_value, make_length_attrs,
write_length_unit_log, simplify_by_exploding, gen_attr,
write_test_expr, write_attr_value, write_eligible_delay,
write_complex_function, make_internal_attr,
write_const_num_delay_slots): Changed due to change of type of
(fill_attr, evaluate_eq_attr, simplify_and_tree,
attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use
2003-11-23 Kazu Hirata <>
PR target/13122
* config/h8300/h8300.c (push): Call push_h8300hs_normal in
normal mode.
(pop): Call pop_h8300hs_normal in normal mode.
* config/h8300/ Likewise.
(pushqi1_h8300hs_normal): New.
(pushqi1): Call pushqi1_h8300hs_normal in normal mode.
(pushhi1_h8300hs_normal): New.
(pushhi1): Call pushhi1_h8300hs_normal in normal mode.
(push_h8300hs_normal): New.
(pop_h8300hs_normal): Likewise.
2003-11-23 Zdenek Dvorak <>
* genattrtab.c (count_sub_rtxs): Removed.
2003-11-23 Richard Earnshaw <>
* recog.c (preprocess_constraints): Only zero those elements of
recog_op_alt that are needed for this insn.
* arm.c (note_invalid_constants): A function can't contain invalid
constants if it has no constraints.
2003-11-22 Jan Hubicka <>
* i386.c (classify_argument): Pass __float128 in memory.
(ix86_return_in_memory): Likewise.
(ix86_libcall_value): Likewsie.
2003-11-22 Kazu Hirata <>
* config/h8300/h8300.c (dosize): Convert to ISO-C.
2003-11-22 J"orn Rennecke <>
* flow.c (update_life_info): Amend comment about when a register
can become dead.
2003-11-21 Kelley Cook <>
* doc/.cvsignore: Delete.
2003-11-21 Daniel Berlin <>
David Edelsohn <>
* dwarf2out.c (add_location_or_const_value_attribute): Add support
2003-11-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error.
* crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare.
(__do_global_ctors): Likewise.
2003-11-21 Mark Wielaard <>
* doc/invoke.texi (-O2): Doesn't enable -fweb.
2003-11-21 Kazu Hirata <>
* doc/invoke.texi: Mention dV and dZ.
2003-11-21 Kazu Hirata <>
* doc/invoke.texi: Update dump file names.
Remove de, dW, and dX.
2003-11-20 James E Wilson <>
PR c/13133
* reload1.c (reload): Delete special handling for setjmp.
2003-11-21 Andreas Tobler <>
* Evaluate shlib_slibdir_qual during link
step too.
* config/t-slibgcc-darwin: Adjust install path.
* config/rs6000/t-darwin: Revert multilib matches since
it is not used on darwin.
2003-11-20 Richard Henderson <>
* ssa.c, ssa-dce.c, ssa-ccp.c: Remove files.
* (OBJS-common, GTFILES): Don't reference them.
(gtype-desc.o, toplev.o, flow.o): Remove ssa.h.
(ssa.o, ssa-dce.o, ssa-ccp.o): Remove.
* flow.c: Don't include ssa.h.
(set_phi_alternative_reg): Remove.
(calculate_global_regs_live): Don't call it.
(mark_used_regs): Don't handle PHI.
* gengtype.c (open_base_files): Don't reference ssa.h.
* rtl.def (PHI): Remove.
* timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill.
* common.opt: Remove -fssa, -fssa-ccp, -fssa-dce.
* opts.c (common_handle_option): Likewise.
* toplev.c (f_options): Likewise.
(DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove.
(dump_file): Update to match.
(flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove.
(rest_of_handle_ssa): Remove.
(rest_of_compilation): Don't call it.
* toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove.
* doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce.
* doc/passes.texi (SSA optimizations): Remove.
2003-11-20 Bob Wilson <>
* Add xtensa-*-* targets to test for dwarf2 debug_line.
* configure: Regenerate.
2003-11-20 Kelley Cook <>
* (Makefile): Pass along CONFIG_SHELL.
2003-11-20 David Mosberger <>
* config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
(SHLIB_LC): Define.
* unwind-libunwind.c (_Unwind_GetCFA): Implement.
(_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.
2003-11-20 Fariborz Jahanian <>
David Edelsohn <>
* calls.c (expand_call): Allocate new temp in pass1.
(store_one_arg): If PARALLEL, calculate excess using mode size of
rtvec elt.
* expr.c (emit_push_insn): If PARALLEL, calculate offset using
mode size of rtvec elt.
* function.c (assign_parms): Use parm in register, if available.
2003-11-20 Kazu Hirata <>
* config/h8300/lib1funcs.asm (MOVP): Remove.
(ADDP): Likewise.
(CMPP): Likewise.
2003-11-20 Richard Earnshaw <>
* arm.c (use_return_insn): New argument, SIBLING. Support returning
with a single instruction if the stack has been decremented by 4
and we have a frame pointer. Update all callers.
(output_return_instruction): Likewise.
(arm_output_epilogue): Change argument to SIBLING. Calculate
really_return from the new argument. Update all callers.
* arm.h (USE_RETURN_INSN): Pass NULL for the sibling.
* (sibcall_epilogue): Call use_return_insn directly, and
pass the sibling call.
* arm-protos.h (use_return_insn, arm_output_epilogue): Update
2003-11-20 Joseph S. Myers <>
* (extraclean): Delete.
* (target_list): Remove extraclean.
* configure: Regenerate.
* doc/makefile.texi, doc/sourcebuild.texi: Update.
* objc/ (objc.extraclean): Delete.
2003-11-20 Joseph S. Myers <>
* (lang_checks): Add.
(check-c++, check-f77, check-java, check-g++, check-g77,
check-objc): Remove hardcoded targets.
* doc/sourcebuild.texi: Document testsuite hooks.
* objc/ (check-objc, lang_checks): Add.
2003-11-19 Scott Snyder <>
PR target/13131
* dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a
flag, not a constant.
2003-11-19 Kelley Cook <>
* config/arc/arc-protos.h: Update to C90 prototypes.
* config/arc/arc.c: Likewise.
* config/arc/initfini.c: Likewise.
2003-11-19 Andreas Krebbel <>
* stmt.c (expand_goto): Memory clobbers added.
2003-11-19 Andreas Krebbel <>
* reload.c (find_reloads): Added missing type casts.
2003-11-19 James E Wilson <>
* combine.c (sets_function_arg_p): Delete unused function.
2003-11-19 Eric Christopher <>
* reload1.c (reload): Revert 2 previous checkins.
2003-11-19 Nathanael Nerode <>
* cpptrad.c (_cpp_scan_out_logical_line): Improve test for
whether directive begins at the beginning of a line.
2003-11-19 Richard Sandiford <>
* config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries.
2003-11-19 Gerald Pfeifer <>
* doc/install.texi (Specific): Remove information on old versions
of glibc versus old versions of GCC.
2003-11-19 Richard SAndiford <>
* emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless
the register lowpart is a TRULY_NOOP_TRUNCATION.
2003-11-19 Richard Henderson <>
* config/i386/i386.c (print_reg): Handle QI and HI modes for
non Q regs.
2003-11-19 Andreas Tobler <>
* config/config.gcc (powerpc-*-darwin*): Add libgcc build
specification file.
* config/t-slibgcc-darwin: New file, libgcc build specification.
* config/t-darwin: Add libgcc2 flag -fPIC.
* config/rs6000/t-darwin: Multilib matches float.
* libgcc-darwin.ver: New file, contains libgcc symbols.
2003-11-18 Nathanael Nerode <>
* config/ns32k/ns32k.h: Remove obsolete comment.
2003-11-18 Roger Sayle <>
PR middle-end/11821
* config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code
size for calls to libgcc's div & mod subroutines when using -Os.
2003-11-18 Jan Hubicka <>
* cgraph.c (change_decl_assembler_name): Avoid bogus warnings.
2003-11-18 Marc Espie <>
* config/rs6000/sysv4.h: OpenBSD hooks.
2003-11-18 Richard Henderson <>
* expr.c (expand_expr): Don't look through constant arrays if
they don't bind locally.
2003-11-17 Richard Kenner <>
* expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize
when seeing if truncation or extension.
2003-11-17 Eric Christopher <>
* reload1.c (reload): Fix previous change.
2003-11-17 Scott Snyder <>
PR debug/11325
* dwarf2out.c (struct die_struct): Add die_definition field.
(add_AT_specification): New.
(gen_subprogram_die, gen_variable_die,
gen_struct_or_union_type_die): Use it.
(prune_unused_types_mark): If we're marking a forward declaration,
also mark the full definition, if it exists.
2003-11-16 Nick Clifton <>
* config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete.
* config/stormy16/stormy16-protos.h (xstormy16_build_va_list):
Remove prototype.
* config/stormy16/stormy16.c (xstormy16_build_va_list): Rename
to xstormy16_build_builtin_va_list and make static.
2003-11-16 Kazu Hirata <>
* config/h8300/h8300-protos.h: Add the prototype for
* config/h8300/h8300.c (same_cmp_following_p): New.
* config/h8300/ (peephole2): Use it.
2003-11-16 Kazu Hirata <>
* config/h8300/ Don't use REGNO when its operand is
not guaranteed to be a REG.
2003-11-16 Richard Sandiford <>
* (expr.o): Depend on $(TARGET_H).
* target.h (return_in_msb): New target hook.
* target-def.h (TARGET_RETURN_IN_MSB): New macro.
(TARGET_CALLS): Include it.
* calls.c (shift_returned_value): New function.
(expand_call): Use it.
* expr.c: Include target.h.
(copy_blkmode_from_reg): Check targetm.calls.return_in_msb when
deciding what padding is needed. Change the name of the local
padding variable from big_endian_correction to padding_correction.
* stmt.c (shift_return_value): New function.
(expand_return): Use it. Adjust memory->register copy in the same
way as copy_blkmode_from_reg. Only change the return register's
mode if it was originally BLKmode.
* doc/tm.texi (TARGET_RETURN_IN_MSB): Document.
* config/mips/mips.c (TARGET_RETURN_IN_MSB): Define.
(mips_fpr_return_fields): New, split out from mips_function_value.
(mips_return_in_msb, mips_return_fpr_pair): New functions.
(mips_function_value): Rework to use the functions above.
* config/mips/irix6-libc-compat.c: Delete.
* config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine.
2003-11-16 Kazu Hirata <>
* doc/install.texi (--enable-checking): Update valgrind's URL.
2003-11-16 Kazu Hirata <>
* config/h8300/ Fix warnings by replacing -2147483648
with -2147483647 - 1.
2003-11-16 Gerald Pfeifer <>
Fix links in online manuals.
* doc/invoke.texi (H8/300 Options): @xref to ld, not
(Precompiled Headers): @pxref to cpp, not
2003-11-16 Jason Merrill <>
*, objc/ (objc.tags): Create TAGS.sub
files in each directory and TAGS files that include them for each
front end.
2003-11-15 Kazu Hirata <>
* config/h8300/lib1funcs.asm (divnorm): Store the sign in bit
3 of S2L.
(modnorm): Likewise.
(exitdiv): Look at bit 3 of S2L only.
2003-11-15 Kazu Hirata <>
* config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings.
2003-11-15 Joseph S. Myers <>
* doc/install.texi (Prerequisites): Refine documentation of
autoconf, automake and perl requirements. Document required
gettext version.
<2003-11-14 Jason Merrill <>
* function.c (assign_parms): Use TREE_TYPE to determine the real
type of the argument object.
2003-11-14 Kazu Hirata <>
* config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
2003-11-14 Fariborz Jahanian <>
* config/rs6000/rs6000.c (rs6000_move_block_from_reg):
New routine to save vararg registers on stack. Support for
-mpowerpc64 in mixed mode.
2003-11-14 Bernardo Innocenti <>
* config/m68k/m68k.c: Use C statements instead of #ifdef's when testing
for MOTOROLA versus MIT syntax. Improves readability and provides
better compile-time error checking for both code paths.
2003-11-14 Kelley Cook <>
* config/frv/frv-protos.h: Update for C90.
* config/frv/frv.h: Likewise.
* config/frv/frvbegin.c: Likewise.
* config/frv/frv.c: Likewise.
(frv_adjust_field_align): Delete unused variable.
2003-11-14 Geoffrey Keating <>
* config/rs6000/ Add 'DEFAULT_ABI == ABI_DARWIN'
to each place where TARGET_LONG_DOUBLE_128 is used with
* cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found'
message comply with GNU standards.
2003-11-14 Richard Kenner <>
* function.c (struct epi_info): New field const_equiv.
(update_epilogue_consts): New function.
(keep_stack_depressed): Clear new field and verify scratch register
doesn't have it set.
Call new function via note_stores.
(handle_epilogue_set): Allow setting SP equiv reg in different mode.
Allow PLUS where second operand is register known set to constant.
(emit_equiv_load): Write load using proper mode if source different.
* config/mips/ (return_internal): Put (return) first.
2003-11-14 Kazu Hirata <>
* config/h8300/lib1funcs.asm (___udivsi3): Add a comment.
2003-11-14 Kazu Hirata <>
* config/h8300/lib1funcs.asm (modsi3): Don't save unused
(divsi3): Likewise.
(reti): Don't restore unused registers.
2003-11-14 Nick Clifton <>
* config/fr30/fr30.c: Include toplev.h
2003-11-14 Richard Earnshaw <>
* except.c (sjlj_emit_function_enter): Mark internal label as LOCAL.
2003-11-14 Richard Earnshaw <>
* arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C
function definition syntax.
2003-11-14 Eric Christopher <>
* reload1.c (reload): Revert previous patch. Make
check for assignment into reg_equiv_address stricter.
2003-11-14 Arnaud Charlet <>
2003-11-14 Richard Sandiford <>
* config/frv/frv.c (frv_in_small_data_p): Return false for unknown
section names.
2003-11-14 Jason Merrill <>
PR middle-end/12526
* tree.c (build): A CALL_EXPR has side-effects if its arguments do.
* calls.c (call_expr_flags): New fn.
* tree.h: Declare it.
2003-11-13 Kazu Hirata <>
* config/h8300/lib1funcs.asm (__udivsi3): Remove.
(divmodsi3): Change the name to ___udivsi3.
Update all callers.
2003-11-13 Kaveh R. Ghazi <>
* libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3,
__mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3,
__ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2,
__udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2,
__fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI,
__floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp):
Const-ify and/or initialize automatic variables at declaration.
2003-11-13 Kazu Hirata <>
* config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses
of er4 with er3. Adjust all callers.
2003-11-13 Andrew Pinski <>
* config/darwin.c (machopic_output_possible_stub_label):
Allow stub symbol be not defined when outputting possible
stub label.
2003-11-13 Kazu Hirata <>
* config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
instead of exitdiv.
(___umodsi3): Likewise.
(exitdiv): Do not restore any register.
(reti): Restore registers.
2003-11-13 Steven Bosscher <>
* tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR.
2003-11-13 Kazu Hirata <>
* config/h8300/lib1funcs.asm: Fix comment typos.
2003-11-13 Kazu Hirata <>
* config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
unused registers. Don't jump to exitdiv.
(umodsi3): Likewise.
2003-11-13 Mark Mitchell <>
Kean Johnston <>
PR c/13029
* toplev.c (check_global_declarations): Do not warn about unused
static consts.
2003-11-13 Pavel Pisa <>
Kazu Hirata <>
* config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using
the approximate quotient method.
2003-11-13 Richard Earnshaw <>
* combine.c (distribute_notes): When re-distributing the notes from
an insn we are about to delete, ensure we can't end up with a cyclic
list of notes.
2003-11-13 Eric Botcazou <>
PR optimization/12926
* expr.c (expand_assignment) [COMPONENT_REF]: Don't put
the UNCHANGING_RTX_P flag on memory references to read-only
components that are not addressable.
2003-11-12 Kazu Hirata <>
* config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in
2003-11-13 Jan Hubicka <>
PR opt/12275
* c-decl.c (finish_decl): Use change_decl_assembler_name.
* c-pragma.c (handle_pragma_redefine_extname): Likewise.
* varasm.c (make_decl_rtl): Likewise.
* cgraph.c (change_decl_assembler_name): New function.
* tree.h (set_decl_assembler_name): Kill dead declaration.
(change_decl_assembler_name): Declare.
* decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
* decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name.
2003-11-12 Kazu Hirata <>
* config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore
an unused register.
2003-11-12 Richard Sandiford <>
PR bootstrap/12752
* config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first.
(MULTILIB_OSDIRNAMES): Reorder accordingly.
2003-11-12 Janis Johnson <>
* rs6000-protos.h (rs6000_initial_elimination_offset): Add.
(rs6000_stack_info): Remove. (debug_stack_info): Remove.
(rs6000_emit_eh_reg_restore): Add
* rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type
of vars_size and total_size to HOST_WIDE_INT.
(emit_frame_save): Change parameter size to HOST_WIDE_INT.
(rs6000_stack_info): Make static; change data size to HOST_WIDE_INT.
(debug_stack_info): Make static; change output format of HOST_WIDE_INT
(rs6000_emit_eh_reg_restore): New, with code formerly in
(rs6000_initial_elimination_offset): New, with code formerly in
* rs6000.h (rs6000_stack_t): Remove.
(INITIAL_ELIMINATION_OFFSET): Replace code with call to function
* (UNSPECV_EH_RR split): Replace code with call to
2003-11-12 Mike Stump <>
* c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
is the argumnt we are processing so that warnings and errors
will have that information.
* c-tree.h (c_convert_parm_for_inlining): Add argnum.
* lang-hooks-def.h
(lhd_tree_inlining_convert_parm_for_inlining): Likewse.
* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
* langhooks.h (convert_parm_for_inlining): Likewise.
* tree-inline.c (initialize_inlined_parameters): Compute and
pass argnum down.
2003-11-12 Alexey Starovoytov <>
Roger Sayle <>
PR optimization/12953
* tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN
before switch by FUNCTION_CODE.
2003-11-12 Richard Earnshaw <>
* (storehi): Avoid use of explicit subreg.
(storehi_bigend, storeinthi, movhi_bigend): Likewise.
2003-11-12 J"orn Rennecke <>
* config/sh/ (prefetch): New pattern.
2003-11-11 Eric Christopher <>
* reload1.c (reload): Verify that addresses for
reg_equiv_* are valid for the architecture.
2003-11-11 Eric Christopher <>
* function.c (purge_addressof_1): Add libcall check.
Remove test for cached replacements on fallback case.
Simplify mode comparisons. Add libcall test for
paradoxical subregs.
2003-11-11 Kazu Hirata <>
* config/h8300/t-h8300: Fix an obsolete comment.
2003-11-11 James E Wilson <>
* expmed.c (store_bit_field, extract_bit_field): Revert last two
2003-11-11 Kazu Hirata <>
* config/h8300/lib1funcs.asm: Replace DenHighZero with
2003-11-11 Jan Hubicka <>
* cgraphunit.c (cgraph_function_possibly_inlined_p): Use
2003-11-11 John David Anglin <>
* pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when
generating 64-bit code.
2003-11-10 David Edelsohn <>
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
accidental commit in previous change.
2003-11-10 Fariborz Jahanian <>
* config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition.
* config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style
address recognition.
(macho_lo_sum_memory_operand): Routine to recognize macho-style
address recognition.
2003-11-10 Richard Henderson <>
* dwarf2out.c (gen_label_die): Cope with DECL_RTL not set.
2003-11-10 Matt Austern <>
* config/darwin-protos.h (darwin_assemble_visibility): Declare.
* config/darwin.c (darwin_assemble_visibility): Define. Warn for
darwin_assemble_visibility instead of default.
2003-11-10 Waldek Hebisch <>
PR target/12865
* config/sparc/sparc.c (sparc_initialize_trampoline): Call
__enable_execute_stack only after writing onto the stack.
(sparc64_initialize_trampoline): Likewise.
2003-11-09 Roger Sayle <>
* loop.c (check_dbra_loop): Try swapping the comparison operands
of the loop condition to identify a suitable induction variable.
* unroll.c (loop_iterations): Likewise.
2003-11-09 Kaveh R. Ghazi <>
* config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs
sparc64 #cpu and #machine assertions.
2003-11-09 Richard Henderson <>
* (rtlanal.o): Depend on BASIC_BLOCK_H.
2003-11-09 Jan Hubicka <>
* tree-optimize.c (tree_rest_of_compilation): Fix warning.
* cgraphunit.c (cgraph_expand_function): Use
* tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree.
* opts.c (common_handle_option): Do not set max-inline-insns.
* params.def: Update comments.
* invoke.texi (max-inline-insns): Kill.
2003-11-08 Joseph S. Myers <>
PR c/3190
PR c/8714
* c-format.c (set_Wformat): Do not enable -Wformat-y2k by default.
* invoke.texi: Update.
2003-11-08 John David Anglin <>
PR optimization/12630
* pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
Handle length computation 64-bit moves.
(compute_clrstr_length, output_block_clear): Implement block clear.
(output_block_move): Handle 64-bit moves.
(pa_adjust_insn_length): Use compute_movstr_length and
* (movstrsi): Revise operand order and comments. Don't use
(movstrsi_internal): Delete.
(movstrsi_prereload, movstrsi_postreload): New insns. Define splitter
and peephole2 patterns to transform prereload to postreload form.
(movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
clrstrdi_postreload): New patterns for 64-bit block move, and block
* pa-protos.h (output_block_clear): New prototype.
2003-11-08 Andreas Schwab <>
* dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO ||
2003-11-08 Kaveh R. Ghazi <>
* dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL.
2003-11-07 Geoffrey Keating <>
* config/rs6000/rs6000.c (rs6000_legitimize_address): Remove
redundant parens.
* cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it.
(find_file_in_dir): Likewise.
(_cpp_find_file): Print message if no header file is found
but an invalid PCH file was.
2003-11-08 Joseph S. Myers <>
* c-typeck.c (pedantic_lvalue_warning): Deprecate compound
expressions as lvalues.
(internal_build_compound_expr): Remove special handling for
non-pedantic case.
* doc/extend.texi: Document that all extended lvalues are now
2003-11-07 Geoffrey Keating <>
PR 11654
* dbxout.c (struct dbx_file): Do not save for PCH.
(current_file): Likewise.
(dbxout_init): Don't allocate struct dbx_file using GC.
(dbxout_start_source_file): Likewise.
2003-11-07 Falk Hueffner <>
* config/alpha/elf.h, config/alpha/unicosmk.h,
config/alpha/vms.h: Convert to ISO C90.
2003-11-07 Nathanael Nerode <>
* config/arm/pe.h: Convert to ISO C90.
2003-11-07 J"orn Rennecke <>
* sh-protos.h (sh_pch_valid_p): Declare.
* sh.c ("intl.h"): Include.
(sh_target_switches): New variable.
(target_switches): Define.
(sh_pch_valid_p): New function.
* sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI.
2003-11-07 Jan Hubicka <>
* i386.c (x86_64_sign_extended_value): Return false from tls variables.
(x86_64_zero_extended_value): likewise.
2003-11-07 Richard Sandiford <>
* config/mips/ (loadgp): Take $25 as a second operand.
* config/mips/mips.c (mips_expand_prologue): Modify accordingly.
2003-11-06 Matt Austern <>
* c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY
field instead of hanging an attribute object off the decl.
* tree.h (DECL_VISIBLITY): New accessor macro for
symbol_visibility field in struct tree_decl.
(enum symbol_visibility): Move definition to before tree_decl.
(struct tree_decl): Define new two-bit field, symbol_visibility.
(decl_visibility): Remove declaration.
* varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY
instead of decl_visibility.
(default_binds_local_p_1): Use DECL_VISIBILITY instead of
(decl_visibility): Remove.
2003-11-06 Ulrich Weigand <>
* config/s390/s390.c (s390_emit_epilogue): Recognize more cases
where register 14 will be saved.
2003-11-06 Geoffrey Keating <>
* config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c.
* config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h.
Take a pointer as the CUM parameter. Update callers.
(USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX
32-bit ABIs.
(function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case
of vector parameters as named arguments of stdarg function.
(function_arg): Likewise.
* config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when
-maltivec is specified, not the non-existent -faltivec.
2003-11-06 Ulrich Weigand <>
* config/s390/s390-protos.h (s390_function_value): Declare.
* config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define.
(s390_return_in_memory): New function.
(s390_function_value): New function.
(s390_function_arg_float): Return false for all arguments larger
than 8 bytes.
(s390_function_arg_pass_by_reference): Likewise. Return true for
all vector arguments.
(s390_function_arg_integer): New function.
(s390_function_arg_advance): Call it. Add sanity checks.
(s390_function_arg): Likewise.
* config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value.
(LIBCALL_VALUE): Likewise.
(RET_REG): Remove.
2003-11-06 Richard Sandiford <>
* config/mips/mips-protos.h (mips_initial_elimination_offset): Change
return type to HOST_WIDE_INT.
* config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT.
Make initialized a bool. Make register masks unsigned ints.
(compute_frame_size): Make same mask change here. Use HOST_WIDE_INT
where appropriate.
(mips_initial_elimination_offset): Return a HOST_WIDE_INT.
(mips_output_function_prologue): Print sizes as HOST_WIDE_INTs.
2003-11-06 Richard Sandiford <>
* config/frv/frv.c (frv_initial_elimination_offset): Remove bogus
2003-11-06 Richard Sandiford <>
* config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.
2003-11-06 Momchil Velikov <>
* config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT
for VR4111 too.
2003-11-06 Jan Hubicka <>
* builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add
missing casts.
2003-11-06 Zack Weinberg <>
* genmodes.c: Change the word "bitsize" to "precision" throughout.
* machmode.def: Likewise.
* machmode.h (GET_MODE_SIZE): Cast value to unsigned short.
(mode_bitsize): Renamed mode_precision.
* stor-layout.c (mode_for_size, smallest_mode_for_size):
Use GET_MODE_PRECISION; clarify comments.
2003-11-05 Joseph S. Myers <>
* doc/install-old.texi: Remove old documentation of building
* doc/install.texi: Move some of it to here.
2003-11-05 Per Bothner <>
PR preprocessor/12891
* c-opts.c (finish_options): Set include_cursor to disable premature
calls to push_command_line_include from cpp_scan_nooutput.
Fixes bug reported by DJ Delorie.
2003-11-05 Geoffrey Keating <>
* config/rs6000/rs6000.c (setup_incoming_varargs): Remove
code supporting old-style varargs.
* config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use
an intermediate register for better optimisation.
2003-11-05 Zdenek Dvorak <>
PR optimization/10080
* cfgloopanal.c (variable_initial_value, variable_initial_values,
simple_loop_exit_p): Record the fact that initial value is extended
from inner mode.
(count_strange_loop_iterations, count_loop_iterations): Handle
ivs that iterate in a narrower mode. Fix handling of overflows.
Improve handling of NE conditions.
(inverse, fits_in_mode_p): New static functions.
(simple_increment): Detect variables that iterate in a narrower mode.
* cfgloop.h (struct loop_desc): Fields inner_mode and extend added.
2003-11-05 Geoffrey Keating <>
* config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin
needs VRSAVE.
2003-11-05 Joseph S. Myers <>
* c-typeck.c (pedantic_lvalue_warning): Deprecate use of
conditional expressions as lvalues.
2003-11-05 Kazu Hirata <>
* tsystem.h: Add the prototype of strlen.
* unwind-pe.h (read_encoded_value_with_base): Add an
appropriate cast to handle a case where the pointer size is
smaller than sizeof (int).
2003-11-04 Richard Sandiford <>
* config/mips/mips-protos.h (mips_global_pic_constant_p): Delete.
(mips_delegitimize_address): Delete.
(mips_gotoff_global, mips_load_got_page): Declare.
(mips_load_got_global, mips_rewrite_small_data): Declare.
* config/mips/mips.h (FIND_BASE_TERM): Remove definition.
(DANGEROUS_FOR_LA25_P): Use global_got_operand.
(PREDICATE_CODES): Add global_got_operand, local_got_operand and
small_data_pattern. Remove CONST from const_arith_operand's entry.
* config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros.
(mips_constant_type): Delete.
(NUM_SYMBOL_TYPES): New macro.
(mips_address_type): Remove ADDRESS_INVALID.
(machine_function): Add has_gp_insn_p.
(mips_constant_info): Delete.
(mips_address_info): Add the address type as an extra field. Replace
the c field with symbol_type.
(mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays.
(mips_reloc_offset_ok_p, mips_classify_constant): Delete.
(mips_split_const, mips_symbolic_constant_p): New functions.
(mips_symbolic_address_p): Take the symbol type and mode as arguments.
(mips_classify_address): Return true if the address is valid, storing
its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[]
to test whether a LO_SUM address is allowed.
(mips_symbol_insns): Return 0 for general mips16 symbols.
Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition.
Handle the new SYMBOL_GOTOFF_*s.
(mips_address_insns): Update call to mips_classify_address.
(mips_const_insns): Be more fussy about HIGH constants. Remove use
of mips_classify_constant. Be more accurate about CONSTs.
(mips_global_pic_constant_p): Delete.
(const_arith_operand): Only accept CONST_INTs.
(call_insn_operand): Remove call to mips_classify_constant.
Let mips_symbolic_constant_p check for invalid offsets.
(move_operand): Check for general_operands first. Only accept symbolic
constants if they satisfy mips_symbolic_constant_p and cannot be split.
(symbolic_constant): Use mips_symbolic_constant_p.
(global_got_operand, local_got_operand): New predicates.
(stack_operand): Update call to mips_classify_address.
(mips_legitimate_address_p): Likewise.
(mips_reloc, mips_lui_reloc): Delete.
(mips_force_temporary): Only use the given temporary if no_new_pseudos.
Use emit_move_insn.
(mips_split_symbol, mips_unspec_address): New functions.
(mips_unspec_offset_high): New function.
(mips_load_got): Replace reloc argument with a symbol_type.
Use mips_unspec_address to create the address and put it in a
LO_SUM with the base register.
(mips_load_got16, mips_load_got32): Delete.
(mips_emit_high, mips_legitimize_symbol): Delete.
(mips_gotoff_global): New function.
(mips_load_got_page, mips_load_got_global): New functions.
(mips_legitimize_symbol): Inline handling of LO_SUM splits.
(mips_legitimize_const_move): Likewise. Remove HIGH handling.
Inline code to handle constants plus invalid offsets. Use
mips_split_symbol to legitimize constant pool addresses.
(mips_delegitimize_address): Delete.
(mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs
a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS.
(mips_subword): Pass memrefs through mips_rewrite_small_data.
(mips_output_move): Remove use of mips_classify_constant.
(mips_expand_call): Use mips_unspec_offset_high to calculate the
high part of the GOT address for calls to global functions.
(override_options): Initialize mips_split_p[], mips_lo_relocs[]
and mips_hi_relocs[].
(print_operand): Use print_operand_reloc to handle '%h' and '%R'.
Remove use of mips_classify_constant.
(mips_reloc_string): Delete.
(print_operand_reloc): New function.
(print_operand_address): Update call to mips_classify_address.
(mips_rewrite_small_data_p, small_data_pattern_1): New functions.
(small_data_pattern): New predicate.
(mips_rewrite_small_data_1, mips_rewrite_small_data): New functions.
(mips_function_has_gp_insn): New function.
(mips_global_pointer): Use it.
(mips_gp_insn): Delete.
(mips_expand_prologue): When compiling for n32/n64 abicalls, use a
single loadgp pattern to initialize $gp. Pass it the offset of _gp
from the start of the current function.
(mips16_gp_pseudo_reg): Revert last patch.
* config/mips/ (RELOC_*): Delete.
(got): New insn attribute.
(type): Set to "load" if got == load.
(length): Set to 4 if got == load, 8 if got == xgot_high.
(lui[sd]i): Delete.
(*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns.
(*got_disp[sd]i, *got_page[sd]i): Likewise.
(*low[sd]i): Change constraints to "d". Add a new define_split to
rewrite small data constants into LO_SUMs.
(loadgp): New insns.
2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests.
2003-11-04 DJ Delorie <>
* config/v850/ (mulhisi3): Expand the const_int case
separately to avoid trying to sign extend the const.
2003-11-04 Richard Sandiford <>
* emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
addresses to be shared.
(force_const_mem): Return a copy of the pool entry.
2003-11-03 Andreas Jaeger <>
* (GCC_CFLAGS): Remove @WERROR@ again.
2003-11-03 Kelley Cook <>
* (cpp.dvi): New target split from
(gcc.dvi): New target split from
(gccint.dvi): New target split from
(cppinternals.dvi): New target split from
( New specific rule.
(gccinstall.dvi): Likewise.
(dvi): Move targets to $(docobjdir).
($(docobjdir)/%.dvi): New implicit rule.
2003-11-03 Richard Kenner <>
* doc/gty.texi (tag, desc): Say more about role of desc values in
selecting between tags.
2003-11-03 Alexander Kabaev <>
* real.c (encode_ieee_single): Ensure proper promotion.
2003-11-03 Volker Reichelt <>
* doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
and Andrew Pinski.
2003-11-03 Syd Polk <>
* config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5
marketing names to the list of supported processors.
* config/rs6000/rs6000.h: Ditto.
* doc/invoke.texi: Ditto.
* config.gcc: Ditto.
2003-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
Merge two substitutions.
* fixinc/fixincl.x: Regenerate.
Fixes PR bootstrap/12666.
2003-11-03 Joseph S. Myers <>
* doc/install-old.texi: Remove VMS documentation.
2003-11-03 Jan Hubicka <>
* i386.c (override_options): Remove hack enabling 128bit long double
commited by accident.
2003-11-02 Per Bothner <>
* c-opts.c (needValue): Do cpp_find_main_file before processing
any imacros flags, so pfile->main_file is set for the latter.
2003-11-03 Andreas Jaeger <>
Zack Weinberg <>
* (GCC_CFLAGS): Allow blacklisting of warnings.
(SYSCALLS.c.X-warn): Suppress warnings.
2003-11-02 John David Anglin <>
PR optimization/12845
* pa.c (output_cbranch): Use cmpb for DImode comparisons with 0.
2003-11-02 Zack Weinberg <>
* print-rtl.c (print_rtx): Call PRINT_REG with second argument -1.
* config/i386/i386.c (print_reg): Abort on a virtual register
if code != -1; not if file == asm_out_file.
* config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1.
(DEBUG_PRINT_REG): Delete, unused.
2003-11-02 Andreas Schwab <>
* config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of
empty to avoid conflict with the definition from configure.
2003-11-02 Roger Sayle <>
PR optimization/10817
* ifcvt.c (noce_emit_move_insn): Improve documentation comment.
(noce_try_move): New function to optimize an if-the-else into an
unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
(noce_process_if_block): Attempt simplification with noce_try_move.
* simplify-rtx.c (simplify_ternary_operation): Some minor fixes
and improvements to the optimizations of IF_THEN_ELSE expressions.
(simplify_subreg): Silence signed/unsigned comparison warning.
2003-11-02 Richard Sandiford <>
* (targhooks.o, reload.o): Update dependencies.
(GTFILES): Add targhooks.c.
(gt-targhooks.h): New rule; depend on s-gtype.
* target.h (direct_pool_load_p): New hook.
* target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
* targhooks.h (default_direct_pool_load_p): Declare.
(hook_bool_machine_mode_true): Declare.
* targhooks.c: Include insn-config.h, recog.h, ggc.h and
(pool_symbol): New variable.
(default_direct_pool_load_p): New function.
(hook_bool_machine_mode_true): New function.
* reload.c: Include target.h.
(find_reloads): If an alternative will force a constant into memory,
count an extra reload if constant pool symbols are not valid
addresses. If an alternative uses memory to move values between
registers, count the move as two reloads rather than one.
* config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
* doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
2003-11-02 Eric Botcazou <>
PR optimization/12799
* postreload.c (reload_cse_move2add): Generate the add2
patterns manually.
2003-11-02 Eric Botcazou <>
* config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
Return 0 for all complex modes whose size is lesser or equal to
a word. Add a ??? comment for the condition used with 16-byte
aligned modes.
2003-11-01 Kelley Cook <>
* .cvsignore: Remove c-parse* and tradcif.c.
* objc/.cvsignore: Delete.
2003-11-01 Roger Sayle <>
* unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead
of NULL.
2003-11-01 John David Anglin <>
* som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration.
* libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
* collect2.c (scan_libraries): Fix typos.
PR preprocessor/12847
* cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c,
cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c,
c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN,
DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with
2003-11-01 Fariborz Jahanian <>
* config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct
no_units calculation.
2003-11-01 Andreas Jaeger <>
* unwind-dw2.c (_Unwind_FrameState): Remove commas at end of
enumeration list.
2003-11-01 Andreas Schwab <>
* config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90
2003-11-01 Andreas Jaeger <>
* (GCC_CFLAGS): Add @WERROR@ for target files.
2003-11-01 Andreas Tobler <>
* config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90
2003-11-01 Andreas Jaeger <>
* unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable.
(uw_frame_state_for): Constify variables.
(extract_cie_info): Constify first argument.
* unwind-dw2-fde-darwin.c: Adjust prototype of
_Unwind_Find_registered_FDE for recent changes.
(examine_objects): Constify return value and local variable result.
(_Unwind_Find_FDE): Constify return value and local variable ret.
2003-10-31 Per Bothner <>
* c-opts.c (finish_options): Change to returns boolean - false iff
the call to cpp_find_main_file fails.
(c_common_init): Skip preprocess_file if finish_options failed.
(c_common_parse_file): Break if finish_options failed.
Fixes PR preprocessor/12545.
2003-10-31 John David Anglin <>
* aclocal.m4: Blacklist ultrix* for mmap file.
* configure: Rebuilt.
* function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
* toplev.c (default_get_pch_validity): Fix warning.
* vax.c: Include toplev.h.
(vax_init_libfuncs): Fix typo (umod).
* vax.h (ASM_COMMENT_START): Define.
(PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
2003-10-31 Roger Sayle <>
PR middle-end/11968
* expr.c (expand_expr <MULT_EXPR>): Remove inappropriate and
confusing comment; distributivity isn't handled in expand_expr.
* fold-const.c (extract_muldiv_1 <PLUS_EXPR>): Allow overflow
in distributivity, if wrap-around semantics are specified with
2003-11-01 Alan Modra <>
PR 12315
* final.c (profile_function): Allow for NULL svrtx.
2003-10-31 John David Anglin <>
* pa.c (pa_select_section): Use new style declaration.
* som.h (readonly_data): Likewise.
2003-10-31 Kelley Cook <>
* config/rs6000/rs6000.c: Update to C90 prototypes.
2003-10-31 Richard Earnshaw <>
PR target/7513
* arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb
2003-10-31 Andreas Jaeger <>,
Zack Weinberg <>
* crtstuff.c (__register_frame_info, __register_frame_info_bases)
(__deregister_frame_info, __deregister_frame_info_bases):
Constify void * argument.
* unwind-dw2-fde.h (struct fde_vector):
Constify 'orig_data' and 'array' fields.
(__register_frame_info, __register_frame_info_bases)
(__deregister_frame_info, __deregister_frame_info_bases):
Constify void * argument.
(get_cie, next_fde, _Unwind_Find_FDE): Constify arguments,
return values, and casts of type fde *, struct dwarf_fde *,
and struct dwarf_cie *.
* unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases)
(__deregister_frame_info, __deregister_frame_info_bases):
Constify void * argument.
(get_cie_encoding, ): Constify struct dwarf_cie * argument.
(get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare)
(fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert)
fde_split, SWAP, frame_downheap, frame_heapsort)
(classify_object_over_fdes, add_fdes, linear_search_fdes,
binary_search_unencoded_fdes, binary_search_single_encoding_fdes,
binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE):
Constify arguments, local variables, return values, and casts
of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *.
Use const pointer types in sizeof expressions, for clarity.
* unwind-dw2-fde-glibc.c
(_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value.
(struct unw_eh_callback_data): Constify 'ret' field.
2003-10-31 Fariborz Jahanian <>
David Edelsohn <>
* config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
(function_arg): Call it.
(rs6000_function_value): Widen integral return value to mode based
on TARGET_32BIT, not word_mode.
* config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
(RS6000_ARG_SIZE): Use it.
2003-10-31 Gerald Pfeifer <>
* .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h.
2003-10-31 Richard Earnshaw <>
PR optimization/8896
* postreload.c (reload_combine): Check that REGY doesn't die in an
insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
2003-10-31 Josef Zlomek <>
* cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
2003-10-31 Josef Zlomek <>
* cfgrtl.c (try_redirect_by_replacing_jump): Move jump
immediatelly before BARRIER.
2003-10-31 Kelley Cook <>
* (STRICT2_WARN): Add -Wold-style-definition.
2003-10-31 Richard Earnshaw <>
PR target/11271
* reload.c (find_reloads_address): Handle any register in
2003-10-31 Richard Earnshaw <>
* ggc-page.c (ggc_pch_read): Wrap call to poison_pages in
2003-10-31 Nathanael Nerode <>
PR bootstrap/9863
* Bail out if awk is missing.
* configure: Regenerate.
PR ada/12761
* Move default definitions of X_ADA_CFLAGS,
2003-10-30 Richard Henderson <>
* c-objc-common.c (c_tree_printer): Handle types correctly.
Factor code a bit.
2003-10-30 Kelley Cook <>
* value-prof.c, web.c: Update to C90.
2003-10-30 Eric Christopher <>
* function.c (purge_addressof_1): Add case for REG_RETVAL
notes when modes are unequal.
2003-10-31 Jan Hubicka <>
* i386-modes.def: Add XFmode format adjustment.
2003-10-30 Jan Hubicka <>
* real.c (encode_ieee_extended): Back out previous patch.
2003-10-30 Jan Hubicka <>
* real.c (encode_ieee_extended): Initialize whole array.
* reg-stack.c (move_for_stack_reg0: Use always XFmode.
* i386-modes.def: Change definitions of TFmode and XFmode.
* i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode
(construct_container): Allow constructing of TFmode integer containers.
(ix86_return_in_memory): XFmode is not returned in memory.
(init_ext_80387_constants): Always use XFmode.
(print_operand): Likewise.
(ix86_prepare_fp_compare_regs): Likewise.
(split_to_parts): Deal with TFmode.
(split_long_move): Simplify.
(ix86_init_mmx_sse_builtins): Add __float80, __float128.
(ix86_memory_move_cost): Do not confuse TFmode.
* i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96.
(IS_STACK_MODE): TFmode is not stack mode.
(HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode.
(VALID_FP_MODE_P): Disallow TFmode.
(VALID_INT_MODE_P): Allow TFmode in 64bit mode.
* (TFmode patterns): Kill.
(movtf, motf_rex64): New patterns.
2003-10-30 Richard Sandiford <>
* config/mips/ (adddi3): Fix typo in mips16 stack pointer code.
2003-10-30 Richard Sandiford <>
* config/mips/ (mov_lwl): Use memory_operand where appropriate.
(mov_lwr, mov_swl, mov_swr): Likewise.
(mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise.
2003-10-30 Richard Sandiford <>
* config/mips/mips.c (mips_global_pointer): Don't try to use $25.
2003-10-30 Richard Henderson <>
* config/mips/mips.c (mips_build_builtin_va_list): Use runtime
test for irix6 rather than preprocessor test.
2003-10-30 Richard Henderson <>
* cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning.
2003-10-30 Ulrich Weigand <>
* config/s390/s390.c (struct machine_function): Use save_return_addr_p
as a general flag that the return address register needs to be saved,
not necessarily because of __builtin_return_addr (0).
(s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
remove special handling of zSeries machines.
(s390_optimize_prolog): Remove TEMP_USED argument, treat the return
register as a regular register on zSeries machines.
(s390_reorg): Adjust calls to s390_split_branches and
(s390_frame_info): On zSeries machines, do not assume the return
register is always used. Update regs_ever_live with current data
for the special registers.
(s390_emit_epilogue): Use save_return_addr_p to determine whether
the return register was saved.
* config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
RETURN_REGNUM fixed on zSeries machines.
* config/s390/ ("*doloop_si"): Handle branch overflow
via ahi-jgne pair on zSeries machines.
("*doloop_di"): Likewise.
("*doloop_di_long"): Remove.
2003-10-30 Richard Earnshaw <>
* arm.c (arm_override_options): Revert change of arm_constant_limit
when optimizing for size.
2003-10-29 Richard Henderson <>
* fold-const.c (fold_single_bit_test): Convert the input to the
operational intermediate type.
2003-10-29 Richard Henderson <>
* builtins.c (std_build_builtin_va_list): New.
* expr.h (std_build_builtin_va_list): Declare.
* defaults.h (BUILD_VA_LIST_TYPE): New.
* system.h (BUILD_VA_LIST_TYPE): Poison.
* target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
* target.h (struct gcc_target): Add build_builtin_va_list.
* tree.c (build_common_tree_nodes_2): Use it.
* config/alpha/alpha-protos.h, config/alpha/alpha.c,
config/alpha/alpha.h, config/alpha/unicosmk.h,
config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
config/mips/mips.h, config/rs6000/rs6000-protos.h,
config/rs6000/rs6000.c, config/rs6000/rs6000.h,
config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
config/xtensa/xtensa.h: Rename foo_build_va_list to
foo_build_builtin_va_list; make it static. Define
Update protos.
* config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
* config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
2003-10-29 James E Wilson <>
* recog.c (asm_operand_ok): Add missing break after case 'X'.
Change if statements to else if statements in default case.
(extract_constrain_insn_cached): Fix misspelling of constrain_operands
in comment.
(constrain_operands_cached): Likewise.
(constrain_operands): Change if statements to else if statements in
default case.
* reload.c (find_reloads): Likewise.
2003-10-29 Richard Henderson <>
* config/m68k/m68k.c (notice_update_cc): Clear cc status for
shifts and rotates.
2003-10-30 Alan Modra <>
* config/rs6000/ Remove duplicate pattern.
2003-10-29 Hans-Peter Nilsson <>
* real.c (do_divide): Initialize result with a 0.
* <enable-checking for valgrind>: Look for
<valgrind/memcheck.h> first. AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
if it exists.
* configure, Regenerate.
HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>. Use
#elif for other alternatives.
* ggc-page.c: Ditto.
* ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
include structure from ggc-common.c.
2003-10-29 John David Anglin <>
* pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
(ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
* pa.c (pa_adjust_insn_length): Check for btable branches using
(pa_reorg): Simplify.
* pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
* (btable_branch): New instruction type.
(in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
btable branches.
(define_delay): Add btable branches to insn types that may have an
insn in the delay position.
(Z2, Z3): Add btable branch to list.
Simplify unamed pattern set copy pic_label_operand to register. Add
PA 2.0 variant.
(short_jump): New jump for use in branch tables.
(casesi, casesi0): Revise for new branch table formats.
(casesi32, casesi32p, casesi64p): New casesi patterns.
(indirect_jump): Move.
2003-10-29 David Edelsohn <>
* config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to
2003-10-29 John David Anglin <>
* pa.h (ASM_COMMENT_START): Define.
2003-10-29 Zack Weinberg <>
* genmodes.c (complete_mode): Record MODE_CC, MODE_INT,
MODE_FLOAT, and MODE_PARTIAL_INT modes as having one
component, not zero.
2003-10-29 Andreas Schwab <>
* config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c.
2003-10-29 Eric Botcazou <>
* config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
Never return 1 for complex integral modes whose size is lesser or
equal to a word.
(function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode
in the comment.
(function_arg_advance) [TARGET_ARCH64]: Don't special-case complex
(sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is
greater than 16 bytes by reference.
2003-10-29 Richard Kenner <>
* config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
(ia64_initialize_trampoline): Use globalize_label target call.
2003-10-29 Andreas Schwab <>
* doc/install.texi (Building): Add a sentence about building Ada
for a canadian cross.
2003-10-28 Zack Weinberg <>
* config/ia64/ia64.c (cmptf_libfunc): New static.
(ia64_expand_compare): Add logic to open-code calls to
_U_Qfcmp for TFmode comparisons.
(ia64_hpux_init_libfuncs): Initialize cmptf_libfunc.
Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should
never be generated anymore.
* config/ia64/ (cmptf): New expander.
2003-10-28 Zack Weinberg <>
(*sqrt_approx): New instruction pattern for approximate square roots.
(*setf_exp_xf): New instruction pattern for exponentiation.
(*maddxf4_alts_truncsf): New instruction pattern for truncation.
(sqrtsf2_internal_thr): New define_and_split implementing
throughput-optimized inline calculation of SFmode square root.
(sqrtdf2_internal_thr): Likewise for DFmode.
(sqrtxf2_internal_thr): Likewise for XFmode.
(sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between
latency- and throughput-optimized square root algorithms.
New macros.
(TARGET_SWITCHES): Add -minline-sqrt-min-latency and
* ia64.c (ia64_override_options): If both -minline-sqrt-min-latency
and -minline-sqrt-max-throughput are given, notify the user
that both options cannot be used simultaneously.
If -minline-sqrt-min-latency is given, notify the user that
this mode is not yet implemented.
(rtx_needs_barrier): Reformat initial comment to obey
72-character width limit. Support UNSPEC_SETF_EXP and
2003-10-29 Alan Modra <>
* config/rs6000/ (movdf_softfloat64): Allow dummy ctr,ctr
2003-10-28 Franz Sirl <>
PR target/11598
PR libgcj/10610
* config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
2003-10-28 Richard Earnshaw <>
* arm.c (arm_output_epilogue): When using a frame pointer, don't emit
an extra stack adjustment insn if the stack pointer is already
pointing at the right place.
(use_return_insn): Allow a return insn to be used when we have a
frame pointer if the stack pointer is in the right place.
(output_return_instruction): Handle it.
2003-10-28 Andreas Jaeger <>
* ggc-zone.c (check_cookies): Add missing variable.
Add void to prototypes.
2003-10-27 Kaveh R. Ghazi <>
* config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype.
* crtstuff.c (__do_global_ctors_1): Move prototype.
* unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
* unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction):
Mark parameter with __attribute__((unused)).
2003-10-27 Zack Weinberg <>
* c-decl.c (pushdecl): Clarify comment.
2003-10-27 Arnaud Charlet <>
* doc/install.texi: Update instructions for Ada cross builds
PR ada/5909:
* doc/sourcebuild.texi: Document Ada test suite.
2003-10-27 Stephane Carrez <>
* config/m68hc11/m68hc11.c: Convert to ISO C90.
* config/m68hc11/m68hc11-protos.h: Likewise.
2003-10-27 Jan Hubicka <>
Eric Botcazou <>
* toplev.c (enum dump_file_index, dump_file): Fix ordering of
webizer pass dump.
2003-10-27 Jakub Jelinek <>
Jan Hubicka <>
* reload1.c (struct elim_table): Change offset, initial_offset and
previous_offset fields to HOST_WIDE_INT.
(offsets_at): Change from int to HOST_WIDE_INT.
(reload): Adjust offsets_at initialization.
(eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT.
(verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT.
* config/i386/i386.c (ix86_compute_frame_layout): Change offset type
to HOST_WIDE_INT. Don't save regs using mov for huge frame sizes
(pro_epilogue_adjust_stack): New function.
(ix86_expand_prologue, ix86_expand_epilogue): Use it.
* config/i386/ (pro_epilogue_adjust_stack): Remove.
(pro_epilogue_adjust_stack_1): Remove * in front of name.
(pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly.
(pro_epilogue_adjust_stack_rex64_2): New insn.
* config/i386/i386.c (ix86_expand_epilogue): Fix comment typo.
* config/i386/i386.c (ix86_expand_call): Replace 40 with
FIRST_REX_INT_REG + 3 /* R11 */.
2003-10-26 Richard Henderson <>
* config/alpha/ (attr cannot_copy): New.
(call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2,
prologue_ldgp_er_2, prologue_ldgp_1): Set it.
* config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it.
2003-10-26 Daniel Berlin <>
* ggc-zone.c: New file, zone allocating collector.
* configure: Accept zone option for --with-gc
* Ditto.
* ggc.h (ggc_pch_count_object): Pass bool indicating
stringiness. Update all callers.
(ggc_pch_alloc_object): Ditto.
(ggc_pch_write_object): Ditto.
(ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single
(ggc_alloc_rtvec): Ditto.
(ggc_alloc_tree): Use zone allocation, since some things using this macro
aren't a single typecode.
* ggc-none.c (ggc_alloc_typed): New function.
(ggc_alloc_zone): Ditto.
* ggc-page.c: Ditto on both functions.
2003-10-26 Gunther Nikl <>
* config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related
frame information is always valid.
(m68k_output_function_prologue): Remove superfluous TARGET_68881
test; fix formatting.
2003-10-26 Gunther Nikl <>
* config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and
reg_rev_mask computation.
(m68k_output_function_prologue): Fix usage of current_frame (one typo
and one missing); use reg_rev_mask not reg_mask.
(m68k_output_function_epilogue): Fix usage of current_frame;
use fpu_rev_mask not fpu_mask.
2003-10-26 Bernardo Innocenti <>
* config/m68k/m68k.c (m68k_output_function_prologue): Eliminate
num_saved_regs, use current_frame.reg_no instead.
2003-10-26 Bernardo Innocenti <>
Paul Dale <>
* doc/extend.texi (interrupt_handler): Add m68k to the
list of processors implementing it.
* doc/invoke.texi (-msep-data): Document new m68k option.
(-mno-sep-data): Likewise.
(-mid-shared-library): Likewise.
(-mno-id-shared-library): Likewise.
(-mshared-library-id): Likewise.
2003-10-26 Andreas Jaeger <>
* unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned
(_Unwind_SetGR): Likewise.
2003-10-26 Ottavio Campana <>
PR target/12690
* config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
2003-10-26 Gunther Nikl <>
* config/m68k/m68k.c (m68k_output_function_prologue): Move front
comment from here to...
(m68k_save_reg): Fix comment formatting.
(m68k_output_function_prologue): Fix comment formatting.
(m68k_output_function_epilogue): Likewise.
(const_method): Likewise.
2003-10-26 Kazu Hirata <>
* toplev.c (default_get_pch_validity): Guard the use of
target_options with #ifdef TARGET_OPTIONS.
(default_pch_valid_p): Likewise.
2003-10-26 Andreas Jaeger <>
Zack Weinberg <>
Andreas Tobler <>
* dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT.
(output_die): Likewise.
(print_die): Likewise.
2003-10-26 Andreas Jaeger <>
* tree.h (dwarf2out_def_cfa, dwarf2out_args_size,
dwarf2out_reg_save, new_loc_descr): Update prototypes for recent
dwarf2out.c change.
* toplev.c (default_pch_valid_p): Fix warning.
2003-10-25 Roger Sayle <>
* simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate
RTL nodes. If an operator's operands are unchanged, return the
original argument unchanged.
2003-10-26 Graham Stott <>
Fix bootstrap failure.
* expmed.c (store_bit_field): Don't compare bitsize against
modes with zero bit-size.
(extract_bit_field): Likewise
2003-10-25 Jan Hubicka <>
* dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT.
(cfa_loc): Likewise.
(reg_save, stack_adjust_offset, queue_reg_save): Replace long by
(args_size, old_args_size): change type to HOST_WIDE_INT.
(dwarf2out_def_cfa, dwarf2out_args_size,
dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT.
(dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT.
(add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned,
AT_offset): Use HOST_WIDE_INT.
(based_loc_descr): offset is HOST_WIDE_INT.
(add_data_member): Likewise.
(add_const_value_attribute): Simplify.
2003-10-25 Richard Henderson <>
* config/i386/i386.c (ix86_eax_live_at_start_p): New.
(ix86_expand_prologue): Save and restore eax around stack probe
if it's live.
2003-10-25 Jan Hubicka <>
* cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning.
2003-10-25 Eric Botcazou <>
PR target/12712
* reg-stack.c (convert_regs_1): Create an arbitrary input stack
if the block has no predecessors.
(convert_regs_2): Document the problem with successors whose