2005-01-23 James A. Morrison <phython@gcc.gnu.org>
Paul Brook <paul@codesourcery.com>
PR fortran/19294
* iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
transpose_c8 for complex types.
libgfortran/
* Makefile.am: Add transpose_c4.c and transpose_c8.c.
* intrinsics/cshift0.c: Use separate optimized loops for complex types.
* m4/transpose.m4: Include type letter in function name.
* Makefile.in: Regenerate.
* generated/transpose_*.c: Regenerate.
Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r94116
* combine.c (simplify_logical): Only simplify logical expressions
of the form ior(and(x,y),z) by the inverse distributive law if the
result is cheaper than the original.
Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr>
From-SVN: r94114
2005-01-23 Paolo Carlini <pcarlini@suse.de>
Andreas Jaeger <aj@suse.de>
PR libstdc++/19343
* include/bits/functexcept.h: Mark the helpers as 'noreturn'.
Co-Authored-By: Andreas Jaeger <aj@suse.de>
From-SVN: r94106
* function.c (assign_parm_setup_block): When creating a new stack slot
for a parameter, get its alignment from the parameter's DECL_ALIGN
rather than the type's TYPE_ALIGN. Make sure that the parameter
is at least word aligned.
From-SVN: r94104
2005-01-22 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19451
* io/transfer.c (finalize_transfer): Don't do anything if
there is an error condition.
* open_readonly_1.f90: New test.
From-SVN: r94101
PR target/19506
* config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
in both compare operands.
(movdfcc_1_sse_max): Likewise.
(movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
(movdfcc_1_sse): Likewise.
* config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
scratch register as needed.
From-SVN: r94087
2005-01-22 Paul Brook <paul@codesourcery.com>
* config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
[[Split portion of a mixed commit.]]
From-SVN: r94080.2
2005-01-21 Mark Dettinger <dettinge@de.ibm.com>
* config/s390/s390.c (struct processor_costs): New fields
dlgr, dlr, dr, dsgfr, dsgr.
(z900_cost, z990_cost): Values for new fields.
(s390_rtx_costs): New cases MEM und COMPARE in switch
statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
DIV, MOD, UDIV, UMOD.
From-SVN: r94079
* config/s390/s390.md ("doloop_si64"): Reload input value directly
into the register being decremented.
("doloop_si31", "doloop_di"): Likewise.
("*doloop_si_long"): Adapt pattern.
From-SVN: r94078
2005-01-22 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/18982
* io/unix.c (regular_file): No need to change flags->action
if an error occurs. Document this.
No need to call stat() for STATUS_OLD, open() will
fail anyway.
For ACTION_UNSPECIFIED, try open for read-write, then for
read-only if open fails with EACCES, then for write-only
if that fails with EACCES again.
* io/unix.c (open_external): Document changed behavior of
regular_file.
testsuite/
* gfortran.dg/open_new.f90: New file.
From-SVN: r94076
2005-01-21 Daniel Berlin <dberlin@dberlin.org>
* doc/tree-ssa.texi (Statement Operands): Add example for new
must-def macro. Note deprecation of old operands interface.
From-SVN: r94075
PR tree-optimization/19484
* tree-cfg.c (remove_fallthru_edge): New function.
(cleanup_control_flow): Remove fallthru edges from calls that are
now known not to return.
From-SVN: r94070
2005-01-22 Paul Brook <paul@codesourcery.com>
* primary.c (gfc_match_rvalue): Only apply implicit type if variable
does not have an explicit type.
(gfc_match_variable): Resolve implicit derived types in all cases.
Resolve contained function types from their own namespace, not the
parent.
* resolve.c (resolve_contained_fntype): Remove duplicate sym->result
checking. Resolve from the contained namespace, not the parent.
testsuite/
* gfortran.dg/implicit_2.f90: New test.
From-SVN: r94066
gcc/fortran/
PR fortran/19194
* trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
length parameters.
(gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
pointer fields.
libgfortran/
PR fortran/19194
* io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
use CHARACTER macro for definition of string valued paramters.
Also fix years in recent ChangeLog entries.
From-SVN: r94065
2004-01-22 Bud Davis <bdavis9659@comcast.net>
PR fortran/19314
* io/inquire.c(inquire_via_unit): implement POSITION=.
* io/transfer.c(next_record): update position for
INQUIRE.
* io/rewind.c(st_rewind): update position for
INQUIRE.
* gfortran.dg/inquire_5.f90: New test.
From-SVN: r94060
2005-01-20 David Edelsohn <edelsohn@gnu.org>
Andrew Pinski <pinskia@physics.uc.edu>
PR target/19491
* config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r94059
PR tree-optimization/13000
* tree-inline.c: Include "tree-flow.h".
(expand_call_inline): If warn_return_type, warn if non-void inline
function falls through.
* tree-cfg.c (execute_warn_function_return): Don't warn about
control reaching end if TREE_NO_WARNING is set. Set
TREE_NO_WARNING.
* gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
has been lowered.
* gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
branch if we don't need one.
* c-typeck.c: Include "tree-flow.h"
(c_finish_bc_stmt): Don't add a goto if the current statement
list doesn't fall through to the current point.
From-SVN: r94024
PR rtl-optimization/576
* real.c (real_arithmetic): Change return type from void to bool
to return an indication that the result may be inexact.
* real.h (real_arithmeric): Update prototype.
* fold-const.c (const_binop): Don't constant fold floating
point expressions when the user specifies -frounding-math and
the result may depend upon the run-time rounding mode.
(fold_convert_const_real_from_real): Clean-up.
(fold_initializer): Ignore flag_rounding_math for initializers.
* simplify-rtx.c (simplify_binary_operation): Likewise, don't
constant fold FP operations with flag_rounding_math if the
result may depend upon the run-time rounding mode.
From-SVN: r94020