Mark Mitchell [Sat, 28 Mar 1998 17:47:07 +0000 (17:47 +0000)]
pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs.
* pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs.
* pt.c (instantiate_class_template): Make sure template
arguments are permanent.
* init.c (resolve_offset_ref): Don't go looking around in
template types.
* semantics.c: Add routines to handle expressions, and some
declaration processing.
* parse.y: Use them.
(current_class_depth): Move declaration to cp-tree.h.
* parse.c: Regenerated.
* cp-tree.h: Use them.
(current_class_depth): Declare.
* pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr.
Jeffrey A Law [Sat, 28 Mar 1998 13:55:34 +0000 (13:55 +0000)]
genemit.c (gen_expand): Do not emit "_done" or "_fail" labels.
* genemit.c (gen_expand): Do not emit "_done" or "_fail" labels.
(gen_split): Likewise.
(main): Rework generated definitions of DONE and FAIL so that they
no longer use gotos. Avoids warnings about unused labels.
Craig Burley [Sat, 28 Mar 1998 00:28:21 +0000 (19:28 -0500)]
u77-test.f: Don't bother declaring etime.
* libU77/u77-test.f: Don't bother declaring etime.
Use `implicit none' and declare mask and lenstr.
Do ETIME/DTIME consistency check before loop, then
use loop to verify that dtime "ticks" at some point.
Check ETIME array-sum using single-precision add, to
avoid spurious complaint on systems (like x86) that
use more precision for intermediate results.
Fix `Results of ETIME and DTIME...' message to print
pertinent values (r1 and r2 instead of i and j).
Change loop from 10M to 1K repeated up to 1000 times
or until dtime "ticks".
Print the number of 1K loops needed to see this tick.
Answer a commented question.
Split up a long line of output and do other prettying.
Preset lognam in case GETLOG fails to overwrite it.
Patch from Craig.
* basic-block.h (basic_block_computed_jump_target): Declare.
* flags.h: (current_function_has_computed_jump): Declare.
* flow.c: (basic_block_computed_jump_target): Define.
(flow_analysis): Allocate it. Set current_function_has_computed_jump
to 0.
(find_basic_blocks): Set current_function_has_computed_jump and
elements of basic_block_computed_jump_target to 1 as appropriate.
* function.c: (current_function_has_computed_jump): Define.
* global.c (global_conflicts): Don't allocate pseudos into stack regs
at the start of a block that is reachable by a computed jump.
* reg-stack.c (stack_reg_life_analysis): If must restart, do so
immediately.
(subst_stack_regs): Undo change from Sep 4 1997.
(uses_reg_or_mem): Now unused, deleted.
* stupid.c (stupid_life_analysis): Compute
current_function_has_computed_jump.
(stupid_find_reg): Don't allocate stack regs if the function has a
computed goto.
* haifa-sched.c (is_cfg_nonregular): Delete code to determine if
the current function has a computed jump. Use the global value
instead.
Co-Authored-By: Jeffrey A Law <law@cygnus.com>
From-SVN: r18860
Makefile.in (stmp-fixinc): If we're actually fixing include files...
a
* Makefile.in (stmp-fixinc): If we're actually fixing include
files, copy gcc's assert.h into the fixed include dir.
* fixincludes (assert.h): Avoid any attempts to fix a probably
broken system specific assert.h file.
* fixproto (stdlib.h): Make sure, it'll contain a definition of
size_t.
Makefile.in (stmp-fixinc): If we're actually fixing include files...
d
* Makefile.in (stmp-fixinc): If we're actually fixing include
files, copy gcc's assert.h into the fixed include dir.
* fixincludes (assert.h): Avoid any attempts to fix a probably
broken system specific assert.h file.
* fixproto (stdlib.h): Make sure, it'll contain a definition of
size_t.
Makefile.in (stmp-fixinc): If we're actually fixing include files...
0
* Makefile.in (stmp-fixinc): If we're actually fixing include
files, copy gcc's assert.h into the fixed include dir.
* fixincludes (assert.h): Avoid any attempts to fix a probably
broken system specific assert.h file.
* fixproto (stdlib.h): Make sure, it'll contain a definition of
size_t.
J"orn Rennecke [Thu, 26 Mar 1998 15:08:53 +0000 (15:08 +0000)]
reload inheritance improvement:
* reload1.c (reg_reloaded_contents, reg_reloaded_insn):
Change meaning: index is now hard reg number.
(reg_reloaded_valid, reg_reloaded_dead): New variables.
(reload_spill_index): Content is now a hard reg number.
(reload_as_needed): Change to fit new variable meaning.
(forget_old_reloads_1, allocate_reload_reg): Likewise.
(choose_reload_regs, emit_reload_insns): Likewise.
Jason Merrill [Thu, 26 Mar 1998 11:16:45 +0000 (11:16 +0000)]
decl.c (grokdeclarator): Remove const and volatile from type after setting constp and volatilep.
* decl.c (grokdeclarator): Remove const and volatile from type after
setting constp and volatilep.
* class.c (finish_struct_1): Don't warn about bool bitfield larger
than one bit.
J"orn Rennecke [Thu, 26 Mar 1998 10:44:22 +0000 (10:44 +0000)]
regclass.c (record_reg_classes): '?' increases cost by two.
* regclass.c (record_reg_classes): '?' increases cost by two.
* reload.c (find_reloads): Double previous costs. Output
reloads cost one unit extra.
* reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that
boiled down to && ! 0.
* reload.c (find_equiv_reg): Also consider a goal offset from the
frame pointer to be constant.
Jeffrey A Law [Thu, 26 Mar 1998 10:30:41 +0000 (10:30 +0000)]
acinclude.m4: Bring back changes lost during merge.
* acinclude.m4: Bring back changes lost during merge.
(mostly Cygwin, automake and EGCS_PROG_INSTALL stuff).
* aclocal.m4: Likewise.
* configure.in: Likewise.
Jeff Law [Wed, 25 Mar 1998 22:58:40 +0000 (15:58 -0700)]
haifa-sched.c (find_post_sched_live): Use EXECUTE_IF_SET_IN_REG_SET instead of calling REGNO_REG_SET_P for each pseudo.
* haifa-sched.c (find_post_sched_live): Use EXECUTE_IF_SET_IN_REG_SET
instead of calling REGNO_REG_SET_P for each pseudo.
(update_reg_usage): Likewise.
(compute_block_backward)dependences): Do not call "free_list" for
an empty list.
Improves compile times by about 7% on average on my PAs.
Mark Mitchell [Wed, 25 Mar 1998 16:14:49 +0000 (16:14 +0000)]
cp-tree.h (enforce_access): Declare.
Wed Mar 25 16:10:50 1998 Mark Mitchell <mmitchell@usa.net>
* cp-tree.h (enforce_access): Declare.
* call.c (enforce_access): Make it extern, not static.
* class.c (alter_access): Use enforce_access; modify code for ISO
compliance, rather than ARM rules.
Jim Wilson [Wed, 25 Mar 1998 13:42:05 +0000 (13:42 +0000)]
Fix bug reported by David C Binderman, accept 'L' when pedantic with FP format.
* c-common.c (check_format_info): Initialize type, is_type. New local
integral_format. Don't warn for 'L' when pedantic. Do warn for 'L'
when pedantic if used with integral format specifier.
Mark Mitchell [Tue, 24 Mar 1998 16:13:12 +0000 (16:13 +0000)]
tree.c (mapcar): When dealing with a DECL, use it's constant value, if any.
�
* tree.c (mapcar): When dealing with a DECL, use it's constant
value, if any.
* pt.c (lookup_template_class): Don't mangle the names of template
classes whose arguments are unknown.
* pt.c (tsubst_expr): Handle GOTO_STMT correctly.
Mark Mitchell [Tue, 24 Mar 1998 16:13:12 +0000 (16:13 +0000)]
tree.c (mapcar): When dealing with a DECL, use it's constant value, if any.
�
* tree.c (mapcar): When dealing with a DECL, use it's constant
value, if any.
* pt.c (lookup_template_class): Don't mangle the names of template
classes whose arguments are unknown.
* pt.c (tsubst_expr): Handle GOTO_STMT correctly.
Mark Mitchell [Tue, 24 Mar 1998 16:13:09 +0000 (16:13 +0000)]
tree.c (mapcar): When dealing with a DECL, use it's constant value, if any.
�
* tree.c (mapcar): When dealing with a DECL, use it's constant
value, if any.
* pt.c (lookup_template_class): Don't mangle the names of template
classes whose arguments are unknown.
* pt.c (tsubst_expr): Handle GOTO_STMT correctly.
Mark Mitchell [Tue, 24 Mar 1998 16:13:08 +0000 (16:13 +0000)]
tree.c (mapcar): When dealing with a DECL, use it's constant value, if any.
�
* tree.c (mapcar): When dealing with a DECL, use it's constant
value, if any.
* pt.c (lookup_template_class): Don't mangle the names of template
classes whose arguments are unknown.
* pt.c (tsubst_expr): Handle GOTO_STMT correctly.
Benjamin Kosnik [Tue, 24 Mar 1998 12:24:59 +0000 (12:24 +0000)]
decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
�
Tue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com>
* decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
Tue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com>
* decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for
boolean_type_node to 1.
Fixes for g++/15235
Benjamin Kosnik [Tue, 24 Mar 1998 12:24:56 +0000 (12:24 +0000)]
decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
8
Tue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com>
* decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
Tue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com>
* decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for
boolean_type_node to 1.
Fixes for g++/15235
Mark Mitchell [Tue, 24 Mar 1998 10:25:44 +0000 (10:25 +0000)]
cplus-dem.c (optable): Add sizeof.
* cplus-dem.c (optable): Add sizeof.
(demangle_template_value_parm): New function containing code
previously found in demangle_template.
(demangle_integral_value): New function which handles complicated
integral expressions.
(demangle_template): Use them.
* error.c (dump_expr): Remove unused variable `l'.
* pt.c (for_each_template_parm): New function, created by
converting uses_template_parms.
(tree_fn_t): New typedef.
(uses_template_parms): Use it.
(mark_template_parm): New function.
(push_template_decl): Check that the argument list of a partial
specialization uses all the template parameters.
* Make-lang.in (c++filt): Don't delete cxxmain.c after we're done
with it; we might want it for debugging.
* cp-tree.h (type_unification): Change interface.
* class.c (finish_struct_1): Skip nested template types, just like
ordinary nested types.
(instantiate_type): Use new interface to type_unification.
* lex.c (init_lex): Add __sz as opname for sizeof.
* method.c (build_overload_scope_ref): New function.
(build_overload_int): Handle complex expressions. Set
numeric_output_need_bar if necessary.
(build_overload_value): Handle non-PARM_DECL nodes; this
routine is now used by build_overload_int. Remove some
assignments to numeric_output_need_bar. Use
build_overload_scope_ref.
(build_qualified_name): Note that some template mangled names end
with digits, and set numeric_output_need_bar appropriately. Use
build_underscore_int.
* pt.c (unify): Change interface.
(type_unification_real): Likewise.
(determine_specialization): Use new interfaces.
(tsubst): Deal gracefully with situations in which the argument
vector is not fully filled.
(fn_type_unification): Use new interfaces.
(type_unification): Likewise. Remove NOP_EXPR hack.
(type_unification_real): Likewise.
(unify): Likewise. Deal with unification of complex expresions.
Jason Merrill [Mon, 23 Mar 1998 23:08:59 +0000 (23:08 +0000)]
decl.c (make_typename_type): Revert.
* decl.c (make_typename_type): Revert.
(make_implicit_typename): Remove.
(lookup_name_real): Don't call it. Call lookup_field if we see a
TYPE_DECL from a template base.
* search.c (lookup_field): Do implicit typename stuff.
H.J. Lu [Mon, 23 Mar 1998 22:59:18 +0000 (22:59 +0000)]
c-parse.in: Recognize protocol qualifiers in class definitions for objc.
* c-parse.in: Recognize protocol qualifiers in class
definitions for objc.
Include "output.h".
(yyerror): Remove redundant decl.
(yyprint): Fix prototype.
* m68k/m68k.md (zero_extendqidi2, zero_extendhidi2): New patterns.
(zero_extendsidi2): Avoid useless copy.
(iordi_zext): New pattern.
(iorsi_zexthi_ashl16): Pattern reworked to avoid "0" constraint for
operand 2.
(iorsi_zext): New name for old unnamed pattern; indentation fixes.