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.
J"orn Rennecke [Thu, 24 Nov 2005 18:55:53 +0000 (18:55 +0000)]
re PR target/21623 (ICE in reload_cse_simplify_operands, at postreload.c:391)
PR target/21623:
* regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
(init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
(memory_move_secondary_cost, init_reg_autoinc): Remove
SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
secondary_reload_class call.
(copy_cost): Likewise. Add new parameter prev_sri. Changed all
callers.
* reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
(push_secondary_reload): Use secondary_reload target hook.
(secondary_reload_class, scratch_reload_class): New functions.
(push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
* reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
(secondary_reload_class, scratch_reload_class): Declare.
* reload1.c: Include target.h.
(reload_adjust_reg_for_temp): New function.
(reload_adjust_reg_for_icode): Likewise.
(choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
call.
(emit_input_reload_insns): Likewise. Rewrite secondary reload checks
for inheritance. Support case when both secondary & tertiary reloads
are for intermediate registers.
(emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
with secondary_reload_class call. Support case when both secondary
& tertiary reloads are for intermediate registers.
* target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
(TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
* target.h (secondary_reload_info): New struct / typedef.
(struct gcc_target): New member secondary_reload.
* targhooks.c Include reload.h, optabs.h and recog.h.
(default_secondary_reload): New function.
* targhooks.h (default_secondary_reload): Declare.
* doc/tm.texi: Document secondary_reload target hook. Update
description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
* doc/md.texi: Likewise.
* sh-protos.h (sh_secondary_reload): Declare.
* sh.c (TARGET_SECONDARY_RELOAD): Override.
(sh_secondary_reload): New function.
* sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
(HAVE_SECONDARY_RELOADS): Define.
* sh.md (reload_indf): Rename to:
(reload_indf__frn).
(reload_outdf): Rename to:
(reload_outdf__RnFRm).
(reload_insf): Rename to:
(reload_insf__frn).
(reload_insi): Rename to:
(reload_insi__i_fpul).
Uros Bizjak [Thu, 24 Nov 2005 14:08:21 +0000 (15:08 +0100)]
configure.ac: Require at least texinfo 4.4.
* configure.ac: Require at least texinfo 4.4.
* configure: Regenerate.
* doc/install.texi (Tools/packages necessary for building GCC):
Update required version of texinfo to at least 4.4.
(Installing GCC: Building): Update required version of texinfo
to at least 4.4.
(Installing GCC: Final installation): Update required version
of texi2dvi to at least 4.4.
(Host/target specific installation notes for GCC): Update required
version of texinfo to at least 4.4.
Ian Lance Taylor [Wed, 23 Nov 2005 23:08:54 +0000 (23:08 +0000)]
These files were stored incorrectly in the old CVS repository: they were in the Attic but were not marked as dead.
These files were stored incorrectly in the old CVS repository: they
were in the Attic but were not marked as dead. This had the effect of
making them appear to not exist in CVS checkouts, but they were
accidentally resurrected by cvs2svn. I am now deleting them again.
Mark Mitchell [Wed, 23 Nov 2005 18:08:59 +0000 (18:08 +0000)]
invoke.texi: For man pages, include gcc-vers.texi.
* doc/invoke.texi: For man pages, include gcc-vers.texi.
List @file in the option summary. Include the libiberty
documentation for @file.
* gcc.c (main): Call expandargv.
* Makefile.in (gcc-vers.texi): Define srcdir.