re PR target/24055 ("could not split insn" with -O1 -ffast-math)
PR target/24055
* config/i386/i386.md ("*fistdi2_1"): New pattern.
("*fist<mode>2_1"): Use only HImode and SImode register operands.
("fist<mode>2_with_temp"): Use only register operands.
Richard Guenther [Mon, 26 Sep 2005 08:42:57 +0000 (08:42 +0000)]
re PR middle-end/15855 (g++ crash with -O2 and -O3 on input file)
2005-09-26 Richard Guenther <rguenther@suse.de>
PR middle-end/15855
* decl2.c (do_static_destruction): Remove.
(finish_static_initialization_or_destruction): Likewise.
(DECL_EFFECTIVE_INIT_PRIORITY): New macro.
(NEEDS_GUARD_P): Likewise.
(do_static_initialization): Rename to
do_static_initialization_or_destruction. Process all
initializers/destructors and handle common conditionalizing.
(start_static_initialization_or_destruction): Rename to
one_static_initialization_or_destruction. Handle only
decl-specific conditionalizing.
(cp_finish_file): Call do_static_initialization_or_destruction.
Richard Guenther [Mon, 26 Sep 2005 08:38:29 +0000 (08:38 +0000)]
re PR middle-end/15855 (g++ crash with -O2 and -O3 on input file)
2005-09-26 Richard Guenther <rguenther@suse.de>
PR middle-end/15855
* gcse.c: Include hashtab.h, define ldst entry hashtable.
(pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
(ldst_entry): Use the hashtable instead of list-walking.
(find_rtx_in_ldst): Likewise.
(free_ldst_entry): Free the hashtable.
(compute_ld_motion_mems): Create the hashtable.
(trim_ld_motion_mems): Remove entry from hashtable if
removing it from list.
(compute_store_table): Likewise^2.
(store_motion): Free hashtable in case we did not see
any stores.
c-common.c (handle_mode_attribute): When not modifying in place, create subtypes for enumerations.
* c-common.c (handle_mode_attribute): When not modifying in place,
create subtypes for enumerations.
(sync_resolve_return): Use TYPE_MAIN_VARIANT.
* gimplify.c (create_tmp_from_val): Likewise.
Paul Thomas [Fri, 23 Sep 2005 17:16:07 +0000 (17:16 +0000)]
re PR fortran/16861 ([4.0 only] segfault with doubly used module)
2005-09-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/16861
* module.c (mio_component_ref): Return if the symbol is NULL
and wait for another iteration during module reads.
(mio_symtree_ref): Suppress the writing of contained symbols,
when a symbol is available in the main namespace.
(read_module): Restrict scope of special treatment of contained
symbols to variables only and suppress redundant call to
find_true_name.
Tom Tromey [Fri, 23 Sep 2005 16:33:47 +0000 (16:33 +0000)]
enable.m4: New file.
config:
* enable.m4: New file.
* tls.m4: New file.
libmudflap:
* aclocal.m4, configure: Rebuilt.
* configure.ac: Use GCC_CHECK_TLS.
* acinclude.m4 (LIBMUDFLAP_CHECK_TLS, LIBMUDFLAP_ENABLE): Moved
to ../config.
parse.y: Changed pointer declaration from "type* var" to "type *var" Removed trailing space.
2005-09-23 Rafael ��vila de Esp��ndola <rafael.espindola@gmail.com>
* parse.y : Changed pointer declaration from "type* var" to "type *var"
Removed trailing space. Wrap long lines.
2005-09-23 Rafael ��vila de Esp��ndola <rafael.espindola@gmail.com>
* parse.y : Fixed two compile warnings in "error" and "warning"
invocations. Removed trailing periods in messages. Decapitalized the
first word of each.
David Edelsohn [Fri, 23 Sep 2005 14:32:22 +0000 (14:32 +0000)]
rs6000.md (neg-minus-mult): Set type to dmul.
2005-09-23 David Edelsohn <edelsohn@gnu.org>
Pete Steinmetz <steinmtz@us.ibm.com>
* config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
(rldic.): Set type to "compare".
(rldicr.): Same.
(movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to
mfjmpr for MFCTR/MFLR.
(movdf_hardfloat64): Same.
(movdf_softfloat64): Same. Correct order of store and move types.
(movti_string): Set type to store_ux/load_ux.
(load_multiple): Set type to load_ux.
(store_multiple): Set type to store_ux.
(movmemsi): Set type to store_ux.
(output_cbranch direct_return): Set type to jmpreg.
(stmw): Set type to store_ux.
(lmw): Set type to load_ux.
* config/rs6000/40x.md (ppc403-store): Increase latency to 2.
* config/rs6000/440.md (ppc440-store): Increase latency to 6.
* config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
* config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
* config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
* config/rs6000/rios1.md (rios1-store): Increase latency to 2.
(rios1-fpstore): Increase latency to 3.
* config/rs6000/rios2.md (rios2-store): Increase latency to 2.
* config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
Co-Authored-By: Pete Steinmetz <steinmtz@us.ibm.com>
From-SVN: r104568
Erik Edelmann [Thu, 22 Sep 2005 21:52:09 +0000 (00:52 +0300)]
re PR fortran/23843 (Access restrictions on derived types in modules too strict.)
fortran/
2005-09-22 Erik Edelmann <erik.edelmann@iki.fi>
PR fortran/23843
* resolve.c (derived_inaccessible): New function.
(resolve_transfer): Use it to check for private
components.
testsuite/
2005-09-22 Erik Edelmann <erik.edelmann@iki.fi>
Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/23843
* gfortran.dg/der_io_2.f90, gfortran.dg/der_io_3.f90: New test.
Andreas Krebbel [Thu, 22 Sep 2005 14:45:27 +0000 (14:45 +0000)]
expmed.c (expand_shift): Don't use the target of the rotate as target for the first expanded shift insn.
2005-09-22 Andreas Krebbel <krebbel1@de.ibm.com>
* expmed.c (expand_shift): Don't use the target of the rotate as
target for the first expanded shift insn.
* testsuite/gcc.dg/20050922-1.c: Testcase added.
Daniel Berlin [Thu, 22 Sep 2005 00:42:28 +0000 (00:42 +0000)]
tree-data-ref.c (analyze_array_indexes): Only estimate when estimate_only is true.
2005-09-20 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (analyze_array_indexes): Only estimate when
estimate_only is true.
* tree-flow.h (ref_contains_indirect_ref): New prototype.
* tree-flow-inline.h (ref_contains_indirect_ref): Moved from
tree-ssa-structalias.c
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
ref_contains_indirect_ref.
* tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
Erik Edelmann [Wed, 21 Sep 2005 17:05:16 +0000 (20:05 +0300)]
re PR fortran/19929 (Deallocation of an allocated derived type component causes failure)
2005-09-21 Erik Edelmann <erik.edelmann@iki.fi>
PR fortran/19929
* trans-stmt.c (gfc_trans_deallocate): Check if the
object to be deallocated is an array by looking at
expr->rank instead of expr->symtree->n.sym->attr.dimension.
2005-09-21 Erik Edelmann <erik.edelmann@iki.fi>
PR fortran/19929
* gfortran.dg/der_ptr_component_1.f90: New test.
PR middle-end/23971
* expmed.c (alg_code): Add alg_impossible.
(alg_hash_entry): Add cost.
(synth_mult): Record alg_impossible in the hash table if
multiplication by a given integer is impossble within the
limit. Speed up using alg_impossible.
* expmed.c (alg_code): Add alg_impossible.
(alg_hash_entry): Add cost.
(synth_mult): Record alg_impossible in the hash table if
multiplication by a given integer is impossble within the
limit. Speed up using alg_impossible.
re PR java/21418 (Order of source files matters when compiling)
PR java/21418
* class.c (inherits_from_p): Try to lay out super class
if it is not already laid out.
(maybe_layout_super_class): Handle the case where SUPER_CLASS
is a NULL_TREE.
* tree-ssa-structalias.c (get_constraint_for_component_ref): Add
argument. Allow and set any offset if needs_anyoffset is passed
in.
(get_constraint_for): Add argument here too.
Pass it down.
(do_structure_copy): Pass NULL to get_constraint_for.
(handle_ptr_arith): Ditto.
(find_func_aliases): Ditto.
Daniel Berlin [Tue, 20 Sep 2005 13:59:38 +0000 (13:59 +0000)]
tree-data-ref.c (get_number_of_iters_for_loop): New function.
2005-09-18 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (get_number_of_iters_for_loop): New function.
(analyze_siv_subscript_cst_affine): Add weak SIV test.
(compute_overlap_steps_for_affine_1_2): Use
get_number_of_iters_for_loop.
(analyze_subscript_affine_affine): Check whether difference is
zero first.
Use get_number_of_iters_for_loop.
Check whether overlap occurs outside of bounds.
(analyze_miv_subscript): Use get_number_of_iters_for_loop.
* gcc.dg/vect/vect-42.c: Remove pointers to "aligned types".
The test is no longer vectorizable on vect_no_align targets.
* gcc.dg/vect/vect-43.c: Likewsie.
* gcc.dg/vect/vect-95.c: Use aligned arrays instead of arrays to
aligned type.
* gcc.dg/vect/Os-vect-95.c: Likewise.
* gcc.dg/vect/vect-41.c: Test removed.
* gcc.dg/vect/vect-47.c: Test removed.
* gcc.dg/vect/vect-55.c: Test removed.
* gcc.dg/vect/vect-59.c: Test removed.
pr16105.c: Replace "aligned types" with regular types.
* gcc.dg/vect/pr16105.c: Replace "aligned types" with regular types.
No longer vectorizable on vect_no_align targets.
* gcc.dg/vect/pr20122.c: Likewise.
* gcc.dg/vect/vect-74.c: Likewise.
* gcc.dg/vect/vect-75.c: Likewise.
* gcc.dg/vect/vect-76.c: Likewise.
* gcc.dg/vect/vect-37.c: Replace "aligned types" with regular types.
Will not be vectorizable on vect_no_align targets once aliasing issues
are resolved.
* gcc.dg/vect/vect-79.c: Likewise.
re PR tree-optimization/18463 (suboptimal use of fancy x86 addressing modes)
PR tree-optimization/18463
* tree-chrec.c (chrec_convert): Return fold_converted chrec if
converting it directly is not possible.
(chrec_convert_aggressive): New function.
* tree-chrec.h (chrec_convert_aggressive): Declare.
* tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
Fold chrec conversions aggressively if asked to.
(instantiate_parameters): Modified because of changes in
instantiate_parameters_1.