Jeff Law [Thu, 13 Jun 2002 12:24:00 +0000 (06:24 -0600)]
alias.c (argument_registers): Remove.
* alias.c (argument_registers): Remove.
(init_alias_once): Initialize static_reg_base_value here. Remove
initialization of argument_registers.
(init_alias_once_per_function): Remove.
(init_alias_analysis): Copy all the entries from static_reg_base_value
into new_reg_base_value all at once.
* rtl.h (init_alias_once_per_function): Remove declaration.
* function.c (prepare_function_start): Do not call
init_alias_once_per_function.
* caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
starting a sequence and emitting an INSN.
Neil Booth [Thu, 13 Jun 2002 06:25:28 +0000 (06:25 +0000)]
cpplib.c (end_directive): Handle line skipping.
* cpplib.c (end_directive): Handle line skipping. Only remove
the rest of the line if the directive was valid.
* cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
expanding a traditional macro.
* cpptrad.c (recursive_macro): New.
(read_logical_line_trad): Handle skipping.
(scan_out_logical_line): Continue after a successful directive.
Don't expand macros whilst skipping, or if recursing.
(_cpp_create_trad_definition): scan_out_logical_line now sets
the output current position.
Geoffrey Keating [Wed, 12 Jun 2002 22:57:45 +0000 (22:57 +0000)]
gengtype.h (xvasprintf): New prototype.
* gengtype.h (xvasprintf): New prototype.
(xasprintf): New prototype.
(struct outf): New.
(get_output_file): Return an outf_p.
(header_file): Is now an outf_p.
(base_files): Now are outf_p.
(oprintf): New.
* gengtype.c: Replace all output FILE * with outf_p; use oprintf
rather than stdio operations. Use xasprintf in a few places,
when appropriate.
(xvasprintf): New.
(xasprintf): New.
(struct filemap): Delete.
(files): Delete.
(output_files): New.
(oprintf): New.
(create_file): Create an outf_p. Add parameter to indicate output
file name, change all callers.
(open_base_files): Create gtype-desc.c here.
(get_output_file_with_visibility): Rewrite.
(get_output_file_name): Just look at 'name' field in struct outf.
(close_output_files): Rewrite.
* config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
* config/mips/mips.c (mips_output_filename): Don't print a
".file" directive if we are using DWARF-2.
(mips_output_function_prologue): Do not emit source file
name for TARGET_GAS.
Jan Hubicka [Wed, 12 Jun 2002 14:51:09 +0000 (16:51 +0200)]
i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to decide whether emit the short opcode.
* i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
decide whether emit the short opcode.
* i386.h (x86_shift1): Declare.
(TARGET_SHIFT1): New macro.
* i386.c (x86_shift1): New global variable.
Zack Weinberg [Wed, 12 Jun 2002 01:36:13 +0000 (01:36 +0000)]
config.gcc: Make the name of the extra-modes file adjustable by target stanzas.
* config.gcc: Make the name of the extra-modes file adjustable
by target stanzas.
(s390x, strongarm, xscale stanzas): Use this facility.
* configure.in: Update to match.
* configure: Regenerate.
Gabriel Dos Reis [Tue, 11 Jun 2002 23:11:34 +0000 (23:11 +0000)]
objc-act.c (warn_with_ivar): Adjust calls to diagnostic_count_error.
* objc/objc-act.c (warn_with_ivar): Adjust calls to
diagnostic_count_error.
(warn_with_method): Likewise.
* diagnostic.h (warnings_are_errors_message): New field of
diagnostic_context.
(diagnostic_count_error): Rename to
diagnostic_count_diagnostic to
match semantics.
* diagnostic.c: Adjust calls to diagnostic_count_error through
out.
(diagnostic_count_diagnostic): Make aware of other kinds of
diagnostics.
(diagnostic_initialize): Initialize
warnings_are_errors_message field.
f/
2002-06-12 Gabriel Dos Reis <gdr@codesourcery.com>
* bad.c (ffebad_start_): Adjust calls to
diagnostic_count_error.
Jan Hubicka [Tue, 11 Jun 2002 19:58:12 +0000 (21:58 +0200)]
i386.c (x86_promote_QImode): Set for Athlon
* i386.c (x86_promote_QImode): Set for Athlon
(x86_fast_prefix): New global variable.
(x86_arch_always_fancy_math_387): Fix formating.
* i386.h (x86_fast_prefix): Declare
(TARGET_FAST_PREFIX): define.
* i386.md (and to strict_low_part, HI to SI
promoting splitter): Use new macro.
* i386.h (RTX_COSTS): float_extend is not for free for SSE.
J.T. Conklin [Tue, 11 Jun 2002 17:54:27 +0000 (17:54 +0000)]
configure.target: Set os_include_dir to config/os/qnx/qnx6.1 under *-qnx6.[12]*.
2002-06-11 J.T. Conklin <jtc@acorntoolworks.com>
Benjamin Kosnik <bkoz@redhat.com>
* configure.target: Set os_include_dir to config/os/qnx/qnx6.1
under *-qnx6.[12]*.
* configure.in: Add support for *-qnx6.[12]*.
* configure: Regenerate.
* config/os/qnx, config/os/qnx/qnx6.1, config/os/qnx/qnx6.1/bits:
New directories.
* config/os/qnx/qnx6.1/bits/ctype_base.h, ctype_inline.h,
ctype_noninline.h, os_defines.h: New files.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r54518
* s390.c (s390_output_symbolic_const): Remove support for
old-style pool chunks.
(s390_function_epilogue): Likewise.
(s390_output_constant_pool): Likewise. Also, fix incorrect
alignment for 64-bit literal pools.
(print_operand_address): Remove 'y' and 'Y' format flags.
* s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
old-style pool chunks.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
(ASM_OUTPUT_POOL_EPILOGUE): Remove.
(S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
* s390.c (consttable_operand): New function.
* s390-protos.h (consttable_operand): Declare it.
* s390.h (PREDICATE_CODES): Add consttable_operand.
* s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
consttable_sf, consttable_df, pool_start_31, pool_end_31,
pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
* s390.c (struct constant, struct constant_pool): New data types.
(constant_modes, gen_consttable): New variables.
(s390_start_pool, s390_end_pool, s390_add_pool,
s390_dump_pool, s390_free_pool): New functions.
(s390_chunkify_pool): Completely reimplement literal pool
overflow handling.
* s390.c (s390_pool_overflow): New variable.
* s390.h (s390_pool_overflow): Declare it.
* s390.md (cjump, icjump): Use it to adapt length for out-of-range
jumps in literal pool overflow situations.
* s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
(s390_frame_info): Account for possible use of RETURN_REGNUM
by new literal pool overflow code.
(s390_emit_prologue): Likewise.
David S. Miller [Tue, 11 Jun 2002 12:22:48 +0000 (05:22 -0700)]
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.
Neil Booth [Tue, 11 Jun 2002 05:36:17 +0000 (05:36 +0000)]
Makefile.in: Update cppmain.o.
* Makefile.in: Update cppmain.o.
* cpphash.h (struct cpp_reader): Move some members to a
nested structure.
(trad_line): Rename saved_line.
(_cpp_read_logical_line_trad): Update.
(_cpp_remove_overlay): New.
* cppinit.c (cpp_create_reader): No need to set saved_line.
(cpp_destroy): Update.
(cpp_read_main_file): Only overlay if compiling.
* cpplex.c (continue_after_nul): Return false if in directive.
* cpplib.c (EXPAND): New.
(directive_table, SEEN_EOL): Update.
(end_directive): Remove overlay if traditional; don't skip
line in traditional #define.
(prepare_directive_trad): New.
(_cpp_handle_directive, run_directive): Update for traditional
directives.
(lex_macro_node): Simplify, don't use lex_identifier_trad.
* cpplib.h (struct options): Add preprocess_only.
* cppmain.c: Don't include intl.h.
(cpp_preprocess_file): Set options->preprocess_only.
(scan_translation_unit_trad): Fix, and print line numbers.
* cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
save_replacement_text, _cpp_create_trad_definition): Update for
variable renaming.
(_cpp_overlay_buffer): Save line number.
(_cpp_remove_overlay): Rename from restore_buff, restore line.
(_cpp_read_logical_line_trad): Don't handle overlays here.
(scan_out_logical_line): Process directives.
Danny Smith [Tue, 11 Jun 2002 05:25:44 +0000 (05:25 +0000)]
gthr-win32.h: Wrap all functions in extern "C".
* gthr-win32.h: Wrap all functions in extern "C".
(__gthread_key_t): Typedef as unsigned long,
not win32 DWORD.
(__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
(__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
(__gthr_win32_once, __gthr_win32_key_create,
__gthr_win32_key_delete, __gthr_win32_getspecific,
__gthr_win32_setspecific, __gthr_win32_mutex_init_function,
__gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
__gthr_win32_mutex_unlock): Declare.
(__gthread_once,__gthread_key_create,
__gthread_key_delete, __gthread_getspecific,
__gthread_setspecific, __gthread_mutex_init_function,
__gthread_mutex_lock,__gthread_mutex_trylock,
__gthread_mutex_unlock): Call corresponding
__gthr_win32_* extern implementations if #defined
__GTHREAD_HIDE_WIN32API.
* config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
$(srcdir)/config/i386/gthr-win32.c
* config/i386/gthr-win32.c: New implementation file.
(__gthr_win32_once, __gthr_win32_key_create,
__gthr_win32_key_delete, __gthr_win32_getspecific,
__gthr_win32_setspecific, __gthr_win32_mutex_init_function,
__gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
__gthr_win32_mutex_unlock): New functions, based on
static inlines in gthr-win32.h.
Zack Weinberg [Mon, 10 Jun 2002 22:35:56 +0000 (22:35 +0000)]
Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
exists, substitute its pathname as @extra_modes_file@, define
EXTRA_MODES_FILE to be an appropriate string to #include it
with, and define EXTRA_CC_MODES to 1.
* machmode.def: Update comments. Include EXTRA_MODES_FILE if
it's defined. Get rid of redundancy in calling sequence for
CC; don't use it to define CCmode, to avoid a warning.
* libgcc2.c: Include symcat.h for the sake of machmode.def.
Loren J. Rittle [Mon, 10 Jun 2002 20:52:12 +0000 (20:52 +0000)]
acinclude.m4 (GLIBCPP_CHECK_SETRLIMIT_ancilliary): Reorder and include all required headers for test against older POSIX standard.
* acinclude.m4 (GLIBCPP_CHECK_SETRLIMIT_ancilliary): Reorder and
include all required headers for test against older POSIX standard.
(GLIBCPP_CHECK_SETRLIMIT): Likewise.
(ac_setrlimit): Likewise.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* testsuite/testsuite_hooks.cc: Reorder and include all
required headers for use against older POSIX standard.
J"orn Rennecke [Mon, 10 Jun 2002 17:15:13 +0000 (17:15 +0000)]
Fix cfi generation for SH[1-4]:
* sh.c (frame_insn): New function.
(output_stack_adjust): Add parameter emit_fn. All callers changed.
(push): Now returns rtx. Use frame_insn.
(sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
of a DF register.
* sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
H.J. Lu [Mon, 10 Jun 2002 17:10:21 +0000 (17:10 +0000)]
gc_locks.h (GC_test_and_set): Support Linux/mips.
* include/private/gc_locks.h (GC_test_and_set): Support
Linux/mips.
(GC_TEST_AND_SET_DEFINED): Likewise.
* include/private/gcconfig.h (DYNAMIC_LOADING): Defined for
Linux/mips.
(DATAEND): Likewise.
(LINUX_STACKBOTTOM): Likewise.
(STACKBOTTOM): Removed for Linux/mips.
Zack Weinberg [Mon, 10 Jun 2002 16:58:36 +0000 (16:58 +0000)]
Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h, and gtype-desc.c.
* Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
and gtype-desc.c.
(mostlyclean): Delete specs.h, options.h, gencheck.h here...
(distclean): ... not here. But do delete all testsuite/*.log,
testsuite/*.sum files here. Delete mkheaders. Delete
po/*.gmo and the testsuite directory in a split tree build.
Jeff Law [Mon, 10 Jun 2002 16:32:45 +0000 (10:32 -0600)]
alias.c (static_reg_base_value): New to hold RTL for items allocated once per function for the aliasing code.
* alias.c (static_reg_base_value): New to hold RTL for
items allocated once per function for the aliasing code.
(init_alias_once_per_function): Initialize static_reg_base_value.
(init_alias_analysis): Avoid throw-away allocations of RTL by
using pre-computed values in static_reg_base_value.
* function.c (prepare_function_start): Call
init_alias_once_per_function appropriately.
* rtl.h (init_alias_once_per_function): Declare.
* caller-save (init_caller_save): Restructure slightly to
avoid lots of silly RTL generation.
* expr.c (init_expr_once): Likewise.
* reload1.c (reload_cse_regs_1): Allocate throw-away register
RTL object here. Pass it into children.
(reload_cse_simplify_operands): Use passed-in register RTL
object.
(reload_cse_simplify): Pass through throw-away register
RTL object.
Neil Booth [Mon, 10 Jun 2002 06:03:13 +0000 (06:03 +0000)]
cpphash.h (struct cpp_macro): Put comments on their own lines.
* cpphash.h (struct cpp_macro): Put comments on their own lines.
(_cpp_expansions_different_trad): New.
* cppmacro.c (warn_of_redefinition): Fix for traditional case.
* cpptrad.c (canonicalize_text): New.
(scan_out_logical_line): Handle no arguments correctly.
(save_replacement_text): Commit memory when finished.
(_cpp_expansions_different_trad): New.
Bryce McKinlay [Mon, 10 Jun 2002 05:11:42 +0000 (05:11 +0000)]
Don't use RTL inlining. Fix for PR java/6820.
* lang.c (LANG_HOOKS_POST_OPTIONS): Define.
(flag_really_inline): New.
(java_decode_option): Set flag_really_inline if -finline-functions
is seen.
(java_post_options): New function. Turn off inlining unless
flag_really_inline is set.