J"orn Rennecke [Mon, 16 Jun 2003 14:56:38 +0000 (14:56 +0000)]
sh.c (prepare_move_operand): Check if operand 0 is an invalid memory reference.
* sh.c (prepare_move_operand): Check if operand 0 is an invalid
memory reference. Fix test that checks if operand 1 is using r0.
* sh.md (movhi_i): Don't allow st.w r0,@(rX,rY) .
Roger Sayle [Mon, 16 Jun 2003 12:53:16 +0000 (12:53 +0000)]
optabs.h (enum optab_index): Add new OTI_tan and OTI_atan.
* optabs.h (enum optab_index): Add new OTI_tan and OTI_atan.
(tan_optab, atan_optab): Define corresponding macros.
* optabs.c (init_optabs): Initialize tan_optab and atan_optab.
* genopinit.c (optabs): Implement tan_optab and atan_optab
using tan?f2 and atan?f2 patterns.
* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_TAN{,F,L}
using tan_optab, and BUILT_IN_ATAN{,F,L} using atan_optab.
Change the default value of errno_set to false.
(expand_builtin): Expand BUILT_IN_TAN{,F,L} and BUILT_IN_ATAN{,F,L}
using expand_builtin_mathfn.
* config/i386/i386.md (atansf2, atandf2, atanxf2, atantf2): New
expander patterns implemented using existing atan2?f3 patterns.
* gcc.dg/i386-387-5.c: New test case.
* gcc.dg/i386-387-6.c: New test case.
* gcc.dg/builtins-23.c: New test case.
Roger Sayle [Mon, 16 Jun 2003 12:45:13 +0000 (12:45 +0000)]
expr.c (expand_expr <PLUS_EXPR>): If operand_equal_p considers both operands of the addition equal...
* expr.c (expand_expr <PLUS_EXPR>): If operand_equal_p considers
both operands of the addition equal, reuse the expanded RTL.
(expand_expr <MULT_EXPR>): Likewise for multiplication.
Roger Sayle [Mon, 16 Jun 2003 12:42:48 +0000 (12:42 +0000)]
fold-const.c (operand_equal_p): Consider two calls to "const" functions with identical non-volatile arguments...
* fold-const.c (operand_equal_p): Consider two calls to "const"
functions with identical non-volatile arguments to be equal.
Consider the FUNCTION_DECL for the "__builtin_foo" form of a
built-in function to be equal to the "foo" form.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r68011
* config/alpha/alpha-protos.h, config/alpha/elf.h,
config/alpha/osf.h, config/alpha/unicosmk.h, config/alpha/vms.h,
config/alpha/vms-cc.c, config/alpha/vms-ld.c: Update to ISO C.
* config/alpha/alpha.c: Likewise. Move targetm init to end of file.
Remove unneeded static function decls.
Neil Booth [Mon, 16 Jun 2003 05:47:07 +0000 (05:47 +0000)]
c-opts.c (c_common_handle_option): s/on/value/.
* c-opts.c (c_common_handle_option): s/on/value/.
(OPT_fabi_version_, OPT_ftabstop_, OPT_ftemplate_depth_): Use value
directly rather than converting the argument.
* c.opt: Update docs. Use UInteger where appropriate.
* common.opt: Use UInteger where appropriate.
* opts.c (integral_argument): New.
(handle_argument): Handle integral arguments, and optional
joined arguments.
(common_handle_option): Update.
* opts.h (CL_MISSING_OK, CL_UINTEGER): New.
* opts.sh: Handle JoinedOrMissing and UInteger flags.
java:
* lang.c (java_handle_option): Special-casing of optional
joined arguments no longer needed.
* lang.opt: Update switches that take optional argument.
Nathanael Nerode [Sun, 15 Jun 2003 20:25:44 +0000 (20:25 +0000)]
re PR fastjar/9532 (jar -C flag is incompatible with Sun's (fastjar uses nonportable feature of getcwd))
PR java/9532
* jartool.c (main) Give proper error messages with -C, and
check for missing arguments properly. Send error messages
to stderr.
* jartool.c (add_to_jar): Make getcwd() call portable,
and check for error return.
* tree.h: Convert prototypes of attribs.c to ISO C90.
* basic-block.h: Convert prototypes of bb-reorder.c to ISO C90.
* rtl.h: Convert prototypes of alias.c and builtins.c to ISO C90.
* expr.h: Convert prototypes of builtins.c to ISO C90.
Roger Sayle [Sun, 15 Jun 2003 13:32:31 +0000 (13:32 +0000)]
i386.md (expsf2, [...]): New patterns to implement exp, expf and expl built-ins as inline x87 intrinsics.
* config/i386/i386.md (expsf2, expdf2, expxf2): New patterns to
implement exp, expf and expl built-ins as inline x87 intrinsics.
(UNSPEC_FSCALE, UNSPEC_FRNDINT, UNSPEC_F2XM1): New unspecs to
represent x87's fscale, frndint and f2xm1 insns respectively.
(*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): New insn patterns
to encode x87's "fscale" instruction followed by a pop.
(*frndintxf2): New insn pattern for "frndint".
(*f2xm1xf2): New insn pattern for "f2xm1".
* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT and
UNSPEC_F2XM1 like UNSPEC_{SIN,COS} and handle UNSPEC_FSCALE like
UNSPEC_FPATAN.
* gcc.dg/builtins-22.c: New test case.
* gcc.dg/i386-387-1.c: Update to test exp.
* gcc.dg/i386-387-2.c: Likewise.
Neil Booth [Sat, 14 Jun 2003 22:25:50 +0000 (22:25 +0000)]
lang-specs.h: Rewrite -MD and -MMD to append an underscore.
* lang-specs.h: Rewrite -MD and -MMD to append an underscore.
* lang.c (java_handle_option): -MD and -MMD have an underscore.
* lang.opt: -MD and -MMD have an underscore.
Roger Sayle [Sat, 14 Jun 2003 15:05:41 +0000 (15:05 +0000)]
opts.sh: Work around a mysterious feature in cygwin's gawk where specifying the input...
* opts.sh: Work around a mysterious feature in cygwin's gawk
where specifying the input files explicitly has a different
behavior to piping them via stdin.
Neil Booth [Sat, 14 Jun 2003 12:26:36 +0000 (12:26 +0000)]
Makefile.in: Update to use common.opt and lang_opt_files.
* Makefile.in: Update to use common.opt and lang_opt_files.
(c-options.c, c-options.h): Remove.
(options.c, options.h): Add.
* c-opts.c: Include options.h not c-options.h.
* common.opt: New file.
* configure, configure.in: Add lang_opt_files.
* opts.c: Include flags.h and diagnostic.h.
(common_handle_option): New.
(handle_option): Update to recognize common options and all
language-dependent options.
* opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New.
(struct cl_option): Make flags of type int.
* opts.h: Flag option with front ends to which it applies.
Handle duplicate options.
* toplev.c (filename): Remove.
(independent_decode_option): Don't handle filenames and -quiet.
(process_options, do_compile): Update.
ada:
* Make-lang.in: Update to use options.c and options.h.
* misc.c: Include options.h not aoptions.h.
(gnat_handle_option): Abort on unrecognized switch.
(gnat_init_options): Request Ada switches.
cp:
* Make-lang.in: Remove c-options.o.
f:
* Make-lang.in: Update to use options.c and options.h.
* top.c: Include options.h not f-options.h.
(gnat_handle_option): Abort on unrecognized switch.
(ffe_init_options): From com.c. Request F77 options.
(ffe_handle_options): Abort on unrecognized switch.
* com.c (ffe_init_options): Move to top.c.
* top.h (fee_init_options): New.
java:
* Make-lang.in: Update to use options.c and options.h.
* lang.c: Include options.h not j-options.h.
(java_handle_option): Abort on unrecognized option.
(java_init_options): Request Java switches.
treelang:
* Make-lang.in: Update to use options.c and options.h.
* tree1.c: Include options.h not t-options.h.
(treelang_init_options): New.
(treelang_handle_option): Abort on unrecognized switch.
* treetree.c (LANG_HOOKS_INIT_OPTIONS): Override.
* treetree.h (treelang_init_options): New.
Gerald Pfeifer [Sat, 14 Jun 2003 10:57:54 +0000 (12:57 +0200)]
snapshot-README: Use GCC instead of gcc...
* snapshot-README: Use GCC instead of gcc, C++ front end instead of
g++ language, and note that Java includes a run time.
* snapshot.index.html: Ditto.
Nathan C. Myers [Fri, 13 Jun 2003 20:59:42 +0000 (20:59 +0000)]
Avoid multi-processor bus contention on increment/decrement-and- test of the reference count in the empty-string object...
2003-06-13 Nathan C. Myers <ncm-nospam@cantrip.org>
Avoid multi-processor bus contention on increment/decrement-and-
test of the reference count in the empty-string object, by comparing
addresses first, and never touching the reference count of the empty-
string object.
* include/bits/basic_string.h:
(_S_empty_rep_storage): Move into basic_string<>::_Rep for use by its
members.
(_Rep::_S_empty_rep()): New accessor.
(_Rep::_M_length, _Rep::_M_capacity, _Rep::_M_references): Move to
a base class _Rep_base.
(_Rep::_M_dispose, _Rep::_M_refcopy): Check for the empty string.
(basic_string()): Change to use _M_refdata() in place of _M_refcopy(),
since no longer must increment its refcount.
* include/bits/basic_string.tcc:
(_Rep::_M_destroy, _M_leak_hard): Check for the empty string and
return immediately. The former might be unnecessary. The latter
prevents begin() and end() from cloning it unnecessarily.
(_S_construct(_InIterator, _InIterator, const _Alloc&,
input_iterator_tag), _S_construct(_InIterator, _InIterator,
const _Alloc&, forward_iterator_tag), _S_construct(size_type, _CharT,
const _Alloc&)): Change to use _M_refdata() in place of _M_refcopy().
(_M_mutate): Check for the empty string and treat it as shared.
This is necessary here because _M_mutate is sometimes called with
all-zero arguments; in all other uses of _M_is_shared, the test comes
out right anyhow.
Nathanael Nerode [Fri, 13 Jun 2003 15:07:48 +0000 (15:07 +0000)]
init.c: removes use of PARAMS macro.
2003-05-19 Jens-Michael Hoffmann <jensmh@gmx.de>
* init.c: removes use of PARAMS macro. Use ISO style function
declarations. (Not copyright-significant change.)
Richard Earnshaw [Fri, 13 Jun 2003 14:30:38 +0000 (14:30 +0000)]
arm.c (output_call_mem): If the address references the link-register use an instruction sequence that...
* arm.c (output_call_mem): If the address references the link-register
use an instruction sequence that avoids early-clobbering IP.
(eliminate_lr2ip): Delete.
Doug Evans [Fri, 13 Jun 2003 06:20:12 +0000 (06:20 +0000)]
back out previous patch, instead do
back out previous patch, instead do
* config/m32r/initfini.c (__CTOR_LIST__,__DTOR_LIST__): Attribute used.
(__do_global_ctors,__do_global_dtors): Ditto.