David Mosberger
b1eae41634
re PR target/18987 ([ia64] Extra '.restore sp' in tail call)
...
Patch from David Mosberger to fix -fno-omit-frame-pointer bug.
PR target/18987
* config/ia64/ia64.c (process_set): For alloc insn, only call
process_epilogue is !frame_pointer_needed.
From-SVN: r93174
2005-01-10 19:44:10 -08:00
Jan Beulich
826eb7eda5
ia64.c (ia64_in_small_data_p): Also handle the section names resulting from...
...
gcc/
2005-01-10 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
names resulting from -ffunction-sections/-fdata-sections and linkonce
ones.
* varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
based on the section name. Rearrange the section name comparison logic
slightly so that each section name is compared against at most once.
From-SVN: r93134
2005-01-10 07:42:49 +00:00
Richard Henderson
051d824588
ia64.c (rtx_needs_barrier): Handle CONST_VECTOR and VEC_SELECT.
...
* config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
and VEC_SELECT.
* config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
(mulv4hi3): Set itanium_class mmmul.
(fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
From-SVN: r92987
2005-01-05 22:18:15 -08:00
Richard Henderson
f61134e88b
ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
...
* config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
(ia64_const_ok_for_letter_p): New.
(ia64_const_double_ok_for_letter_p): New.
(ia64_extra_constraint): New.
(ia64_expand_vecint_compare): New.
(ia64_expand_vcondu_v2si): New.
(ia64_expand_vecint_cmov): New.
(ia64_expand_vecint_minmax): New.
(ia64_print_operand): Add 'v'.
(ia64_preferred_reload_class): New.
(ia64_vector_mode_supported_p): New.
* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
(PREFERRED_RELOAD_CLASS): Move to function.
(CONST_OK_FOR_LETTER_P): Move to function.
(CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
(CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
(CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
(EXTRA_CONSTRAINT): Move to function.
* config/ia64/ia64.md: Include vect.md.
(itanium_class): Add mmalua.
(type): Handle it.
* config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
(1b_mmalua): New.
* config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
* config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
CONST0_RTX.
(const_int_2bit_operand): New.
(fr_reg_or_0_operand): New.
* config/ia64/ia64-modes.def: Add vector modes.
* config/ia64/ia64-protos.h: Update.
* config/ia64/vect.md: New file.
* gcc.dg/vect/vect.exp: Enable for ia64.
* lib/target-supports.exp (check_effective_target_vect_int): Likewise.
(check_effective_target_vect_float): Likewise.
(check_effective_target_vect_no_align): Likewise.
* gcc.dg/vect/vect-30.c: XFAIL for vect_no_align.
* gcc.dg/vect/vect-8.c: Likewise.
From-SVN: r92862
2005-01-03 11:59:13 -08:00
Richard Henderson
3d6a9acd51
ia64.c (hfa_element_mode): Return false for zero-sized top-level aggregates.
...
* config/ia64/ia64.c (hfa_element_mode): Return false for
zero-sized top-level aggregates.
From-SVN: r92741
2004-12-30 12:47:55 -08:00
Richard Henderson
8c5cacfdca
ia64.c (ia64_function_value): Use PARALLEL for aggregates with XF/XCmode.
...
* config/ia64/ia64.c (ia64_function_value): Use PARALLEL for
aggregates with XF/XCmode.
From-SVN: r92728
2004-12-30 00:59:15 -08:00
Richard Henderson
78a52f1158
target.h (targetm.calls.arg_partial_bytes): New.
...
* target.h (targetm.calls.arg_partial_bytes): New.
* target-def.h (TARGET_ARG_PARTIAL_BYTES): New.
* calls.c (store_unaligned_arguments_into_pseudos): Update for
partial in bytes.
(load_register_parameters): Likewise.
(store_one_arg): Likewise.
(initialize_argument_information): Use targetm.calls.arg_partial_bytes.
(emit_library_call_value_1): Likewise.
* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
(emit_push_insn): Update for partial in bytes.
* expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* function.c (assign_parm_find_entry_rtl): Use
targetm.calls.arg_partial_bytes. Update for result in bytes.
(locate_and_pad_parm): Update for partial in bytes.
* system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison.
* targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New.
* targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare.
* doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from
FUNCTION_ARG_PARTIAL_NREGS.
* config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h,
config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h,
config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h,
config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/alpha/alpha.c (alpha_arg_partial_bytes): New.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/alpha/alpha.h, config/alpha/unicosmk.h,
config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
* config/arm/arm.c (arm_arg_partial_bytes): ... here.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
* config/cris/cris.c (cris_arg_partial_bytes): ... here.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from
fr30_function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/fr30/fr30-protos.h: Update.
* config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/frv/frv.c (frv_arg_partial_bytes): Rename from
frv_function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/frv/frv-protos.h: Update.
* config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from
ia64_function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/ia64/ia64-protos.h: Update.
* config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/iq2000/iq2000-protos.h: Update.
* config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/m32r/m32r-protos.h: Update.
* config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from
mcore_function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/mcore/mcore-protos.h: Update.
* config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/mips/mips.c (mips_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/mips/mips-protos.h: Update.
* config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/mn10300/mn10300-protos.h: Update.
* config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
* config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/pa/pa.c (pa_arg_partial_bytes): Rename from
function_arg_partial_nregs. Handle 32-bit. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/pa/pa-protos.h: Update.
* config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/rs6000/rs6000-protos.h: Update.
* config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
* config/sh/sh.c (sh_arg_partial_bytes): ... here.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/sparc/sparc-protos.h: Update.
* config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
* config/v850/v850.c (v850_arg_partial_bytes): Rename from
function_arg_partial_nregs. Adjust to return bytes.
(TARGET_ARG_PARTIAL_BYTES): New.
* config/v850/v850-protos.h: Update.
From-SVN: r92726
2004-12-29 19:08:18 -08:00
Jason Merrill
445cf5eb0d
Add memory barriers to the double-checked locking used for static initialization.
...
libstdc++:
Add memory barriers to the double-checked locking used for static
initialization.
* libsupc++/guard.cc (__test_and_acquire): Define default.
(_GLIBCXX_GUARD_TEST_AND_ACQUIRE, __set_and_release)
(_GLIBCXX_GUARD_SET_AND_RELEASE): Likewise.
(recursion_push, recursion_pop): New abstraction functions.
(__cxa_guard_acquire): Use _GLIBCXX_GUARD_TEST_AND_ACQUIRE.
(__cxa_guard_release): Use _GLIBCXX_GUARD_SET_AND_RELEASE.
* config/cpu/generic/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST): Rename
from _GLIBCXX_GUARD_ACQUIRE and reverse sense.
(_GLIBCXX_GUARD_SET): Rename from _GLIBCXX_GUARD_RELEASE.
* config/cpu/arm/cxxabi_tweaks.h: Likewise.
* config/cpu/alpha/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER)
(_GLIBCXX_WRITE_MEM_BARRIER): Define.
* config/cpu/powerpc/atomic_word.h: Likewise.
* config/cpu/sparc/atomic_word.h: Likewise.
* config/cpu/generic/atomic_word.h: Define them, commented out.
* include/bits/atomicity.h: Define defaults.
* config/cpu/ia64/atomic_word.h (__test_and_acquire)
(__set_and_release): New inlines.
(_GLIBCXX_GUARD_TEST_AND_ACQUIRE): Define.
(_GLIBCXX_GUARD_SET_AND_RELEASE): Define.
* libsupc++/guard.cc (acquire_1): Use __builtin_trap instead of
abort();
gcc:
* doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
* target.h (struct gcc_target): Add relaxed_ordering field.
* target-def.h (TARGET_RELAXED_ORDERING): Define default.
(TARGET_INITIALIZER): Add it.
* config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
* config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
* config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
* cp/decl.c (expand_static_init): Don't use shortcut if
targetm.relaxed_ordering.
From-SVN: r92659
2004-12-27 23:36:54 -05:00
Nathan Sidwell
08f2586c92
tree.def (SET_TYPE): Remove.
...
* tree.def (SET_TYPE): Remove.
(CONSTRUCTOR): Update description.
* builtins.c (type_to_class) Remove SET_TYPE case.
* dbxout.c (dbxout_type): Likewise.
* dwarf2out.c (is_base_type): Likewise.
(gen_set_type_die): Remove.
(gen_type_die): Remove SET_TYPE case.
* expr.c (count_type_elements): Likewise.
(mostly_zeroes_p): Likewise.
(store_constructor): Likewise.
* print_tree.c (print_node): Likewise.
* stor-layout.c (layout_type): Likewise.
* tree-browser.c (browse_tree): Likewise.
* tree-inline.c (remap_type): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree.c (type_contains_plaeholder_1, type_hash_eq,
variably_modified_type_p, initializer_zerop): Likewise.
* tree.h (SET_OR_ARRAY_CHECK): Remove.
(AGGREGATE_TYPE_P): Remove SET_TYPE check.
(TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
* typeclass.h (enum type_class): Remove set_type_class.
* varasm.c (const_hash_1): Remove SET_TYPE case.
(compare_constant, copy_constant, output_constant): Likewise.
* config/i386/i386.c (classify_argument): Likewise.
* config/ia64/ia64.c (hfa_element_mode): Likewise.
* config/sparc/sparc.c (sparc_type_code): Likewise.
* ada/decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
From-SVN: r91931
2004-12-09 10:54:50 +00:00
David Mosberger
1b79dc38dd
re PR target/18443 (#pragma pack(1) breaks function pointer initialization)
...
PR target/18443
* config/ia64/ia64.c (ia64_assemble_integer): Add support for
emitting unaligned pointer-sized integers.
From-SVN: r91842
2004-12-07 16:20:49 -08:00
Joseph Myers
9e637a2679
builtins.c, [...]: Avoid "`" as left quote, using "'" or %q, %< and %> as appropriate.
...
* builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
config/iq2000/iq2000.c, config/m32r/m32r.c,
config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
config/sh/symbian.c, config/stormy16/stormy16.c,
config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
and %> as appropriate. Use %' as apostrophe in diagnostics where
applicable. Use %< and %> in place of '' quotes where applicable.
Use %qs in place of %<%s%>. Consistently quote __builtin function
names.
ada:
* misc.c (gnat_handle_option): Use %< and %> for quoting in
warning message.
cp:
* call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
quoting in diagnostics.
* parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
quoting in printf format.
* decl.c (duplicate_decls, start_decl): Use %qD instead of
unquoted %D.
objc:
* objc-act.c: Use %q, %< and %> for quoting in diagnostics.
testsuite:
* gcc.dg/builtin-prefetch-1.c: Adjust expected messages.
From-SVN: r90337
2004-11-09 10:13:30 +00:00
Richard Henderson
f526a3c8fd
ia64.md (UNSPEC_SHRP): New.
...
* ia64.md (UNSPEC_SHRP): New.
(dshift_count_operand): New.
(ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
* ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
From-SVN: r90149
2004-11-05 15:54:30 -08:00
James E Wilson
83338d15a9
Fix 4 execute/va-arg-26.c gcc testsuite failures.
...
* config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
1 to UNSPEC_GR_SPILL.
From-SVN: r90141
2004-11-05 12:38:36 -08:00
David Mosberger
a8f5224e01
IA-64 sibcall unwind bug, PR target/13158
...
IA-64 sibcall unwind bug, PR target/13158
* config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
sibcall alloc instruction.
(process_set): Handle sibcall alloc instruction.
From-SVN: r89714
2004-10-27 15:44:07 -07:00
Kazu Hirata
93348822aa
* config/ia64/ia64.c: Fix a comment typo.
...
From-SVN: r88686
2004-10-07 13:18:34 +00:00
Steve Ellcey
d13256a357
ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to call ia64_function_arg_boundary.
...
* config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
call ia64_function_arg_boundary.
* config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
* config/ia64/ia64.c (ia64_function_arg_boundary): New.
(ia64_function_arg_advance): Do not put 128 bit floats into
FP registers.
From-SVN: r88608
2004-10-06 16:07:03 +00:00
Jakub Jelinek
9924d7d8d8
ia64.c (ia64_expand_prologue): Declare ei variable.
...
* config/ia64/ia64.c (ia64_expand_prologue): Declare ei
variable.
From-SVN: r88253
2004-09-28 23:17:53 +02:00
Ben Elliston
628f6a4e7c
backport: basic-block.h: Include vec.h, errors.h.
...
2004-09-24 Ben Elliston <bje@au.ibm.com>
Steven Bosscher <stevenb@suse.de>
Andrew Pinski <pinskia@physics.uc.edu>
Merge from edge-vector-branch:
* basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
(struct edge_def): Remove pred_next, succ_next members.
(struct basic_block_def): Remove pred, succ members. Add preds
and succs members of type VEC(edge).
(FALLTHRU_EDGE): Redefine using EDGE_SUCC.
(BRANCH_EDGE): Likewise.
(EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
(EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
(edge_iterator): New.
(ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
(ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
(FOR_EACH_EDGE): New.
* bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
where applicable.
(rotate_loop): Likewise.
(find_traces_1_route): Likewise.
(bb_to_key): Likewise.
(connect_traces): Likewise.
(copy_bb_p): Likewise.
(find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
(add_labels_and_missing_jumps): Likewise.
(fix_up_fall_thru_edges): Likewise.
(find_jump_block): Likewise.
(fix_crossing_conditional_branches): Likewise.
(fix_crossing_unconditional_branches): Likewise.
(add_reg_crossing_jump_notes): Likewise.
* bt-load.c (augment_live_range): Likewise.
* cfg.c (clear_edges): Likewise.
(unchecked_make_edge): Likewise.
(cached_make_edge): Likewise.
(make_single_succ_edge): Likewise.
(remove_edge): Likewise.
(redirect_edge_succ_nodup): Likewise.
(check_bb_profile): Likewise.
(dump_flow_info): Likewise.
(alloc_aux_for_edges): Likewise.
(clear_aux_for_edges): Likewise.
(dump_cfg_bb_info): Likewise.
* cfganal.c (forwarder_block_p): Likewise.
(can_fallthru): Likewise.
(could_fall_through): Likewise.
(mark_dfs_back_edges): Likewise.
(set_edge_can_fallthru_flag): Likewise.
(find_unreachable_blocks): Likewise.
(create_edge_list): Likewise.
(verify_edge_list): Likewise.
(add_noreturn_fake_exit_edges): Likewise.
(connect_infinite_loops_to_exit): Likewise.
(flow_reverse_top_sort_order_compute): Likewise.
(flow_depth_first_order_compute): Likewise.
(flow_preorder_transversal_compute): Likewise.
(flow_dfs_compute_reverse_execute): Likewise.
(dfs_enumerate_from): Likewise.
(compute_dominance_frontiers_1): Likewise.
* cfgbuild.c (make_edges): Likewise.
(compute_outgoing_frequencies): Likewise.
(find_many_sub_basic_blocks): Likewise.
(find_sub_basic_blocks): Likewise.
* cfgcleanup.c (try_simplify_condjump): Likewise.
(thread_jump): Likewise.
(try_forward_edges): Likewise.
(merge_blocks_move): Likewise.
(outgoing_edges_match): Likewise.
(try_crossjump_to_edge): Likewise.
(try_crossjump_bb): Likewise.
(try_optimize_cfg): Likewise.
(merge_seq_blocks): Likewise.
* cfgexpand.c (expand_gimple_tailcall): Likewise.
(expand_gimple_basic_block): Likewise.
(construct_init_block): Likewise.
(construct_exit_block): Likewise.
* cfghooks.c (verify_flow_info): Likewise.
(dump_bb): Likewise.
(delete_basic_block): Likewise.
(split_edge): Likewise.
(merge_blocks): Likewise.
(make_forwarder_block): Likewise.
(tidy_fallthru_edges): Likewise.
(can_duplicate_block_p): Likewise.
(duplicate_block): Likewise.
* cfglayout.c (fixup_reorder_chain): Likewise.
(fixup_fallthru_exit_predecessor): Likewise.
(can_copy_bbs_p): Likewise.
(copy_bbs): Likewise.
* cfgloop.c (flow_loops_cfg_dump): Likewise.
(flow_loop_entry_edges_find): Likewise.
(flow_loop_exit_edges_find): Likewise.
(flow_loop_nodes_find): Likewise.
(mark_single_exit_loops): Likewise.
(flow_loop_pre_header_scan): Likewise.
(flow_loop_pre_header_find): Likewise.
(update_latch_info): Likewise.
(canonicalize_loop_headers): Likewise.
(flow_loops_find): Likewise.
(get_loop_body_in_bfs_order): Likewise.
(get_loop_exit_edges): Likewise.
(num_loop_branches): Likewise.
(verify_loop_structure): Likewise.
(loop_latch_edge): Likewise.
(loop_preheader_edge): Likewise.
* cfgloopanal.c (mark_irreducible_loops): Likewise.
(expected_loop_iterations): Likewise.
* cfgloopmanip.c (remove_bbs): Likewise.
(fix_bb_placement): Likewise.
(fix_irreducible_loops): Likewise.
(remove_path): Likewise.
(scale_bbs_frequencies): Likewise.
(loopify): Likewise.
(unloop): Likewise.
(fix_loop_placement): Likewise.
(loop_delete_branch_edge): Likewise.
(duplicate_loop_to_header_edge): Likewise.
(mfb_keep_just): Likewise.
(create_preheader): Likewise.
(force_single_succ_latches): Likewise.
(loop_split_edge_with): Likewise.
(create_loop_notes): Likewise.
* cfgrtl.c (rtl_split_block): Likewise.
(rtl_merge_blocks): Likewise.
(rtl_can_merge_blocks): Likewise.
(try_redirect_by_replacing_jump): Likewise.
(force_nonfallthru_and_redirect): Likewise.
(rtl_tidy_fallthru_edge): Likewise.
(commit_one_edge_insertion): Likewise.
(commit_edge_insertions): Likewise.
(commit_edge_insertions_watch_calls): Likewise.
(rtl_verify_flow_info_1): Likewise.
(rtl_verify_flow_info): Likewise.
(purge_dead_edges): Likewise.
(cfg_layout_redirect_edge_and_branch): Likewise.
(cfg_layout_can_merge_blocks_p): Likewise.
(rtl_flow_call_edges_add): Likewise.
* cse.c (cse_cc_succs): Likewise.
* df.c (hybrid_search): Likewise.
* dominance.c (calc_dfs_tree_nonrec): Likewise.
(calc_dfs_tree): Likewise.
(calc_idoms): Likewise.
(recount_dominator): Likewise.
* domwalk.c (walk_dominator_tree): Likewise.
* except.c (emit_to_new_bb_before): Likewise.
(connect_post_landing_pads): Likewise.
(sjlj_emit_function_enter): Likewise.
(sjlj_emit_function_exit): Likewise.
(finish_eh_generation): Likewise.
* final.c (compute_alignments): Likewise.
* flow.c (calculate_global_regs_live): Likewise.
(initialize_uninitialized_subregs): Likewise.
(init_propagate_block_info): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* gcse.c (find_implicit_sets): Likewise.
(bypass_block): Likewise.
(bypass_conditional_jumps): Likewise.
(compute_pre_data): Likewise.
(insert_insn_end_bb): Likewise.
(insert_store): Likewise.
(remove_reachable_equiv_notes): Likewise.
* global.c (global_conflicts): Likewise.
(calculate_reg_pav): Likewise.
* graph.c (print_rtl_graph_with_bb): Likewise.
* ifcvt.c (mark_loop_exit_edges): Likewise.
(merge_if_block): Likewise.
(find_if_header): Likewise.
(block_jumps_and_fallthru_p): Likewise.
(find_if_block): Likewise.
(find_cond_trap): Likewise.
(block_has_only_trap): Likewise.
(find_if_case1): Likewise.
(find_if_case_2): Likewise.
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
(perfect_nestify): Likewise.
* lcm.c (compute_antinout_edge): Likewise.
(compute_laterin): Likewise.
(compute_available): Likewise.
(compute_nearerout): Likewise.
* loop-doloop.c (doloop_modify): Likewise.
* loop-init.c (loop_optimizer_init): Likewise.
* loop-invariant.c (find_exits): Likewise.
* loop-iv.c (simplify_using_initial_values): Likewise.
(check_simple_exit): Likewise.
(find_simple_exit): Likewise.
* loop-unroll.c (peel_loop_completely): Likewise.
(unroll_loop_constant_iterations): Likewise.
(unroll_loop_runtime_iterations): Likewise.
* loop-unswitch.c (may_unswitch_on): Likewise.
(unswitch_loop): Likewise.
* modulo-sched.c (generate_prolog_epilog): Likewise.
(sms_schedule): Likewise.
* postreload-gcse.c (eliminate_partially_redundant_load):
Likewise.
* predict.c (can_predict_insn_p): Likewise.
(set_even_probabilities): Likewise.
(combine_predictions_for_bb): Likewise.
(predict_loops): Likewise.
(estimate_probability): Likewise.
(tree_predict_by_opcode): Likewise.
(tree_estimate_probability): Likewise.
(last_basic_block_p): Likewise.
(propagate_freq): Likewise.
(estimate_loops_at_level): Likewise.
(estimate_bb_frequencies): Likewise.
* profile.c (instrument_edges): Likewise.
(get_exec_counts): Likewise.
(compute_branch_probabilities): Likewise.
(branch_prob): Likewise.
* ra-build.c (live_in): Likewise.
* ra-rewrite.c (rewrite_program2): Likewise.
* ra.c (reg_alloc): Likewise.
* reg-stack.c (reg_to_stack): Likewise.
(convert_regs_entry): Likewise.
(compensate_edge): Likewise.
(convert_regs_1): Likewise,
(convert_regs_2): Likewise.
(convert_regs): Likewise.
* regrename.c (copyprop_hardreg_forward): Likewise.
* reload1.c (fixup_abnormal_edges): Likewise.
* sbitmap.c (sbitmap_intersection_of_succs): Likewise.
(sbitmap_insersection_of_preds): Likewise.
(sbitmap_union_of_succs): Likewise.
(sbitmap_union_of_preds): Likewise.
* sched-ebb.c (compute_jump_reg_dependencies): Likewise.
(fix_basic_block_boundaries): Likewise.
(sched_ebbs): Likewise.
* sched-rgn.c (build_control_flow): Likewise.
(find_rgns): Likewise.
* tracer.c (find_best_successor): Likewise.
(find_best_predecessor): Likewise.
(tail_duplicate): Likewise.
* tree-cfg.c (make_edges): Likewise.
(make_ctrl_stmt_edges): Likewise.
(make_goto_expr_edges): Likewise.
(tree_can_merge_blocks_p): Likewise.
(tree_merge_blocks): Likewise.
(cfg_remove_useless_stmts_bb): Likewise.
(remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
(tree_block_forwards_to): Likewise.
(cleanup_control_expr_graph): Likewise.
(find_taken_edge): Likewise.
(dump_cfg_stats): Likewise.
(tree_cfg2vcg): Likewise.
(disband_implicit_edges): Likewise.
(tree_find_edge_insert_loc): Likewise.
(bsi_commit_edge_inserts): Likewise.
(tree_split_edge): Likewise.
(tree_verify_flow_info): Likewise.
(tree_make_forwarder_block): Likewise.
(tree_forwarder_block_p): Likewise.
(thread_jumps): Likewise.
(tree_try_redirect_by_replacing_jump): Likewise.
(tree_split_block): Likewise.
(add_phi_args_after_copy_bb): Likewise.
(rewrite_to_new_ssa_names_bb): Likewise.
(dump_function_to_file): Likewise.
(print_pred_bbs): Likewise.
(print_loop): Likewise.
(tree_flow_call_edges_add): Likewise.
(split_critical_edges): Likewise.
(execute_warn_function_return): Likewise.
(extract_true_false_edges_from_block): Likewise.
* tree-if-conv.c (tree_if_conversion): Likewise.
(if_convertable_bb_p): Likewise.
(find_phi_replacement_condition): Likewise.
(combine_blocks): Likewise.
* tree-into-ssa.c (compute_global_livein): Likewise.
(ssa_mark_phi_uses): Likewise.
(ssa_rewrite_initialize_block): Likewise.
(rewrite_add_phi_arguments): Likewise.
(ssa_rewrite_phi_arguments): Likewise.
(insert_phi_nodes_for): Likewise.
(rewrite_into_ssa): Likewise.
(rewrite_ssa_into_ssa): Likewise.
* tree-mudflap.c (mf_build_check_statement_for): Likewise.
* tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
(rewrite_trees): Likewise.
* tree-pretty-print.c (dump_bb_header): Likewise.
(dump_implicit_edges): Likewise.
* tree-sra.c (insert_edge_copies): Likewise.
(find_obviously_necessary_stmts): Likewise.
(remove_data_stmt): Likewise.
* tree-ssa-dom.c (thread_across_edge): Likewise.
(dom_opt_finalize_block): Likewise.
(single_incoming_edge_ignoring_loop_edges): Likewise.
(record_equivalences_from_incoming_edges): Likewise.
(cprop_into_successor_phis): Likewise.
* tree-ssa-live.c (live_worklist): Likewise.
(calculate_live_on_entry): Likewise.
(calculate_live_on_exit): Likewise.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
(copy_loop_headers): Likewise.
* tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
(fill_always_executed_in): Likewise.
* tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
* tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
(compute_phi_arg_on_exit): Likewise.
* tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
(get_loops_exit): Likewise.
(split_loop_exit_edge): Likewise.
(ip_normal_pos): Likewise.
* tree-ssa-loop-niter.c (simplify_using_initial_conditions):
Likewise.
* tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
(replace_phi_with_stmt): Likewise.
(value_replacement): Likewise.
* tree-ssa-pre.c (compute_antic_aux): Likewise.
(insert_aux): Likewise.
(init_pre): Likewise.
* tree-ssa-propagate.c (simulate_stmt): Likewise.
(simulate_block): Likewise.
(ssa_prop_init): Likewise.
* tree-ssa-threadupdate.c (thread_block): Likewise.
(create_block_for_threading): Likewise.
(remove_last_stmt_and_useless_edges): Likewise.
* tree-ssa.c (verify_phi_args): Likewise.
(verify_ssa): Likewise.
* tree_tailcall.c (independent_of_stmt_p): Likewise.
(find_tail_calls): Likewise.
(eliminate_tail_call): Likewise.
(tree_optimize_tail_calls_1): Likewise.
* tree-vectorizer.c (vect_transform_loop): Likewise.
* var-tracking.c (prologue_stack_adjust): Likewise.
(vt_stack_adjustments): Likewise.
(vt_find_locations): Likewise.
* config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
* config/i386/i386.c (ix86_pad_returns): Likewise.
* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
Co-Authored-By: Steven Bosscher <stevenb@suse.de>
From-SVN: r88222
2004-09-28 17:59:54 +10:00
James E Wilson
097f3d486a
Fix linux kernel miscompilation.
...
PR target/17455
* config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
if current_function_decl is a sibcall.
From-SVN: r87574
2004-09-15 16:26:33 -07:00
Steve Ellcey
88ed5ef592
ia64.c (ia64_scalar_mode_supported_p): New.
...
* config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
(TARGET_SCALAR_MODE_SUPPORTED_P): New.
From-SVN: r87448
2004-09-13 20:34:55 +00:00
Frank Ch. Eigler
c2433d7d16
builtins.c (build_va_arg_indirect_ref): New function.
...
2004-09-09 Frank Ch. Eigler <fche@redhat.com>
* builtins.c (build_va_arg_indirect_ref): New function.
(std_gimplify_va_arg_expr): Call it instead of mudflap check and
build_fold_indirect_ref.
* config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
* tree.h: Declare new function.
From-SVN: r87242
2004-09-09 16:33:25 +00:00
Steve Ellcey
9dec91d433
ia64.c (ia64_function_arg): Use PARALLEL even if there is only one reg.
...
* config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
is only one reg.
(ia64_function_value): Ditto.
From-SVN: r87038
2004-09-03 17:52:08 +00:00
Nathan Sidwell
7d60be94d6
tree.h (build_int_cst): New, sign extended constant.
...
* tree.h (build_int_cst): New, sign extended constant.
(build_int_cstu): New, zero extended constant.
(build_int_cst_wide): Renamed from build_int_cst.
* tree.c (build_int_cst, build_int_cstu): New.
(build_int_cst_wide): Renamed from build_int_cst.
(make_vector_type, build_common_tree_nodes,
build_common_tree_nodes_2): Adjust build_int_cst calls.
* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
expand_builtin_strpbrk, expand_builtin_fputs,
build_string_literal, expand_builtin_printf,
expand_builtin_sprintf, fold_builtin_classify_type,
fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
fold_builtin_toascii, fold_builtin_isdigit,
simplify_builtin_strstr, simplify_builtin_strpbrk,
fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
* c-common.c (start_fname_decls, fix_string_type, shorten_compare,
DEF_ATTR_INT): Likewise.
* c-decl.c (complete_array_type, check_bitfield_type_and_width):
Likewise.
* c-lex.c (interpret_integer, lex_charconst): Likewise.
* c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
* c-pretty-print.c (pp_c_integer_constant): Likewise.
* c-typeck.c (really_start_incremental_init, push_init_level,
set_nonincremental_init_from_string): Likewise.
* calls.c (load_register_parameters): Likewise.
convert.c (convert_to_pointer): Likewise.
coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
build_fn_info_type, build_fn_info_value, build_ctr_info_value,
build_gcov_info): Likewise.
* except.c (init_eh, assign_filter_values): Likewise.
* expmed.c (store_fixed_bit_field, extract_bit_field,
extract_fixed_bit_field, extract_split_bit_field, expand_shift,
expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
* expr.c (convert_move, emit_group_load, emit_group_store,
expand_assignment, store_constructor, store_field,
expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
invert_truthvalue, optimize_bit_field_compare,
decode_field_reference, all_ones_mask_p, constant_boolean_node,
fold_div_compare, fold, fold_read_from_constant_string,
fold_negate_const, fold_abs_const, fold_not_const, round_up,
round_down): Likewise.
* function.c (assign_parm_setup_block): Likewise.
* stmt.c (shift_return_value, expand_case, estimate_case_costs):
Likewise.
* stor-layout.c (layout_type, initialize_sizetypes,
set_min_and_max_values_for_integral_type): Likewise.
* tree-chrec.c (chrec_fold_multiply_poly_poly,
reset_evolution_in_loop): Likewise.
* tree-chrec.h (build_polynomial_chrec): Likewise.
* tree-complex.c (build_replicated_const): Likewise.
* tree-eh.c (honor_protect_cleanup_actions,
lower_try_finally_onedest, lower_try_finally_copy,
lower_try_finally_switch): Likewise.
* tree-mudflap.c (mf_build_string, mx_register_decls,
mudflap_register_call, mudflap_enqueue_constant): Likewise.
* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
Likewise.
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
* tree-ssa-loop-niter.c (number_of_iterations_cond,
loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
Likewise.
* tree-ssa-loop-ivcanon.c (create_canonical_iv,
canonicalize_loop_induction_variables): Likewise.
* tree-vectorizer.c (vect_create_index_for_array_ref,
vect_transform_loop_bound, vect_compute_data_ref_alignment):
Likewise.
* config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
alpha_gimplify_va_arg_1): Likewise.
* config/arm/arm.c (arm_get_cookie_size): Likewise.
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
mips_gimplify_va_arg_expr): Likewise.
* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
add_compiler_branch_island): Likewise.
* config/s390/s390.c (s390_va_start): Likewise.
* config/sh/sh.c (sh_va_start): Likewise.
* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
Likewise.
* config/xtensa/xtensa.c (xtensa_va_start,
xtensa_gimplify_va_arg_expr): Likewise.
* objc/objc-act.c (build_objc_string_object,
build_objc_symtab_template, init_def_list, init_objc_symtab,
init_module_descriptor, generate_static_references,
build_selector_translation_table, get_proto_encoding,
build_typed_selector_reference, build_selector_reference,
build_next_objc_exception_stuff,
build_method_prototype_list_template, generate_descriptor_table,
generate_protocols, build_protocol_initializer,
build_ivar_list_template, build_method_list_template,
build_ivar_list_initializer, generate_ivars_list,
generate_dispatch_table, generate_protocol_list,
build_category_initializer, build_shared_structure_initializer,
generate_shared_structures, handle_impent,
generate_objc_image_info): Likewise.
2004-04-25 Paolo Bonzini <bonzini@gnu.org>
* cfglayout.c (duplicate_insn_chain): Remove references to
NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
* cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
* cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
* final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
and NOTE_INSN_LOOP_CONT.
* insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
* jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
and NOTE_INSN_LOOP_CONT.
* loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
check_dbra_loop, loop_dump_aux): Remove references to removed notes
and fields.
* reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
* unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
references to removed notes and fields.
(subtract_reg_term, ujump_to_loop_cont): Remove.
From-SVN: r86544
2004-08-25 09:52:54 +00:00
Richard Henderson
542a8afa8a
emit-rtl.c (gen_const_mem): New.
...
* emit-rtl.c (gen_const_mem): New.
* rtl.h (gen_const_mem): Declare.
* expr.c (do_tablejump): Use it.
* varasm.c (force_const_mem): Likewise.
* config/darwin.c (machopic_indirect_data_reference): Likewise.
(machopic_legitimize_pic_address): Likewise.
* config/arm/arm.c (legitimize_pic_address): Likewise.
* config/i386/i386.c (legitimize_pic_address): Likewise.
(legitimize_tls_address): Likewise.
* config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
* config/ia64/ia64.md (load_fptr): Likewise.
* config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
* config/pa/pa.c (legitimize_pic_address): Likewise.
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
(rs6000_emit_move): Likewise.
* config/s390/s390.c (legitimize_pic_address): Likewise.
(legitimize_tls_address): Likewise.
* config/s390/s390.md (casesi): Likewise.
* config/sh/sh.c (sh_reorg): Likewise.
* config/sparc/sparc.c (legitimize_pic_address): Likewise.
* config/v850/v850.md (casesi): Likewise.
* config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
* config/sh/sh.c (prepare_move_operands): Remove incorrect
use of MEM_READONLY_P.
From-SVN: r86207
2004-08-18 14:08:35 -07:00
Richard Henderson
389fdba06a
rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
...
* rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
* alias.c (true_dependence): Update to match new semantics.
(canon_true_dependence, write_dependence_p): Likewise.
(anti_dependence, output_dependence): Update write_dependence_p args.
(unchanging_anti_dependence): Remove.
* calls.c (purge_mem_unchanging_flag): Remove.
(fixup_tail_calls): Don't call it.
(expand_call): Don't add unchanging memory to function usage.
* expr.c (emit_block_move_via_libcall): Likewise.
(clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
(get_subtarget): Don't use RTX_UNCHANGING_P.
(expand_assignment, store_constructor, expand_expr_real_1): Likewise.
(do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
* combine.c (get_last_value_validate): Use MEM_READONLY_P.
* cse.c (insert): Don't use RTX_UNCHANGING_P.
(cse_insn, canon_hash): Use MEM_READONLY_P.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
instead of RTX_UNCHANGING_P.
* explow.c (maybe_set_unchanging): Remove.
* expr.h (maybe_set_unchanging): Remove.
* flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
* function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
(assign_parm_setup_reg, expand_function_start): Likewise.
* integrate.c (copy_rtx_and_substitute): Likewise.
* ra-rewrite.c (emit_colors): Likewise.
* regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
(fixup_match_1): Likewise.
* reload1.c (reload, alter_reg): Likewise.
* local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
not RTX_UNCHANGING_P.
(equiv_init_varies_p): Likewise.
* loop-invariant.c (check_maybe_invariant): Likewise.
* resource.c (mark_referenced_resources, mark_set_resources): Likewise.
* loop.c (note_addr_stored): Likewise.
(prescan_loop): Likewise. Don't check function usage for clobbered
unchanging memory.
* rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
not RTX_UNCHANGING_P.
(rtx_varies_p, modified_between_p, modified_in_p): Likewise.
* varasm.c (force_const_mem): Likewise.
* stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
* web.c (entry_register): Likewise.
* tree-gimple.h (get_base_address): Move decl ...
* tree.h: ... here.
* doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
* config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
(alpha_set_memflags): Update to match.
* config/darwin.c (machopic_indirect_data_reference): Set
MEM_READONLY_P instead of RTX_UNCHANGING_P.
(machopic_indirect_call_target): Likewise.
(machopic_legitimize_pic_address): Likewise.
* config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
* config/arm/arm.md (load_multiple, store_multiple): Likewise.
* config/frv/frv.md (symGOT2reg): Likewise.
* config/i386/i386.c (legitimize_pic_address,
legitimize_tls_address, ix86_split_to_parts): Likewise.
* config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
* config/ia64/ia64.md (load_fptr): Likewise.
* config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
* config/m68k/m68k.c (legitimize_pic_address): Likewise.
* config/mcore/mcore.c (block_move_sequence): Likewise.
* config/mn10300/mn10300.md (symGOT2reg): Likewise.
* config/pa/pa.c (legitimize_pic_address): Likewise.
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
(rs6000_emit_move): Likewise.
* config/s390/s390.c (legitimize_pic_address): Likewise.
(legitimize_tls_address): Likewise.
* config/s390/s390.md (casesi): Likewise.
* config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
* config/sh/sh.md (symGOT2reg): Likewise.
* config/sparc/sparc.c (legitimize_pic_address): Likewise.
* config/v850/v850.md (casesi): Likewise.
* config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
* config/iq2000/iq2000.c (save_restore_insns): Likewise.
* config/mips/mips.c (mips_restore_gp): Likewise.
(mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
* config/sh/sh.c (sh_reorg): Likewise.
From-SVN: r86178
2004-08-18 01:25:01 -07:00
Nathan Sidwell
4a90aeeb51
tree.h (build_int_cst): New.
...
.: * tree.h (build_int_cst): New.
(build_int_2): Remove.
* tree.c (build_int_2): Remove.
(build_int_cst): New.
(make_vector_type, build_common_tree_nodes,
build_common_tree_nodes_2): Use build_int_cst.
* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
expand_builtin_strpbrk, expand_builtin_fputs,
build_string_literal, expand_builtin_printf,
expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
fold_builtin_isdigit, simplify_builtin_strstr,
simplify_builtin_strpbrk, fold_builtin_fputs,
simplify_builtin_sprintf): Use build_int_cst.
* c-common.c (start_fname_decls, fix_string_type,
c_common_nodes_and_builtins, c_init_attributes,
shorten_compare): Likewise.
* c-decl.c (complete_array_type,
check_bitfield_type_and_width): Likewise.
* c-lex.c (interpret_integer, lex_charconst): Likewise.
* c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
* c-pretty-print.c (pp_c_integer_constant): Likewise.
* c-typeck.c (really_start_incremental_init, push_init_level,
set_nonincremental_init_from_string): Likewise.
* calls.c (load_register_parameters): Likewise.
* convert.c (convert_to_pointer): Likewise.
* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
build_fn_info_type, build_ctr_info_value, build_gcov_info):
Likewise.
* except.c (init_eh, assign_filter_values, assign_filter_values):
Likewise.
* expmed.c (store_fixed_bit_field, extract_bit_field,
extract_fixed_bit_field, extract_split_bit_field, expand_shift,
expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
* expr.c (convert_move, emit_group_load, emit_group_store,
expand_assignment, store_constructor, store_field,
expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
* fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
invert_truthvalue, optimize_bit_field_compare,
decode_field_reference, all_ones_mask_p, constant_boolean_node,
fold_div_compare, fold, fold_read_from_constant_string,
fold_negate_const, fold_abs_const, fold_not_const): Likewise.
* function.c (assign_parm_setup_block): Likewise.
* stmt.c (shift_return_value, expand_end_case_type,
estimate_case_costs): Likewise.
* stor-layout.c (layout_type, initialize_sizetypes,
set_min_and_max_values_for_integral_type): Likewise.
* tree-chrec.c (chrec_fold_multiply_poly_poly,
reset_evolution_in_loop): Likewise.
* tree-chrec.h (build_polynomial_chrec): Likewise.
* tree-complex.c (build_replicated_const): Likewise.
* tree-eh.c (honor_protect_cleanup_actions,
lower_try_finally_onedest, lower_try_finally_copy,
lower_try_finally_switch): Likewise.
* tree-mudflap.c (mf_build_string, mx_register_decls,
mudflap_register_call, mudflap_enqueue_constant): Likewise.
* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
Likewise.
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
* tree-ssa-loop-niter.c (number_of_iterations_cond,
loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
Likewise.
* config/alpha/alpha.c (alpha_initialize_trampoline,
alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
* config/arm/arm.c (arm_get_cookie_size): Likewise.
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
* config/i860/i860.c (i860_va_start): Likewise.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
mips_gimplify_va_arg_expr): Likewise.
* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
add_compiler_branch_island): Likewise.
* config/s390/s390.c (s390_va_start): Likewise.
* config/sh/sh.c (sh_va_start): Likewise.
* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
Likewise.
* config/xtensa/xtensa.c (xtensa_va_start,
xtensa_gimplify_va_arg_expr): Likewise.
* objc/objc-act.c (build_objc_string_object,
build_objc_symtab_template, init_def_list, init_objc_symtab,
init_module_descriptor, generate_static_references,
build_selector_translation_table, get_proto_encoding,
build_typed_selector_reference, build_selector_reference,
build_next_objc_exception_stuff,
build_method_prototype_list_template, generate_descriptor_table,
generate_protocols, build_protocol_initializer,
build_ivar_list_template, build_method_list_template,
build_ivar_list_initializer, generate_ivars_list,
generate_dispatch_table, generate_protocol_list,
build_category_initializer, build_shared_structure_initializer,
generate_shared_structures, handle_impent,
generate_objc_image_info): Use build_int_cst.
ada:
* cuintp.c (UI_To_gnu): Use build_int_cst..
* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
* utils.c (init_gigi_decls): Likewise.
* utils2.c (build_call_raise): Likewise.
cp:
* call.c (convert_class_to_reference,
build_user_type_conversion_1, convert_like_real,
build_java_interface_fn_ref, build_special_member_call): Use
build_int_cst.
* class.c (build_vtbl_initializer): Likewise.
* cp-gimplify.c (cp_gimplify_expr): Likewise.
* cvt.c (cp_convert_to_pointer): Likewise.
* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
* decl2.c (start_static_initialization_or_destruction,
generate_ctor_or_dtor_function): Likewise.
* except.c (build_throw): Likewise.
* lex.c (cxx_init): Likewise.
* mangle.c (write_integer_cst): Likewise.
* rtti.c (build_headof, get_tinfo_decl_dynamic,
build_dynamic_cast_1, ptr_initializer, ptm_initializer,
get_pseudo_ti_init): Likewise.
* search.c (get_dynamic_cast_base_type): Likewise.
* tree.c (build_shared_int_cst): Likewise.
fortran:
* trans-array.c (gfc_trans_array_constructor_value): Use
build_int_cst.
* trans-const.c (gfc_build_string_const,
gfc_init_constants, gfc_conv_mpz_to_tree,
gfc_conv_constant_to_tree): Likewise.
* trans-decl.c (gfc_get_symbol_decl): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
* trans-io.c (add_case, set_error_locus, build_dt,
transfer_expr): Likewise.
* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
gfc_trans_stop, gfc_trans_character_select): Likewise.
* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
* trans.c (gfc_trans_runtime_check): Likewise.
java:
* boehm.c (get_boehm_type_descriptor): Use build_int_cst.
* class.c (build_utf8_ref, build_static_field_ref,
make_field_value, make_method_value, get_dispatch_table,
make_class_data, emit_symbol_table, emit_catch_table): Likewise.
* constants.c (get_tag_node, build_ref_from_constant_pool,
build_constants_constructor): Likewise.
* decl.c (java_init_decl_processing): Likewise.
* expr.c (build_java_array_length_access, build_newarray,
expand_java_multianewarray, expand_java_pushc, expand_iinc,
build_java_binop, build_field_ref, expand_java_add_case,
expand_java_call, build_known_method_ref, build_invokevirtual,
build_invokeinterface, build_jni_stub): Likewise.
* java-gimplify.c (java_gimplify_new_array_init): Likewise.
* jcf-parse.c (get_constant): Likewise.
* lex.c (do_java_lex): Likewise.
* parse.y (patch_binop, patch_unaryop, patch_cast,
build_null_of_type, patch_newarray): Likewise.
* resource.c (compile_resource_data): Likewise.
* typeck.c (build_prim_array_type): Likewise.
From-SVN: r86022
2004-08-15 15:45:33 +00:00
Andrew Pinski
1e5f171639
darwin-c.c (find_subframework_file): Fix spelling of cannot.
...
2004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
* config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
* config/libgloss.h: Likewise.
* config/arm/arm.c (arm_gen_load_multiple): Likewise.
* c4x/c4x-modes.def: Likewise.
* config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
(c4x_rptb_nop_p): Likewise.
(c4x_rptb_valid_p): Likewise.
(c4x_rptb_insert): Likewise.
(c4x_address_conflict): Likewise.
* config/c4x/c4x.md: Likewise.
* config/frv/frv.md: Likewise.
* config/i386/athlon.md: Likewise.
* config/i386/i386.md: Likewise.
* config/i386/predicates.md: Likewise.
* config/ia64/ia64.c: Likewise.
* config/ia64/itanium1.md: Likewise.
* config/ia64/itanium2.md: Likewise.
* config/iq2000/iq2000.md: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mips/mips.c: Likewise.
* config/mips/r3900.h: Likewise.
* config/mips/sb1.md: Likewise.
* config/pa/milli64.S: Likewise.
* config/pa/pa.c: Likewise.
* config/pa/pa.h: Likewise.
* config/rs6000/8540.md: Likewise.
From-SVN: r85944
2004-08-13 08:34:00 -07:00
Zack Weinberg
e543e219eb
genpreds.c: Add capability to generate predicate bodies as well as function prototypes.
...
* genpreds.c: Add capability to generate predicate bodies as
well as function prototypes. Write function prototypes for
the generic predicates too.
(process_define_predicate, write_tm_preds_h, write_insn_preds_c)
(write_predicate_subfunction, mark_mode_tests, add_mode_tests)
(write_match_code, write_predicate_expr, write_one_predicate_function)
(parse_option): New functions.
(output_predicate_decls): Delete.
(main): Read the machine description, process DEFINE_PREDICATE or
DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
as appropriate.
* genrecog.c (struct decision_test): Replace index with
struct pred_data pointer.
(next_index): Remove, unused.
(pred_table, preds, special_mode_pred_table): Delete.
(compute_predicate_codes, process_define_predicate): New functions.
(validate_pattern, add_to_sequence, write_switch): Update for
new data structures.
(main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
Check both error_count and have_error.
* gensupport.c (in_fname, first_predicate): New globals.
(define_pred_queue, define_pred_tail): New RTL-pattern queue.
(predicate_table, last_predicate, old_pred_table)
(old_special_pred_table): New statics.
(hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
(add_predicate, init_predicate_table): New functions.
(process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
(init_md_reader_args_cb): Use the global in_fname. No need to zero
it or max_include_len. Call init_predicate_table.
(read_rtx): Run the predicate queue after the attribute queue
but before all the others.
* gensupport.h (in_fname, struct pred_data, first_predicate)
(lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
* rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
(DEFINE_SPECIAL_PREDICATE): New RTL codes.
* dummy-conditions.c: Don't include bconfig.h, system.h,
coretypes.h, tm.h, or system.h. Do include stddef.h.
Duplicate declaration of struct c_test from gensupport.h.
* Makefile.in (OBJS-common): Add insn-preds.o.
(STAGESTUFF, .PRECIOUS): Add insn-preds.c.
(insn-preds.c, insn-preds.o): New rules.
(s-preds): Also generate insn-preds.c.
(dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
Update dependencies.
(print-rtl.o, print-rtl1.o): Correct dependencies.
* recog.h: Delete prototypes of predicate functions.
* doc/md.texi (Predicates): New section with complete
documentation of operand/operator predicates. Remove some
incomplete documentation of predicates from other places.
* doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
PREDICATE_CODES; indicate that both are deprecated in favor
of define_predicate/define_special_predicate.
* config/ia64/ia64.c: All predicate function definitions moved
to ia64.md, except
(small_addr_symbolic_operand, tls_symbolic_operand): Delete.
(ia64_expand_load_address, ia64_expand_move):
Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
* config/ia64/ia64.md: All predicates now defined here.
(symbolic_operand): Is now a special predicate.
* config/ia64/ia64.h: Declare ia64_section_threshold.
(PREDICATE_CODES): Delete.
From-SVN: r85855
2004-08-12 07:49:00 +00:00
Zack Weinberg
1f09d3eb5c
ia64.c (got_symbolic_operand): Do require a symbol+offset operand to have its offset be zero mod 0x3fff when...
...
* config/ia64/ia64.c (got_symbolic_operand): Do require a
symbol+offset operand to have its offset be zero mod 0x3fff
when GOT entries are in use. Clarify logic in SYMBOL_REF
case. Clarify comments.
(ia64_expand_load_address): Split a symbol+offset load when
the offset is nonzero mod 0x3fff, not 0x1fff.
testsuite:
* gcc.dg/ia64-got-1.c: New test case.
From-SVN: r85426
2004-08-02 03:23:01 +00:00
Zack Weinberg
13b52b9060
ia64.c (setjmp_operand): Delete, unused.
...
* config/ia64/ia64.c (setjmp_operand): Delete, unused.
(got_symbolic_operand): Remove unreachable code.
* config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
setjmp_operand; add entry for tls_symbolic_operand.
* config/ia64/ia64-protos.h: Remove all prototypes of
predicate functions.
From-SVN: r85311
2004-07-29 18:30:27 +00:00
Steven Bosscher
4586b4cadc
rtl.c (currently_expanding_to_rtl): New.
...
* rtl.c (currently_expanding_to_rtl): New.
* rtl.h (currently_expanding_to_rtl): Export it.
* cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
* config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
inliner hack.
* config/sh/sh.c: Replace rtx_equal_function_value_matters
with currently_expanding_to_rtl.
* config/sh/sh.md: Likewise.
* config/ia64/ia64.c (got_symbolic_operand): Likewise.
From-SVN: r85287
2004-07-29 07:37:16 +00:00
Zack Weinberg
968a7562a6
libgcc2.c: Change all conditionals testing LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
...
* libgcc2.c: Change all conditionals testing
LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
* libgcc2.h: Likewise.
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
TYPE_PRECISION of float80_type to 80.
* config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
of fpreg_type and float80_type to 80.
* config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
* config/m68k/netbsd-elf.h:
Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
to evaluate to 80 whenever they would formerly have evaluated to 96.
* config/i386/sco5.h: Remove unnecessary redefinition of
LONG_DOUBLE_TYPE_SIZE.
* doc/rtl.texi: Clarify uses of XFmode and TFmode.
* config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
XFmode, with a bitsize of 80. Update commentary.
* config/ia64/ia64-modes.def: Likewise.
* config/m68k/m68k-modes.def: Likewise.
From-SVN: r85232
2004-07-27 21:41:23 +00:00
Zack Weinberg
78d8e0f9d8
[multiple changes]
...
2004-07-24 Zack Weinberg <zack@codesourcery.com>
* config/ia64/ia64.c (general_xfmode_operand)
(destination_xfmode_operand): Delete.
* config/ia64/ia64.h (PREDICATE_CODES): Remove them.
* config/ia64/ia64.md (*movxf_internal): Use general_operand
and destination_operand.
2004-07-24 Alexander Kabaev <kan@freebsd.org>
* config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
(EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
From-SVN: r85141
2004-07-25 04:03:42 +00:00
Paolo Bonzini
fa0aee8996
genattr.c (struct range, [...]): Remove them.
...
2004-07-19 Paolo Bonzini <bonzini@gnu.org>
* genattr.c (struct range, struct function_unit,
write_units, extend_range, init_range): Remove them.
(main): Remove code dealing with DEFINE_FUNCTION_UNIT.
Output "#define INSN_SCHEDULING" here.
* genattrtab.c (struct range, struct function_unit_op,
struct function_unit, struct dimension, enum operator,
operate_exp, expand_units, simplify_knowing,
encode_units_mask, simplify_by_exploding,
find_and_mark_used_attributes, unmark_used_attributes,
add_values_to_cover, increment_current_value,
test_for_current_value, simplify_with_current_value,
simplify_with_current_value_aux, gen_unit,
write_unit_name, write_function_unit_info,
write_complex_function, write_toplevel_expr,
find_single_value, extend_range): Remove.
(write_attr_get): Do not handle common_av->value
being an FFS.
(struct attr_desc): Remove func_units_p and blockage_p.
(write_attr_valueq): Do not handle them.
(find_attr): Do not clear them.
(make_internal_attr): Do not initialize them.
(main): Remove code dealing with DEFINE_FUNCTION_UNIT.
* sched-vis.c (init_target_units, insn_print_units,
init_block_visualization, print_block_visualization,
visualize_scheduled_insns, visualize_no_unit,
visualize_stall_cycles, visualize_alloc,
visualize_free, target_units, get_visual_tbl_length,
MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
visual_tbl_line_length, visual_tbl, n_vis_no_unit,
MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
* haifa-sched.c (blockage_range, clear_units,
schedule_unit, actual_hazard, potential_hazard,
insn_unit, unit_last_insn, unit_tick,
actual_hazard_this_instance, potential_hazard,
schedule_unit, max_insn_queue_index_value): Remove.
(MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
max_insn_queue_index.
* rtl.def (DEFINE_FUNCTION_UNIT): Remove.
* doc/md.texi (Processor pipeline description): Remove
references to old pipeline descriptions.
(Automaton pipeline description): Merge with the above.
(Old pipeline description, Comparison of the two descriptions):
Remove.
* bt-load.c (migrate_btr_def): Remove references to
use_pipeline_interface.
* haifa-sched.c (insn_cost, schedule_insn,
schedule_block, advance_one_cycle, sched_init,
queue_to_ready, sched_finish): Likewise.
* modulo-sched.c (sms_schedule, advance_one_cycle,
ps_has_conflicts): Likewise.
* sched-rgn.c (init_ready): Likewise.
(debug_dependencies): Likewise, and remove an "if (1)".
* target.h (use_dfa_pipeline_interface): Remove.
* config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
* doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
From-SVN: r84944
2004-07-20 07:27:18 +00:00
Joseph Myers
6e34d3a39f
langhooks.h (builtin_function): New langhook.
...
* langhooks.h (builtin_function): New langhook.
* langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
(LANG_HOOKS_INITIALIZER): Update.
* tree.h (builtin_function): Remove.
* doc/tm.texi: Update.
* c-tree.h (builtin_function): Declare.
* c-common.c, config/alpha/alpha.c, config/arm/arm.c,
config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
config/ia64/ia64.c, config/iq2000/iq2000.c,
config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
config/stormy16/stormy16.c: All callers of builtin_function
changed.
ada:
* gigi.h (builtin_function): Declare.
cp:
* cp-tree.h (builtin_function): Declare.
fortran:
* trans.h (builtin_function): Declare.
java:
* java-tree.h (builtin_function): Declare.
From-SVN: r84878
2004-07-17 20:35:04 +01:00
Paul Brook
951120eabf
dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
...
* dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
to TARGET_UNWIND_INFO.
* except.c (output_function_exception_table): Ditto.
* except.h: Ditto.
* opts.c (decode_options): Ditto.
* passes.c (rest_of_handle_final): Ditto.
* final.c (final_start_function): Ditto.
(final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
target hook.
* targhooks.h (default_unwind_emit): Declare.
* targhooks.c (default_unwind_emit): New function.
* target-def.h: Define and use TARGET_UNWIND_EMIT.
* target.h (struct gcc_target): Add unwind_emit.
* config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
* config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
Remove IA64_UNWIND_EMIT.
* doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
From-SVN: r84734
2004-07-15 01:07:53 +00:00
Steve Ellcey
b1346fa335
ia64.c (ia64_expand_compare): Allow ORDERED comparision of TFmode.
...
* config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
comparision of TFmode.
From-SVN: r84718
2004-07-14 23:48:38 +00:00
Richard Henderson
08b0dc1be5
alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
...
* config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
(alpha_gimplify_va_arg): ... handling here. Use pass_by_reference.
* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
* config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
From-SVN: r84713
2004-07-14 14:19:39 -07:00
Richard Henderson
8cd5a4e07d
target.h (struct gcc_target): Add calls.pass_by_reference.
...
* target.h (struct gcc_target): Add calls.pass_by_reference.
* target-def.h (TARGET_PASS_BY_REFERENCE): New.
* function.c (pass_by_reference): Use the hook.
* system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
* targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
(hook_pass_by_reference_must_pass_in_stack): New.
* config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
(alpha_pass_by_reference): New.
(TARGET_PASS_BY_REFERENCE): New.
* config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/arc/arc.c (arc_pass_by_reference): New.
(TARGET_PASS_BY_REFERENCE): New.
* config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): True.
* config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
* config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
(arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
* config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/cris/cris.c (cris_pass_by_reference): New.
(TARGET_PASS_BY_REFERENCE): New.
* config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
(FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
(FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
* config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
* config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
(frv_function_arg_pass_by_reference): Remove.
* config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
* config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
(ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
* config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
* config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
(ia64_pass_by_reference): Rename from
ia64_function_arg_pass_by_reference.
* config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
* config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
(iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
* config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
* config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
* config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
(m32r_pass_by_reference): Adjust prototype. Make static.
Handle mode sizes correctly.
* config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
(m68hc11_function_arg_pass_by_reference): Remove.
* config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
* config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
* config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
* config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
(mips_va_arg): Use pass_by_reference.
(mips_pass_by_reference): Rename from function_arg_pass_by_reference.
Handle mode sizes correctly.
* config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
* config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
* config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
(mmix_pass_by_reference): Rename from
mmix_function_arg_pass_by_reference.
* config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): True.
* config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
(mn10300_pass_by_reference): New.
* config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): True.
* config/pa/pa.c (pa_pass_by_reference): New.
(TARGET_PASS_BY_REFERENCE): New.
* config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): True.
* config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
* config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
(rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
* config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
* config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
(s390_pass_by_reference): Rename from
s390_function_arg_pass_by_reference.
(s390_function_arg_advance): Don't query pass-by-ref.
(s390_function_arg): Likewise.
(s390_gimplify_va_arg): Use pass_by_reference.
(s390_call_saved_register_used): Likewise.
* config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
(shcompact_byref, sh_pass_by_reference): New.
* config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(SHCOMPACT_BYREF): Remove.
* config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
* config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
(sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
(sparc_gimplify_va_arg): Use pass_by_reference.
* config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
* config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
(v850_pass_by_reference): New.
* config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
(FUNCTION_ARG_CALLEE_COPIES): True.
* doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
FUNCTION_ARG_PASS_BY_REFERENCE docs.
From-SVN: r84672
2004-07-13 23:24:27 -07:00
Richard Henderson
fe9841365e
target-def.h (TARGET_MUST_PASS_IN_STACK): New.
...
* target-def.h (TARGET_MUST_PASS_IN_STACK): New.
* target.h (struct gcc_target): Add calls.must_pass_in_stack.
* expr.h (MUST_PASS_IN_STACK): Remove.
* system.h (MUST_PASS_IN_STACK): Poison.
* tree.h (must_pass_in_stack_var_size): Declare.
(must_pass_in_stack_var_size_or_pad): Declare.
* calls.c (must_pass_in_stack_var_size): New.
(must_pass_in_stack_var_size_or_pad): Rename from
default_must_pass_in_stack.
* config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
* config/fr30/fr30.c (fr30_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
* config/frv/frv.c (frv_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
* config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
* config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
(ix86_must_pass_in_stack): Make static.
* config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
* config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
* config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
* config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
* config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
* config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
* config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
(mcore_must_pass_on_stack): Remove.
* config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
* config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
* config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
* config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
* config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
* config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
* config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
* config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
(TARGET_MUST_PASS_IN_STACK): New.
* config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
* config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
* config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
* config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
* config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
* config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
* doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
MUST_PASS_IN_STACK.
* calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
config/xtensa/xtensa.c: Use target hook.
From-SVN: r84606
2004-07-13 00:45:09 -07:00
Steve Ellcey
5e89a381f9
function.c (expand_function_start): Ensure r_save is in Pmode.
...
* function.c (expand_function_start): Ensure r_save is in Pmode.
* calls.c (prepare_call_address): Ensure static_chain_value is
in Pmode.
* builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
r_save_area are in Pmode.
* config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
fnaddr, and static_chain are in Pmode.
From-SVN: r84584
2004-07-12 22:45:14 +00:00
Vladimir Makarov
52b754e8fc
re PR target/16445 (Gcc 3.4 ICE on valid code)
...
2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
PR target/16445
* config/ia64/ia64.c (bundling): Don't count ignored insns.
From-SVN: r84580
2004-07-12 22:20:38 +00:00
James E Wilson
5806d4fd84
Fix for IA-64 union/long double ICE.
...
PR target/16364
* config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
do return a parallel if hfa_mode == XFmode and mode == TImode.
* gcc.c-torture/compile/20040709-1.c: New.
From-SVN: r84416
2004-07-09 16:10:26 -07:00
Vladimir Makarov
2d8f9759a2
re PR target/16414 (Gcc 3.4 ICE on valid code)
...
2004-07-08 Vladimir Makarov <vmakarov@redhat.com>
PR target/16414
* config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
of asm_noperands result.
From-SVN: r84318
2004-07-08 22:13:40 +00:00
Vladimir Makarov
25069b4269
re PR target/16130 (Gcc 3.4 ICE on valid code)
...
2004-07-07 Vladimir Makarov <vmakarov@redhat.com>
PR target/16130
PR target/16142
PR target/16143
* config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
insn.
From-SVN: r84202
2004-07-07 15:11:42 +00:00
Steven Bosscher
ca4f3d1319
alpha.c (alpha_use_dfa_pipeline_interface): Remove.
...
* config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
* config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
From-SVN: r84170
2004-07-06 21:21:31 +00:00
Richard Henderson
8fff4fc136
rtl.def (ADDRESSOF): Remove.
...
* rtl.def (ADDRESSOF): Remove.
* alias.c (rtx_equal_for_memref_p): Don't handle addressof.
(find_base_term, memrefs_conflict_p): Likewise.
* cse.c (fixed_base_plus_p, find_best_addr: Likewise.
(fold_rtx, cse_insn, set_live_p): Likewise.
* dwarf2out.c (mem_loc_descriptor): Likewise.
(add_location_or_const_value_attribute): Likewise.
* emit-rtl.c (copy_insn_1): Likewise.
* explow.c (memory_address): Likewise.
* expmed.c (store_split_bit_field): Likewise.
* expr.c (expand_expr_real_1): Likewise.
* function.c (instantiate_decl
(instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
* genrecog.c (preds, validate_pattern): Likewise.
* integrate.c (copy_rtx_and_substitute): Likewise.
* recog.c (general_operand, register_operand): Likewise.
(memory_address_p): Likwise.
* reload1.c (eliminate_regs, elimination_effects): Likewise.
* rtl.c (copy_rtx): Likewise.
* rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
(rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
* rtlhooks.c (gen_lowpart_general): Likewise.
* stmt.c (expand_asm_operands): Likewise.
* web.c (entry_register, replace_ref, web_main): Likewise.
* config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
alpha_expand_block_move, alpha_expand_block_clear): Likewise.
* config/arm/arm.c (thumb_rtx_costs): Likewise.
* config/c4x/c4x.c (c4x_valid_operands): Likewise.
* config/frv/frv.c (move_destination_operand, move_source_operand,
condexec_dest_operand, condexec_source_operand,
condexec_memory_operand): Likewise.
* config/h8300/h8300.h (PREDICATE_CODES): Likewise.
* config/ia64/ia64.c (general_xfmode_operand): Likewise.
(destination_xfmode_operand): Likewise.
* config/mips/mips.h (PREDICATE_CODES): Likewise.
* config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
* config/s390/s390.c (general_s_operand): Likewise.
* config/s390/s390.md (mov*): Likewise.
* config/sparc/sparc.h (PREDICATE_CODES): Likewise.
* c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
* expr.c (expand_expr_real_1): Likewise.
* stmt.c (expand_decl): Likewise.
* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
* function.c (struct fixup_replacement, struct insns_for_mem_entry,
postponed_insns, put_var_into_stack, put_reg_into_stack,
schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
gen_mem_addressof, flush_addressof, put_addressof_into_stack,
purge_bitfield_addressof_replacements, purge_addressof_replacements,
purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
struct insns_for_mem_walk_info, insns_for_mem_walk,
compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
setjmp_protect_args): Remove.
(push_function_context_to): Don't handle var_refs_queue.
(pop_function_context_from, free_after_compilation): Likewise.
(instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
(assign_parms, allocate_struct_function): Likewise.
(use_register_for_decl): New.
(expand_function_end): Don't setjmp_protect.
* function.h (struct emit_status): Update commentary.
(struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
(max_parm_reg, parm_reg_stack_loc): Remove.
* passes.c (DFI_addressof): Remove.
(dump_file_info): Remove addressof.
(rest_of_handle_addressof): Remove.
(rest_of_compilation): Don't call it.
* rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
* stmt.c (expand_decl): Use use_register_for_decl.
* tree.h: Update decls.
* web.c (mark_addressof): Remove.
* doc/invoke.texi (-dF): Remove.
ada/
* utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
cp/
* typeck.c (cxx_mark_addressable): Don't put_var_into_stack.
fortran/
* f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
treelang/
* treetree.c (tree_mark_addressable): Don't put_var_into_stack.
From-SVN: r84072
2004-07-04 01:07:15 -07:00
Richard Henderson
68d22aa55a
ia64.c (spill_xfmode_operand): Use assign_stack_temp instead of gen_mem_addressof.
...
* config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
instead of gen_mem_addressof.
* config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
TImode output register.
From-SVN: r84071
2004-07-03 20:03:00 -07:00
Andreas Schwab
fa9784263f
ia64.md: Define new attribute "empty".
...
* config/ia64/ia64.md: Define new attribute "empty".
(prologue_use, nop_x, insn_group_barrier): Set it.
* config/ia64/ia64.c (ia64_reorg): When looking for trailing call
skip over "empty" insns.
From-SVN: r84059
2004-07-03 16:59:38 +00:00
Richard Henderson
6429e3bef3
gimple-low.c (lower_function_body): Don't reset_block_changes here.
...
* gimple-low.c (lower_function_body): Don't reset_block_changes here.
* cfgexpand.c (tree_expand_cfg): Do it here.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
* config/ia64/ia64.c (ia64_output_mi_thunk): And here.
* config/mips/mips.c (mips_output_mi_thunk): And here.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
* config/sh/sh.c (sh_output_mi_thunk): And here.
* config/sparc/sparc.c (sparc_output_mi_thunk): And here.
From-SVN: r84012
2004-07-01 21:53:37 -07:00
Vladimir Makarov
f75ce96a7c
re PR target/15653 (Gcc 3.4 ICE on valid code)
...
2004-06-16 Vladimir Makarov <vmakarov@redhat.com>
PR target/15653
* config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
after shifts before asm.
From-SVN: r83243
2004-06-16 15:47:29 +00:00
Jason Merrill
67c605a553
i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
...
* config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/i386/i386.c (ix86_va_arg): Remove.
* config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/rs6000/rs6000.c (rs6000_va_arg): Remove.
* config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/alpha/alpha.c (alpha_va_arg): Remove.
* config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
* config/sparc/sparc.c (sparc_va_arg): Remove.
* tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
assignment might throw.
* tree-eh.c (tree_could_throw_p): Support non-call exceptions in
expressions.
From-SVN: r82992
2004-06-11 14:41:47 -04:00
Jason Merrill
23a60a0436
target.h (struct gcc_target): Change gimplify_va_arg_expr hook signature.
...
* target.h (struct gcc_target): Change gimplify_va_arg_expr
hook signature.
* tree-gimple.h: Adjust.
* config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
* config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
Use fold_convert.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
Use COMPLEX_EXPR for complex numbers. Use fold_convert.
* builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
(gimplify_va_arg_expr): Return GS_ERROR in error case.
Gimplify valist rather than calling stabilize_va_list.
From-SVN: r82925
2004-06-10 11:49:49 -04:00
Jason Merrill
cd3ce9b44c
Gimplify VA_ARG_EXPR into simpler forms.
...
* target.h: Add gimplify_va_arg_expr hook.
* target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
* fold-const.c (build_fold_addr_expr)
(build_fold_addr_expr_with_type): Move from gimplify.c.
* tree.h: Declare them.
* gimplify.c (gimplify_and_add): New fn.
(build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
(gimplify_array_ref_to_plus, gimplify_modify_expr)
(gimplify_expr): Use build_fold_*.
(copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
don't know how to gimplify it.
* builtins.c (std_gimplify_va_arg_expr): New fn.
(dummy_object): New static fn.
(gimplify_va_arg_expr): New fn.
(stabilize_va_list): Use build_fold_*.
* tree-gimple.h: Declare new fns.
* config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
(ix86_gimplify_va_arg): New fn.
* config/i386/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
(ia64_gimplify_va_arg): New fn.
* config/i386/rs6000.c (rs6000_gimplify_va_arg): New fn.
(TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
* config/i386/sparc.c (sparc_gimplify_va_arg): New fn.
* alias.c (get_varargs_alias_set): Just return 0 for now.
* c-objc-common.c (c_tree_printer): Improve handling of %T.
From-SVN: r82838
2004-06-09 11:32:44 -04:00
Vladimir Makarov
de101ad2f7
re PR target/15598 (Gcc 3.4 ICE on valid code)
...
2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
PR target/15598
* config/ia64/ia64.c (bundling): Add missed TYPE_A.
From-SVN: r82767
2004-06-08 15:58:28 +00:00
H.J. Lu
6bc709c1c5
re PR target/15383 (__float128 function name is used for long double)
...
2004-05-19 H.J. Lu <hongjiu.lu@intel.com>
PR target/15383
* config/ia64/ia64.c (ia64_expand_compare): Don't check
TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
cmptf_libfunc isn't set.
(ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
conventions.
(ia64_sysv4_init_libfuncs): New.
* config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
ia64_sysv4_init_libfuncs.
From-SVN: r82047
2004-05-19 19:15:45 -07:00
Diego Novillo
6de9cd9a88
Merge tree-ssa-20020619-branch into mainline.
...
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Zack Weinberg
7c3ac422e4
re PR target/14887 (compat/struct-ret-19 failure on ia64-hpux - argument passing bug)
...
PR 14887
* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
mode argument.
* config/ia64/ia64.c (ia64_hpux_file_end): Check
TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
From-SVN: r80571
2004-04-09 22:23:42 +00:00
H.J. Lu
2897f1d411
ia64.c (ia64_encode_section_info): Don't prod global register variables.
...
2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
* config/ia64/ia64.c (ia64_encode_section_info): Don't prod
global register variables.
From-SVN: r80501
2004-04-07 22:04:26 -07:00
Steve Ellcey
1f7aa7cdd6
hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
...
* config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
* config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
* config/ia64/ia64.c (ia64_init_libfuncs): New.
(ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
From-SVN: r79339
2004-03-11 19:21:19 +00:00
Paolo Bonzini
ec8e098d3d
alias.c (rtx_equal_for_memref_p): Use predicates to test rtx classes and new rtx class codes...
...
2004-02-07 Paolo Bonzini <bonzini@gnu.org>
* alias.c (rtx_equal_for_memref_p): Use predicates
to test rtx classes and new rtx class codes, possibly
splitting conditionals that tested against '<' and 'o'.
* caller-save.c (save_call_clobbered_regs): Likewise.
* combine.c (contains_muldiv, find_split_point, subst,
combine_simplify_rtx, simplify_if_then_else,
simplify_set, simplify_logical, expand_compound_operation,
make_compound_operation, if_then_else_cond, known_cond,
apply_distributive_law, cached_nonzero_bits,
cached_num_sign_bit_copies, simplify_shift_const,
gen_binary, simplify_comparison, update_table_tick,
record_value_for_reg, get_lsat_value_validate): Likewise.
* cse.c (mention_regs, find_best_addr, find_comparison_args,
fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
Likewise.
* emit-rtl.c (copy_insn_1): Likewise.
* expr.c (force_operand): Likewise.
* final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
* flow.c (notice_stack_pointer_modification_1,
invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
and_reg_cond, elim_reg_cond): Likewise.
* function.c (update_epilogue_consts): Likewise.
* genattrtab.c (attr_rtx_1): Likewise.
* genopinit.c (gen_insn): Likewise.
* integrate.c (subst_constants): Likewise.
* jump.c (reversed_comparison_code_parts,
reversed_comparison_code, delete_related_insns,
rtx_renumbered_equal_p): Likewise.
* local-alloc.c (block_alloc): Likewise.
* loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
canonicalize_condition): Likewise.
* loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
Likewise.
* optabs.c (add_equal_node, expand_binop): Likewise.
* predict.c (estimate_probability): Likewise.
* ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
* recog.c (validate_replace_rtx_1, comparison_operator,
offsettable_address_p, constrain_operands): Likewise.
* reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
Likewise.
* regclass.c (scan_one_insn): Likewise.
* regmove.c (stable_and_no_regs_but_for_p): Likewise.
* regrename.c (kill_autoinc_value): Likewise.
* reload.c (find_reusable_reload, find_reloads,
reg_overlap_mentioned_for_reload_p): Likewise.
* reload1.c (gen_reload, delete_address_reloads_1): Likewise.
* rtl.c (copy_rtx): Likewise.
* rtl.h (CONSTANT_P, INSN_P): Likewise.
* rtlanal.c (commutative_operand_precedence): Likewise.
* sched-deps.c (conditions_mutex_p): Likewise.
* sched-rgn.c (is_cfg_nonregular): Likewise.
* simplify-rtx.c (simplify_gen_binary,
simplify_gen_relational, simplify_replace_rtx,
simplify_unary_operation, simplify_binary_operation,
simplify_ternary_operation, simplify_rtx): Likewise.
* unroll.c (reg_dead_after_loop): Likewise.
* config/alpha/alpha.c (alpha_swapped_comparison_operator,
print_operand): Likewise.
* config/arc/arc.c (proper_comparison_operator): Likewise.
* config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
Likewise.
* config/avr/avr.c (_reg_unused_after): Likewise.
* config/frv/frv.c (frv_ifcvt_modify_tests,
frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
* config/i386/i386.c (ix86_comparison_operator,
ix86_carry_flag_operator, fcmov_comparison_operator,
arith_or_logical_operator, print_operand,
ix86_expand_binary_operator, ix86_binary_operator_ok):
Likewise.
* config/i386/i386.md: Likewise.
* config/ia64/ia64.c (not_postinc_memory_operand,
ia64_print_operand, update_set_flags, errata_emit_nops):
Likewise.
* config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
CONSTRAINT_OK_FOR_S): Likewise.
* config/ip2k/ip2k.c (mdr_resequence_xy_yx,
mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
Likewise.
* config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
eqne_comparison_operator, signed_comparison_operator):
Likewise.
* config/mips/mips.c (cmp_op, symbolic_expression_p):
Likewise.
* config/mmix/mmix (mmix_foldable_comparison_operator,
mmix_comparison_operator): Likewise.
* config/pa/pa.c (hppa_legitimize_address): Likewise.
* config/rs6000/rs6000.c (stmw_operation,
branch_comparison_operator, trap_comparison_operator,
ccr_bit): Likewise.
* config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
* config/s390/s390.c (s390_alc_comparison,
s390_slb_comparison):L Likewise.
* config/sh/sh.c (gen_block_redirect, reg_unused_after):
Likewise.
* config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
noov_compare_op, noov_compare64_op, v9_regcmp_op,
emit_hard_tfmode_operation, reg_unused_after)
* doc/md.texi, doc/rtl.texi: Likewise.
* ra-debug.c: Add 2004 to list of copyright years.
* unroll.c: Likewise.
* combine.c (simplify_logical): Remove dummy test,
(apply_distributive_law): Fix typo in comment.
GET_CODE (x) == AND so x is a commutative binary op.
* jump.c (delete_related_insns): simplify loop
condition, move testing of RTX codes inside the loop.
(rtx_renumbered_equal_p): do not use RTX_CODE.
* rtl.c (rtx_class): Declare as enum rtx_class.
* rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
Move to RTX_COMM_COMPARE class.
(HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
Move to RTX_CONST_OBJ class.
* rtl.h (enum rtx_class): New declaration,
(RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
OBJECT_P): New macros.
* config/sparc/sparc.c (noov_compare_op): Remove register
from parameter.
From-SVN: r78824
2004-03-03 08:35:33 +00:00
Steve Ellcey
b6b979d46b
ia64.h (no-inline-float-divide): New option.
...
* config/ia64/ia64.h (no-inline-float-divide): New option.
* config/ia64/ia64.h (no-inline-int-divide): New option.
* config/ia64/ia64.h (no-inline-sqrt): New option.
(TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
* config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
* config/ia64/ia64.c (ia64_override_options): Modify error
checking for inlined division/sqrt.
From-SVN: r78569
2004-02-27 17:17:01 +00:00
Richard Henderson
c263766cf3
toplev.c (dump_file_tbl): Rename from dump_file.
...
* toplev.c (dump_file_tbl): Rename from dump_file.
* bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
s/rtl_dump_file/dump_file/g.
From-SVN: r78399
2004-02-24 15:40:03 -08:00
Zack Weinberg
f9c887ac06
ia64.c (ia64_function_arg): In big-endian mode...
...
* config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
when passing single SFmode quantities in general registers,
put them in the high half.
From-SVN: r78119
2004-02-19 21:39:52 +00:00
Zack Weinberg
57d4f65c73
dwarf2out.c (loclabel_num): Move outside #ifdef DWARF2_DEBUGGING_INFO and mark with GTY(()).
...
* dwarf2out.c (loclabel_num): Move outside #ifdef
DWARF2_DEBUGGING_INFO and mark with GTY(()).
* config/ia64/ia64.c (struct extern_func_list,extern_func_head):
Mark with GTY(()).
(ia64_hpux_add_extern_decl): Save the decl, not the name string.
Allocate memory with ggc_alloc. No need to copy anything.
(ia64_hpux_file_end): Update to match.
From-SVN: r78061
2004-02-18 23:58:00 +00:00
Mark Mitchell
8d04e6db1f
re PR c++/11326 (C++ IA64 ABI: 3.1.4: sometimes pointer to temporary return value is implicit first parameter preceding "this")
...
PR c++/11326
* config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
fntype.
From-SVN: r78028
2004-02-18 14:21:13 +00:00
Mark Mitchell
57782ad852
re PR c++/11326 (C++ IA64 ABI: 3.1.4: sometimes pointer to temporary return value is implicit first parameter preceding "this")
...
PR c++/11326
* c-common.c (flag_abi_version): Remove.
* c-common.h (flag_abi_version): Likewise.
* c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
* c.opt (fabi-version): Remove.
* calls.c (expand_call): Always pass a function type to
struct_value_rtx. Use convert_memory_address.
* common.opt (fabi-version): Add it.
* flags.h (flag_abi_version): Likewise.
(abi_version_at_least): New macro.
* opts.c (common_handle_option): Add OPT_fabi_version.
* toplev.c (flag_abi_version): Define it.
* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
New function.
(ia64_output_mi_thunk): Use it.
(ia64_struct_value_rtx): Likewise.
PR c++/11326
* cp-tree.h (abi_version_at_least): Remove.
* mangle.c: Include flags.h.
PR c++/11326
* g++.dg/abi/structret1.C: New test.
From-SVN: r77968
2004-02-17 18:32:45 +00:00
Kazu Hirata
68776c4324
ia64.c, [...]: Fix comment typos.
...
* config/ia64/ia64.c, config/mips/mips.c,
config/mmix/mmix-modes.def: Fix comment typos.
From-SVN: r77851
2004-02-15 14:53:41 +00:00
Josef Zlomek
014a1138d6
Josef Zlomek <zlomekj@suse.cz>
...
Josef Zlomek <zlomekj@suse.cz>
* Makefile.in (var-tracking.o): New.
* common.opt (fvar-tracking): New.
* flags.h (flag_var_tracking): New.
* gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
* opts.c (common_handle_option): Add OPT_fvar_tracking.
* print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
* rtl.c (note_insn_name): Likewise.
* rtl.def (VAR_LOCATION): New.
* rtl.h (NOTE_VAR_LOCATION): New.
(NOTE_VAR_LOCATION_DECL): New.
(NOTE_VAR_LOCATION_LOC): New.
(enum insn_note): NOTE_INSN_VAR_LOCATION was added.
(variable_tracking_main): New exported function.
* timevar.def (TV_VAR_TRACKING): New.
* toplev.c (enum dump_file_index): Added DFI_vartrack.
(dump_file): "vartrack" was added (-dV).
(flag_var_tracking): New.
(f_options): "var-tracking" was added.
(rest_of_handle_variable_tracking): New function.
(rest_of_compilation): Run variable tracking.
(process_options): If user has not specified flag_var_tracking set it
according to optimize, debug_info_level and debug_hooks.
* tree.h (frame_base_decl): New.
* var-tracking.c: New file.
* config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
(ia64_override_options): Set flags to run variable tracking in machine
dependent reorg instead of toplev.c.
(ia64_reorg): Run variable tracking if wanted.
* doc/invoke.texi: Mention variable tracking in -dV,
add and -fvar-tracking.
* doc/passes.texi: Added variable tracking pass.
Daniel Berlin <dberlin@dberlin.org>
* debug.h (struct gcc_debug_hooks): Added var_location debug hook.
* dbxout.c (dbx_debug_hooks): Likewise.
(xcoff_debug): Likewise.
* debug.c (do_nothing_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_debug_hooks): Likewise.
* dwarfout.c (dwarf_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* final.c (final_scan_insn): Call var_location debug hook for each
NOTE_INSN_VAR_LOCATION.
Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>
From-SVN: r77418
2004-02-06 20:03:45 +00:00
Kazu Hirata
66fcab25e9
* config/ia64/ia64.c (REG_GP): Remove.
...
From-SVN: r77353
2004-02-05 23:53:42 +00:00
Kazu Hirata
5efb104680
alpha.c, [...]: Revert the replacements of "FALLTHRU" with "Fall through" done in the previous...
...
* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
config/ia64/ia64.c, config/ia64/unwind-ia64.c,
config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
config/pdp11/pdp11.c, config/rs6000/rs6000.c,
config/sparc/sparc.c, config/vax/vax.c: Revert the
replacements of "FALLTHRU" with "Fall through" done in the
previous patch.
From-SVN: r77269
2004-02-04 20:27:12 +00:00
Kazu Hirata
ff482c8d4d
darwin.c, [...]: Fix comment formatting.
...
* config/darwin.c, config/darwin.h, config/freebsd-spec.h,
config/arm/arm.c, config/arm/arm.md,
config/cris/cris-protos.h, config/fr30/fr30.c,
config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
config/ip2k/ip2k.md, config/ip2k/libgcc.S,
config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
config/m68k/m68k.c, config/m68k/netbsd-elf.h,
config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
config/ns32k/netbsd.h, config/ns32k/ns32k.c,
config/ns32k/ns32k.h, config/pdp11/pdp11.h,
config/rs6000/darwin-ldouble.c, config/s390/s390.h,
config/s390/s390.md, config/sparc/netbsd-elf.h,
config/sparc/openbsd.h, config/sparc/sparc.c,
config/xtensa/lib2funcs.S: Fix comment formatting.
From-SVN: r77268
2004-02-04 20:01:05 +00:00
Kazu Hirata
59b9a953b6
alpha.c, [...]: Fix comment typos.
...
* config/alpha/alpha.c, config/arc/arc.c,
config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
config/ia64/ia64.c, config/ia64/unwind-ia64.c,
config/iq2000/iq2000.c, config/m32r/m32r.c,
config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
config/rs6000/rs6000.h, config/sparc/sparc.c,
config/vax/vax.c: Fix comment typos. Follow spelling
conventions.
From-SVN: r77267
2004-02-04 19:46:25 +00:00
Kazu Hirata
a556fd39ab
alpha.c, [...]: Use const0_rtx instead of GEN_INT (0).
...
* config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
config/m32r/m32r.md, config/m68hc11/m68hc11.c,
config/mips/mips.md, config/mmix/mmix.c,
config/mn10300/mn10300.c, config/mn10300/mn10300.md,
config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
config/rs6000/altivec.md, config/s390/s390.c,
config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
Use const0_rtx instead of GEN_INT (0). Do the same for other
constants that are readily available.
From-SVN: r77161
2004-02-03 06:43:59 +00:00
Zack Weinberg
2ffe0e0241
ia64.c (ia64_split_tmode, [...]): Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a scratch pointer.
...
2004-01-28 Zack Weinberg <zack@codesourcery.com>
Jim Wilson <wilson@specifixinc.com>
* config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
scratch pointer.
(ia64_secondary_reload_class): Delete case GR_REGS.
* config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
Do not allocate a scratch register.
(reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
From-SVN: r76798
2004-01-28 18:13:28 +00:00
Zack Weinberg
826b47cc77
ia64.c (ia64_function_arg): When placing HFAs in integer registers...
...
* ia64.c (ia64_function_arg): When placing HFAs in integer
registers, do not special case the mode used for complex
types. Do not advance int_regs until the current register
is full.
From-SVN: r76758
2004-01-27 22:48:11 +00:00
Kazu Hirata
351a758bd9
ia64-protos.h: Remove the prototype for ia64_setup_incoming_varargs and ia64_return_in_memory.
...
* config/ia64/ia64-protos.h: Remove the prototype for
ia64_setup_incoming_varargs and ia64_return_in_memory.
* config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(ia64_setup_incoming_varargs): Adjust the arguments to meet
the requirement of TARGET_SETUP_INCOMING_VARARGS.
(ia64_return_in_memory): Make it static. Change the return
type to bool from int. Add an argument.
(ia64_struct_value_rtx): New.
* config/ia64/ia64.h: Remove commented-out definitions of
PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
PROMOTE_PROTOTYPES.
(RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE_REGNUM): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
From-SVN: r76635
2004-01-26 15:32:42 +00:00
Zack Weinberg
f57fc998ee
ia64.md (*movti_internal): C output template extracted to ia64.c.
...
* config/ia64/ia64.md (*movti_internal): C output template
extracted to ia64.c.
(*movti_internal_reg): Delete.
(reload_inti, reload_outti): Use the correct mode on operand 2
in the first place, don't fix it up in the output template.
(movtf, reload_ointf, reload_outtf): New expanders.
(*movtf_internal): New define_insn_and_split.
* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
make static; do not hand TFmode CONST_DOUBLEs to split_double.
(ia64_split_tmode_move): New function, body mostly pulled
from ia64.md:*movti_internal.
(ia64_function_arg_words): New function, extracted common
logic from ia64_function_arg et seq.
(ia64_function_arg_offset): Likewise. Handle correctly the
case of a scalar quantity 16 bytes wide with only 8-byte alignment.
(ia64_function_arg, ia64_function_arg_partial_nregs)
(ia64_function_arg_advance): Use ia64_function_arg_words and
ia64_function_arg_offset.
(ia64_function_value): TCmode does not go in float regs.
(ia64_secondary_reload_class): Also handle TFmode.
* config/ia64/ia64-protos.h: Remove prototype for
ia64_split_timode; add prototype for ia64_split_tmode_move.
From-SVN: r75956
2004-01-16 01:27:38 +00:00
Zack Weinberg
4c494a15bb
ia64.c (ia64_va_arg): Pass pointer for variable-sized type through convert_memory_address.
...
gcc:
* 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.
gcc/testsuite:
* lib/gcc-dg.exp (dg-prune-output): New annotation.
(additional_prunes): New global.
(gcc-dg-prune): Handle additional per-test pruning.
(dg-test): Clear additional_prunes between tests.
* gcc.c-torture/compile/920625-1.c: Remove xfail. Use
dg-prune-output to avoid spurious failures from assembler
complaining about nonexistent WAW violations.
* gcc.c-torture/compile/981223-1.c: Remove dg-options line.
Use dg-prune-output to avoid spurious failures from assembler
warning about Itanium B-step errata.
From-SVN: r74980
2003-12-23 20:25:49 +00:00
Vladimir Makarov
c856f53627
ia64.c: Add more comments about insn bundling.
...
2003-12-17 Vladimir Makarov <vmakarov@redhat.com>
* config/ia64/ia64.c: Add more comments about insn bundling.
From-SVN: r74751
2003-12-17 20:29:02 +00:00
Steven Bosscher
a813c11120
basic-block.h (BLOCK_HEAD, BLOCK_END): Remove.
...
2003-12-11 Steven Bosscher <steven@gcc.gnu.org>
* basic-block.h (BLOCK_HEAD, BLOCK_END): Remove.
(BLOCK_HEAD_TREE, BLOCK_END_TREE): 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: Add missing piece from earlier patch. Dunno what
I was thinking...
From-SVN: r74520
2003-12-11 00:20:51 +00:00
Mark Mitchell
c743369c89
hpux.h (TARGET_HAVE_TLS): Define it to false.
...
* 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.
From-SVN: r74272
2003-12-04 05:46:16 +00:00
James E Wilson
4582b84915
re PR target/8407 ([IA-64] ICE in simplify_gen_subreg, at simplify-rtx.c:2711 with very simple code)
...
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.
From-SVN: r74142
2003-12-01 17:12:11 -08:00
Richard Kenner
b6a41a622f
ia64.c (ia64_assemble_integer): Test POINTER_SIZE, not TARGET_ILP32.
...
* config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE,
not TARGET_ILP32.
(ia64_initialize_trampoline): Use globalize_label target call.
From-SVN: r73039
2003-10-29 09:23:45 -05:00
Zack Weinberg
24ea7948dc
ia64.c (cmptf_libfunc): New static.
...
* 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/ia64.md (cmptf): New expander.
From-SVN: r73028
2003-10-29 01:28:09 +00:00
Zack Weinberg
b38ba46301
ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
...
* ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants.
(*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.
* ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR,
TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT):
New macros.
(TARGET_SWITCHES): Add -minline-sqrt-min-latency and
-minline-sqrt-max-throughput.
* 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
UNSPEC_FR_SQRT_RECIP_APPROX.
From-SVN: r73027
2003-10-29 00:55:43 +00:00
Zack Weinberg
02befdf47f
genmodes.c (struct mode_data): Add contained and next_cont fields.
...
* genmodes.c (struct mode_data): Add contained and next_cont
fields.
(complete_mode): Maintain linked list of modes that have a
given component.
(emit_mode_unit_size): Delete.
(emit_mode_nunits): New.
(emit_insn_modes_c): Update to match.
(emit_mode_adjustments): Propagate size and alignment
adjustments from component modes to their containers.
* machmode.h (mode_unit_size): Delete.
(mode_nunits): New.
(GET_MODE_NUNITS): Just return the value in the table.
(GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
GET_MODE_SIZE.
* expmed.c (store_bit_field, extract_bit_field): Can use a
plain move instruction if bitsize >= GET_MODE_BITSIZE of
destination/source mode, respectively.
* varasm.c (assemble_real): Write out the full size of the
constant, not just its bitsize.
(output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
* config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
alignment of XF and TF modes in compliance with ia64 ABIs.
Can now hardwire the format of both modes.
* config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
(general_tfmode_operand, destination_tfmode_operand)
(tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
general_xfmode_operand, destination_xfmode_operand,
xfreg_or_fp01_operand, spill_xfmode_operand respectively.
(ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
and float80_type be 96 so they get XFmode. Use !TARGET_HPUX,
not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
__float128.
* config/ia64/ia64.h: Default TARGET_HPUX to 0.
Change TFmode to XFmode wherever appropriate. Remove all
references to INTEL_EXTENDED_IEEE_FORMAT.
(LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
(PREDICATE_CODES): Update to match function renames.
* config/ia64/ia64.md: Change TF to XF throughout; rename all
patterns to match. Remove all references to
INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match
function renames.
* config/ia64/ia64-protos.c: Update all prototypes to match
renamed functions.
* config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
* config/ia64/lib1funcs.asm: Add __divxf3 as new name for
__divtf3; keep old name for backward compatibility.
(L__compat): New section providing forwarding stubs for
__fixtfti, __fixunstfti, __floattitf.
* config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
From-SVN: r72916
2003-10-25 02:03:40 +00:00
Zack Weinberg
5634cf7242
ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
...
* config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
* config/ia64/ia64.c (ia64_expand_fetch_and_op,
ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
DImode. Use convert_move to load ar.ccv.
(ia64_expand_compare_and_swap): Likewise.
If expand_expr doesn't put 'old' and 'new' in the proper
modes, run them through convert_to_mode.
From-SVN: r72770
2003-10-21 21:22:42 +00:00
Steve Ellcey
c80831866f
ia64.c (ia64_expand_call): Force function address to DImode.
...
* config/ia64/ia64.c (ia64_expand_call): Force function address
to DImode.
* config/ia64/ia64.md (call_gp): Put DImode on operand 0.
From-SVN: r72489
2003-10-14 19:25:54 +00:00
Zack Weinberg
94134f429f
Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o with min-insn-modes.o.
...
* Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
with min-insn-modes.o.
(STAGESTUFF): Add min-insn-modes.c.
(genobjs): Add genmodes.o.
(print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
(insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
(min-insn-modes.c, min-insn-modes.o): New rules.
(s-modes): Also generate min-insn-modes.c.
($(BUILD_PREFIX_1)insn-modes.o): Kill.
* genmodes.c (struct mode_data): Add format field.
(blank_mode, validate_mode, complete_mode): Update to match.
(make_scalar_mode): Separate into make_int_mode and make_float_mode.
(_SCALAR_MODE): Kill.
(FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
(emit_insn_modes_c_header): Adjust.
(emit_min_insn_modes_c_header, emit_real_format_for_mode)
(emit_min_insn_modes_c): New functions.
(emit_insn_modes_c): Call emit_real_format_for_mode.
(main): Add -m option to generate min-insn-modes.c.
* machmode.h: Update documentation. Add format argument to
all uses of FLOAT_MODE.
* real.c: Don't define real_format_for_mode here.
* dwarfout.c: Move default definition of PRINT_REG...
* defaults.h: ...here.
* print-rtl.c: Include tm_p.h.
(DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
Kill.
(print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround
this entire block with #ifndef GENERATOR_FILE.
* regclass.c: Unconditionally define reg_names.
* config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
Don't define DEBUG_REGISTER_NAMES.
* config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
redefinition of REGISTER_NAMES.
* config/i386/i386.h: Don't define DEBUG_PRINT_REG.
* combine.c: Change all preprocessor conditionals on
EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
for clarity.
* genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
* configure.in: Don't define EXTRA_CC_MODES.
* configure, config.in: Regenerate.
* doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
* config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
May assume that GET_MODE_CLASS is accurate for extra CC modes
at all times.
* config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
number of arguments to aggregate_value_p.
* genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
* machmode.def: Explain ARCH-modes.def. Document
RESET_FLOAT_FORMAT. Improve commentary on various mode
clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
XF, or TF modes here. Remove backward-compatibility
definition of CC.
* config/alpha/alpha-modes.def: New file; define TF mode.
* config/arc/arm-modes.def: Define XF mode.
* config/c4x/c4x-modes.def: Define QF and HF modes. Unset
float format for SF and DF modes.
* config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
* config/i386/i386-modes.def: Define XF and TF modes.
* config/i960/i960-modes.def: Define TF mode.
* config/ia64/ia64-modes.def: Define TF and OI modes.
* config/m68k/m68k-modes.def: New file; define XF mode.
* config/mips/mips-modes.def: New file; define TF mode, reset
formats for SF and DF modes.
* config/pa/pa-modes.def: Define TF mode.
* config/rs6000/rs6000.c: Define TF and PSI modes.
* config/s390/s390-modes.def: Define OI mode.
* config/sh/sh-modes.def: New file; define PSI mode.
* config/sparc/sparc-modes.def: Define TF mode.
* config/vax/vax-modes.def: New file; reset formats for SF and
DF modes.
* config/c4x/c4x.c (c4x_override_options): No need to mess
with real_format_for_mode or set REAL_MODE_FORMATs.
(c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
variable.
* config/i386/i386.c (override_options): No need to set
REAL_MODE_FORMATs here.
* config/i960/i960.c (i960_initialize): Likewise.
* config/m68k/m68k.c (m68k_override_options): Likewise.
* config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
for TFmode only if not the default.
* config/mips/mips.c (override_options): Likewise.
* config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
DFmode only if not the default.
* config/i370/i370.h (RET_REG): Don't consider TFmode.
* config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
* config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
of modes that don't appear anywhere in the machine description.
* config/arc/arc-modes.def, config/arm/arm-modes.def
* config/c4x/c4x-modes.def, config/frv/frv-modes.def
* config/i386/i386-modes.def, config/i960/i960-modes.def
* config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
* config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
* config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
* config/sparc/sparc-modes.def: Convert to new style for
declaring extra CC modes.
From-SVN: r72440
2003-10-13 21:16:33 +00:00
Richard Kenner
738e7b39e0
ia64.c (ia64_vms_init_libfuncs): New function.
...
* config/ia64/ia64.c (ia64_vms_init_libfuncs): New function.
(ia64_output_function_prologue): Only write .prologue if --with-gnu-as.
(ia64_initialize_trampoline): If not using GAS, declare trampoline
as global.
* config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
(ASM_OUTPUT_DEBUG_LABEL): Likewise.
From-SVN: r72316
2003-10-10 18:44:41 -04:00
Zack Weinberg
85363ca094
* libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
...
(LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
(LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
(LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
(LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
(LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
(LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
(LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
(LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
(LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
(LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
(extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
(extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
(truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
(trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
(floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
(floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
(floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
(floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
(fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
(fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
(fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
(fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
(fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
(fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
(fixunstfti_libfunc): Delete.
* optabs.h (struct optab_handlers): Break out of struct optab.
(struct convert_optab, convert_optab, enum convert_optab_index,
convert_optab_table, sext_optab, zext_optab, trunc_optab,
sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
sfloat_optab, ufloat_optab): New.
(set_conv_libfunc): Prototype.
(GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
(trunc_optab): Renamed btrunc_optab.
* builtins.c (expand_builtin_mathfn): Update to match.
* optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete.
(convert_optab_table, new_convert_optab, init_convert_optab)
(init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs)
(set_conv_libfunc): New.
(can_extend_p, gen_extend_insn, can_fix_p, can_float_p)
(expand_float, expand_fix): Use new conversion optabs,
not old insn code tables or long chains of ifs.
(init_optabs): No need to clear old insn code tables.
Initialize the new optabs, not the old libfunc array entries.
Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
* genopinit.c: Initialize conversion optabs, not the
former insn code tables. Remove unnecessary casts.
Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
* expr.c (convert_move): Remove redundant check that
to_real==from_real. Use the conversion optabs instead
of long chains of tests of modes. Move partial-integer-mode
interconversion above all integer conversion. Do not recurse
on a value forced into a register in the original mode.
* config/gofast.h, config/frv/frv.c, config/ia64/ia64.c
* config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
* config/sparc/sparc.c: Use set_conv_libfunc to adjust entries
in new conversion optabs; do not reference the old libfunc
array entries. No need to include libfuncs.h.
From-SVN: r72178
2003-10-07 02:23:42 +00:00
Zack Weinberg
70a01792d8
real.h (REAL_MODE_FORMAT): New macro.
...
* real.h (REAL_MODE_FORMAT): New macro.
* c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c
* config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h
* config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c
* config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c
* config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring
directly to real_format_for_mode array, wherever possible.
From-SVN: r72168
2003-10-06 22:47:32 +00:00
Zack Weinberg
c903456103
* libfuncs.h
...
(LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2)
(LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2)
(LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2)
(LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2)
(LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2)
(LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2)
(LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2)
(eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc)
(lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc)
(nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc)
(lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc)
(gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc)
(unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc)
(gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc
(eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc)
(lttf2_libfunc, letf2_libfunc, unordtf2_libfunc):
Delete.
* optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le)
(OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab)
(le_optab, unord_optab): New.
* optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs
from the code_to_optab table, not a giant switch; use
swap_condition; do widening only if a comparison function that
we can call exists in a wider mode, not if a cmp_optab insn or
libfunc exists in a wider mode; call protect_from_queue
exactly once on each operand.
(init_optabs): Initialize the new optabs, not the deleted libfuncs.
* config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
* config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
Set floating point comparison libfuncs using set_optab_libfunc
on the appropriate optab.
* config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
selector conditionals.
From-SVN: r72101
2003-10-04 21:36:08 +00:00
Zack Weinberg
c15c90bbfe
target.h (init_libfuncs): New hook.
...
* target.h (init_libfuncs): New hook.
* target-def.h: Default TARGET_INIT_BUILTINS and
TARGET_INIT_LIBFUNCS to hook_void_void. Add
TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
* builtins.c (default_init_builtins): Delete.
* expr.h (default_init_builtins): Delete prototype.
* doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
and UMODDI3_LIBCALL,
* Makefile.in (optabs.o): Depends on target.h.
* defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
* optabs.c: Include target.h.
(prepare_float_lib_cmp): No need for #ifdef around use of
FLOAT_LIB_COMPARE_RETURNS_BOOL.
(set_optab_libfunc): New function.
(init_optabs): Delete use of all *_LIBCALL defines.
Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
* optabs.h: Prototype set_optab_libfunc.
* config.gcc: Remove all references to pa/long_double.h,
ia64/hpux_longdouble.h, and gofast.h.
(mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
* config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
* config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
* config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
* config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
* config/sparc/sparc.c, config/vax/vax.c:
Provide a definition for TARGET_INIT_LIBFUNCS. Where
necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
* config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
* config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
* config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
* config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
* config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
* config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
* config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
* config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
* config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
* config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
* config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
* config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
* config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
SUN_INTEGER_MULTIPLY_64 to 0.
* config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
SUN_INTEGER_MULTIPLY_64 to 1.
* config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
SUN_INTEGER_MULTIPLY_64 to 0.
* config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
Define US_SOFTWARE_GOFAST.
* config/vax/vax.h: Default TARGET_ELF to 0.
* config/vax/elf.h: Redefine TARGET_ELF to 1.
* config/gofast.h: Don't define any macros here. Provide one
static function, gofast_maybe_init_libfuncs, which does what
INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
is already defined. Do not clear negation libfuncs. Do
not mess with HFmode, XFmode, or TFmode libfuncs.
* config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
From-SVN: r72009
2003-10-02 00:44:29 +00:00
Richard Henderson
ddd2d57e72
c-format.c (gcc_diag_char_table): Add %J.
...
* c-format.c (gcc_diag_char_table): Add %J.
(gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
(check_format_types): Fix wanted_type name lookup.
(init_dynamic_diag_info): Setup %J.
* diagnostic.c (text_specifies_location): Implement %J.
* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.
* tree-inline.c: Include intl.h
(inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
* Makefile.in (tree-inline.o): Update.
cp/
* decl.c, decl2.c, pt.c: Use %J in diagnostics.
java/
* check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
testsuite/
* gcc.dg/format/gcc_diag-1.c: Add tests for %J.
From-SVN: r71619
2003-09-20 22:07:20 -07:00
Kazu Hirata
d3704c4668
expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
...
* expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
(FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
* config/ia64/ia64.c (ia64_hpux_function_arg_padding):
Likewise.
* config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
Likewise.
* config/rs6000/rs6000.c (function_arg_padding): Likewise.
* config/sparc/sparc.c (function_arg_padding): Likewise.
From-SVN: r71406
2003-09-15 20:23:43 +00:00
Mark Mitchell
bf9ab6b657
Fix thinko in last patch.
...
From-SVN: r71228
2003-09-09 03:51:56 +00:00
Mark Mitchell
9649812aae
langhooks-def.h (lhd_register_builtin_type): New function.
...
* langhooks-def.h (lhd_register_builtin_type): New function.
(LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
* langhooks.h (lang_hooks_for_types): Add register_builtin_type.
* langhooks.c (lhd_register_builtin_type): New function.
* c-common.h (c_register_builtin_type): Declare.
* c-common.c (c_register_builtin_type): New function.
* c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
c_register_builtin_type.
* config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
__float80, and __float128 macros.
* config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
__float80, and __float128 types.
* cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
c_register_builtin_type.
* gcc.dg/ia64-types1.c: New test.
* gcc.dg/ia64-types2.c: Likewise.
From-SVN: r71227
2003-09-09 03:35:31 +00:00
Richard Henderson
0d433a6a90
ia64.c (ia64_expand_tls_address): Properly truncate result when op0 is SImode.
...
* config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate
result when op0 is SImode.
From-SVN: r70790
2003-08-25 16:41:10 -07:00
Mark Mitchell
36c216e5d0
ia64.md (*ptr_extend_plus_1): Rename to ...
...
* config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ...
(ptr_extend_plus_imm): ... this.
* config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4
optimization in C++.
(ia64_output_mi_thunk): Support ILP32 mode.
From-SVN: r70692
2003-08-22 17:58:05 +00:00
Andreas Jaeger
9c808aadb0
alpha.md: Remove usage of PARAMS.
...
* config/alpha/alpha.md: Remove usage of PARAMS.
* config/i386/cygwin.h: Convert K&R prototypes to ISO C90.
* config/i386/i386-interix.h: Likewise.
* config/i386/winnt.c: Likewise.
* config/i386/cygming.h: Likewise.
* config/i386/cygwin2.c: Likewise.
* config/darwin.c: Likewise.
* config/darwin-c.c: Likewise.
* config/darwin-protos.h: Likewise.
* config/darwin.h: Likewise.
* config/s390/s390-protos.h: Likewise.
* config/s390/s390.c: Likewise.
* config/ia64/ia64.c: Likewse
* config/ia64/ia64-protos.h: Likewise.
From-SVN: r70515
2003-08-17 12:00:04 +02:00
Kaveh R. Ghazi
29da5c9288
avr.c (avr_init_once): Use xcalloc in lieu of xmalloc/memset.
...
* config/avr/avr.c (avr_init_once): Use xcalloc in lieu of
xmalloc/memset.
* config/ia64/ia64.c (ia64_reorg): Likewise.
* conflict.c (conflict_graph_new): Likewise.
* fixinc/fixincl.c (run_compiles): Likewise.
* genattrtab.c (optimize_attrs): Likewise.
* genrecog.c (new_decision): Likewise.
* haifa-sched.c (schedule_block): Likewise.
* hashtable.c (ht_create): Likewise.
From-SVN: r70337
2003-08-11 21:47:39 +00:00
Richard Henderson
af1e551876
re PR target/11535 (__builtin_return_address may not work on ia64)
...
PR target/11535
* config/ia64/ia64.c (ia64_initial_elimination_offset): Remove
RETURN_ADDRESS_POINTER_REGNUM.
(ia64_expand_prologue): Don't frob it.
(ia64_output_function_epilogue): Likewise.
(ia64_return_addr_rtx): New.
(ia64_split_return_addr_rtx): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement.
(RETURN_ADDRESS_POINTER_REGNUM): Remove.
(GENERAL_REGNO_P): Don't check it.
(AR_*_REGNUM): Renumber.
(FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM.
(CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise.
(REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise.
(ELIMINABLE_REGS, REGISTER_NAMES): Likewise.
(RETURN_ADDR_RTX): Use ia64_return_addr_rtx.
* config/ia64/ia64.md (UNSPEC_RET_ADDR): New.
(movdi_ret_addr): New.
From-SVN: r70263
2003-08-08 16:49:57 -07:00
David Mosberger
a32767e452
extend.texi (Function Attributes): Document the IA-64 version of the "model" attribute.
...
* doc/extend.texi (Function Attributes): Document the IA-64 version
of the "model" attribute.
* config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro.
(SYMBOL_REF_SMALL_ADDR_P): Ditto.
(PREDICATE_CODES): Mention "small_addr_symbolic_operand".
* config/ia64/ia64.c (ia64_handle_model_attribute): New function.
(ia64_encode_section_info): Likewise.
(ia64_attribute_table): Add "model" attribute.
(TARGET_ENCODE_SECTION_INFO): Define.
(small_addr_symbolic_operand): New function.
(got_symbolic_operand): Return 0 for a symbolref to an object
in the small address area.
(enum ia64_addr_area): New type.
(small_ident1): New variable.
(small_ident2): Likewise.
(init_idents): New function.
(ia64_get_addr_area): Likewise.
(ia64_encode_addr_area): Likewise.
(ia64_encode_section_info): Likewise.
(ia64_expand_load_address): For symbolic references to objects in
the small-address-area, load the address via gen_rtx_SET() (which,
eventually, will expand into "addl").
From-SVN: r70209
2003-08-06 14:08:29 -07:00
Richard Henderson
b23ba0b898
re PR target/10907 ([IA64] gcc violates the ia64 ABI)
...
PR target/10907
* config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end
even with !TARGET_CONST_GP.
(ia64_function_ok_for_sibcall): Reject non-local functions.
From-SVN: r69515
2003-07-17 09:33:22 -07:00
Kazu Hirata
2a43945fa5
h8300.c: Fix comment typos.
...
* config/h8300/h8300.c: Fix comment typos.
* config/h8300/h8300.md: Likewise.
* config/i386/athlon.md: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/pentium.md: Likewise.
* config/ia64/ia64.c: Likewise.
* config/ia64/itanium1.md: Likewise.
* config/ia64/itanium2.md: Likewise.
* config/m32r/m32r.md: Likewise.
* config/m68hc11/m68hc11.c: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mips/sr71k.md: Likewise.
* config/mips/t-iris5-as: Likewise.
* config/mmix/mmix.h: Likewise.
* config/ns32k/ns32k.h: Likewise.
* config/ns32k/NOTES: Fix a typo.
From-SVN: r69021
2003-07-06 23:05:13 +00:00
Kazu Hirata
c51e6d855e
emmintrin.h: Fix comment typos.
...
* config/i386/emmintrin.h: Fix comment typos.
* config/i386/i386.c: Likewise.
* config/i386/i386.h: Likewise.
* config/i386/sco5.h: Likewise.
* config/ia64/ia64.c: Likewise.
* config/ia64/itanium2.md: Likewise.
From-SVN: r68857
2003-07-02 21:33:54 +00:00
Nathan Sidwell
2e04021970
rtl.h (emit_note): Remove FILE parameter.
...
* rtl.h (emit_note): Remove FILE parameter.
* emit-rtl.c (emit_line_note): Adjust emit_note call.
(emit_note): Remove FILE parameter. Adjust.
* builtins.c (expand_builtin_expect): Adjust emit_note call.
* c-semantics.c (genrtl_scope_stmt): Likewise.
(expand_stmt): Likewise.
* cfglayout.c (reemit_insn_block_notes): Likewise.
(duplicate_insn_chain): Likewise.
* except.c (expand_eh_region_start, expand_eh_region_end,
sjlj_emit_function_enter): Likewise.
* explow.c (probe_stack_range): Likewise.
* expr.c (emit_block_move_via_loop): Likewise.
* function.c (init_function_start, expand_function_start,
expand_function_end, thread_prologue_and_epilogue_insns): Likewise.
* integrate.c (expand_inline_function, copy_insn_list): Likewise.
* reg-stack.c (compensate_edge): Likewise.
* reload1.c (reload): Likewise.
* rtlanal.c (hoist_insn_to_edge): Likewise.
* stmt.c (expand_fixup, expand_start_loop, expand_start_null_loop,
expand_loop_continue_here, expand_end_loop, expand_continue_loop,
expand_exit_loop_top_cond, expand_value_return,
expand_start_bindings_and_block, expand_end_bindings,
expand_decl_cleanup, expand_start_case): Likewise.
* unroll.c (copy_loop_body
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_eh_toc_restore,
rs6000_emit_allocate_stack, rs6000_output_function_prologue,
rs6000_output_function_epilogue, rs6000_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* ada/misc.c (record_code_position): Likewise.
From-SVN: r68561
2003-06-27 09:49:44 +00:00
Richard Henderson
4e14f1f90f
ia64.c (ia64_expand_call): Don't add ar.pfs for sibcalls.
...
* config/ia64/ia64.c (ia64_expand_call): Don't add ar.pfs for sibcalls.
(ia64_split_call): Only load descriptor for GP register inputs.
(ia64_expand_epilogue): Check current_frame_info.mask not
current_function_is_leaf to restore ar.pfs.
From-SVN: r68549
2003-06-26 13:51:54 -07:00
Zack Weinberg
1bc7c5b629
target.h (asm_out.file_start, [...]): New hooks.
...
* target.h (asm_out.file_start, file_start_app_off,
file_start_file_directive): New hooks.
* target-def.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
TARGET_ASM_FILE_START_APP_OFF, TARGET_ASM_FILE_START):
New hook-definition macros.
* doc/tm.texi: Document new hooks; remove docs of ASM_FILE_START.
* varasm.c (default_file_start): New.
* output.h: Prototype it.
* toplev.c (init_asm_output): Use targetm.asm_out.file_start.
* system.h: Poison ASM_FILE_START.
* config/alpha/alpha.c (alpha_write_verstamp): Delete.
(alpha_file_start): New, define if !TARGET_ABI_UNICOSMK.
(unicosmk_asm_file_start): Rename unicosmk_file_start,
make static, take no arguments.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_END,
TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set as appropriate.
* config/alpha/unicosmk.h: Don't define ASM_FILE_START nor
TARGET_ASM_FILE_END. Remove reference to ASM_FILE_START in
comment.
* config/arc/arc.c (arc_asm_file_start): Rename
arc_file_start, take no arguments, make static.
(TARGET_ASM_FILE_START): Set it.
* config/arm/arm.c (aof_file_start): New static function.
(TARGET_ASM_FILE_START): Set it, when appropriate.
* config/arm/coff.h, config/arm/elf.h:
Set TARGET_ASM_FILE_START_APP_OFF to true.
* config/avr/avr.c (asm_file_start): Rename avr_file_start,
take no arguments, make static.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE):
Set them.
* config/c4x/c4x.c (c4x_file_start): New static function.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE):
Set them.
* config/cris/cris.c (cris_file_start): New static function.
(TARGET_ASM_FILE_START): Set it.
* config/dsp16xx/dsp16xx.c (coff_dsp16xx_file_start): Rename
dsp16xx_file_start, make static.
(luxworks_dsp16xx_file_start): Delete.
(TARGET_ASM_FILE_START): Set it.
* config/h8300/h8300.c (asm_file_start): Rename
h8300_file_start, make static, take no arguments.
(TARGET_ASM_FILE_START): Set it.
* config/i370/i370.c (i370_file_start): New static function.
(TARGET_ASM_FILE_START): Set it.
* config/i386/i386.c (x86_file_start): New static function.
(TARGET_ASM_FILE_START): Set it.
* config/i386/i386.h (X86_FILE_START_VERSION_DIRECTIVE,
X86_FILE_START_FLTUSED): New macros, default to false.
* config/i386/i386-interix.h: Override X86_FILE_START_FLTUSED to 1.
* config/i386/sysv4.h, config/i386/sco5.h: Override
X86_FILE_START_VERSION_DIRECTIVE to true.
* config/ia64/ia64.c (ia64_file_start): New static function.
(TARGET_ASM_FILE_START): Set it.
(emit_safe_across_calls): Take no arguments.
* config/ia64/ia64.md: Update to match.
* config/m32r/m32r.c (m32r_asm_file_start): Rename
m32r_file_start, make static, take no arguments.
(TARGET_ASM_FILE_START): Set it.
* config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Rename
m68hc11_file_start, make static, take no arguments.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
(print_options): Delete.
* config/m68k/m68k.c (m68k_hp320_file_start): New static function.
(TARGET_ASM_FILE_START_APP_OFF): Set.
* config/m68k/hp320.h: Set TARGET_ASM_FILE_START to
m68k_hp320_file_start.
* config/mips/mips.c (iris6_asm_file_start, mips_asm_file_start):
Make static, take no arguments.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
* config/mmix/mmix.c (mmix_asm_file_start): Rename
mmix_file_start, make static, take no arguments.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
* config/mn10300/mn10300.c (asm_file_start): Rename
mn10300_file_start, make static, take no arguments.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
* config/ns32k/ns32k.c (TARGET_ASM_FILE_START_APP_OFF): Set.
* config/pa/pa.c (pa_file_start_level, pa_file_start_space,
pa_file_start_file, pa_file_start_mcount, pa_elf_file_start,
pa_som_file_start, pa_linux_file_start, pa_hpux64_gas_file_start,
pa_hpux64_hpas_file_start): New static functions.
* config/pa/elf.h: Set TARGET_ASM_FILE_START to pa_elf_file_start.
* config/pa/pa-linux.h: Set TARGET_ASM_FILE_START to
pa_linux_file_start.
* config/pa/pa64-hpux.h: Set TARGET_ASM_FILE_START to
pa_hpux64_gas_file_start or pa_hpux64_hpas_file_start, as
appropriate.
* config/pa/som.h: Set TARGET_ASM_FILE_START to pa_som_file_start.
* config/rs6000/rs6000.c: Include xcoffout.h when TARGET_XCOFF.
(rs6000_file_start): Make static, take no arguments. Reset
default_cpu under certain conditions.
(rs6000_xcoff_file_start): New function.
* config/rs6000/rs6000.h (TARGET_ASM_FILE_START): Set.
* config/rs6000/xcoff.h (TARGET_ASM_FILE_START,
TARGET_ASM_FILE_START_FILE_DIRECTIVE): Override.
* config/sh/sh.c (output_file_start): Rename
sh_file_start, make static, take no arguments. Merge in old
code from sh/elf.h's ASM_FILE_START, conditioned on TARGET_ELF.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
* config/sh/sh.c (TARGET_ELF): Define to 0.
* config/sh/elf.h (TARGET_ELF): Redefine to 1.
* config/v850/v850.c (asm_file_start): Delete.
(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
* config/vax/vax.c (vax_file_start): New static function.
(TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_APP_OFF): Set.
* config/darwin.h: Override ASM_FILE_START_FILE_DIRECTIVE to false.
* config/elfos.h, config/svr3.h, config/arm/elf.h, config/arm/pe.h
* config/i386/att.h, config/i386/gas.h, config/i386/linux.h
* config/i386/sysv4.h, config/i386/sco5.h, config/i960/i960-coff.h
* config/m68k/coff.h, config/m68k/hp320.h, config/mcore/mcore-pe.h
* config/vax/vaxv.h: Set ASM_FILE_START_FILE_DIRECTIVE to true.
* config/darwin.h, config/elfos.h, config/alpha/elf.h
* config/alpha/openbsd.h, config/alpha/osf.h, config/alpha/vms.h
* config/arc/arc.h, config/arm/aof.h, config/arm/aout.h
* config/arm/coff.h, config/arm/elf.h, config/arm/pe.h
* config/avr/avr.h, config/c4x/c4x.h, config/cris/cris.h
* config/dsp16xx/dsp16xx.h, config/h8300/elf.h, config/h8300/h8300.h
* config/i370/i370.h, config/i386/att.h, config/i386/gas.h
* config/i386/i386-interix.h, config/i386/linux.h, config/i386/sysv4.h
* config/i386/sco5.h, config/i960/i960-coff.h, config/i960/i960.h
* config/ia64/ia64.h, config/ia64/sysv4.h, config/m32r/m32r.h
* config/m68hc11/m68hc11.h, config/m68k/coff.h, config/m68k/m68k.h
* config/mcore/mcore-pe.h, config/mips/iris6.h, config/mips/mips.h
* config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h
* config/pa/elf.h, config/pa/pa-linux.h, config/pa/pa64-hpux.h
* config/pa/som.h, config/pdp11/pdp11.h, config/rs6000/linux64.h
* config/rs6000/lynx.h, config/rs6000/xcoff.h, config/sh/elf.h
* config/sh/sh.h, config/sparc/sparc.h, config/v850/v850.h
* config/vax/vax.h, config/vax/vaxv.h: Don't (re)define ASM_FILE_START.
* config/alpha/alpha-protos.h, config/arc/arc-protos.h
* config/avr/avr-protos.h, config/dsp16xx/dsp16xx-protos.h
* config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
* config/m32r/m32r-protos.h, config/m68hc11/m68hc11-protos.h
* config/mips/mips-protos.h, config/mmix/mmix-protos.h
* config/mn10300/mn10300-protos.h, config/rs6000/rs6000-protos.h
* config/sh/sh-protos.h, config/v850/v850-protos.h: Update.
* xcoffout.h, config/rs6000/aix.h, config/rs6000/xcoff.h:
Remove reference to ASM_FILE_START in comment.
* config/arm/aof.h, config/arm/aout.h, config/arm/freebsd.h
* config/arm/linux-gas.h, config/arm/netbsd-elf.h
* config/arm/netbsd.h: Delete definition of ARM_OS_NAME.
From-SVN: r68229
2003-06-19 21:47:26 +00:00
Stephen Clarke
fe3ad57221
bt-load.c: New file.
...
2003-06-18 Stephen Clarke <stephen.clarke@superh.com>
J"orn Rennecke <joern.rennecke@superh.com>
* bt-load.c: New file.
* Makefile.in (OBJS): Include bt-load.o
(bt-load.o): Add dependencies.
* flags.h (flag_branch_target_load_optimize): Declare.
(flag_branch_target_load_optimize2): Likewise.
* hooks.c (hook_reg_class_void_no_regs): New function.
(hook_bool_bool_false): Likewise.
* hooks.h (hook_reg_class_void_no_regs, hook_bool_bool_false): Declare.
* rtl.h (branch_target_load_optimize): Declare.
* target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define.
(TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
(TARGET_INITIALIZER): Include these.
* target.h (struct gcc_target): Add branch_target_register_class
and branch_target_register_callee_saved members.
* toplev.c (enum dump_file_index): Add DFI_branch_target_load
(dump_file) Add "tars" entry.
(flag_branch_target_load_optimize): New variable.
(flag_branch_target_load_optimize2): Likewise.
(lang_independent_options): Add entries for new options.
(rest_of_compilation): Call branch_target_load_optimize.
* doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Document.
(TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
* doc/invoke.texi: Document -fbranch-target-load-optimize and
-fbranch-target-load-optimize2.
* rtl.h (epilogue_completed): Declare.
* recog.c (epilogue_completed): New variable.
* toplev.c (rest_of_compilation): Set it.
* flow.c (mark_regs_live_at_end): Use it.
* config/ia64/ia64.c (ia64_output_mi_thunk): Set it.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* sh.c (shmedia_space_reserved_for_target_registers): New variable.
(sh_target_reg_class): New function.
(sh_optimize_target_register_callee_saved): Likwise.
(shmedia_target_regs_stack_space): Likewise.
(shmedia_reserve_space_for_target_registers_p): Likewise.
(shmedia_target_regs_stack_adjust): Likewise.
(TARGET_BRANCH_TARGET_REGISTER_CLASS): Override.
(TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
(calc_live_regs): If flag_branch_target_load_optimize2 and
TARGET_SAVE_ALL_TARGET_REGS is enabled, and we have space reserved
for target registers, make sure that we save all target registers.
(sh_expand_prologue, sh_expand_epilogue): Take target register
optimizations into account. Collapse stack adjustments if that
is beneficial.
(initial_elimination_offset): Reserve space for target registers
if necessary.
* sh.h (SAVE_ALL_TR_BIT, TARGET_SAVE_ALL_TARGET_REGS): Define.
(OPTIMIZATION_OPTIONS): Enable flag_branch_target_load_optimize.
Co-Authored-By: J"orn Rennecke <joern.rennecke@superh.com>
From-SVN: r68165
2003-06-18 20:43:55 +01:00
Richard Kenner
8419b6757b
ia64.c (ia64_expand_builtin, [...]): Handle POINTERS_EXTEND_UNSIGNED.
...
* config/ia64/ia64.c (ia64_expand_builtin, case IA64_BUILTIN_BSP):
Handle POINTERS_EXTEND_UNSIGNED.
From-SVN: r68083
2003-06-17 09:40:37 -04:00
Andrew Pinski
117dca74cc
t-rs6000: Add dependence of cfglayout.h to rs6000.o.
...
* config/rs6000/t-rs6000: Add dependence of cfglayout.h to rs6000.o.
* config/rs6000/rs6000.c: Include cfglayout.h.
* config/alpha/alpha.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/sh/sh.c: Likewise.
From-SVN: r67982
2003-06-15 11:01:57 -07:00
Richard Henderson
a2855205a5
alpha.c (alpha_output_mi_thunk_osf): Call insn_locators_initialize.
...
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
insn_locators_initialize.
* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Do it later.
From-SVN: r67969
2003-06-15 00:36:43 -07:00
Zack Weinberg
a5fe455b12
config.gcc (with_cpu handling): Translate sparc64 in $machine to --with-cpu=v9.
...
* config.gcc (with_cpu handling): Translate sparc64 in
$machine to --with-cpu=v9.
* config/alpha/alpha.c
(TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition.
(alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK.
* target.h: New hook asm_out.file_end.
* target.h: Update to match. New hook macro TARGET_ASM_FILE_END.
* toplev.c (compile_file: Use targetm.asm_out.file_end.
* system.h: Poison ASM_FILE_END.
* varasm.c (file_end_indicate_exec_stack): New.
* output.h: Prototype it.
* doc/tm.texi: Document TARGET_ASM_FILE_END and
file_end_indicate_exec_stack. Delete references to attasm.h.
* config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end.
(ASM_FILE_END): Delete; move code...
* config/darwin.c (darwin_file_end): Here; new function.
* config/darwin-protos.h: Prototype it.
* config/alpha/alpha.c (unicosmk_asm_file_end): Make static,
rename unicosmk_file_end.
* config/arm/aof.h (ASM_FILE_END): Delete; move code...
* config/arm/arm.c (aof_file_end): ... here; new static function.
Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER.
Make aof_dump_imports and aof_dump_pic_table static.
* config/avr/avr.c (asm_file_end): Rename avr_file_end, make static.
Set TARGET_ASM_FILE_END to avr_file_end.
* config/c4x/c4x.c (c4x_file_end): Make static. Take no arguments.
Set TARGET_ASM_FILE_END to c4x_file_end.
* config/h8300/h8300.c (asm_file_end): Rename h8300_file_end,
make static. Take no arguments. Set TARGET_ASM_FILE_END to
h8300_file_end.
* config/i370/i370.h (ASM_FILE_END): Delete; move code...
* config/i370/i370.c (i370_file_end): ... here; new static function.
Set TARGET_ASM_FILE_END to i370_file_end.
* config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end.
Take no arguments. Call file_end_indicate_exec_stack if
NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END.
* config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
Define NEED_INDICATE_EXEC_STACK to 0.
* config/i386/linux.h, config/i386/linux64.h: Redefine
NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END.
* config/i386/winnt.c (i386_pe_asm_file_end): Rename to
i386_pe_file_end. Take no arguments. Use ix86_file_end.
* config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to
ia64_hpux_file_end, make static. Take no arguments.
* config/ip2k/ip2k.c (asm_file_start, asm_file_end,
commands_in_prologues, commands_in_epilogues): Delete.
(function_epilogue): Update to match.
* config/mips/mips.c (mips_asm_file_end): Rename mips_file_end,
make static. Take no arguments.
(iris6_asm_file_end): Rename iris6_file_end, make static, use
mips_file_end, take no arguments.
Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as
appropriate.
* config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end,
make static, take no arguments. Set TARGET_ASM_FILE_END to
mmix_file_end.
* config/pa/pa.c (output_deferred_plabels): Make static, take
no arguments. Set TARGET_ASM_FILE_END to output_deferred_plabels.
* config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it.
(ASM_FILE_END): Delete; move code...
* config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here;
new static function.
* config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h
* config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h:
Don't set ASM_FILE_END.
* config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h
* config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h
* config/sparc/linux64.h: Set TARGET_ASM_FILE_END to
file_end_indicate_exec_stack; don't set ASM_FILE_END.
* config/alpha/unicosmk.h, config/i386/cygming.h
* config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
* config/arm/arm-protos.h, config/alpha/alpha-protos.h
* config/avr/avr-protos.h, config/c4x/c4x-protos.h
* config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
* config/ip2k/ip2k-protos.h, config/mips/mips-protos.h
* config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update.
From-SVN: r67591
2003-06-07 17:11:48 +00:00
Kaveh R. Ghazi
4a0a75dd44
alpha.c (print_operand_address, [...]): Use string concatentation on HOST_WIDE_INT_PRINT_* format specifier to collapse...
...
* alpha.c (print_operand_address, alpha_start_function,
unicosmk_output_ssib): Use string concatentation on
HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
function calls into one.
* arm.c (arm_print_operand): Likewise.
* cris.c (cris_asm_output_mi_thunk): Likewise.
* frv.c (frv_asm_output_mi_thunk): Likewise.
* ia64.c (ia64_print_operand, process_set): Likewise.
* m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
Likewise.
* mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
* mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
* pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
* pa.h (PRINT_OPERAND_ADDRESS): Likewise.
* rs6000.c (rs6000_va_start, print_operand_address): Likewise.
* s390.c (s390_assemble_integer): Likewise.
* sparc.c (sparc_flat_function_prologue,
sparc_flat_function_epilogue): Likewise.
* stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
* vax.c (vax_output_mi_thunk): Likewise.
From-SVN: r66876
2003-05-16 18:57:46 +00:00
Richard Henderson
ae49d6e592
ia64.c (ia64_expand_load_address): Force destination to be DImode register.
...
* config/ia64/ia64.c (ia64_expand_load_address): Force destination
to be DImode register. Merge load_symptr.
* config/ia64/ia64.md (load_symptr): Remove.
From-SVN: r66808
2003-05-14 10:46:50 -07:00
Richard Sandiford
18dbd95060
target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
...
* target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
(TARGET_INITIALIZER): Include it.
* target.h (struct gcc_target): Add machine_dependent_reorg field.
* toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
* config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
* config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
* config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(alpha_handle_trap_shadows): Remove "first insn" parameter.
(alpha_align_insns): Likewise.
(alpha_reorg): Likewise. Make static. Update calls to above
functions.
* config/arm/arm-protos.h (arm_reorg): Remove declaration.
* config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
* config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(arm_reorg): Remove parameter. Make static.
* config/avr/avr-protos.h (machine_dependent_reorg): Remove.
* config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
* config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(avr_reorg): Renamed from machine_dependent_reorg. Make static.
Remove parameter.
* config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
* config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
* config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(c4x_reorg): Renamed from c4x_process_after_reload. Make static.
Remove parameter.
* config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
* config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
* config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
* config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
* config/frv/frv.c: Remove orphaned comment.
* config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
* config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
* config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(ix86_reorg): Renamed from x86_machine_dependent_reorg. Make static.
Remove parameter.
* config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
* config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
* config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(emit_insn_group_barriers): Remove "first insn" parameter.
(emit_all_insn_group_barriers): Likewise.
(ia64_reorg): Likewise. Make static. Update calls to above functions.
(ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
* config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
* config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
* config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(ip2k_reorg): Renamed from machine_dependent_reorg. Make static.
Remove parameter.
* config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
* config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
* config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(m68hc11_reorg): Make static. Remove parameter.
* config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
* config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
* config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(conditionalize_optimization): Remove parameter.
(mcore_reorg): Renamed from mcore_dependent_reorg. Remove parameter.
Make static. Update call to conditionalize_optimization.
* config/mips/mips-protos.h (machine_dependent_reorg): Remove.
* config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
* config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(mips_reorg): Renamed from machine_dependent_reorg. Remove parameter.
Make static.
* config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
* config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
* config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(mmix_reorg): Renamed from mmix_machine_dependent_reorg. Make static.
Remove parameter.
* config/pa/pa-protos.h (pa_reorg): Remove declaration.
* config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
* config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(pa_combine_instructions): Remove "first insn" parameter.
(remove_useless_addtr_insns): Likewise.
(pa_reorg): Likewise. Make static. Update calls to above functions.
* config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
commented-out definition.
* config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
* config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
* config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(s390_reorg): Renamed from s390_machine_dependent_reorg. Make static.
Remove parameter.
* config/sh/sh-protos.h (machine_dependent_reorg): Remove.
* config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
* config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(sh_reorg): Renamed from machine_dependent_reorg. Make static.
Remove parameter.
(sh_output_mi_thunk): Call sh_reorg directly.
* config/sh/sh.md: Update comment.
* config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
commented-out definition.
* config/v850/v850-protos.h (v850_reorg): Remove declaration.
* config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
* config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(v850_reorg): Make static. Remove parameter.
* config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
* config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
* config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(xtensa_reorg): Make static. Remove parameter.
* doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
(TARGET_MACHINE_DEPENDENT_REORG): Document.
From-SVN: r66800
2003-05-14 07:29:54 +00:00
Andreas Schwab
746015842f
ia64.c (ia64_function_ok_for_sibcall): Mark 'exp' as unused.
...
* config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
as unused.
(bundling): Initialize 'pos'.
(ia64_expand_builtin): Initialize 'rmode'.
From-SVN: r66738
2003-05-12 21:17:12 +00:00
H.J. Lu
60986d641c
ia64.c (ia64_expand_compare_and_swap): Add rmode for return mode.
...
2003-04-25 H.J. Lu <hjl@gnu.org>
* config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
for return mode.
(ia64_expand_builtin): Set rmode to SImode for
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
From-SVN: r66077
2003-04-25 15:09:12 -07:00
Richard Henderson
f5bdba44f0
ia64.c (ia64_compute_frame_size): Allow inline asm to clobber ar.pfs and ar.unat.
...
* config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
to clobber ar.pfs and ar.unat.
(ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
fix test for spilling ar.pfs to the stack.
From-SVN: r66074
2003-04-25 14:02:25 -07:00
H.J. Lu
0c79f08ba8
ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di for __sync_bool_compare_and_swap_di for int return type.
...
2003-04-24 H.J. Lu <hjl@gnu.org>
* config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
for __sync_bool_compare_and_swap_di for int return type.
* config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
Change return type to int.
(__sync_bool_compare_and_swap): Likewise.
From-SVN: r66042
2003-04-24 10:23:57 -07:00
Richard Henderson
3907500bf1
* config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
...
From-SVN: r65747
2003-04-17 12:54:03 -07:00
Richard Henderson
1cdbd6309a
ia64.c (sdata_symbolic_operand): Use SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
...
* config/ia64/ia64.c (sdata_symbolic_operand): Use
SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
(tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
(function_operand): Use SYMBOL_REF_FUNCTION_P.
(ia64_expand_load_address): Likewise.
(ia64_assemble_integer): Likewise.
(ia64_encode_section_info): Remove.
(ia64_strip_name_encoding): Remove.
* config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
* config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
From-SVN: r65697
2003-04-16 12:53:13 -07:00
Steve Ellcey
08744705c0
ia64-protos.h (addp4_optimize_ok): New.
...
* ia64-protos.h (addp4_optimize_ok): New.
* ia64.c (addp4_optimize_ok): New.
* ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
(*ptr_extend_plus_2): Ditto.
From-SVN: r65435
2003-04-10 19:53:54 +00:00
Vladimir Makarov
f32360c722
ia64.c (issue_nops_and_insn): Add new parameter.
...
2003-04-09 Vladimir Makarov <vmakarov@redhat.com>
* config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
Check that asm insn starts on a new cycle. Add nops after asm
insn to end bundle.
(bundling): Move insn type evaluation from the loop. Call
issue_nops_and_insn with the new parameter. Ignore changing
position for nops after asm insn.
From-SVN: r65401
2003-04-09 18:50:03 +00:00
Richard Henderson
21515593f6
ia64.c (move_operand): Allow symbolic_operand, but not tls_symbolic_operand.
...
* config/ia64/ia64.c (move_operand): Allow symbolic_operand,
but not tls_symbolic_operand.
(ia64_expand_load_address): Remove scratch operand.
(ia64_expand_tls_address): Split out from ia64_expand_move.
(ia64_expand_move): Split symbolics only after reload.
(ia64_emit_cond_move): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
(symbolic splitter): Accept SImode operands too.
(cmove splitter): Use ia64_emit_cond_move.
From-SVN: r65399
2003-04-09 10:13:31 -07:00
Jakub Jelinek
be565ad7df
ia64.c (ia64_expand_op_and_fetch): Fix comment.
...
* config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
(ia64_expand_compare_and_swap): Use always DImode ar.ccv,
zero extend old to it.
* config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
operand.
* gcc.dg/ia64-sync-3.c: New test.
From-SVN: r64895
2003-03-26 17:00:52 +01:00
Mark Mitchell
f89283915d
function.c (put_var_into_stack): Change bool parameter to int.
...
* function.c (put_var_into_stack): Change bool parameter to int.
(gen_mem_addressof): Likewise.
* rtl.h (gen_mem_addressof): Likewise.
* tree.h (put_var_into_stack): Likewise.
* config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
gen_mem_addressof or put_var_into_stack.
* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
* config/ia64/ia64.c (spill_tfmode_operand): Likewise.
From-SVN: r64807
2003-03-24 17:53:31 +00:00
Jakub Jelinek
6b2300b390
s390.c (s390_output_dwarf_dtprel): New.
...
* config/s390/s390.c (s390_output_dwarf_dtprel): New.
* config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
* config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
* config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
* config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
* config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
From-SVN: r64556
2003-03-19 01:13:02 +01:00
Nathanael Nerode
3bed29309b
fde-glibc.c, [...]: It's GCC, not GNU CC.
...
* config/ia64/fde-glibc.c, config/ia64/freebsd.h,
config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
config/ia64/ia64-protos.h, config/ia64/ia64.c,
config/ia64/ia64.h, config/ia64/ia64.md,
config/ia64/itanium1.md, config/ia64/itanium2.md,
config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
From-SVN: r64313
2003-03-13 18:26:30 +00:00
Richard Henderson
599aedd920
emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
...
* emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
* config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
(ia64_gp_save_reg): Remove.
(struct ia64_frame_info): Move to the beginning of the file;
add reg_save_gp.
(ia64_expand_call): Rearrange for new call patterns.
(ia64_reload_gp): New.
(ia64_split_call): New.
(ia64_compute_frame_size): Allocate reg_save_gp.
(ia64_expand_prologue): Save reg_save_gp.
(ia64_expand_epilogue): Don't restore gp.
(ia64_hard_regno_rename_ok): Remove R4 hack.
(ia64_function_ok_for_sibcall): New.
(ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
call try_split on sibcall pattern.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
Rename from nopic versions. Confiscate 2nd argument to call as
a marker.
(call_pic, call_value_pic, sibcall_pic): Remove.
(call_gp, call_value_gp, sibcall_gp): New.
(builtin_setjmp_setup): Remove.
(builtin_setjmp_receiver): Call ia64_reload_gp.
From-SVN: r64303
2003-03-13 01:02:51 -08:00
Richard Henderson
ef1ecf87a6
configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
...
* configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
* config.in, configure: Rebuild.
* config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
* config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
paired ldtoffx and ldxmov annotations.
(load_symptr_internal1): Remove.
(load_symptr_high, load_symptr_low): New.
From-SVN: r63696
2003-03-02 14:15:51 -08:00
Richard Henderson
c407570a72
ia64.c (rtx_needs_barrier): Handle POPCOUNT, UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
...
* config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
* config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
(ffsdi2): Use popcount instead of unspec.
(popcountdi2): Rename from *popcnt.
(ctzdi2, clzdi2, getf_exp_tf): New.
From-SVN: r62428
2003-02-04 18:25:36 -08:00
Richard Henderson
1e1bd14eb2
ia64.c (ia64_rwreloc_section_type_flags): New.
...
* config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
From-SVN: r62028
2003-01-28 14:08:24 -08:00
Richard Henderson
dcefdf6717
target.h (targetm.address_cost): New.
...
* target.h (targetm.address_cost): New.
* target-def.h (TARGET_ADDRESS_COST): New.
(TARGET_RTX_COSTS): Uncomment. Oops.
* cse.c (address_cost): Use new target hook.
(default_address_cost): New.
* output.h (default_address_cost): Declare.
* hooks.c (hook_int_rtx_0): New.
* hooks.h (hook_int_rtx_0): Declare.
* loop.c (combine_givs_p): Remove if 0 code.
* system.h (ADDRESS_COST): Poison.
* config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
config/xtensa/xtensa.c, config/xtensa/xtensa.h
(TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
(ADDRESS_COST): Remove.
* config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
config/mips/mips.c, config/mips/mips.h,
config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
config/vax/vax.c, config/vax/vax.h
(foo_address_cost): Make static.
(TARGET_ADDRESS_COST): New.
(ADDRESS_COST): Remove.
* config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
config/stormy16/stormy16.h
(ADDRESS_COST): Move code ...
(foo_address_cost): ... here.
(TARGET_ADDRESS_COST): New.
* config/m32r/m32r.c (m32r_address_cost): Remove.
* config/m32r/m32r-protos.h: Update.
* config/mmix/mmix.c (mmix_address_cost): Remove.
* config/mmix/mmix-protos.h: Update.
* config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
mn10300_address_cost; move unsig allocation ...
(mn10300_address_cost): ... here.
(TARGET_ADDRESS_COST): New.
* config/mn10300/mn10300-protos.h: Update.
* config/mn10300/mn10300.h (ADDRESS_COST): Remove.
From-SVN: r61988
2003-01-28 10:08:56 -08:00
Richard Henderson
3c50106f69
Makefile.in (cse.o): Depend on TARGET_H.
...
* Makefile.in (cse.o): Depend on TARGET_H.
* cse.c (rtx_cost): Use targetm.rtx_costs.
* system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
* doc/tm.texi: Update.
* target.h (targetm.rtx_costs): New.
* target-def.h (TARGET_RTX_COSTS): New.
* hooks.c (hook_bool_rtx_int_int_intp_false): New.
* hooks.h: Update.
* config/alpha/alpha.c (alpha_rtx_cost_data): New.
(alpha_rtx_costs, TARGET_RTX_COSTS): New.
* config/alpha/alpha.h (PROCESSOR_MAX): New.
(CONST_COSTS, RTX_COSTS): Remove.
* config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
config/mn10200/mn10200.h, config/mn10300/mn10300.c,
config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
config/stormy16/stormy16.c, config/stormy16/stormy16.h,
config/v850/v850.c, config/v850/v850.h,
config/xtensa/xtensa.c, config/xtensa/xtensa.h
(CONST_COSTS, RTX_COSTS): Move code ...
(foo_rtx_costs, TARGET_RTX_COSTS): ... here.
* config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
(arm_rtx_costs, TARGET_RTX_COSTS): New.
* config/arm/arm-protos.h: Update.
* config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
* config/avr/avr.h (CONST_COSTS): Move code ...
* config/avr/avr.c (avr_rtx_costs): ... here.
(default_rtx_costs): Make static.
* config/avr/avr-protos.h: Update.
* config/h8300/h8300.c (const_costs): Make static.
(h8300_and_costs, h8300_shift_costs): Likewise.
* config/h8300/h8300-protos.h: Update.
* config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
(CONST_COSTS): Move code ...
* config/ip2k/ip2k.c (ip2k_rtx_costs): ... here. Rename from
default_rtx_costs; update for signature change.
* config/ip2k/ip2k-protos.h: Update.
* config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
(CONST_COSTS): Move code ...
* config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
(TARGET_RTX_COSTS): New.
(m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
* config/m68hc11/m68hc11-protos.h: Update.
* config/m68k/m68k.c (const_int_cost): Make static.
* config/m68k/m68k-protos.h: Update.
* config/mcore/mcore.c (mcore_const_costs): Make static.
(mcore_and_cost, mcore_ior_cost): Likewise.
* config/mcore/mcore-protos.h: Update.
* config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
(mmix_rtx_cost_recalculated): Remove.
* config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
* config/mmix/mmix-protos.h: Update.
* config/sh/sh.c (shiftcosts): Make static.
(addsubcosts, andcosts, multcosts): Likewise.
* config/sh/sh-protos.h: Update.
* config/sparc/sparc.c (TARGET_RTX_COSTS): New.
(sparc_rtx_costs): Make static; update for change in signature.
* config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
* config/sparc/sparc-protos.h: Update.
* config/v850/v850.c (const_costs): Make static.
* config/v850/v850-protos.h: Update.
* config/vax/vax.h (RTX_COSTS): Remove.
(CONST_COSTS): Move code ...
* config/vax/vax.c (vax_rtx_costs_1): ... here; rename
from vax_rtx_cost.
(vax_rtx_costs, TARGET_RTX_COSTS): New.
From-SVN: r61954
2003-01-27 20:46:33 -08:00
Kazu Hirata
9e4f94dea0
fde-glibc.c: Fix comment typos.
...
* config/ia64/fde-glibc.c: Fix comment typos.
* config/ia64/hpux.h: Likewise.
* config/ia64/ia64.c: Likewise.
* config/ia64/ia64.h: Likewise.
* config/ia64/unwind-ia64.c: Likewise.
From-SVN: r61857
2003-01-26 20:15:36 +00:00
Richard Henderson
6ca86a1a1e
ia64.c (ia64_rwreloc_select_rtx_section): Rename from ia64_aix_select_rtx_section.
...
* config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
from ia64_aix_select_rtx_section.
(ia64_rwreloc_select_section): Simlarly; use default*_1 function
instead of saving and restoring flag_pic.
(ia64_rwreloc_unique_section): Similarly.
* config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
* config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
From-SVN: r61797
2003-01-25 11:08:15 -08:00
Vladimir Makarov
30028c8515
2003-01-09 Vladimir Makarov <vmakarov@redhat.com>
...
Merging changes from itanium-sched-branch:
From-SVN: r61132
2003-01-09 23:15:34 +00:00
Kazu Hirata
5bdc58781b
c-pretty-print.h: Fix comment typos.
...
* c-pretty-print.h: Fix comment typos.
* integrate.c: Likewise.
* varasm.c: Likewise.
* config/c4x/c4x.h: Likewise.
* config/c4x/c4x.md: Likewise.
* config/fr30/fr30.md: Likewise.
* config/frv/frv.c: Likewise.
* config/h8300/h8300.c: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/i386.h: Likewise.
* config/ia64/ia64.c: Likewise.
* config/ia64/ia64.h: Likewise.
* config/ip2k/ip2k.md: Likewise.
* config/m68hc11/m68hc11-crt0.S: Likewise.
* config/m68hc11/m68hc11.h: Likewise.
* config/m68hc11/m68hc11.md: Likewise.
* config/m68hc11/m68hc12.h: Likewise.
* config/mcore/mcore.md: Likewise.
* config/mips/mips.c: Likewise.
* config/mips/mips.md: Likewise.
* config/mmix/mmix-modes.def: Likewise.
* config/pa/pa.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/rs6000/rs6000.md: Likewise.
From-SVN: r60354
2002-12-20 04:30:57 +00:00
Kazu Hirata
272d0bee76
ChangeLog: Follow spelling conventions.
...
* ChangeLog: Follow spelling conventions.
* ChangeLog.2: Likewise.
* ChangeLog.4: Likewise.
* ChangeLog.5: Likewise.
* cppexp.c: Likewise.
* df.c: Likewise.
* gcov.c: Likewise.
* gengtype.c: Likewise.
* reload1.c: Likewise.
* sched-rgn.c: Likewise.
* stmt.c: Likewise.
* stor-layout.c: Likewise.
* timevar.c: Likewise.
* toplev.c: Likewise.
* tree.h: Likewise.
* varasm.c: Likewise.
* config/fr30/fr30.md: Likewise.
* config/i386/i386.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/pa/pa.c: Likewise.
From-SVN: r60281
2002-12-19 05:18:13 +00:00
Zack Weinberg
4977bab6ed
Merge basic-improvements-branch to trunk
...
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Andreas Schwab
83ebfdc01c
ia64.c (ia64_hpux_asm_file_end): Fix typo in last change and some warnings.
...
* config/ia64/ia64.c (ia64_hpux_asm_file_end): Fix typo in last
change and some warnings.
From-SVN: r60073
2002-12-12 14:08:21 +00:00
Steve Ellcey
9a3873b48f
ia64.c (ia64_hpux_asm_file_end): Don't send stripped name to globalize_label or assemble_name.
...
* config/ia64/ia64.c (ia64_hpux_asm_file_end): Don't send stripped
name to globalize_label or assemble_name.
From-SVN: r60046
2002-12-11 20:41:43 +00:00
Steve Ellcey
3870df966e
hpux.h (TARGET_STRUCT_ARG_REG_LITTLE_ENDIAN): Remove definition
...
* config/ia64/hpux.h (TARGET_STRUCT_ARG_REG_LITTLE_ENDIAN): Remove
definition
(MEMBER_TYPE_FORCES_BLK): Move.
* config/ia64/ia64.c (ia64_function_arg): Use PARALLEL to pass
aggregate arguments.
(ia64_function_value): Use PARALLEL to return aggregate values.
From-SVN: r59963
2002-12-09 18:07:58 +00:00
Steve Ellcey
dcffbadece
ia64.h (MASK_INLINE_DIV_LAT): Remove.
...
* config/ia64/ia64.h (MASK_INLINE_DIV_LAT): Remove.
(MASK_INLINE_DIV_THR): Remove.
(TARGET_INLINE_DIV_LAT): Remove.
(TARGET_INLINE_DIV_THR): Remove.
(TARGET_INLINE_DIV): Remove.
(MASK_INLINE_FLOAT_DIV_LAT): New macro.
(MASK_INLINE_FLOAT_DIV_THR): New macro.
(MASK_INLINE_INT_DIV_LAT): New macro.
(MASK_INLINE_INT_DIV_THR): New macro.
(TARGET_INLINE_FLOAT_DIV_LAT): New macro.
(TARGET_INLINE_FLOAT_DIV_THR): New macro.
(TARGET_INLINE_INT_DIV_LAT): New macro.
(TARGET_INLINE_INT_DIV_THR): New macro.
(TARGET_INLINE_FLOAT_DIV): New macro.
(TARGET_INLINE_INT_DIV): New macro.
* config/ia64/ia64.md (divsi3): Change to use new macros.
(modsi3): Ditto.
(udivsi3): Ditto.
(umodsi3): Ditto.
(divsi3_internal): Ditto.
(divdi3): Ditto.
(moddi3): Ditto.
(udivdi3): Ditto.
(umoddi3): Ditto.
(divdi3_internal_lat): Ditto.
(divdi3_internal_thr): Ditto.
(divsf3): Ditto.
(divsf3_internal_lat): Ditto.
(divsf3_internal_thr): Ditto.
(divdf3): Ditto.
(divdf3_internal_lat): Ditto.
(divdf3_internal_thr): Ditto.
(divtf3): Ditto.
(divtf3_internal_lat): Ditto.
(divtf3_internal_thr): Ditto.
* config/ia64/ia64.c (ia64_override_options): Change
to check new macros for conflicts in settings.
* doc/invoke.texi (-minline-divide-min-latency): Remove.
(-minline-divide-max-throughput): Remove.
(-minline-float-divide-min-latency): New.
(-minline-float-divide-max-throughput): New.
(-minline-int-divide-min-latency): New.
(-minline-int-divide-max-throughput): New.
From-SVN: r58727
2002-11-01 20:25:35 +00:00
Richard Henderson
5f13cfc617
ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
...
* config/ia64/ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
(ia64_output_mi_thunk): Rewrite to use rtl, and to handle the
vcall offset.
* g++.dg/inherit/thunk1.C: Enable for ia64.
From-SVN: r58491
2002-10-24 02:16:36 -07:00
Steve Ellcey
16448fd4f0
ia64.c (hfa_element_mode): Don't allow 128 bit floats in HFAs.
...
* config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats
in HFAs.
From-SVN: r58464
2002-10-23 18:18:31 +00:00
Richard Henderson
3961e8fe9e
target.h (gcc_target.asm_out): Merge output_mi_thunk and output_mi_vcall_thunk into a single hook.
...
gcc/
* target.h (gcc_target.asm_out): Merge output_mi_thunk and
output_mi_vcall_thunk into a single hook. Add can_output_mi_thunk.
* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Don't conditionalize.
(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove.
(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
(TARGET_ASM_OUT): Update.
* hooks.c (hook_bool_tree_hwi_hwi_tree_false): New.
(hook_bool_tree_hwi_hwi_tree_true): New.
(default_can_output_mi_thunk_no_vcall): New.
* hooks.h: Declare them.
* system.h (ASM_OUTPUT_MI_THUNK): Poison.
* config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
(alpha_output_mi_thunk_osf): Add VCALL_OFFSET parameter.
* config/arm/arm.c, config/cris/cris.c, config/frv/frv.c,
config/i960/i960.c, config/ia64/ia64.c, config/m68k/m68k.c,
config/mmix/mmix.c, config/pa/pa.c, config/sparc/sparc.c,
config/stormy16/stormy16.c: Similarly.
* config/i386/i386.c (x86_output_mi_thunk): Merge vcall_offset code.
Handle 64-bit properly. Streamline.
(x86_output_mi_vcall_thunk): Remove.
(x86_this_parameter): Rename from ia32_this_parameter; handle 64-bit.
(x86_can_output_mi_thunk): New.
(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove.
(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
(override_options): Don't zap targetm.asm_out.output_mi_vcall_thunk.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Rename from
output_mi_thunk; make static; always use function_section.
(TARGET_ASM_OUTPUT_MI_THUNK): New.
(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
(rs6000_ra_ever_killed): Test no_new_pseudos not
targetm.asm_out.output_mi_thunk in conjunction with thunks.
* config/rs6000/rs6000-protos.h: Update.
* config/rs6000/sysv4.h (TARGET_ASM_OUTPUT_MI_THUNK): Remove.
* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't call
xcoffout_declare_function when using rs6000_output_mi_thunk.
* config/s390/s390.c (s390_output_mi_thunk): Rename from
s390_output_mi_vcall_thunk.
(TARGET_ASM_OUTPUT_MI_THUNK): Remove.
(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
* config/vax/vax.c (vax_output_mi_thunk): Static; add vcall_offset.
(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
* config/vax/vax-protos.h: Update.
* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.
gcc/cp/
* method.c (use_thunk): Always compute vcall_value; assert that
it is not zero. Use can_output_mi_thunk; use output_mi_thunk
for vcall thunks as well.
From-SVN: r58424
2002-10-22 16:05:28 -07:00
Richard Henderson
c590b62588
target.h (struct gcc_target): Line wrap.
...
* target.h (struct gcc_target): Line wrap.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static.
(TARGET_ASM_OUTPUT_MI_THUNK): Define here...
* config/alpha/alpha.h: ... not here.
* config/alpha/alpha-protos.h: Update.
* config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h
config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h,
config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c,
config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h,
config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h,
config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h,
config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
config/sparc/openbsd.h, config/sparc/sparc-protos.h,
config/sparc/sparc.c, config/sparc/sparc.h,
config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
config/stormy16/stormy16.h: Similarly.
* config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic
selection logic from call patterns.
From-SVN: r58340
2002-10-20 15:37:14 -07:00
Mark Mitchell
eb0424da9d
alpha-protos.h (alpha_output_mi_thunk_osf): Update signature to match target.h.
...
* alpha-protos.h (alpha_output_mi_thunk_osf): Update signature to
match target.h.
* arm-protos.h, arm.c (arm_output_mi_thunk): Likewise.
* cris-protos.h, cris.c (cris_asm_output_mi_thunk): Likewise.
* frv-protos.h, frv.c (frv_asm_output_mi_thunk): Likewise.
* i386-protos.h, i386.c (x86_output_mi_vcall_thunk,
x86_output_mi_thunk): Likewise.
* i960-protos.h, i960.c (i960_output_mi_thunk): Likewise.
* ia64-protos.h, ia64.c (ia64_output_mi_thunk): Likewise.
* m68k-protos.h, m68k.c (m68k_output_mi_thunk): Likewise.
* mmix-protos.h, mmix.c (mmix_asm_output_mi_thunk): Likewise.
* rs6000-protos.h, rs6000.c (output_mi_thunk): Likewise.
* s390-protos.h, s390.c (s390_output_mi_thunk): Likewise.
* stormy16-protos.h, stormy16.c (xstormy16_asm_output_mi_thunk):
Likewise.
* vax-protos.h, vax.c (vax_output_mi_thunk): Likewise.
* target.h (gcc_target): Update output_mi_thunk and
output_mi_vcall_thunk to take a HOST_WIDE_INT delta and
vcall_index.
* config/alpha/alpha.c: Replace ASM_OUTPUT_MI_THUNK with
TARGET_ASM_OUTPUT_MI_THUNK in comments.
* config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): Don't #undef it.
(TARGET_ASM_OUTPUT_MI_THUNK): #undef it.
* config/frv/frv.h (DEFAULT_VTABLE_THUNKS): Remove definition.
* config/i386/i386-protos.h (x86_output_mi_vcall_thunk): Update
signature.
* config/i386/i386.c (x86_output_mi_vcall_thunk): Likewise.
* config/i386/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with
TARGET_ASM_OUTPUT_MI_THUNK in comments.
* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Don't define.
(TARGET_ASM_OUTPUT_MI_THUNK): Do define.
* config/m68k/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with
TARGET_ASM_OUTPUT_MI_THUNK in comments.
* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Remove #ifdef
ASM_OUTPUT_MI_THUNK and replace with check of targetm.
* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Update signature.
(TARGET_ASM_OUTPU_MI_VCALL_THUNK): Likewise.
From-SVN: r58333
2002-10-20 18:52:01 +00:00
Mark Mitchell
483ab821df
target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL.
...
* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL.
(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Likewise.
(TARGET_ASM_OUT): Add them.
* target.h (asm_out): Add output_mi_thunk and
output_mi_vcall_thunk.
* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/arm/arm-protos.h (arm_output_mi_thunk): Declare.
* config/arm/arm.c (arm_output_mi_thunk): Define.
* config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/cris/cris.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/frv/frv.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/i386/i386-protos.h (x86_output_mi_thunk): Adjust
prototype.
(x86_output_mi_vcall_thunk): Declare.
* config/i386/i386.c (override_options): Clear
output_mi_vcall_thunk in 64-bit mode.
(ix86_fntype_regparm): New function.
(ix86_return_pops_args): Use it.
(ia32_this_parameter): New function.
(x86_output_mi_vcall_thunk): New function.
(x86_output_mi_thunk): Use it
* config/i386/unix.h (TARGET_ASM_OUTPUT_MI_THUNK): Adjust.
(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define.
* config/i960/i960-protos.h (i960_output_mi_thunk): Declare.
* config/i960/i960.c (i960_output_mi_thunk): New function.
* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Adjust.
* config/ia64/ia64-protos.h (ia64_output_mi_thunk): Declare.
* config/ia64/ia64.c (ia64_output_mi_thunk): Define.
* config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/m68k/m68k-protos.h (m68k_output_mi_thunk): New function.
* config/m68k/linux.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/m68k/netbsd-elf.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/mmix/mmix.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/pa/pa.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/rs6000/sysv4.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/s390/s390-protos.h (s390_output_mi_thunk): Declare.
* config/s390/s390.c (s390_output_mi_thunk): Define.
* config/s390/s390.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* config/vax/vax-protos.h (vax_output_mi_thunk): Declare.
* config/vax/vax.c (vax_output_mi_thunk): Define.
* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Rename to ...
(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
* doc/tm.texi: Adjust documentation.
From-SVN: r58293
2002-10-18 23:35:40 +00:00
Kaveh R. Ghazi
89b0654082
darwin-protos.h (darwin_asm_output_dwarf_delta): Prototype.
...
* darwin-protos.h (darwin_asm_output_dwarf_delta): Prototype.
* ia64.c (ia64_hpux_asm_file_end): Const-ify.
From-SVN: r57632
2002-09-29 19:55:08 +00:00
Jakub Jelinek
dce81a1a59
extend.texi (tls_model): Document.
...
* doc/extend.texi (tls_model): Document.
* varasm.c (decl_tls_model): New.
* c-common.c (handle_tls_model_attribute): New.
(c_common_attribute_table): Add tls_model.
* config/alpha/alpha.c (alpha_encode_section_info): Use
decl_tls_model.
* flags.h (enum tls_model, flag_tls_default): Move...
* tree.h (enum tls_model, flag_tls_default): ...here.
(decl_tls_model): New prototype.
* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
* config/i386/i386.c (ix86_encode_section_info): Likewise.
* config/i386/i386.md (tls_global_dynamic, tls_local_dynamic_base):
Allow !flag_pic.
From-SVN: r57588
2002-09-27 15:30:10 +02:00
Steve Ellcey
ee8a73d6e7
ia64.c (ia64_expand_load_address): Ensure correct mode for symbol address.
...
* config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode
for symbol address.
From-SVN: r57554
2002-09-26 21:50:42 +00:00
Richard Henderson
3dc85dfb4a
real.c (struct real_format): Move to real.h.
...
* real.c (struct real_format): Move to real.h.
(real_format_for_mode): Rename from fmt_for_mode; update all users;
initialize with ieee defaults.
(real_to_target_fmt, real_from_target_fmt): New.
(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
ieee_extended_intel_96_format, ieee_extended_intel_128_format,
ieee_quad_format, i370_single_format, i370_double_format,
c4x_single_format, c4x_extended_format): Rename from s/_format//.
(ieee_quad_format): Fix emin.
(format_for_size, init_real_once): Remove.
* real.h (struct real_format): Move from real.c.
(real_format_for_mode): Declare.
(real_to_target_fmt, real_from_target_fmt): Declare.
(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
ieee_extended_intel_96_format, ieee_extended_intel_128_format,
ieee_quad_format, vax_f_format, vax_d_format, vax_g_format,
i370_single_format, i370_double_format, c4x_single_format,
c4x_extended_format): Declare.
* toplev.c (do_compile): Don't call init_real_once.
* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.
* doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Remove.
* config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Define.
* config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): 64, if vax mode.
* config/alpha/alpha.c (override_options): Set real_format_for_mode
for VAX, if enabled.
* config/c4x/c4x.c (c4x_override_options): Set real_format_for_mode
for C4X.
* config/i370/i370.h (OVERRIDE_OPTIONS): New.
* config/i370/i370.c (override_options): New.
* config/i370/i370-protos.h: Update.
* config/i386/i386.c (override_options): Set real_format_for_mode
for Intel 80-bit extended.
* config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.
* config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Mind -mlong-double-64.
(OVERRIDE_OPTIONS): Move code...
* config/i960/i960.c (i960_initialize): ... here. Set
real_format_for_mode for Intel 80-bit extended.
* config/ia64/ia64.c (ia64_override_options): Set real_format_for_mode
for Intel 80-bit extended, if enabled.
* config/m68k/m68k.c (override_options): Set real_format_for_mode
for Motorola 96-bit extended.
* config/vax/vax.h (OVERRIDE_OPTIONS): New.
* config/vax/vax.c (override_options): New.
* config/vax/vax-protos.h: Update.
From-SVN: r57388
2002-09-21 09:10:36 -07:00
Steve Ellcey
686f3bf031
hpux.h (TARGET_HPUX_LD): New, define true.
...
* config/ia64/hpux.h (TARGET_HPUX_LD): New, define true.
(ASM_FILE_END) New.
* config/ia64/ia64.h (TARGET_HPUX_LD): New, define false.
* config/ia64/ia64-protos.h (ia64_hpux_asm_file_end): New.
* config/ia64/ia64.c (ia64_asm_output_external): Create list
of external functions if TARGET_HPUX_LD is true.
(ia64_hpux_add_extern_decl): New, routine to put names on
list of external functions.
(ia64_hpux_asm_file_end): Put out declarations for external
functions if and only if they are used.
From-SVN: r56986
2002-09-09 22:03:31 +00:00
Kaveh R. Ghazi
5eb99654a2
alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk.
...
* alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk.
* alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL,
ASM_OUTPUT_ALIGNED_BSS): Use target hook.
* alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise.
* alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete.
* arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise.
(GLOBAL_ASM_OP): Define.
* arm.c (aof_globalize_label): New function.
(TARGET_ASM_GLOBALIZE_LABEL): Define for AOF.
* arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
* c4x.c (c4x_globalize_label): New function.
(TARGET_ASM_GLOBALIZE_LABEL): Define for c4x.
* c4x.h (ASM_GLOBALIZE_LABEL): Delete.
(GLOBAL_ASM_OP): Define.
* cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
* darwin-protos.h (darwin_globalize_label): Declare.
* darwin.c (darwin_globalize_label): New function.
* darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook.
(ASM_GLOBALIZE_LABEL): Delete.
(GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define.
* dsp16xx.c (asm_output_common): Use target hook.
* elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
* frv.h (ASM_GLOBALIZE_LABEL): Delete.
(GLOBAL_ASM_OP): Define.
* i370.c (i370_globalize_label): New function.
(TARGET_ASM_GLOBALIZE_LABEL): Define for i370.
* i370.h (ASM_GLOBALIZE_LABEL): Delete.
* i386.c (ix86_asm_file_end): Use target hook.
* i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef.
(ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
* ia64.c (ia64_asm_output_external): Likewise.
* ia64/sysv4.h: Update comment.
* m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
* mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
* mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook.
* mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
* mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook.
* mmix-protos.h (mmix_asm_globalize_label): Delete.
* mmix.c (mmix_asm_globalize_label): Likewise.
* mmix.h (ASM_GLOBALIZE_LABEL): Likewise.
(GLOBAL_ASM_OP): Define.
* ns32k.c (ns32k_globalize_label): New function.
* ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k.
(ASM_GLOBALIZE_LABEL): Delete.
* pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef.
(TARGET_ASM_GLOBALIZE_LABEL): Undefine.
* pa.c (pa_globalize_label): New function.
* pa.h (ASM_GLOBALIZE_LABEL): Delete.
(TARGET_ASM_GLOBALIZE_LABEL): Define for pa.
* rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete.
(GLOBAL_ASM_OP): Define.
(TARGET_ASM_GLOBALIZE_LABEL): Undef.
* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
* rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete.
(GLOBAL_ASM_OP): Define.
* v850.c (v850_output_aligned_bss): Use target hook.
* vax.c (vms_globalize_label): New function.
(TARGET_ASM_GLOBALIZE_LABEL): Define for vms.
* vax/vms.h (ASM_GLOBALIZE_LABEL): Delete.
(GLOBAL_ASM_OP): Define.
* defaults.h (ASM_GLOBALIZE_LABEL): Delete.
* doc/tm.texi: Update docs.
* dwarf2out.c (default_eh_frame_section, output_die_symbol): Use
target hook.
* final.c (output_alternate_entry_point): Likewise.
* hooks.c (hook_FILEptr_constcharptr_void): New function.
* hooks.h (hook_FILEptr_constcharptr_void): Declare.
* output.h (assemble_global): Delete.
(default_globalize_label): Declare.
* system.h (ASM_GLOBALIZE_LABEL): Poison.
* target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
(TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL.
* target.h (gcc_target): Add globalize_label member.
* varasm.c (asm_output_bss, asm_output_aligned_bss,
globalize_decl): Use target hook.
(assemble_global): Delete.
(default_globalize_label): New function.
From-SVN: r56478
2002-08-21 02:41:51 +00:00
Zack Weinberg
2be2ac706e
defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, [...]): New default definitions of new macros.
...
* defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
* doc/tm.texi: Document them. Also document SIZE_ASM_OP,
TYPE_ASM_OP, and TYPE_OPERAND_FMT.
* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
config/cris/aout.h, config/i386/freebsd-aout.h,
config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
config/xtensa/elf.h, config/xtensa/linux.h:
Use the new macros.
Where possible, remove redundant definitions of SIZE_ASM_OP,
TYPE_ASM_OP, and TYPE_OPERAND_FMT.
From-SVN: r55735
2002-07-25 05:14:23 +00:00
David Mosberger
dc44a4d856
ia64.c (gen_thread_pointer): Fix typo in marking thread_pointer_rtx as unchanging.
...
* config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
thread_pointer_rtx as unchanging.
From-SVN: r55722
2002-07-24 14:42:48 -07:00
Steve Ellcey
5da4f54878
explow.c (convert_memory_address): Remove special handling when POINTERS_EXTEND_UNSIGNED < 0.
...
* gcc/explow.c (convert_memory_address): Remove special handling
when POINTERS_EXTEND_UNSIGNED < 0.
* gcc/config/ia64.md (movsi_symbolic): New instruction for ILP32
mode.
(movedi_symbolic): Fix typo.
(load_fptr): Remove mode restriction so it works for SI and DI.
(load_fptr_internal1): Ditto.
(load_gprel): Ditto.
(load_symptr_internal1): Ditto.
(call_pic): Ditto.
* gcc/config/ia64.c (call_operand): Modify mode check.
(ia64_expand_load_address): Handle DI and SI addresses and symbols.
(ia64_expand_move): Ditto.
(ia64_assemble_integer): Handle SImode function pointers.
(ia64_expand_fetch_and_op): Handle SImode mem addresses.
(ia64_expand_op_and_fetch): Ditto.
(ia64_expand_compare_and_swap): Ditto.
(ia64_expand_lock_test_and_set): Ditto.
(ia64_expand_lock_release): Ditto.
From-SVN: r55488
2002-07-16 16:07:13 +00:00
Zack Weinberg
6c535c69ee
varargs.h: Replace with stub which issues #error.
...
* ginclude/varargs.h: Replace with stub which issues #error.
* ginclude/stdarg.h: __builtin_stdarg_start is renamed
__builtin_va_start.
* builtins.def (BUILT_IN_VARARGS_START): Delete.
(BUILT_IN_VA_START): New.
* builtins.c (expand_builtin_va_start): Eliminate first
argument and code to implement pre-ISO varargs.
(std_expand_builtin_va_start): Ignore first argument; it is
always 1.
(expand_builtin): Handle BUILT_IN_VA_START and
BUILT_IN_STDARG_START identically. Delete
BUILT_IN_VARARGS_START case.
* function.c (assign_parms): Delete hide_last_arg and all
its uses.
(mark_varargs): Delete function.
* function.h (struct function): Delete 'varargs' bit.
(current_function_varargs): Delete macro.
* tree.h: Don't declare mark_varargs.
* c-decl.c (c_function_varargs, c_mark_varargs): Delete.
(c_expand_body): Don't call mark_varargs.
* c-objc-common.c: Handle BUILT_IN_VA_START and
BUILT_IN_STDARG_START identically. Delete
BUILT_IN_VARARGS_START case.
* c-tree.h: Don't declare c_mark_varargs.
* c-parse.in: Remove grammar rules for '&...' (which has been
commented out since before 2.7.2) and for '...' in K+R
argument declarations.
* builtins.c, function.c, integrate.c, sibcall.c,
config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
config/stormy16/stormy16.c: Delete all references to
current_function_varargs, and code predicated on that flag.
* config/alpha/alpha.c (alpha_va_start),
config/arc/arc.c (arc_va_start),
config/i386/i386.c (ix86_va_start),
config/mips/mips.c (mips_va_start),
config/mn10300/mn10300.c (mn10300_va_start),
config/rs6000/rs6000.c (rs6000_va_start),
config/s390/s390.c (s390_va_start),
config/sh/sh.c (sh_va_start),
Ignore first argument; it is always 1.
* config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
* config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
Delete m68hc11_va_start.
* config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
No need to define EXPAND_BUILTIN_VA_START.
* doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
testsuite:
* c-torture/execute/991216-3.c, c-torture/execute/strct-varg-1.c,
c-torture/execute/va-arg-7.c, c-torture/execute/va-arg-8.c,
c-torture/execute/va-arg-15.c, c-torture/execute/va-arg-16.c,
c-torture/execute/va-arg-17.c, c-torture/execute/va-arg-19.c:
Convert to use <stdarg.h>.
* c-torture/execute/va-arg-3.c, c-torture/execute/va-arg-3.x:
Delete.
* gcc.dg/va-arg-2.c: New.
* lib/gcc.exp, lib/objc.exp: Remove code to set -DNO_VARARGS.
From-SVN: r55472
2002-07-16 02:16:47 +00:00
Roger Sayle
6a2dd09a65
tree.h: Modify builtin_function interface to take an extra argument ATTRS...
...
* tree.h: Modify builtin_function interface to take an extra
argument ATTRS, which is a tree representing an attribute list.
* c-decl.c (builtin_function): Accept additional parameter.
* objc/objc-act.c (builtin_function): Likewise.
* f/com.c (builtin_function): Likewise.
* java/decl.c (builtin_function): Likewise.
* ada/utils.c (builtin_function): Likewise.
* cp/decl.c (builtin_function): Likewise.
(builtin_function_1): Likewise.
* c-common.c (c_common_nodes_and_builtins): Pass an additional
NULL_TREE argument to builtin_function. (builtin_function_2):
Likewise.
* cp/call.c (build_java_interface_fn_ref): Likewise.
* objc/objc-act.c (synth_module_prologue): Likewise.
* java/decl.c (java_init_decl_processing): Likewise.
* f/com.c (ffe_com_init_0): Likewise.
* config/alpha/alpha.c (alpha_init_builtins): Pass an additional
NULL_TREE argument builtin_function.
* config/arm/arm.c (def_builtin): Likewise.
* config/c4x/c4x.c (c4x_init_builtins): Likewise.
* config/i386/i386.c (def_builtin): Likewise.
* config/ia64/ia64.c (def_builtin): Likewise.
* config/rs6000/rs6000.c (def_builtin): Likewise.
From-SVN: r55161
2002-07-01 23:07:19 +00:00
Aldy Hernandez
b4de2f7db7
i386.c (ix86_init_mmx_sse_builtins): Use build_function_type_list instead of build_function_type.
...
2002-06-29 Aldy Hernandez <aldyh@redhat.com>
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
build_function_type_list instead of build_function_type.
* config/ia64/ia64.c (ia64_init_builtins): Same.
* config/alpha/alpha.c (alpha_init_builtins): Same.
* config/rs6000/rs6000.c (altivec_init_builtins): Same.
* config/arm/arm.c (arm_init_builtins): Same.
* tree.h: Add build_function_type_list prototype.
* tree.c (build_function_type_list): New.
From-SVN: r55109
2002-06-30 01:19:58 +00:00
David S. Miller
2f937369fa
Delete SEQUENCE rtl usage outside of reorg and ssa passes.
...
2002-06-05 David S. Miller <davem@redhat.com>
Delete SEQUENCE rtl usage outside of reorg and ssa passes.
* rtl.h (gen_sequence, emit_insns, emit_insns_before,
emit_insns_before_scope, emit_insns_after,
emit_insns_after_scope): Delete declaration.
* ada/misc.c (insert_code_for): Use emit_insn* instead of
emit_insns_foo.
* config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
(alpha_set_memflags): Fix comment.
(set_frame_related_p): Use get_insns instead of gen_sequence.
* config/alpha/alpha.md (setjmp receiver splitter): Avoid
emitting no insns.
* config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
gen_sequence.
(arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
* config/fr30/fr30.c (fr30_move_double): Likewise.
* config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
Likewise.
* config/ia64/ia64.c (spill_restore_mem): Likewise.
* config/ia64/ia64.md (conditional move spliiter): Avoid emitting
no insns.
* config/m32r/m32r.c (gen_split_move_double): Use get_insns
instead of gen_sequence.
* config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
(mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
* config/sh/sh.c (sh_need_epilogue): Likewise.
* config/sparc/sparc.md (current_function_calls_alloca, flat): New
attributes.
(setjmp pattern and split): Use them to avoid splitter which emits
no RTL.
* genattrtab.c (main): Emit include of function.h
* config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
get_insns instead of gen_sequence.
* config/cris/cris.c (cris_split_movdx): Likewise.
* emit-rtl.c (emit_insns*): Kill.
(try_split): Expect insn list instead of SEQUENCE.
(make_jump_insn_raw, make_call_insn_raw): Fix comments.
(emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
Make them abort if a SEQUENCE is given and RTL checking is
enabled.
(emit_*_scope): Don't forget to set scope on final insn.
(gen_sequence): Move from here...
* ssa.c (gen_sequence): To here as private function.
* builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
comments.
(expand_builtin_return, expand_builtin_mathfn): Likewise.
(expand_builtin_strlen): Use get_insns instead of gen_sequence.
(expand_builtin_saveregs): Use emit_insn_foo, fix comments.
(expand_builtin_expect_jump): Use get_insns and fix comments.
* calls.c (try_to_integrate): Use emit_insn_foo.
(expand_call, emit_library_call_value_1): Likewise.
* expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
(emit_move_insn_1): Use get_insns instead of gen_sequence.
(expand_expr): Use emit_insn_foo.
* cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
* except.c (build_post_landing_pads): Likewise.
* flow.c (attempt_auto_inc): Likewise.
* stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
* function.c (fixup_var_refs_insn): Use get_insns instead of
gen_sequence.
(fixup_var_refs_1): Likewise and expect insn list from gen_foo.
(fixup_memory_subreg): Use get_insns instead of gen_sequence.
(fixup_stack_1, purge_addressof_1, expand_main_function,
get_arg_pointer_save_area): Likewise.
(optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
expand_function_end): Use emit_insn_foo.
(record_insns, keep_stack_depressed): Work with insn list instead
of SEQUENCE, fix comments.
* ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
noce_try_store_flag_constants, noce_try_store_flag_inc,
noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
noce_try_minmax, noce_try_abs): Use emit_insn_foo.
(noce_process_if_block): Use get_insns instead of gen_sequence.
* optabs.c (add_equal_note): Work with insn list, fix comments.
(expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
(expand_unop, expand_complex_abs, expand_unop_insn,
expand_no_conflict_block): Likewise.
(gen_move_insn): Use get_insns instead of gen_sequence.
(gen_cond_trap): Likewise.
* integrate.c (copy_rtx_and_substitute): Likewise.
(emit_initial_value_sets): Use emit_insn_foo.
* reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
(fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
now that RTL generators give insn lists.
* sibcall.c (replace_call_placeholder): Use emit_insn_foo.
* doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
instead of gen_sequence.
(doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
* explow.c (emit_stack_save, emit_stack_restore): Use get_insns
instead of gen_sequence.
* loop.c (move_movables, emit_prefetch_instructions,
gen_add_mult, check_dbra_loop, gen_load_of_final_value):
Likewise.
(loop_regs_update): Work with insn list instead of SEQUENCE rtl.
(product_cheap_p): Likewise, and add commentary about RTL wastage
here.
* lcm.c (optimize_mode_switching): Use get_insns instead of
gen_sequence.
* profile.c (gen_edge_profiler): Likewise.
* regmove.c (copy_src_to_dest): Likewise.
* reg-stack.c (compensate_edge): Likewise and fix comment.
* gcse.c (process_insert_insn): Likewise.
(insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
* jump.c (delete_prior_computation): Update comment.
* genemit.c (gen_expand, gen_split, main): Use get_insns instead
of gen_sequence, update comments to match.
* recog.c (peephole2_optimize): Work with insn lists instead of
SEQUENCE rtl.
* sched-vis.c (print_pattern): Abort on SEQUENCE.
* unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
Use get_insns instead of gen_sequence.
(copy_loop_body): Likewise and don't emit dummy NOTE.
* genrecog.c: Don't mention SEQUENCE rtl in comments.
* combine.c (try_combine): Expect insn lists from split generator.
* reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
hand.
From-SVN: r54497
2002-06-11 05:22:48 -07:00
Roger Sayle
852c6ec7ac
cfgrtl.c (create_basic_block_structure): Remove index argument and use last_basic_block++ instead.
...
2002-06-10 Roger Sayle <roger@eyesopen.com>
Andreas Jaeger <aj@suse.de>
* cfgrtl.c (create_basic_block_structure): Remove index argument
and use last_basic_block++ instead. (create_basic_block): Update.
* cfgbuild.c (find_basic_blocks_1): Likewise.
* cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
* haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
* sched-ebb.c (schedule_ebbs): Likewise.
* sched-rgn.c (schedule_insns): Likewise.
* ssa-ccp.c (ssa_const_prop): Likewise.
* ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
* toplev.c (rest_of_compilation): Likewise.
* config/ia64/ia64.c (ia64_reorg): Likewise.
Co-Authored-By: Andreas Jaeger <aj@suse.de>
From-SVN: r54477
2002-06-10 22:33:08 +00:00
Janis Johnson
135ca7b247
* config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
...
From-SVN: r54253
2002-06-04 18:03:45 +00:00
Geoffrey Keating
e2500fedef
Merge from pch-branch up to tag pch-commit-20020603.
...
From-SVN: r54232
2002-06-04 07:11:05 +00:00
Richard Henderson
7b6e506ee0
configure.in (HAVE_AS_TLS): Add ia64 test.
...
* configure.in (HAVE_AS_TLS): Add ia64 test.
* configure: Rebuild.
* config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
(override_options): Set it.
(TARGET_HAVE_TLS): New.
(sdata_symbolic_operand): Look for 's'.
(tls_symbolic_operand): New.
(ia64_expand_load_address): Abort for tls symbols.
(gen_tls_get_addr): New.
(gen_thread_pointer): New.
(ia64_expand_move): Split out from movdi. Handle tls symbols.
(rtx_needs_barrier): Add new unspecs.
(ia64_encode_section_info): Handle tls symbols.
(ia64_strip_name_encoding): Strip two encoding chars.
* config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
(TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
(TARGET_OPTIONS): Add tls-size.
(ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
* config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
(movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
(movsf, movdf): Likewise.
(movdi_symbolic): Use match_scratch. Don't split if we won't
have a scratch availiable.
(load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
sdata_symbolic_operand.
(ASM_OUTPUT_LABELREF): Strip two characters.
From-SVN: r53874
2002-05-25 12:51:43 -07:00
Richard Henderson
8beda321a5
ia64.c (ia64_reorg): Use update_life_info instead of update_life_info_in_dirty_blocks.
...
* config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
of update_life_info_in_dirty_blocks.
From-SVN: r53858
2002-05-24 15:54:28 -07:00
Zdenek Dvorak
e0082a7265
bb-reorder.c (make_reorder_chain, [...]): Use FOR_EACH_BB macros to iterate over basic block chain.
...
* bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
Use FOR_EACH_BB macros to iterate over basic block chain.
* cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
Likewise.
* cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
find_unreachable_blocks, create_edge_list, verify_edge_list,
remove_fake_edges, add_noreturn_fake_exit_edges,
flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
Likewise.
* cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
find_sub_basic_blocks): Likewise.
* cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
Likewise.
* cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
Likewise.
* cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
Likewise.
* cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
commit_edge_insertions, commit_edge_insertions_watch_calls,
print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
* combine.c (combine_instructions, reg_dead_at_p): Likewise.
* conflict.c (conflict_graph_compute): Likewise.
* df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
df_modified_p, df_refs_unlink, df_dump): Likewise.
* dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
* final.c (compute_alignments): Likewise.
* flow.c (update_life_info, update_life_info_in_dirty_blocks,
delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
count_or_remove_death_notes): Likewise.
* gcse.c (oprs_unchanged_p, record_last_reg_set_info,
compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
classic_gcse, compute_transp, cprop, compute_pre_data,
compute_transpout, invalidate_nonnull_info,
delete_null_pointer_checks_1, delete_null_pointer_checks,
compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
compute_store_table, build_store_vectors, store_motion): Likewise.
* global.c (global_conflicts, mark_elimination): Likewise.
* graph.c (print_rtl_graph_with_bb): Likewise.
* haifa-sched.c (sched_init): Likewise.
* ifcvt.c (if_convert): Likewise.
* lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
compute_available, compute_nearerout, compute_rev_insert_delete,
optimize_mode_switching): Likewise.
* local-alloc.c (local_alloc, update_equiv_regs): Likewise.
* predict.c (estimate_probability, note_prediction_to_br_prob,
propagate_freq, counts_to_freqs, expensive_function_p,
estimate_bb_frequencies): Likewise.
* profile.c (instrument_edges, get_exec_counts,
compute_branch_probabilities, compute_checksum, branch_prob,
find_spanning_tree): Likewise.
* recog.c (split_all_insns, peephole2_optimize): Likewise.
* reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
Likewise.
* regclass.c (scan_one_insn, regclass): Likewise.
* regmove.c (mark_flags_life_zones, regmove_optimize,
record_stack_memrefs): Likewise.
* regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
* reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
* resource.c (find_basic_block): Likewise.
* sched-ebb.c (schedule_ebbs): Likewise.
* sched-rgn.c (is_cfg_nonregular, build_control_flow,
find_single_block_region, find_rgns, schedule_insns)
* sibcall.c (optimize_sibling_and_tail_recursive_call)
* ssa-ccp.c (optimize_unexecutable_edges,
ssa_ccp_df_delete_unreachable_insns): Likewise.
* ssa-dce.c (ssa_eliminate_dead_code): Likewise.
* ssa.c (find_evaluations, compute_dominance_frontiers_1,
rename_block, convert_to_ssa, compute_conservative_reg_partition,
compute_coalesced_reg_partition, rename_equivalent_regs,
convert_from_ssa): Likewise.
* config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
process_for_unwind_directive): Likewise.
* df.c (FOR_ALL_BBS): Removed.
* gcse.c (struct null_pointer_info): Type of current_block field
changed.
(struct reg_avail_info): Type of last_bb field changed.
* config/ia64/ia64.c (block_num): Removed.
(need_copy_state): Type changed.
(last_block): New.
From-SVN: r53804
2002-05-23 19:23:51 +00:00
Richard Henderson
47754fd548
target-def.h (TARGET_BINDS_LOCAL_P): New.
...
* target-def.h (TARGET_BINDS_LOCAL_P): New.
* target.h (struct gcc_target): Move boolean fields to the end.
Add binds_local_p.
* varasm.c (default_binds_local_p): New.
* output.h: Declare it.
* config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
* config/cris/cris.c (cris_encode_section_info): Likewise.
* config/i386/i386.c (i386_encode_section_info): Likewise.
* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
* config/sh/sh.c (sh_encode_section_info): Likewise.
* doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
(TARGET_BINDS_LOCAL_P): New.
From-SVN: r53620
2002-05-19 02:50:27 -07:00
Richard Henderson
772c526579
system.h (STRIP_NAME_ENCODING): Poison it.
...
* system.h (STRIP_NAME_ENCODING): Poison it.
* output.h (STRIP_NAME_ENCODING): Remove.
(default_strip_name_encoding): Declare.
* target-def.h (TARGET_STRIP_NAME_ENCODING): New.
* target.h (strip_name_encoding): New.
* varasm.c (default_strip_name_encoding): New.
* dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
config/v850/v850.h: Use the hook, not the macro.
* config/darwin-protos.h, config/darwin.c, config/darwin.h,
config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
config/v850/v850.c, config/v850/v850.h:
Move STRIP_NAME_ENCODING to out-of-line function and add
TARGET_STRIP_NAME_ENCODING.
* config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
with TARGET_STRIP_NAME_ENCODING referencing existing function;
make function static.
* xcoffout.c: Include target.h
* Makefile.in (xcoffout.o): Update.
* config/avr/avr.c (avr_encode_section_info): Correct prototype.
* config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
* config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
reloc argument unused.
* config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
* doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
STRIP_NAME_ENCODING docs.
From-SVN: r53615
2002-05-19 00:55:48 -07:00
Richard Henderson
fb49053ffd
system.h (ENCODE_SECTION_INFO): Poison it.
...
* system.h (ENCODE_SECTION_INFO): Poison it.
* target-def.h (TARGET_ENCODE_SECTION_INFO): New.
* target.h (encode_section_info): New.
* varasm.c (make_decl_rtl, output_constant_def): Use it.
* hooks.c (hook_tree_int_void): New.
* hooks.h: Declare it.
* config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
config/mcore/mcore-protos.h, config/mcore/mcore.c,
config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
config/stormy16/stormy16.c, config/stormy16/stormy16.h:
Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
referencing existing function. Make function static.
* config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
config/xtensa/xtensa.c, config/xtensa/xtensa.h:
Move ENCODE_SECTION_INFO to out-of-line function and add
TARGET_ENCODE_SECTION_INFO.
* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
(ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
* config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
from SUBTARGET_*
(switch_to_section): Replace in_rdata case with in_readonly_data.
* config/h8300/h8300.c (h8300_encode_label): Make static.
* config/h8300/h8300-protos.h: Update.
* config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
from rs6000_encode_section_info; make static.
(rs6000_xcoff_encode_section_info): New.
* config/v850/v850.c (v850_encode_data_area): Make static.
* config/v850/v850-protos.h: Update.
* config/vax/vax.c: Include flags.h.
(vms_select_section): Fix typo.
* doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
ENCODE_SECTION_INFO docs.
From-SVN: r53606
2002-05-18 22:23:27 -07:00
Richard Henderson
b64a1b533c
system.h (SELECT_RTX_SECTION): Poison.
...
* system.h (SELECT_RTX_SECTION): Poison.
* target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
* target.h (select_rtx_section): New.
* varasm.c (output_constant_pool): Use it.
(default_select_rtx_section, default_elf_select_rtx_section): New.
* output.h: Declare them.
* config/darwin.h (SELECT_RTX_SECTION): Move ...
* config/darwin.c (machopic_select_rtx_section): ... here.
* config/darwin-protos.h: Update.
* config/nextstep.h (SELECT_RTX_SECTION): Move ...
* config/nextstep.c (machopic_select_rtx_section): ... here.
(nextstep_select_section): Rename variable to avoid macro clash.
* config/nextstep-protos.h: Update.
* config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
(SELECT_RTX_SECTION): Remove.
* config/darwin.h, config/elfos.h, config/nextstep.h,
config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
config/sparc/lynx.h, config/xtensa/xtensa.c
(TARGET_ASM_SELECT_RTX_SECTION): New.
* config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
* config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
* config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
* config/ia64/ia64.c (ia64_select_rtx_section): ... here.
(ia64_aix_select_rtx_section): New.
* config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
redefining.
* config/mips/mips.c (mips_select_rtx_section): Make static.
Support ELF SHF_MERGE features.
* config/mips/mips-protos.h: Update.
* config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
* config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
(rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
make static, fall back to default_elf_select_rtx_section.
* config/rs6000/rs6000-protos.h: Update.
* config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
* config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
* config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
* config/romp/romp.c (romp_select_rtx_section): New.
* config/s390/s390.c (s390_select_rtx_section): New.
* config/xtensa/xtensa.c: Include output.h. Shuffle local function
declarations before target macro definition.
(xtensa_emit_call): Use static buffer.
(xtensa_select_rtx_section): New.
* config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
(IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
(ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
* doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
SELECT_RTX_SECTION docs.
From-SVN: r53600
2002-05-18 16:47:22 -07:00
Richard Henderson
ae46c4e08a
hooks.c (hook_tree_bool_false): New.
...
* hooks.c (hook_tree_bool_false): New.
* hooks.h: Declare it.
* target-def.h (TARGET_ASM_SELECT_SECTION): New.
(TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
* target.h (select_section, unique_section): New.
(in_small_data_p): New.
* varasm.c (resolve_unique_section): Use hooks instead of macros.
(variable_section, output_constant_def_contents): Likewise.
(default_select_section, default_unique_section): New.
(categorize_decl_for_section, default_elf_select_section): New.
* output.h: Declare them.
* config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
(TARGET_ASM_SELECT_SECTION): New.
(SELECT_SECTION): Move ...
* config/darwin.c (machopic_select_section): ... here.
* config/darwin-protos.h: Update.
* config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
(SELECT_SECTION): Move ...
* config/nextstep.c (nextstep_select_section): ... here.
* config/nextstep-protos.h: Update.
* config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION): New.
* config/svr3.h (SELECT_SECTION): Remove.
* config/alpha/alpha.c (unicosmk_unique_section): Make static.
(TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
(TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
(alpha_encode_section_info): Use it.
* config/alpha/alpha-protos.h: Update.
* config/alpha/elf.h (DO_SELECT_SECTION): Remove.
(SELECT_SECTION, UNIQUE_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION): New.
* config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
* config/arm/pe.h (UNIQUE_SECTION): Remove.
(TARGET_ASM_UNIQUE_SECTION): New.
* config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
(avr_unique_section): Rename from unique_section; make static.
* config/avr/avr-protos.h: Update.
* config/avr/avr.h (UNIQUE_SECTION): Remove.
* config/c4x/c4x.h (SELECT_SECTION): Remove.
* config/i386/cygwin.h (UNIQUE_SECTION): Remove.
(TARGET_ASM_UNIQUE_SECTION): New.
* config/i386/i386-interix.h: Likewise.
* config/i386/win32.h: Likewise.
* config/i386/djgpp.h (UNIQUE_SECTION): Remove.
* config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
* config/i386/sco5.h (SELECT_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION): New.
* config/i386/svr3gas.h (SELECT_SECTION): Remove.
* config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
instead of SELECT_SECTION.
* config/m68k/dpx2.h: Likewise.
* config/rs6000/lynx.h: Likewise.
* config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
* config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
(ia64_in_small_data_p): New.
(ia64_encode_section_info): Use it. Reorganize overlarge conditional.
(ia64_aix_select_section, ia64_aix_unique_section): New.
* config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
(SELECT_SECTION, UNIQUE_SECTION): Remove.
* config/m32r/m32r.h (SELECT_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION): New.
* config/m32r/m32r.c (m32r_select_section): Take align argument.
* config/m32r/m32r-protos.h: Update.
* config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
(SELECT_SECTION): Move ...
* config/m88k/m88k.c (m88k_select_section): ... here.
* config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
* config/mcore/mcore.h (UNIQUE_SECTION): Remove.
* config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
(mcore_unique_section): Make static.
* config/mcore/mcore-protos.h: Update.
* config/mips/elf.h (UNIQUE_SECTION): Remove.
(TARGET_ASM_UNIQUE_SECTION): New.
* config/mips/elf64.h: Likewise.
* config/mips/iris6gld.h: Likewise.
* config/mips/linux.h: Likewise.
* config/mips/mips-protos.h: Update.
* config/mips/mips.c (mips_select_section): Add align argument.
* config/mips/mips.h (SELECT_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION): New.
* config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
* config/mmix/mmix.c (mmix_select_section): Remove.
(mmix_unique_section): Remove.
* config/mmix/mmix-protos.h: Update.
* config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
(SELECT_SECTION): Move ...
* config/pa/pa.c (pa_select_section): ... here.
* config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
* config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
from rs6000_select_section and make static.
(rs6000_elf_unique_section): Similarly.
(rs6000_xcoff_select_section): From xcoff.h.
(rs6000_xcoff_unique_section): Likewise.
* config/rs6000/rs6000-protos.h: Update.
* config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
* config/rs6000/xcoff.h: Likewise.
* config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
(SELECT_SECTION): Move ...
* config/sparc/sparc.c (sparc_aout_select_section): ... here.
* config/v850/v850.h (SELECT_SECTION): Move ...
* config/v850/v850.c (v850_select_section): ... here.
(TARGET_ASM_SELECT_SECTION): New.
* config/vax/vms.h (SELECT_SECTION): Move ...
* config/vax/vax.c (vms_select_section): ... here.
(TARGET_ASM_SELECT_SECTION): New.
* doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
for the target hooks.
From-SVN: r53550
2002-05-17 00:43:41 -07:00
Richard Henderson
a00fe19fa5
ia64.c (ia64_reorg): Rebuild bb_for_insn before splitting.
...
* config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
splitting. Use split_all_insns; update_life_info_in_dirty_blocks.
From-SVN: r53544
2002-05-17 00:01:18 -07:00
Richard Henderson
068d7739b9
* config/ia64/ia64.c (saveable_obstack): Do not declare.
...
From-SVN: r53541
2002-05-16 21:24:53 -07:00
Richard Henderson
086c0f96be
ia64.md: Use define_constants for unspec numbers.
...
* config/ia64/ia64.md: Use define_constants for unspec numbers.
* config/ia64/ia64.c: Likewise.
From-SVN: r53344
2002-05-09 13:58:35 -07:00
Janis Johnson
5a63e06940
rtl.h (struct rtx_def): Update comments.
...
* rtl.h (struct rtx_def): Update comments.
(RTL_FLAG_CHECK[12345678]): New. (rtl_check_failed_flag): Declare.
(RTL_FLAG): New. (CLEAR_RTX_FLAGS): New. (flag access macros): Use
RTL_FLAG_CHECK macros with list of expected RTL codes.
* rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
(rtl_check_failed_flag): New.
* reload1.c (reload): Use REG macro before changing rtx to MEM.
(reload_cse_noop_set_p): Check rtx code before using access macro.
* config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
before using access macro.
From-SVN: r53245
2002-05-07 00:18:48 +00:00
David S. Miller
14d118d655
ia64.c (ia64_emit_insn_before): Put it back.
...
2002-05-03 David S. Miller <davem@redhat.com>
* config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
(rtx_needs_barrier): Delete reference to cycle_display unspec.
(ia64_sched_reorder2): Mention need for cycle display handling
once such notes exist.
From-SVN: r53139
2002-05-03 18:04:18 -07:00
David S. Miller
aaaed75228
Delete cycle display scheduling hook.
...
2002-05-03 David S. Miller <davem@redhat.com>
Delete cycle display scheduling hook.
* config/ia64/ia64.c (ia64_cycle_display,
TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
(ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
and use emit_insn_before instead of ia64_emit_insn_before.
* config/ia64/ia64.md (unspec usage): Delete cycle display.
(cycle_display): Delete insn pattern.
* config/sparc/sparc.md (unspec usage): Delete cycle display.
(cycle_display): Delete insn pattern.
* config/sparc/sparc.c (sparc_cycle_display,
TARGET_SCHED_CYCLE_DISPLAY): Delete.
* doc/md.texi (cycle_display): Don't mention.
* doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
From-SVN: r53134
2002-05-03 17:31:28 -07:00
Richard Henderson
2840e66a78
ia64.c (ia64_function_arg_pass_by_reference): Don't crash with no type for by-mode libcalls.
...
* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
crash with no type for by-mode libcalls.
From-SVN: r52508
2002-04-18 20:59:51 -07:00
Richard Henderson
51dcde6f95
ia64.c (ia64_function_arg_pass_by_reference): New.
...
* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
(ia64_va_arg): Expect variable sized types by reference.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
ia64_function_arg_pass_by_reference.
From-SVN: r52494
2002-04-18 13:28:39 -07:00
Richard Henderson
bdbe5b8d8d
ia64.c (group_barrier_needed_p): Special case prologue_allocate_stack.
...
* config/ia64/ia64.c (group_barrier_needed_p): Special case
prologue_allocate_stack.
(ia64_single_set): Use insn codes for recognition of special
cases, not rtl matching.
* config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
* gcc.c-torture/compile/20020330-1.c: New.
From-SVN: r51615
2002-03-30 16:15:19 -08:00
Steve Ellcey
e206a74f52
ia64.md (*ptr_extend_plus_1, [...]): New.
...
* config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
* config/ia64/ia64.c (basereg_operand): New.
* config/ia64/ia64-protos.h (basereg_operand): Declare.
* config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
From-SVN: r51564
2002-03-29 10:39:56 -08:00
Richard Henderson
6dad5a5631
re PR target/6054 (GCC 3.1 for ia64 fails to restore gp after indirect call in Linux kernel)
...
PR target/6054
* config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
TARGET_CONST_GP. Simplify conditions.
* gcc.dg/20020326-1.c: New.
From-SVN: r51444
2002-03-27 02:34:14 -08:00
Richard Henderson
648fe28b9d
re PR target/3177 (Invalid sibcall optimisation on ia64)
...
PR target/3177
* config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
* config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
(ia64_expand_prologue): Look at int_regs, not words, for number
of incomming int regs.
From-SVN: r51180
2002-03-22 11:23:05 -08:00
Richard Kenner
46399021f6
* config/ia64/ia64.c (hfa_element_call, case ARRAY_TYPE): Recurse.
...
From-SVN: r51125
2002-03-21 10:05:26 -05:00
Richard Henderson
15b5aef3e7
flow.c (EH_USES): Provide default.
...
* flow.c (EH_USES): Provide default.
(calculate_global_regs_live): Use it for EH edges and noreturn calls.
* doc/tm.texi (EH_USES): New.
* config/ia64/ia64.c (ia64_eh_uses): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.h (EH_USES): New.
From-SVN: r51060
2002-03-19 18:13:39 -08:00
Richard Henderson
ebf0e888b1
ia64.c: Revert 2002-03-01 patch.
...
* config/ia64/ia64.c: Revert 2002-03-01 patch.
* config/ia64/ia64.h (INIT_EXPANDERS): New.
From-SVN: r51048
2002-03-19 14:16:10 -08:00
Richard Henderson
e6542f4e1f
ia64.c (ia64_attribute_table): Move before targetm definition.
...
* config/ia64/ia64.c (ia64_attribute_table): Move before
targetm definition. Make static.
From-SVN: r50927
2002-03-17 12:44:59 -08:00
Richard Henderson
98d2b17e0c
re PR target/5312 ([IA64] ICE in itanium_reorder at config/ia64/ia64.c:5917)
...
PR target/5312
* config/ia64/ia64.c: Include tm_p.h last.
(gen_nop_type): Remove duplicate definition.
(cycle_end_fill_slots): Set sched_data for second L slot.
(maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
(nop_cycles_until): Fix typos.
* gcc.dg/20020313-1.c: New.
From-SVN: r50796
2002-03-14 22:50:26 -08:00
Jan Hubicka
1e3881c2a0
toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup call after liveness analysis.
...
* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
call after liveness analysis.
* recog.c (split_insn): Use delete_insn_and_edges.
* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
instructions to have branch prediction notes.
* ia64reorg.c (ia64_reorg): Do not rebuild CFG.
From-SVN: r50765
2002-03-14 10:10:13 +00:00
Jakub Jelinek
09948ece3d
re PR rtl-optimization/5892 (ICE in gen_nop_type during 2.4.17 ia64 kernel build)
...
PR optimization/5892
* config/ia64/ia64.c (rotate_one_bundle): Update current packet.
* gcc.c-torture/compile/20020312-1.c: New test.
From-SVN: r50723
2002-03-13 08:49:23 +01:00
Richard Henderson
b20032503b
varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P; invoke ENCODE_SECTION_INFO with first call flag.
...
* varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
invoke ENCODE_SECTION_INFO with first call flag.
* config/darwin-protos.h, config/darwin.c, config/darwin.h,
config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
config/m68hc11/m68hc11.h, config/m88k/m88k.h,
config/mcore/mcore-protos.h, config/mcore/mcore.c,
config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
config/sh/sh.h, config/sparc/sparc.h,
config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
FIRST argument. As needed, examine it and do nothing.
* config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
* config/arm/t-pe (pe.o): Add dependencies.
From-SVN: r50236
2002-03-02 20:23:21 -08:00
Richard Henderson
49b723064f
ia64.c (ia64_initial_elimination_offset): Do not adjust argument_pointer by pretend_args_size.
...
* config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
adjust argument_pointer by pretend_args_size.
(ia64_va_start): Adjust va_start address by -pretend_args_size.
From-SVN: r50212
2002-03-01 15:56:33 -08:00
Richard Henderson
abda4f1c2d
ia64.c (ia64_adjust_cost): All non-MM consumers have 4 cycle latency from MM producers.
...
* config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
4 cycle latency from MM producers.
(ia64_internal_sched_reorder): Likewise with pipeline flush.
From-SVN: r50160
2002-02-28 11:48:40 -08:00