* invoke.texi (-fstrict-aliasing): Document.
* rtl.texi (MEM_ALIAS_SET): Document.
* flags.h (flag_strict_aliasing): Declare.
* toplev.c (flag_strict_aliasing): Define.
(f_options): Add -strict-aliasing.
(main): Set flag_strict_aliasing if -O2 or higher.
* tree.h (tree_type): Add alias_set field.
(TYPE_ALIAS_SET): New macro.
(TYPE_ALIAS_SET_KNOWN_P): Likewise.
(get_alias_set): Declare.
* tree.c (lang_get_alias_set): Define.
(make_node): Initialize TYPE_ALIAS_SET.
(get_alias_set): New function.
* print-tree.c (print_node): Dump the alias set for a type.
* c-tree.h (c_get_alias_set): Declare.
* c-common.c (c_get_alias_set): New function.
* c-decl.c (init_decl_processing): Set lang_get_alias_set.
* expr.c (protect_from_queue): Propogage alias sets.
(expand_assignment): Calculate alias set for new MEMs.
(expand_expr): Likewise.
* function.c (put_var_into_stack): Likewise.
(put_reg_into_stack): Likewise.
(gen_mem_addressof): Likewise.
(assign_parms): Likewise.
* stmt.c (expand_decl): Likewise.
* varasm.c (make_decl_rtl): Eliminate redundant clearing of
DECL_RTL. Calculate alias set for new MEMs.
* rtl.def (REG): Add dummy operand.
(MEM): Add extra operand to store the MEM_ALIAS_SET.
* rtl.h (MEM_ALIAS_SET): New macro.
(gen_rtx_MEM): Declare.
* emit-rtl.c (gen_rtx_MEM): New function.
* gengenrtl.c (sepcial_rtx): Make MEMs special.
* alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro.
(DIFFERENT_ALIAS_SETS_P): Likewise.
(canon_rtx): Propogate the alias set to the new MEM.
(true_dependence): Check the alias sets.
(anti_dependence): Likewise.
(output_dependence): Likewise.
* explow.c (stabilize): Progoate alias sets.
* integrate.c (copy_rtx_and_substitute): Likewise.
* final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P
in an unpredictable state. Propogate alias sets.
* reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which
we have no alias information.
From-SVN: r20719
Thu Jun 25 16:59:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h.
(find_all_handler_type_matches): Add function prototype.
* eh-common.h (CATCH_ALL_TYPE): Definition added.
* except.c (find_all_handler_type_matches): Add function to find all
runtime type info in the exception table.
(output_exception_table_entry): Special case for CATCH_ALL_TYPE.
1998-06-25 Andrew MacLeod <amacleod@cygnus.com>
* cp-tree.h (mark_all_runtime_matches): Add function prototype.
* except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED
flag for all function decls which are in the exception table.
* exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match.
* decl2.c (finish_file): Call mark_all_runtime_matches to make sure
code is emitted for any referenced rtti function.
From-SVN: r20718
Thu Jun 25 11:12:29 1998 Dave Brolley <brolley@cygnus.com>
* gcc.c (default_compilers): Use new | syntax to eliminate
string concatenation.
From-SVN: r20711
* expr.c (expand_assignment): Rework address calculation for structure
field members to expose more invariant computations to the loop
optimizer.
(expand_expr): Likewise.
From-SVN: r20705
* local-alloc.c (block_alloc): Do not try to avoid false dependencies
when SMALL_REGISTER_CLASSES is nonzero.
Fixes x86 performance regression.
From-SVN: r20704
* expr.c (get_memory_rtx): New function.
(expand_builtin): Call get_memory_rtx for MEM arguments to builtin
string functions.
* expmed.c (init_expmed): Initialize all elements of *_cost arrays.
From-SVN: r20700
1998-06-23 Dave Love <d.love@dl.ac.uk>
* libI77/backspace.c, libI77/dfe.c, libI77/due.c, libI77/iio.c,
libI77/lread.c, libI77/ sfe.c, libI77/sue.c, libI77/wsfe.c: Update
to Netlib version of 1998-06-18.
From-SVN: r20696
d
egcs/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure (enable_version_specific_runtime_libs): Implement new flag
--enable-version-specific-runtime-libs which installs C++ runtime stuff in
$(libsubdir); emit definition in each generated Makefile.
(gxx_include_dir): Initialize depending on $enable_version_specific_runtime_libs.
egcs/gcc/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (gxx_include_dir): Initialize default value depending on
new flag --enable-version-specific-runtime-libs; remove superfluous default
initialization afterwards.
* configure: Regenerate.
egcs/libio/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (install): Install _G_config.h depending on new flag
--enable-version-specific-runtime-libs.
* config/linux.mt (gxx_include_dir): Remove definition here as we use
gcc's default anyway.
egcs/libstdc++/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (INSTALLDIR): Add comment to document the fact,
this macro will be properly initialized at make's runtime.
(install): Add initialization of INSTALLDIR depending on $(libsubdir)
and ${enable_version_specific_runtime_libs}; use $${INSTALLDIR} shell variable
instead of the $(INSTALLDIR) make macro.
From-SVN: r20694
S
egcs/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure (enable_version_specific_runtime_libs): Implement new flag
--enable-version-specific-runtime-libs which installs C++ runtime stuff in
$(libsubdir); emit definition in each generated Makefile.
(gxx_include_dir): Initialize depending on $enable_version_specific_runtime_libs.
egcs/gcc/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (gxx_include_dir): Initialize default value depending on
new flag --enable-version-specific-runtime-libs; remove superfluous default
initialization afterwards.
* configure: Regenerate.
egcs/libio/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (install): Install _G_config.h depending on new flag
--enable-version-specific-runtime-libs.
* config/linux.mt (gxx_include_dir): Remove definition here as we use
gcc's default anyway.
egcs/libstdc++/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (INSTALLDIR): Add comment to document the fact,
this macro will be properly initialized at make's runtime.
(install): Add initialization of INSTALLDIR depending on $(libsubdir)
and ${enable_version_specific_runtime_libs}; use $${INSTALLDIR} shell variable
instead of the $(INSTALLDIR) make macro.
From-SVN: r20693
#
egcs/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure (enable_version_specific_runtime_libs): Implement new flag
--enable-version-specific-runtime-libs which installs C++ runtime stuff in
$(libsubdir); emit definition in each generated Makefile.
(gxx_include_dir): Initialize depending on $enable_version_specific_runtime_libs.
egcs/gcc/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (gxx_include_dir): Initialize default value depending on
new flag --enable-version-specific-runtime-libs; remove superfluous default
initialization afterwards.
* configure: Regenerate.
egcs/libio/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (install): Install _G_config.h depending on new flag
--enable-version-specific-runtime-libs.
* config/linux.mt (gxx_include_dir): Remove definition here as we use
gcc's default anyway.
egcs/libstdc++/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (INSTALLDIR): Add comment to document the fact,
this macro will be properly initialized at make's runtime.
(install): Add initialization of INSTALLDIR depending on $(libsubdir)
and ${enable_version_specific_runtime_libs}; use $${INSTALLDIR} shell variable
instead of the $(INSTALLDIR) make macro.
From-SVN: r20692
a
egcs/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure (enable_version_specific_runtime_libs): Implement new flag
--enable-version-specific-runtime-libs which installs C++ runtime stuff in
$(libsubdir); emit definition in each generated Makefile.
(gxx_include_dir): Initialize depending on $enable_version_specific_runtime_libs.
egcs/gcc/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (gxx_include_dir): Initialize default value depending on
new flag --enable-version-specific-runtime-libs; remove superfluous default
initialization afterwards.
* configure: Regenerate.
egcs/libio/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (install): Install _G_config.h depending on new flag
--enable-version-specific-runtime-libs.
* config/linux.mt (gxx_include_dir): Remove definition here as we use
gcc's default anyway.
egcs/libstdc++/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (INSTALLDIR): Add comment to document the fact,
this macro will be properly initialized at make's runtime.
(install): Add initialization of INSTALLDIR depending on $(libsubdir)
and ${enable_version_specific_runtime_libs}; use $${INSTALLDIR} shell variable
instead of the $(INSTALLDIR) make macro.
From-SVN: r20691
�
egcs/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure (enable_version_specific_runtime_libs): Implement new flag
--enable-version-specific-runtime-libs which installs C++ runtime stuff in
$(libsubdir); emit definition in each generated Makefile.
(gxx_include_dir): Initialize depending on $enable_version_specific_runtime_libs.
egcs/gcc/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (gxx_include_dir): Initialize default value depending on
new flag --enable-version-specific-runtime-libs; remove superfluous default
initialization afterwards.
* configure: Regenerate.
egcs/libio/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (install): Install _G_config.h depending on new flag
--enable-version-specific-runtime-libs.
* config/linux.mt (gxx_include_dir): Remove definition here as we use
gcc's default anyway.
egcs/libstdc++/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (INSTALLDIR): Add comment to document the fact,
this macro will be properly initialized at make's runtime.
(install): Add initialization of INSTALLDIR depending on $(libsubdir)
and ${enable_version_specific_runtime_libs}; use $${INSTALLDIR} shell variable
instead of the $(INSTALLDIR) make macro.
From-SVN: r20690
d
egcs/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* configure (gcc_version): Initialize properly depending on
how and where configure is started.
(recursion line): Pass a --with-gcc-version=${gcc_version}
to configures in subdirs.
egcs/libf2c/ChangeLog.egcs:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (version): Rename to gcc_version.
* configure.in (version): Likewise.
(gcc_version): Add code to use an option passed from parent configure.
* configure: Regenerate.
egcs/libio/ChangeLog:
1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
* config.shared (FLAGS_TO_PASS): Add gcc_version.
From-SVN: r20687
1998-06-23 Dave Love <d.love@dl.ac.uk>
* libI77/backspace.c, libI77/dfe.c, libI77/due.c, libI77/iio.c,
libI77/lread.c, libI77/ sfe.c, libI77/sue.c, libI77/wsfe.c: Update
to Netlib version of 1998-06-18.
From-SVN: r20678
Tue Jun 23 13:38:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* libgcc2.c (__get_eh_table_version, __get_eh_table_language): New
functions to return exception descriptor information.
(find_exception_handler): Pass match_info field to runtime matcher,
not a descriptor table entry.
* exception.cc (__cplus_type_matcher): Get a match_info pointer
instead of an exception table entry as a parameter.
From-SVN: r20673
Have -fnew-exceptions actually use the runtime field, and not generate
runtime checking code inside each handler.
THis works at low opt, but not with optimization at the moment.
Tue Jun 23 10:06:07 EDT 1998 Andrew MacLeod (amacleod@cygnus.com)
* eh-common.h (struct __eh_info): Remove coerced value field.
* libgcc2.c (find_exception_handler): Don't set coerced_value field.
* except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use
POINTER_SIZE instead of Pmode.
(expand_start_all_catch): Call start_catch_handler() if we are not
using new style exceptions.
1998-06-22 Andrew MacLeod (amacleod@cygnus.com)
* parse.y (function_try_block): Don't call start_catch_handler.
* except.c (call_eh_info): Remove coerced field from declaration.
(build_eh_type_type_ref): New function to create an address of a
rtti function for the new style exception tables.
(expand_start_catch_block): Split function, this contains the
common part.
(process_start_catch_block_old): New function to perform the rest
of expand_start_catch_block under old style exceptions.
(process_start_catch_block_old): New function to perform the rest
of expand_start_catch_block under new style exceptions.
(expand_end_catch_block): Only pop the false label off the stack under
the old style of exceptions.
* semantics.c (finish_try_block): Don't call start_catch_handler.
* exception.cc (struct cp_eh_info): Add original_value field.
(__cplus_type_matcher): Perform type matching on the original exception
value, and if we have a match, set the current value.
(__cp_push_exception): Set the original expcetion value.
From-SVN: r20671