Benjamin Kosnik [Mon, 9 Sep 2002 20:26:42 +0000 (20:26 +0000)]
configopts.html: Change grouping.
2002-09-09 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/configopts.html: Change grouping. Note ABI impacts.
Update information for locale model defaults.
* docs/html/install.html: Update include directory
information.
Update testing information.
Update linux issues for named locales.
* docs/html/abi.txt: Fix typos.
Add more info.
* src/misc-inst.cc: Add missing instantiations.
* testsuite/abi_check.cc: Make output results more verbose.
s390.md ("*tmdi_reg", [...]): Do not mark as commutative.
* config/s390/s390.md ("*tmdi_reg", "*tmsi_reg"): Do not mark as
commutative. Use "nonimmediate_operand" instead of "register_operand"
as predicate for operand 0. Move to after the "*tmXX_mem" insns.
("*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem"): Do not mark
as commutative.
("*anddi3_ni", "*andsi3_ni", "*iordi3_ni", "*iorsi3_ni"): Do not
mark as commutative. Use "nonimmediate_operand" instead of
"register_operand" as predicate for operand 1.
Jan Hubicka [Mon, 9 Sep 2002 11:00:55 +0000 (13:00 +0200)]
i386.c (index_register_operand): New.
2002-09-09 Jan Hubicka <jh@suse.cz>
* i386.c (index_register_operand): New.
* i386.h (predicate_codes): Add new predicate.
* i386.md (lea_general_*): Use index_regsiter_operand
(ashift to lea splitter): Do not produce invalid leas
(ashift to mov+ashift split): New.
dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli.
* dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli.
(DW_OP_GNU_push_tls_address): New.
(DW_OP_lo_user): Fix.
* dwarf2out.c (INTERNAL_DW_OP_tls_addr): New.
(dwarf_stack_op_name): Handle it, plus other dwarf3 opcodes.
(size_of_loc_descr): Likewise.
(output_loc_operands): Handle INTERNAL_DW_OP_tls_addr.
(add_AT_location_description): Take a dw_loc_descr_ref not an rtx.
(loc_descriptor_from_tree): Handle TLS variables.
(rtl_for_decl_location): Do avoid_constant_pool_reference here ...
(add_location_or_const_value_attribute): ... not here. Defer
to loc_descriptor_from_tree for TLS variables.
Roger Sayle [Sun, 8 Sep 2002 18:32:31 +0000 (18:32 +0000)]
re PR rtl-optimization/6405 (Loop-unrolling related performance regressions)
PR optimization/6405
* unroll.c (loop_iterations): last_loop_insn should be the previous
non-note instruction before loop->end.
* loop.c (strength_reduce): The conditional jump is the last
non-note instruction before loop->end (as above).
Roger Sayle [Sun, 8 Sep 2002 18:07:54 +0000 (18:07 +0000)]
combine.c (try_combine): Handle the case that undobuf.other_insn has been turned into a return or...
* combine.c (try_combine): Handle the case that undobuf.other_insn
has been turned into a return or unconditional jump, by inserting
a BARRIER if necessary.
(simplify_set): Test if a condition code setter has a constant
comparison at compile time, if so convert this insn to a no-op move
and update/simplify the condition code user (undobuf.other_insn).
Alan Modra [Sun, 8 Sep 2002 09:30:21 +0000 (09:30 +0000)]
varasm.c (default_assemble_visibility): Rename from assemble_visibility.
* varasm.c (default_assemble_visibility): Rename from
assemble_visibility.
* output.h: Here too.
* target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): And here.
* config/rs6000/rs6000.c (rs6000_assemble_visibility): And here.
sched-deps.c (sched_analyze_insn): Make sure to add insn to reg_last->sets after flushing the dependency lists to...
* sched-deps.c (sched_analyze_insn): Make sure to add insn
to reg_last->sets after flushing the dependency lists to guarantee
that subsequent clobbers will be dependent on it.
h8300.md (udivmodqi4): Split the pattern into an expander and an anonymous pattern.
* config/h8300/h8300.md (udivmodqi4): Split the pattern into
an expander and an anonymous pattern. Zero out the upper half
of the dividend in the expander.
(udivmodqi4): Likewise.
Jakub Jelinek [Fri, 6 Sep 2002 18:32:08 +0000 (20:32 +0200)]
configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets.
* configure.target: Use cpu_include_dir="config/cpu/sparc" for all
sparc targets.
* config/cpu/sparc/bits/atomicity.h: New file.
* config/cpu/sparc/sparc32/bits/atomicity.h: Removed.
* config/cpu/sparc/sparc64/bits/atomicity.h: Removed.
Jakub Jelinek [Fri, 6 Sep 2002 18:30:36 +0000 (20:30 +0200)]
configure.target: Use cpu_include_dir="config/cpu/sparc" for all sparc targets.
* configure.target: Use cpu_include_dir="config/cpu/sparc" for all
sparc targets.
* config/cpu/sparc/atomicity.h: New file.
* config/cpu/sparc/sparc32/atomicity.h: Removed.
* config/cpu/sparc/sparc64/atomicity.h: Removed.
Jakub Jelinek [Fri, 6 Sep 2002 17:58:27 +0000 (19:58 +0200)]
ctype_noninline.h [...]: Remove using _C_legacy::__ctype_*.
* config/os/gnu-linux/ctype_noninline.h
[_GLIBCPP_USE_SHADOW_HEADERS]: Remove using _C_legacy::__ctype_*.
(ctype<char>::classic_table): If _GLIBCPP_C_LOCALE_GNU, return
_S_c_locale->__ctype_b, otherwise temporarily switch to "C" locale
and return __ctype_b.
(ctype<char>::ctype(__c_locale, const mask*, bool, size_t)): If not
_GLIBCPP_C_LOCALE_GNU, temporarily switch to "C" locale and
initialize using __ctype_{b,tolower,toupper}.
(ctype<char>::ctype(const mask*, bool, size_t)): If
_GLIBCPP_C_LOCALE_GNU, initialize using
_S_c_locale->__ctype_{b,tolower,toupper}, otherwise temporarily
switch to "C" locale and initialize using __ctype_{b,tolower,toupper}.
h8300.c (enum shift_alg): Move to earlier in h8300.c.
* h8300.c (enum shift_alg): Move to earlier in h8300.c.
(enum shift_type, enum h8_cpu): Likewise.
(INL, ROT, LOP, SPC macros): Likewise.
(shift_alg_qi, shift_alg_hi, shift_alg_si): Likewise. Lose
const designator.
(h8300_init_once): Update shift_alg_{qi,hi,si} to use more
space efficient algorithms when optimize for codesize.
Jason Thorpe [Fri, 6 Sep 2002 14:54:48 +0000 (14:54 +0000)]
arm-protos.h (arm_gen_return_addr_mask): New prototype.
* config/arm/arm-protos.h (arm_gen_return_addr_mask): New
prototype.
* config/arm/arm.c (arm_gen_return_addr_mask): New function.
* config/arm/arm.h (MASK_RETURN_ADDR): Use arm_gen_return_addr_mask
if not APCS26 and not Thumb or ARMv4-or-higher. Use gen_int_mode
rather than GEN_INT.
* config/arm/arm.md (UNSPEC_CHECK_ARCH): Define.
(return_addr_mask, *check_arch2): New.
Stan Shebs [Fri, 6 Sep 2002 13:00:39 +0000 (13:00 +0000)]
weak: New directory.
2002-09-06 Stan Shebs <shebs@apple.com>
David Edelsohn <edelsohn@gnu.org>
* gcc.dg/weak: New directory.
* gcc.dg/weak-[1-9].c: Move to new directory, remove all
target-specific xfail bits.
* gcc.dg/typeof-2.c: Move to new directory.
* gcc.dg/weak.exp: New expect script.
Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
From-SVN: r56882
Paolo Carlini [Thu, 5 Sep 2002 21:13:07 +0000 (23:13 +0200)]
re PR libstdc++/7811 (default locale not taken from environment)
2002-09-05 Paolo Carlini <pcarlini@unitus.it>
Roland McGrath <roland@redhat.com>
PR libstdc++/7811
* src/locale.cc (locale::locale(__s)): Use getenv instead
of setenv for the environment locale.
* testsuite/22_locale/ctor_copy_dtor.cc (test03): New.
Co-Authored-By: Roland McGrath <roland@redhat.com>
From-SVN: r56865
Jason Thorpe [Thu, 5 Sep 2002 16:54:57 +0000 (16:54 +0000)]
real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is not a compile-time constant for...
* real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
not a compile-time constant for the non-IBM case.
* config/arm/arm-protos.h (arm_float_words_big_endian): New
prototype.
* config/arm/arm.c (arm_float_words_big_endian): New function.
* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__
if TARGET_VFP and not TARGET_HARD_FLOAT.
(ARM_FLAG_VFP, TARGET_VFP): Define.
(FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.
[ Missed arm.h in previous checkin, and pasto'd ChangeLog entry, which
is now corrected. ]
Jason Thorpe [Thu, 5 Sep 2002 16:45:24 +0000 (16:45 +0000)]
real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is not a compile-time constant for...
* real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
not a compile-time constant for the non-IBM case.
* config/arm/arm-protos.h (arm_float_words_big_endian): New
prototype.
* config/arm/arm.c (arm_float_words_big_endian): New function.
(TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__ if TARGET_VFP
and not TARGET_HARD_FLOAT.
(ARM_FLAG_VFP, TARGET_VFP): Define.
(FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.
Andrew Haley [Thu, 5 Sep 2002 13:24:41 +0000 (13:24 +0000)]
verify.c (verify_jvm_instructions): Allow exception handler inside code that is being protected, but generate a warning.
2002-08-28 Andrew Haley <aph@redhat.com>
* verify.c (verify_jvm_instructions): Allow exception handler
inside code that is being protected, but generate a warning.
* except.c (link_handler): Initialize `expanded' in new eh_range.
(binding_depth, is_class_level, current_pc): Declare extern.
Jakub Jelinek [Thu, 5 Sep 2002 07:54:26 +0000 (09:54 +0200)]
ctype_members.cc (ctype<wchar_t>::do_widen(char)): Switch to _M_c_locale_ctype around btowc call.
* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_widen(char)):
Switch to _M_c_locale_ctype around btowc call.
(ctype<wchar_t>::do_widen(const char*, const char *, wchar_t*)):
Switch to _M_c_locale_ctype around mbsrtowcs call.
(ctype<wchar_t>::do_narrow(char)): Switch to _M_c_locale_ctype around
wctob call.
(ctype<wchar_t>::do_narrow(const char*, const char *, wchar_t*)):
Switch to _M_c_locale_ctype around wcsrtombs call.
Jakub Jelinek [Thu, 5 Sep 2002 07:51:16 +0000 (09:51 +0200)]
monetary_members.cc (moneypunct<wchar_t, [...]): Use __uselocale instead of setlocale for glibc 2.3.
* config/locale/gnu/monetary_members.cc
(moneypunct<wchar_t, true>::_M_initialize_moneypunct,
moneypunct<wchar_t, false>::_M_initialize_moneypunct): Use
__uselocale instead of setlocale for glibc 2.3.
Jakub Jelinek [Thu, 5 Sep 2002 07:46:17 +0000 (09:46 +0200)]
c++locale_internal.h: New header.
* config/locale/generic/c++locale_internal.h: New header.
* config/locale/gnu/c++locale_internal.h: New header.
* config/locale/gnu/c_locale.cc: Include it.
* config/locale/gnu/collate_members.cc: Include it.
* config/locale/gnu/ctype_members.cc: Include it.
* config/locale/gnu/messages_members.cc: Include it.
* config/locale/gnu/monetary_members.cc: Include it.
* config/locale/gnu/numeric_members.cc: Include it.
* config/locale/gnu/time_members.cc: Include it.
(_M_put): Reorder __strftime_l and __wcsftime_l arguments to match
glibc.
(_M_initialize_timepunct): Initialize _M_c_locale_timepunct for
C locale.
* acinclude.m4: Include string.h when testing strcoll_l.
For glibc 2.3 provide __-prefixed prototypes.
(CLOCALE_INTERNAL_H): Set, add AC_LINK_FILES line.
* aclocal.m4, configure: Rebuilt.
* include/bits/locale_facets.h: Add declaration of specialization
here.
* config/locale/gnu/messages_members.cc: Add specialization for
messages<wchar_t>.
* config/locale/gnu/messages_members.h: Remove generic definition
of do_get.
David Edelsohn [Thu, 5 Sep 2002 03:49:42 +0000 (03:49 +0000)]
rs6000.c (rs6000_flag_pic): New variable.
* config/rs6000/rs6000.c (rs6000_flag_pic): New variable.
(rs6000_elf_encode_section_info): ATTRIBUTE_UNUSED.
(TARGET_BINDS_LOCAL_P): Define.
(rs6000_override_options): Save original flag_pic value.
(rs6000_elf_select_section): Call default_elf_select_section_1.
(rs6000_elf_unique_section): Call default_unique_section_1.
(rs6000_elf_in_small_data_p): New function.
(rs6000_xcoff_asm_named_section): Determine storage mapping class.
(rs6000_xcoff_select_section): Update based on defaults.
(rs6000_xcoff_unique_section): Set to basic name if not common.
(rs6000_binds_local_p): New function.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
targetm.have_srodata_section if SDATA_EABI.
(TARGET_IN_SMALL_DATA_P): Define.
loop.c (scan_loop): Don't mark separate insns out of a libcall for moving.
gcc:
* loop.c (scan_loop): Don't mark separate insns out of a libcall
for moving.
(move_movables): Abort if we see the first insn of a libcall.
gcc/testsuite
* gcc.c-torture/execute/loop-14.c: New test.
Jason Merrill [Wed, 4 Sep 2002 23:24:00 +0000 (19:24 -0400)]
typeck2.c (add_exception_specifier): Only pedwarn for an incomplete type.
* typeck2.c (add_exception_specifier): Only pedwarn for an
incomplete type.
(require_complete_eh_spec_types): New fn.
(cxx_incomplete_type_diagnostic): Also support pedwarning.
* typeck.c (complete_type_or_diagnostic): Likewise.
* call.c (build_call): Call require_complete_eh_spec_types.
* rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
on an incomplete type.