David S. Miller [Fri, 28 Aug 1998 20:13:45 +0000 (20:13 +0000)]
sparc.c (arith_operand, [...]): Mark mode as unused.
* config/sparc/sparc.c (arith_operand, const64_operand,
const64_high_operand, arith_double_4096_operand): Mark mode as
unused.
(create_simple_focus_bits): Remove unused arg highest_bit_set, all
callers changed.
(sparc_emit_set_const64): Remove unused variable i.
(sparc_splitdi_legitimate): Likewise for addr_part.
(ultra_code_from_mask): Likewise for mask.
(ultra_cmove_results_ready_p): Fixup entry modulo calc.
(ultra_flush_pipeline): Likewise.
(ultra_fpmode_conflict_exists): Likewise, remove unused variable
this_type, and allow loads and stores of differing FP modes as
they do not create a conflict.
(ultra_find_type): Initialize fpmode to SFmode, fix
parenthesization thinkos in large conditional.
(ultrasparc_sched_init): Mark dump and sched_verbose as unused.
Init free_slot_mask after ultra_cur_hist is reset, not before.
(ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
(ultrasparc_sched_reorder): Don't bzero current pipeline state,
use ultra_flush_pipeline instead, then re-init group pointer.
Fix statement with no effect. If no progress made in, and no
instructions scheduled at all, advance to new pipeline cycle else
we get into an endless loop.
(ultrasparc_adjust_cost): Remove previous arg.
* config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
Mark Mitchell [Fri, 28 Aug 1998 17:02:44 +0000 (17:02 +0000)]
cp-tree.h (build_enumerator): Take the enumeration type as a paramter.
* cp-tree.h (build_enumerator): Take the enumeration type as a
paramter.
* decl.c (finish_enum): Don't set the TREE_TYPE for the
enumeration constant values if we're processing_template_decls.
Don't set the type for the CONST_DECLs either; that's done in
build_enumerator. (
(build_enumerator): Take the enumeration type as a
paramter.
* lex.c (do_identifier): Don't resolve enumeration constants while
processing template declarations, even if they happen to be
TEMPLATE_PARM_INDEXs.
* parse.y (current_enum_type): New variable.
(primary): Don't allow statement-expression in local classes just
as we don't in global classes.
(structsp): Use current_enum_type.
(enum_list): Likewise.
* pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by
finish_enum; they no longer occur.
Mark Mitchell [Fri, 28 Aug 1998 15:43:58 +0000 (15:43 +0000)]
cp-tree.h (build_enumerator): Take the enumeration type as a paramter.
* cp-tree.h (build_enumerator): Take the enumeration type as a
paramter.
* decl.c (finish_enum): Don't set the TREE_TYPE for the
enumeration constant values if we're processing_template_decls.
Don't set the type for the CONST_DECLs either; that's done in
build_enumerator. (
(build_enumerator): Take the enumeration type as a
paramter.
* lex.c (do_identifier): Don't resolve enumeration constants while
processing template declarations, even if they happen to be
TEMPLATE_PARM_INDEXs.
* parse.y (current_enum_type): New variable.
(primary): Don't allow statement-expression in local classes just
as we don't in global classes.
(structsp): Use current_enum_type.
(enum_list): Likewise.
* pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by
finish_enum; they no longer occur.
* sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
code. Use reg_overlap_mentioned_p to detect when source and
destination overlap.
(negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
Mark Mitchell [Fri, 28 Aug 1998 12:06:56 +0000 (12:06 +0000)]
cp-tree.h (finish_base_specifier): New function.
* cp-tree.h (finish_base_specifier): New function.
* parse.y (base_class): Use it.
* semantics.c (finish_base_specifier): Define it.
* parse.y (structsp): Warn on use of typename outside of template
declarations.
J"orn Rennecke [Fri, 28 Aug 1998 07:18:52 +0000 (07:18 +0000)]
regmove.c (regclass_compatible_p): New function.
* regmove.c (regclass_compatible_p): New function.
(regmove_optimize): Use it.
Use NREGS parameter insted of calling max_reg_num.
(fixup_match_1): Don't use code = MINUS when later tieing with
a hard register is likely.
Jeffrey A Law [Thu, 27 Aug 1998 23:19:47 +0000 (23:19 +0000)]
loop.c (scan_loop): Count down from max_reg_num - 1 to FIRST_PSEUDO_REGISTER to avoid calling...
* loop.c (scan_loop): Count down from max_reg_num - 1 to
FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
of the loop.
(load_mems_and_recount_loop_regs_set): Likewise.
Forgot second AVOID_CCMODE_COPIES loop.
Mark Mitchell [Wed, 26 Aug 1998 13:55:47 +0000 (13:55 +0000)]
cp-tree.h (finish_enum): Change prototype.
* cp-tree.h (finish_enum): Change prototype.
* decl.c (finish_enum): Use TYPE_VALUES, rather than taking a
VALUES parameter. Don't try to compute mins/maxs if
processing_template_decl.
* parse.y (structsp): Use new calling sequence for finish_enum.
* pt.c (tsubst_enum): Likewise. Take the new type as input.
(lookup_template_class): Remove unused variables. Tweak.
Register enums on instantiation list before substituting
enumeration constants.
(tsubst_decl): Remove unused variables.
(regenerate_decl_from_template): Likewise.
* decl.c (duplicate_decls): Don't obliterate the
DECL_TEMPLATE_INFO for a template if we're not replacing it with
anything.
Jakub Jelinek [Wed, 26 Aug 1998 06:19:46 +0000 (08:19 +0200)]
sparc.c (sparc_override_options): If not TARGET_FPU, turn off TARGET_VIS.
* config/sparc/sparc.c (sparc_override_options): If not
TARGET_FPU, turn off TARGET_VIS.
* config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
(LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
* config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
(movdi_insn_sp64): Add VIS fzero alternative.
(clear_sf, clear_df): New VIS patterns.
(movsf, movdf expanders): Allow fp_zero_operand flat out when
TARGET_VIS.
(one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
David S. Miller [Tue, 25 Aug 1998 20:25:02 +0000 (20:25 +0000)]
sparc.c (sparc_absnegfloat_split_legitimate): New function.
* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
function.
* config/sparc/sparc.h: Declare it.
* config/sparc/sparc.md (float abs/neg splits): Use it.
(all other splits): Handle SUBREGs properly where necessary.
(unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
Brendan Kehoe [Tue, 25 Aug 1998 18:52:45 +0000 (18:52 +0000)]
pt.c (tsubst_copy): Only do typename overloading on an IDENTIFIER_NODE that happens to look like a...
* pt.c (tsubst_copy): Only do typename overloading on an
IDENTIFIER_NODE that happens to look like a typename if it actually
has a type for us to use.
avoid problems w/ SGI STL headers that have variables like __opr or __op1
Jeffrey A Law [Tue, 25 Aug 1998 18:50:26 +0000 (18:50 +0000)]
reorg.c (fill_simple_delay_slots): Do not abort if we encounter an insn on the unfilled_slots_list that has no...
* reorg.c (fill_simple_delay_slots): Do not abort if we encounter
an insn on the unfilled_slots_list that has no delay slots.
(fill_eager_delay_slots): Similarly.
Jason Merrill [Tue, 25 Aug 1998 17:17:51 +0000 (17:17 +0000)]
typeck.c (comp_cv_target_types): Split out...
* typeck.c (comp_cv_target_types): Split out...
(comp_target_types): From here. Don't allow cv-qual changes under
a pointer if nptrs == 0. Fix OFFSET_TYPE handling.
(build_ptrmemfunc): Pass 1 to nptrs.
* cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
* reload.c (operands_match_p): Handle rtvecs.
* i386.c (legitimate_pic_address_disp_p): New.
(legitimate_address_p): Use it.
(legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
Handle constant pool symbols just like statics.
(emit_pic_move): Use Pmode not SImode for clarity.
(output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
[UNSPEC]: New, handling what we killed above.
[PLUS]: Detect and abort on invalid symbol arithmetic.
* i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
Mark Mitchell [Tue, 25 Aug 1998 12:01:52 +0000 (12:01 +0000)]
alias.c: Include output.h.
* alias.c: Include output.h.
(DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
different if we're in a varargs function.
* Makefile.in (alias.o): Depend on output.h
Jason Merrill [Tue, 25 Aug 1998 01:48:47 +0000 (01:48 +0000)]
typeck.c (convert_for_assignment): Converting from pm of vbase to derived is an error, not a sorry.
* typeck.c (convert_for_assignment): Converting from pm of vbase
to derived is an error, not a sorry.
* call.c (build_over_call): Use convert_pointer_to_real for 'this'.
* class.c (fixed_type_or_null): Rename from
resolves_to_fixed_type_p. Return the dynamic type of the
expression, if fixed, or null.
(resolves_to_fixed_type_p): Use it. Return 0 if the dynamic type
does not match the static type.
(build_vbase_path): Rename 'alias_this' to 'nonnull'. Use
resolves_to_fixed_type_p again.