Richard Kenner [Wed, 18 Mar 1998 13:45:28 +0000 (13:45 +0000)]
fold-const.c (operand_equal_for_comparison_p): See if equal when nop conversions are removed.
Wed Mar 18 13:46:07 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* fold-const.c (operand_equal_for_comparison_p): See if equal
when nop conversions are removed.
Richard Kenner [Wed, 18 Mar 1998 13:41:50 +0000 (13:41 +0000)]
expr.c (expand_expr, [...]): If have conditional move, don't use ORIGINAL_TARGET unless REG.
Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (expand_expr, case COND_EXPR): If have conditional move,
don't use ORIGINAL_TARGET unless REG.
Jim Wilson [Wed, 18 Mar 1998 12:45:22 +0000 (12:45 +0000)]
Fix sparc-sun-solaris2 -O2 -fPIC bootstrap failure with gcse code.
* loop.c (struct movable): New field move_insn_first.
(scan_loop): In consec sets code, set it. Clear it otherwise.
(move_movables): In consec sets code, use it. Copy REG_NOTES from
p to i1 only if i1 does not have REG_NOTES. Delete obsolete ifdefed
out code.
Mark Mitchell [Wed, 18 Mar 1998 10:52:04 +0000 (10:52 +0000)]
semantics.c: New file, containing routines to perform the semantic phase of parsing.
* semantics.c: New file, containing routines to perform the
semantic phase of parsing.
* parse.y: Use it.
* pt.c (tsubst_expr): Likewise.
* cp-tree.h: Declare the various functions in semantics.c.
Provide macros to access _STMT tree nodes.
* cp-tree.def: Add ASM_STMT tree node.
* Makefile.in, Make-lang.in: Add dependencies on and for
semantics.c.
rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT is large...
* rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT
is large, and the system doesn't provide atoll or atoq.
(atoll): New.
* alpha/xm-vms.h (HAVE_ATOLL): Define.
Reported by Klaus Kaempf <kkaempf@progis.de>.
Dave Love [Wed, 18 Mar 1998 08:51:01 +0000 (08:51 +0000)]
Makefile.in ($(CONFIGURE_TARGET_MODULES)): Set CONFIG_SITE to a non-existent file since /dev/null loses with bash...
1998-03-18 Dave Love <d.love@dl.ac.uk>
* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Set CONFIG_SITE to a
non-existent file since /dev/null loses with bash 2.0/autoconf 2.12.
Mark Mitchell [Tue, 17 Mar 1998 14:59:43 +0000 (14:59 +0000)]
typeck2.c (build_x_arrow): Don't crash when an aggregate type has no overloaded operator ->.
* typeck2.c (build_x_arrow): Don't crash when an aggregate type
has no overloaded operator ->.
* call.c (build_field_call): Don't crash when presented with a
field that is actually a nested type.
* decl.c (pushtag): Deal with friend class injection in local
classes.
* call.c (build_object_call): Don't crash if OBJ is a
pointer-to-member-function.
config-ml.in: After building symlink tree call make distclean if...
�
* config-ml.in: After building symlink tree call make distclean
if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
to be the case for libiberty.
* Makefile.in (clean, distclean): Add 'info' explicitly.
config-ml.in: After building symlink tree call make distclean if...
�
* config-ml.in: After building symlink tree call make distclean
if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
to be the case for libiberty.
* Makefile.in (clean, distclean): Add 'info' explicitly.
config-ml.in: After building symlink tree call make distclean if...
�
* config-ml.in: After building symlink tree call make distclean
if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
to be the case for libiberty.
* Makefile.in (clean, distclean): Add 'info' explicitly.
config-ml.in: After building symlink tree call make distclean if...
P
* config-ml.in: After building symlink tree call make distclean
if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
to be the case for libiberty.
* Makefile.in (clean, distclean): Add 'info' explicitly.
Jason Merrill [Tue, 17 Mar 1998 00:03:43 +0000 (00:03 +0000)]
class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX.
* class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX.
* search.c: Likewise.
* lex.c (do_pending_defargs): Only call
maybe_{begin,end}_member_template_processing for FUNCTION_DECLs.
* parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al.
Andrew Macleod [Mon, 16 Mar 1998 12:51:39 +0000 (12:51 +0000)]
except.c (insn_eh_region, [...]): New static variables.
* except.c (insn_eh_region, maximum_uid): New static variables.
(set_insn_eh_region): New static function to set region numbers.
(free_insn_eh_region): New function to free EH region table.
(init_insn_eh_region): New function to initialize EH region table.
(in_same_eh_region): New function used to determine if two rtl
instructions are in the same exception region or not.
Andrew Macleod [Mon, 16 Mar 1998 12:50:46 +0000 (12:50 +0000)]
except.h (in_same_eh_region): New prototype.
* except.h (in_same_eh_region): New prototype.
(free_insn_eh_region, init_insn_eh_region): New prototypes.
* except.c (insn_eh_region, maximum_uid): New static variables.
(set_insn_eh_region): New static function to set region numbers.
(free_insn_eh_region): New function to free EH region table.
(init_insn_eh_region): New function to initialize EH region table.
(in_same_eh_region): New function used to determine if two rtl
instructions are in the same exception region or not.
* final.c (final): Initialize the table indicating which instructions
belong in which exception region.
* genpeep.c (main): Add "except.h" to include file list in generated
file insn-peep.c.
* config/sparc/sparc.md: Add calls to 'in_same_eh_region' in 4
peepholes involving calls and unconditional branches.
Ken Raeburn [Mon, 16 Mar 1998 11:56:25 +0000 (11:56 +0000)]
Change MEMORY_MOVE_COST defs and uses to be able to take register class into account.
Change MEMORY_MOVE_COST defs and uses to be able to take register class into
account. Change mips def to actually do so, others to just ignore extra args.
Doc changes too.
Mark Mitchell [Mon, 16 Mar 1998 10:54:48 +0000 (10:54 +0000)]
pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more closely mimics the behavior in parse.y.
* pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more
closely mimics the behavior in parse.y.
(tsubst_expr): Return the resuting BLOCK when making a tsubst'ing
into a compound statement.
Andreas Schwab [Mon, 16 Mar 1998 02:16:43 +0000 (02:16 +0000)]
m68k.c: Include <stdlib.h> for atoi.
* config/m68k/m68k.c: Include <stdlib.h> for atoi. Include
"recog.h" for offsettable_memref_p.
(legitimize_pic_address): Remove unused variable `offset'.
(notice_update_cc): Change return type to void. Add default label
to switch.
(standard_68881_constant_p): Remove unused variable mode.
(print_operand): Define local variable i only if SUPPORT_SUN_FPA.
(const_int_cost): Explicitly declare as returning int.
(output_dbcc_and_branch): Change return type to void.
* config/m68k/linux.h, config/m68k/m68k.md, config/m68k/m68k.c,
config/m68k/m68k.h: Replace gen_rtx (XXX, ...) with gen_rtx_XXX
(...). Use GEN_INT instead of gen_rtx_CONST_INT.
Jason Merrill [Sun, 15 Mar 1998 19:53:08 +0000 (14:53 -0500)]
cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro.
* cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro.
* pt.c (inline_needs_template_parms): New fn.
(original_template): New fn.
(push_inline_template_parms_recursive): New fn.
(maybe_begin_member_template_processing): Use them.
(maybe_end_member_template_processing): Likewise.
(is_member_or_friend_template): Rename to is_member_template.
Member functions of local classes are never member templates.
* lex.c (do_identifier): Handle TEMPLATE_DECL that was
added in the class scope to catch redefinition error.
* pt.c (reduce_template_parm_level): Also copy
the DECL_TEMPLATE_PARMS field.
d
* cp-tree.h (struct lang_decl_flags): Add needs_final_overrider.
(DECL_NEEDS_FINAL_OVERRIDER_P): New macro.
* class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P.
* decl.c (duplicate_decls): Propagate it.
* typeck2.c (abstract_virtuals_error): Use two loops to emit
abstract virtual functions and virtual functions which need a
final overrider separately.
a
* cp-tree.h (struct lang_decl_flags): Add needs_final_overrider.
(DECL_NEEDS_FINAL_OVERRIDER_P): New macro.
* class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P.
* decl.c (duplicate_decls): Propagate it.
* typeck2.c (abstract_virtuals_error): Use two loops to emit
abstract virtual functions and virtual functions which need a
final overrider separately.
�
* cp-tree.h (struct lang_decl_flags): Add needs_final_overrider.
(DECL_NEEDS_FINAL_OVERRIDER_P): New macro.
* class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P.
* decl.c (duplicate_decls): Propagate it.
* typeck2.c (abstract_virtuals_error): Use two loops to emit
abstract virtual functions and virtual functions which need a
final overrider separately.
Bernd Schmidt [Thu, 12 Mar 1998 12:43:42 +0000 (05:43 -0700)]
i386.c (ix86_logical_operator): New function.
* i386.c (ix86_logical_operator): New function.
(split_di): Ensure that when a MEM is split, the resulting MEMs have
SImode.
* i386.md (anddi3, xordi3, iordi3): New patterns. Add a define_split
to implement them.
Kaveh R. Ghazi [Thu, 12 Mar 1998 12:32:24 +0000 (12:32 +0000)]
Warning fixes, resulting in the addition of a new target macro:
* tm.texi (DEFAULT_RTX_COSTS): Document new macro.
* arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS.
* cse.c (rtx_cost): Provide a default case in an enumeration
switch, and call DEFAULT_RTX_COSTS if it's defined.
Co-Authored-By: Nick Clifton <nickc@cygnus.com> Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r18513
basic-block.h (compute_preds_succs): Change return type in prototype to void.
* basic-block.h (compute_preds_succs): Change return type in
prototype to void.
* flow.c (compute_preds_succs): Likewise in function definition.
* regmove.c (find_matches): Cast char used as array index to unsigned char
to supress warning.
basic-block.h (compute_preds_succs): Change return type in prototype to void.
d
* basic-block.h (compute_preds_succs): Change return type in
prototype to void.
* flow.c (compute_preds_succs): Likewise in function definition.
* regmove.c (find_matches): Cast char used as array index to unsigned char
to supress warning.
basic-block.h (compute_preds_succs): Change return type in prototype to void.
a
* basic-block.h (compute_preds_succs): Change return type in
prototype to void.
* flow.c (compute_preds_succs): Likewise in function definition.
* regmove.c (find_matches): Cast char used as array index to unsigned char
to supress warning.
basic-block.h (compute_preds_succs): Change return type in prototype to void.
�
* basic-block.h (compute_preds_succs): Change return type in
prototype to void.
* flow.c (compute_preds_succs): Likewise in function definition.
* regmove.c (find_matches): Cast char used as array index to unsigned char
to supress warning.
�
In gcc/:
* i386.h (RTX_COSTS): Insert braces around nested if.
(ADDITIONAL_REGISTER_NAMES): Insert braces around structured
elements.
* gcc.c (default_compilers): Properly put brackets around array elements in
initializer.
* getopt.c (_getopt_internal): Add explicit braces around nested if;
reformatted.
* reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's.
(record_reg_life_pat): Add explicit parens around && and || in expression.
(stack_reg_life_analysis): Add parens around assignment used as expression.
(convert_regs): Likewise.
In gcc/cp/:
* lang-specs.h: Properly put brackets around array elements in initializer.
* typeck.c (build_binary_op_nodefault): Correctly place parens around
&& and || in expression.
In gcc/f/:
* lang-specs.h: Properly put brackets around array elements in initializer.
a
In gcc/:
* i386.h (RTX_COSTS): Insert braces around nested if.
(ADDITIONAL_REGISTER_NAMES): Insert braces around structured
elements.
* gcc.c (default_compilers): Properly put brackets around array elements in
initializer.
* getopt.c (_getopt_internal): Add explicit braces around nested if;
reformatted.
* reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's.
(record_reg_life_pat): Add explicit parens around && and || in expression.
(stack_reg_life_analysis): Add parens around assignment used as expression.
(convert_regs): Likewise.
In gcc/cp/:
* lang-specs.h: Properly put brackets around array elements in initializer.
* typeck.c (build_binary_op_nodefault): Correctly place parens around
&& and || in expression.
In gcc/f/:
* lang-specs.h: Properly put brackets around array elements in initializer.
/
In gcc/:
* i386.h (RTX_COSTS): Insert braces around nested if.
(ADDITIONAL_REGISTER_NAMES): Insert braces around structured
elements.
* gcc.c (default_compilers): Properly put brackets around array elements in
initializer.
* getopt.c (_getopt_internal): Add explicit braces around nested if;
reformatted.
* reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's.
(record_reg_life_pat): Add explicit parens around && and || in expression.
(stack_reg_life_analysis): Add parens around assignment used as expression.
(convert_regs): Likewise.
In gcc/cp/:
* lang-specs.h: Properly put brackets around array elements in initializer.
* typeck.c (build_binary_op_nodefault): Correctly place parens around
&& and || in expression.
In gcc/f/:
* lang-specs.h: Properly put brackets around array elements in initializer.
d
In gcc/:
* i386.h (RTX_COSTS): Insert braces around nested if.
(ADDITIONAL_REGISTER_NAMES): Insert braces around structured
elements.
* gcc.c (default_compilers): Properly put brackets around array elements in
initializer.
* getopt.c (_getopt_internal): Add explicit braces around nested if;
reformatted.
* reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's.
(record_reg_life_pat): Add explicit parens around && and || in expression.
(stack_reg_life_analysis): Add parens around assignment used as expression.
(convert_regs): Likewise.
In gcc/cp/:
* lang-specs.h: Properly put brackets around array elements in initializer.
* typeck.c (build_binary_op_nodefault): Correctly place parens around
&& and || in expression.
In gcc/f/:
* lang-specs.h: Properly put brackets around array elements in initializer.
�
In gcc/:
* i386.h (RTX_COSTS): Insert braces around nested if.
(ADDITIONAL_REGISTER_NAMES): Insert braces around structured
elements.
* gcc.c (default_compilers): Properly put brackets around array elements in
initializer.
* getopt.c (_getopt_internal): Add explicit braces around nested if;
reformatted.
* reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's.
(record_reg_life_pat): Add explicit parens around && and || in expression.
(stack_reg_life_analysis): Add parens around assignment used as expression.
(convert_regs): Likewise.
In gcc/cp/:
* lang-specs.h: Properly put brackets around array elements in initializer.
* typeck.c (build_binary_op_nodefault): Correctly place parens around
&& and || in expression.
In gcc/f/:
* lang-specs.h: Properly put brackets around array elements in initializer.
c-decl (finish_struct): Change type of min_align to unsigned.
a
gcc/ChangeLog:
* c-decl (finish_struct): Change type of min_align to unsigned.
* cplus-dem.c (demangle_function_name): Change type of variable i to size_t;
remove unused variable len.
* dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a
comment indicating this is proper behaviour.
(reg_loc_descriptor): Remove redundant comparison of unsigned variable
reg >= 0.
(based_loc_descr): Likewise.
* enquire.c (bitpattern): Change type of variable i to unsigned.
* final.c (output_asm_insn): Don't cast insn_noperands to unsigned.
* flow.c (life_analysis): Change type of variable i to size_t;
remove unused variable insn.
* gcc.c (translate_options): Change type of variables optlen, arglen and
complen to size_t.
(input_filename_length): Change type to size_t.
(do_spec_1): Change type of variable bufsize to size_t.
(main): Change type of variables i and j to size_t;
remove subblock local definition of variable i.
(lookup_compiler): Change type of second argument to size_t;
change type of variable i to size_t.
* genemit.c (output_init_mov_optab): Change type of variable i to size_t.
* genopinit.c (get_insn): Change type of variable pindex to size_t.
* genrecog.c (add_to_sequence): Change type of variable i to size_t.
* global.c (global_alloc): Change type of variable i to size_t.
* regclass.c (init_reg_sets): Change type of variables i and j to unsigned.
* stmt.c (expand_end_bindings): Change type of variable i to size_t.
(expand_end_case): Change type of variable count to size_t.
* toplev.c (main): Change type of variable j to size_t.
(set_target_switch): Change type of variable j to size_t.
(print_switch_values): Change type of variable j to size_t;
remove unused variable flags.
* varasm.c (assemble_variable): Change type of variable align to size_t.
(const_hash_rtx): Change type of variable i to size_t.
gcc/cp/ChangeLog:
Sun Mar 8 17:13:38 1998 Manfred Hollstein <manfred@s-direktnet.de>
* decl2.c (lang_decode_option): Change j's type to size_t.
* tree.c (layout_vbasetypes): record_align and desired_align are of
type unsigned int; const_size and nonvirtual_const_size likewise.
c-decl (finish_struct): Change type of min_align to unsigned.
d
gcc/ChangeLog:
* c-decl (finish_struct): Change type of min_align to unsigned.
* cplus-dem.c (demangle_function_name): Change type of variable i to size_t;
remove unused variable len.
* dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a
comment indicating this is proper behaviour.
(reg_loc_descriptor): Remove redundant comparison of unsigned variable
reg >= 0.
(based_loc_descr): Likewise.
* enquire.c (bitpattern): Change type of variable i to unsigned.
* final.c (output_asm_insn): Don't cast insn_noperands to unsigned.
* flow.c (life_analysis): Change type of variable i to size_t;
remove unused variable insn.
* gcc.c (translate_options): Change type of variables optlen, arglen and
complen to size_t.
(input_filename_length): Change type to size_t.
(do_spec_1): Change type of variable bufsize to size_t.
(main): Change type of variables i and j to size_t;
remove subblock local definition of variable i.
(lookup_compiler): Change type of second argument to size_t;
change type of variable i to size_t.
* genemit.c (output_init_mov_optab): Change type of variable i to size_t.
* genopinit.c (get_insn): Change type of variable pindex to size_t.
* genrecog.c (add_to_sequence): Change type of variable i to size_t.
* global.c (global_alloc): Change type of variable i to size_t.
* regclass.c (init_reg_sets): Change type of variables i and j to unsigned.
* stmt.c (expand_end_bindings): Change type of variable i to size_t.
(expand_end_case): Change type of variable count to size_t.
* toplev.c (main): Change type of variable j to size_t.
(set_target_switch): Change type of variable j to size_t.
(print_switch_values): Change type of variable j to size_t;
remove unused variable flags.
* varasm.c (assemble_variable): Change type of variable align to size_t.
(const_hash_rtx): Change type of variable i to size_t.
gcc/cp/ChangeLog:
Sun Mar 8 17:13:38 1998 Manfred Hollstein <manfred@s-direktnet.de>
* decl2.c (lang_decode_option): Change j's type to size_t.
* tree.c (layout_vbasetypes): record_align and desired_align are of
type unsigned int; const_size and nonvirtual_const_size likewise.
c-decl (finish_struct): Change type of min_align to unsigned.
gcc/ChangeLog:
* c-decl (finish_struct): Change type of min_align to unsigned.
* cplus-dem.c (demangle_function_name): Change type of variable i to size_t;
remove unused variable len.
* dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a
comment indicating this is proper behaviour.
(reg_loc_descriptor): Remove redundant comparison of unsigned variable
reg >= 0.
(based_loc_descr): Likewise.
* enquire.c (bitpattern): Change type of variable i to unsigned.
* final.c (output_asm_insn): Don't cast insn_noperands to unsigned.
* flow.c (life_analysis): Change type of variable i to size_t;
remove unused variable insn.
* gcc.c (translate_options): Change type of variables optlen, arglen and
complen to size_t.
(input_filename_length): Change type to size_t.
(do_spec_1): Change type of variable bufsize to size_t.
(main): Change type of variables i and j to size_t;
remove subblock local definition of variable i.
(lookup_compiler): Change type of second argument to size_t;
change type of variable i to size_t.
* genemit.c (output_init_mov_optab): Change type of variable i to size_t.
* genopinit.c (get_insn): Change type of variable pindex to size_t.
* genrecog.c (add_to_sequence): Change type of variable i to size_t.
* global.c (global_alloc): Change type of variable i to size_t.
* regclass.c (init_reg_sets): Change type of variables i and j to unsigned.
* stmt.c (expand_end_bindings): Change type of variable i to size_t.
(expand_end_case): Change type of variable count to size_t.
* toplev.c (main): Change type of variable j to size_t.
(set_target_switch): Change type of variable j to size_t.
(print_switch_values): Change type of variable j to size_t;
remove unused variable flags.
* varasm.c (assemble_variable): Change type of variable align to size_t.
(const_hash_rtx): Change type of variable i to size_t.
gcc/cp/ChangeLog:
Sun Mar 8 17:13:38 1998 Manfred Hollstein <manfred@s-direktnet.de>
* decl2.c (lang_decode_option): Change j's type to size_t.
* tree.c (layout_vbasetypes): record_align and desired_align are of
type unsigned int; const_size and nonvirtual_const_size likewise.
Teemu Torma [Wed, 11 Mar 1998 12:07:25 +0000 (12:07 +0000)]
Patch from Teemu Torma to fix Solaris 2.6 EH failures.
* gthr.h: Changed the comment about return values.
* gthr-solaris.h (__gthread_once): Do not use errno; return the
error number instead of -1.
(__gthread_key_create): Any non-zero return value is an error.
* libgcc2.c (eh_context_initialize): Check for non-zero return
value from __gthread_once.
Check that the value of get_eh_context was really changed.
J"orn Rennecke [Wed, 11 Mar 1998 10:33:51 +0000 (10:33 +0000)]
sh.h (LOOP_ALIGN): Only align when optimizing.
* sh.h (LOOP_ALIGN): Only align when optimizing.
* sh.c (find_barrier): Clear inc for CODE_LABELs.
When not optimizing, calculate alignment for BARRIERs directly.