Jeff Law [Sat, 22 Aug 1998 23:21:24 +0000 (17:21 -0600)]
recog.c (validate_replace_rtx_group): New function.
�
* recog.c (validate_replace_rtx_group): New function.
* recog.h (validate_replace_rtx_group): Declare it.
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
the entire group of substitutions.
Jeff Law [Sat, 22 Aug 1998 23:21:23 +0000 (17:21 -0600)]
recog.c (validate_replace_rtx_group): New function.
�
* recog.c (validate_replace_rtx_group): New function.
* recog.h (validate_replace_rtx_group): Declare it.
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
the entire group of substitutions.
Jeff Law [Sat, 22 Aug 1998 23:21:19 +0000 (17:21 -0600)]
recog.c (validate_replace_rtx_group): New function.
�
* recog.c (validate_replace_rtx_group): New function.
* recog.h (validate_replace_rtx_group): Declare it.
* regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
the entire group of substitutions.
Jeffrey A Law [Fri, 21 Aug 1998 23:30:36 +0000 (23:30 +0000)]
memtst.c: Reduce size of array when STACK_SIZE is defined.
* gcc.c-torture/unsorted/memtst.c: Reduce size of array when
STACK_SIZE is defined.
* gcc.c-torture/unsorted/stuct.c: Similarly.
Makes targets with 16bit address spaces happy.
Jeffrey A Law [Thu, 20 Aug 1998 23:48:14 +0000 (23:48 +0000)]
mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the register (it could be accessed via an outer SUBREG).
* mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
register (it could be accessed via an outer SUBREG).
(REG_OK_FOR_BASE_P): Likewwise.
(GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
Per Bothner [Thu, 20 Aug 1998 16:44:03 +0000 (09:44 -0700)]
Handle new'ing of Java classes.
�
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Per Bothner [Thu, 20 Aug 1998 16:44:01 +0000 (09:44 -0700)]
Handle new'ing of Java classes.
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Per Bothner [Thu, 20 Aug 1998 16:43:59 +0000 (09:43 -0700)]
Handle new'ing of Java classes.
(
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Per Bothner [Thu, 20 Aug 1998 16:43:58 +0000 (09:43 -0700)]
Handle new'ing of Java classes.
d
Handle new'ing of Java classes.
* init.c (build_class_classref): New function.
(build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject;
constructor does not return this; don't need to exception-protect.
* pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag.
* decl2.c (acceptable_java_type): Handle template-derived types.
Mark Mitchell [Thu, 20 Aug 1998 13:46:53 +0000 (13:46 +0000)]
decl.c (duplicate_decls): Always merge the old and new patterns for templates...
* decl.c (duplicate_decls): Always merge the old and new patterns
for templates, regardless of whether or not the new one has
DECL_INITIAL. Don't throw away specializations. Merge
DECL_SAVED_TREE.
* pt.c (tsubst_decl): Use the right pattern when calculating the
complete args for a new template instance.
(do_decl_instantiation): Fix typo in comment.
(regenerate_decl_from_template): Deal with tricky friend template
case.
(instantiate_decl): Likewise.
Dave Brolley [Thu, 20 Aug 1998 10:29:22 +0000 (10:29 +0000)]
stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for arrays of bits.
Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com>
* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
arrays of bits.
* cpplib.c (cpp_define): Handle macros with parameters.
David Edelsohn [Wed, 19 Aug 1998 19:43:19 +0000 (19:43 +0000)]
rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
* rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
(output_toc): Use single TOC slot or llong minimal-toc for DFmode
and DImode 64-bit. Use llong for minimal-toc SFmode and
SYMBOL_REF / LABEL_REF 64-bit.
(output_function_profiler): Use llong for profiler label and ld to
load 64-bit label address.
Mark Mitchell [Wed, 19 Aug 1998 18:48:58 +0000 (18:48 +0000)]
typeck.c (build_binary_op_nodefault): Warn on use of NULL in arithmetic.
* typeck.c (build_binary_op_nodefault): Warn on use of NULL in
arithmetic.
* except.c (build_throw): Warn when NULL is thrown, even with
-ansi. Use ansi_null_node, rather than integer_zero_node, in the
thrown expression.
Nick Clifton [Wed, 19 Aug 1998 16:31:30 +0000 (10:31 -0600)]
�
From Nick Clifton
* execute/ieee/930529-1.c (main): Check to see if __thumb__ is
defined, and test for ARM style doubles if so.
* execute/comp-goto-1.c (main): Make main() return an int.
Nick Clifton [Wed, 19 Aug 1998 16:31:28 +0000 (10:31 -0600)]
8
From Nick Clifton
* execute/ieee/930529-1.c (main): Check to see if __thumb__ is
defined, and test for ARM style doubles if so.
* execute/comp-goto-1.c (main): Make main() return an int.
Mark Mitchell [Wed, 19 Aug 1998 15:14:58 +0000 (15:14 +0000)]
cp-tree.h (ansi_null_node): New variable.
* cp-tree.h (ansi_null_node): New variable.
* decl.c (ansi_null_node): New variable.
(init_decl_processing): Initialize its type.
* lex.c (init_parse): Initialize its value. Use ansi_null_node
for null_node in non-ANSI mode.
* typeck.c (build_binary_op_nodefault): Use ansi_null_node in
place of null_node to avoid spurious errors.
tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no effect when -O2 and higher.
* tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
effect when -O2 and higher.
* invoke.texi (Optimize Options): Likewise for -fcaller-saves.
Michael Hayes [Wed, 19 Aug 1998 12:49:17 +0000 (12:49 +0000)]
regclass.c: Changed register set documentation to be consistent with GCC behaviour.
* regclass.c: Changed register set documentation to be consistent
with GCC behaviour.
* final.c (final_start_function) Removed redundant test for
call_fixed_regs.
Mark Mitchell [Wed, 19 Aug 1998 12:30:47 +0000 (12:30 +0000)]
rtl.h (rtx_function): New type.
* rtl.h (rtx_function): New type.
(for_each_rtx): New function.
* rtlanal.c (for_each_rtx): Define it.
* recog.c (change_t): New type.
(change_objects, change_old_codes, change_locs, change_olds):
Replace with ...
(changes): New variable.
(validate_change): Dynamically allocate room for more changes, if
necessary. Uses changes array instead of change_objects, etc.
(apply_change_group): Use changes array instead of
change_objects, etc.
* loop.c (loop_mem_info): New type.
(loop_mems): New variable.
(loop_mems_idx): Likewise.
(looop_mems_allocated): Likewise.
(scan_loop): Remove nregs parameter.
(next_insn_in_loop): New function.
(load_mems_and_recount_loop_regs_set): Likewise.
(load_mems): Likewise.
(insert_loop_mem): Likewise.
(replace_loop_mem): Likewise.
(replace_label): Likewise.
(INSN_IN_RANGE_P): New macro.
(loop_optimize): Don't pass max_reg_num() to scan_loop.
(scan_loop): Remove nregs parameter, compute it after any new
registers are created by load_mems. Use INSN_IN_RANGE_P and
next_insn_in_loop rather than expanding them inline. Call
load_mems to load memory into pseudos, if appropriate.
(prescan_loop): Figure out whether or not there are jumps from the
loop to targets other than the label immediately following the
loop. Call insert_loop_mem to notice all the MEMs used in the
loop, if it could be safe to pull MEMs into REGs for the duration
of the loop.
(strength_reduce): Use next_insn_in_loop. Tweak comments.
David S. Miller [Wed, 19 Aug 1998 08:14:26 +0000 (08:14 +0000)]
sparc.c (finalize_pic): Check for the correct nonlocal_goto_receiver UNSPEC number.
* config/sparc/sparc.c (finalize_pic): Check for the correct
nonlocal_goto_receiver UNSPEC number.
* config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
making note of this dependency existing in sparc.c
Jeffrey A Law [Tue, 18 Aug 1998 17:49:28 +0000 (17:49 +0000)]
expr.c (emit_block_move): Do not call memcpy as a libcall instead build up a CALL_EXPR and call it like...
* expr.c (emit_block_move): Do not call memcpy as a libcall
instead build up a CALL_EXPR and call it like any other
function.
(clear_storage): Similarly for memset.
David S. Miller [Tue, 18 Aug 1998 08:24:51 +0000 (01:24 -0700)]
From Kaveh R. Ghazi.
* config/sparc/sparc.c (ultra_find_type): Add empty semicolon
statement after end of loop label.
From me...
* config/sparc/sparc.c (ultra_types_avail): New variable.
(ultra_build_types_avail): New function to record mask of insn
types in ready list at this cycle.
(ultrasparc_sched_reorder): Call it.
(ultra_find_type): Use it to quicken the search. Also simplif
dependency check, don't use rtx_equal_p because we know exactly
what we are looking for.
* config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
gen_compare_reg.
(movsf_const_intreg, movsf_const_high, movsf_const_lo,
movdf_const_intreg and helper splits): New patterns to move float
constants into integer registers.
(negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
splits.
Jeffrey A Law [Mon, 17 Aug 1998 20:26:47 +0000 (20:26 +0000)]
* From Graham
* tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
to itype.
* c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
Jeff Law [Mon, 17 Aug 1998 20:11:06 +0000 (14:11 -0600)]
rs6000.c (secondary_reload_class): For TARGET_ELF...
�
* rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
a BASE_REGS register is needed as an intermediate when copying
a symbolic value into any register class other than BASE_REGS.
Jeff Law [Mon, 17 Aug 1998 20:11:04 +0000 (14:11 -0600)]
rs6000.c (secondary_reload_class): For TARGET_ELF...
* rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
a BASE_REGS register is needed as an intermediate when copying
a symbolic value into any register class other than BASE_REGS.
Jason Merrill [Mon, 17 Aug 1998 16:29:17 +0000 (16:29 +0000)]
init.c (build_offset_ref): Don't mess with error_mark_node.
* init.c (build_offset_ref): Don't mess with error_mark_node.
* lex.c (do_scoped_id): Use cp_error.
* rtti.c (get_tinfo_fn): Don't mess with the context for now.