Paolo Bonzini [Wed, 30 Nov 2005 08:20:23 +0000 (08:20 +0000)]
simplify-rtx.c (simplify_plus_minus): Remove final parameter.
2005-11-30 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (simplify_plus_minus): Remove final parameter.
Always produce an output if we can remove NEGs or canonicalize
(minus (minus ...)) expressions. Provide a fast path for the
two-operand case.
(simplify_gen_binary): Do not call simplify_plus_minus.
(simplify_binary_operation_1): Reassociate at the end of the
function.
Roger Sayle [Tue, 29 Nov 2005 03:06:14 +0000 (03:06 +0000)]
expmed.c (div_cost): Replace with...
* expmed.c (div_cost): Replace with...
(sdiv_cost, udiv_cost): New.
(init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
Rename the div and mod fields, used to initialize sdiv_pow2_cheap
and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
(expand_divmod): Replace use of div_cost with either sdiv_cost
or udiv_cost depending upon the signedness of the operation.
libfortran/24991
* acinclude.m4 (LIBGFOR_CHECK_PRAGMA_WEAK): Rename to...
(LIBGFOR_GTHREAD_WEAK): ... this. Define SUPPORTS_WEAK rather
than HAVE_PRAGMA_WEAK. Define GTHREAD_USE_WEAK to 0 on hosts
that shouldn't use weak in gthr.h.
* configure.ac: Use LIBGFOR_GTHREAD_WEAK instead of
LIBGFOR_CHECK_PRAGMA_WEAK.
* config.h.in: Regenerated.
* configure: Regenerated.
* io/io.h (SUPPORTS_WEAK): Don't define here.
Kean Johnston [Mon, 28 Nov 2005 18:01:50 +0000 (18:01 +0000)]
re PR testsuite/19231 (Execute failure in gcc.c-torture/execute/builtins/strlen-3.c with -fpic/-fPIC)
* g++.dg/opt/range-test-1.C: Prevent re-inclusion of system
headers.
* g++.old-deja/g++.law/profile1.C: No longer expect fail on OSR5.
* gcc.c-torture/compile/20000804-1.c: Skip if using -fPIC on X86.
* gcc.target/i386/asm-3.c: Ditto.
* gcc.target/i386/clobbers.c: Ditto.
* gcc.dg/tree-ssa/ssa-dce-2.c: Make t() static and prototype it.
* gcc.target/i386/cmov1.c: Make magic* static so it matches the
test regexp.
* gcc.target/i386/mul.c: Ditto.
* gcc.target/i386/ssetype-1.c: Ditto.
* gcc.dg/20040813-1.c: Skip on SVR5 systems.
* gcc.c-torture/execute/builtins/strlen-3.c: Declare variables as
static so the test works with -fPIC mode too. Based on comment in
PR19231 by Pinski.
* gcc.dg/nest.c: No longer fail on SCO systems as it has -pg again.
Bernd Schmidt [Mon, 28 Nov 2005 12:59:34 +0000 (12:59 +0000)]
bfin.c (bfin_secondary_reload): Renamed from secondary_input_reload_class, made static.
* config/bfin/bfin.c (bfin_secondary_reload): Renamed from
secondary_input_reload_class, made static. Adapt to new
infrastructure.
(secondary_output_reload_class): Delete.
(TARGET_SECONDARY_RELOAD): New macro.
* config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
Nathan Sidwell [Mon, 28 Nov 2005 10:34:30 +0000 (10:34 +0000)]
re PR c++/21166 (g++ gives error on reference to packed structure elements)
.: PR c++/21166
* c-decl.c (finish_struct): Only set DECL_PACKED on a field
when its natural alignment is > BITS_PER_UNIT.
* stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
* c-common.c (handle_packed_attribute): Ignore packing on a field
whose type is naturally char aligned.
cp:
PR c++/21166
* class.c (check_field_decls): Only set DECL_PACKED on a field
when its natural alignment is > BITS_PER_UNIT.
Roger Sayle [Mon, 28 Nov 2005 07:29:43 +0000 (07:29 +0000)]
re PR middle-end/20219 (Missed optimisation sin / tan --> cos)
PR middle-end/20219
* fold-const.c (fold binary) <RDIV_EXPR>: Optimize
sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
when flag_unsafe_math_optimizations is set and
we don't care about NaNs or Infinities.
Move x/expN(y) and x/pow(y,z) transformation into common
flag_unsafe_math_optimizations section.
testsuite/
* gcc.dg/builtins-20.c: Add checks for sin(x)/tan(x) and
tan(x)/sin(x) transformations.
Alan Modra [Mon, 28 Nov 2005 03:57:05 +0000 (03:57 +0000)]
invoke.texi (powerpc msdata-data): Static data doesn't go in small data sections.
* doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
small data sections.
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
* config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
* config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't
output locals to sbss if !rs6000_elf_in_small_data_p.
(ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
Alan Modra [Mon, 28 Nov 2005 03:52:01 +0000 (03:52 +0000)]
re PR target/24997 (ICE with -ftree-vectorize)
PR target/24997
* config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
generated by reload.
* config/rs6000/predicates.md (indexed_or_indirect_operand): Use
indexed_or_indirect_address.
(indexed_or_indirect_address): Don't test for base reg. Call
address_operand last. Make it a special predicate.
Andrew Pinski [Sun, 27 Nov 2005 21:31:36 +0000 (21:31 +0000)]
re PR tree-optimization/24575 (-(i /10) is not foldded to i/-10)
2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24575
* fold-const.c (negate_expr_p): Add case for signed divides if overflow
is undefined.
(negate_expr): Likewise.
2005-11-27 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24575
* gcc.dg/tree-ssa/divide-3.c: New test.
* gcc.dg/tree-ssa/divide-4.c: New test.
re PR fortran/23912 (MOD function requires same kind arguments)
PR fortran/23912
* iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
gfc_resolve_modulo): When arguments have different kinds, fold
the lower one to the largest kind.
* check.c (gfc_check_a_p): Arguments of different kinds is not
a hard error, but an extension.
* simplify.c (gfc_simplify_dim, gfc_simplify_mod,
gfc_simplify_modulo): When arguments have different kinds, fold
the lower one to the largest kind.
re PR libfortran/24919 ([4.0] CRLF support in libgfortran)
PR libfortran/24919
* io/list_read.c (eat_separator, finish_separator,
read_character): Handle CRLF separators correctly during reads.
(nml_query): Use the HAVE_CRLF macro to print adequate newlines.
* io/io.h (st_parameter_dt): Add comment about the possible
values for sf_seen_eor.
* io/unix.c (tempfile, regular_file): HAVE_CRLF doesn't imply
that O_BINARY is defined, so we add that condition.
(stream_at_bof): Fix typo in comment.
* io/transfer.c (read_sf): Handle correctly CRLF, setting
sf_seen_eor value to 2 instead of 1.
(formatted_transfer_scalar): Use the sf_seen_eor value to
handle CRLF the right way.
* io/write.c (nml_write_obj, namelist_write): Use CRLF as newline
when HAVE_CRLF is defined.
* gfortran.dg/ftell_1.f90: Modify testcase so that it doesn't
fail on CRLF platforms.
* gfortran.dg/ftell_2.f90: Likewise.
Andrew Pinski [Sat, 26 Nov 2005 22:18:04 +0000 (22:18 +0000)]
re PR middle-end/23669 (fold does convert (-a)/10 into a/-10 with -fno-wrapv)
2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23669
* fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
when overflow is undefined.
2005-11-26 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23669
* gcc.dg/tree-ssa/divide-1.c: New test.
* gcc.dg/tree-ssa/divide-2.c: New test.
Roger Sayle [Sat, 26 Nov 2005 04:06:57 +0000 (04:06 +0000)]
re PR middle-end/21309 (internal compiler error: in expand_mult_const, at expmed.c:2884)
PR middle-end/21309
* expmed.c (choose_mult_variant): Return immediately when mult_cost
is less than zero. Limit mult_cost to a reasonable upper bound for
the synthetic multiplication sequence.
list_read.c (nml_parse_qualifier): Use memcpy to extract values from dtp->u.p.value.
* io/list_read.c (nml_parse_qualifier): Use memcpy to extract
values from dtp->u.p.value.
* io/io.h (struct st_parameter_dt): Change reversion_flag, first_item,
seen_dollar, sf_seen_eor, eor_condition, no_leading_blank, char_flag,
input_complete, at_eol, comma_flag, namelist_mode, nml_read_error to
single-bit fields. Move value to where it'll be at least pointer
aligned.
cris.md ("reload_out<mode>"): Mark operand 2 as earlyclobber.
* config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
earlyclobber.
* targhooks.c (default_secondary_reload): Don't require operand 2
for an input reload to be earlyclobber.
Ranjit Mathew [Fri, 25 Nov 2005 14:14:32 +0000 (14:14 +0000)]
jacks.xfail: Remove non-jls-argument-expansion-13 and add non-jls-argument-expansion-error-1...
* testsuite/libjava.jacks/jacks.xfail: Remove
non-jls-argument-expansion-13 and add
non-jls-argument-expansion-error-1 in response to the @file support
patch in the main GCC driver.
Andrew Pinski [Fri, 25 Nov 2005 04:54:59 +0000 (04:54 +0000)]
[multiple changes]
2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24990
* fold-const.c (fold_binary): Fold (~a) == C to a == ~C
for C being INTEGER_CST. Likewise for !=.
2005-11-24 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24990
* tree-ssa/pr24990-1.c: New test.