Thomas Koenig [Fri, 3 Dec 2010 10:35:12 +0000 (10:35 +0000)]
re PR fortran/45159 (Unnecessary temporaries)
2010-12-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/45159
* dependency.c (check_section_vs_section): Pre-calculate
the relationship between the strides and the relationship
between the start values. Use an integer constant one for
that purpose.
Forward dependencies for positive strides apply for where
the lhs start <= rhs start and lhs stride <= rhs stride
and vice versa for negative stride. No need to compare
end expressions in either case (assume no bounds violation).
2010-12-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/45159
* gfortran.dg/dependency_38.f90: New test.
gcc/:
* gcc.c (default_compilers): Add entry for ".go".
* common.opt: Add -static-libgo as a driver option.
* doc/install.texi (Configuration): Mention libgo as an option for
--enable-shared. Mention go as an option for --enable-languages.
* doc/invoke.texi (Overall Options): Mention .go as a file name
suffix. Mention go as a -x option.
* doc/frontends.texi (G++ and GCC): Mention Go as a supported
language.
* doc/sourcebuild.texi (Top Level): Mention libgo.
* doc/standards.texi (Standards): Add section on Go language.
Move references for other languages into their own section.
* doc/contrib.texi (Contributors): Mention that I contributed the
Go frontend.
gcc/testsuite/:
* lib/go.exp: New file.
* lib/go-dg.exp: New file.
* lib/go-torture.exp: New file.
* lib/target-supports.exp (check_compile): Match // Go.
Eric Botcazou [Thu, 2 Dec 2010 22:33:16 +0000 (22:33 +0000)]
re PR target/46685 (New stack alignment failures with -fpic)
PR target/46685
* config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
(sparc_expand_move): Call it to decide whether to emit the special
mov{si,di}_pic_label_ref patterns.
(sparc_legitimize_pic_address): Call it to decide whether to emit
the regular PIC sequence for labels. Fix long line.
(sparc_file_end): Set is_thunk for the PIC helper.
Paul Koning [Thu, 2 Dec 2010 19:10:41 +0000 (14:10 -0500)]
pdp11.c (output_jump): Map unsigned to signed opcodes if CC_NO_OVERFLOW is set.
* config/pdp11/pdp11.c (output_jump): Map unsigned to signed
opcodes if CC_NO_OVERFLOW is set.
(notice_update_cc_on_set): Correct setting of CC0 as a side
effect; set CC_NO_OVERFLOW for cases where C flag is not
meaningful.
configure.ac: Always set default for poststage1_ldflags to -static-libstdc++ -static-libgcc.
./: * configure.ac: Always set default for poststage1_ldflags to
-static-libstdc++ -static-libgcc.
gcc/:
* doc/install.texi (Configuration): Update default for
--with-boot-ldflags.
re PR tree-optimization/46723 (internal compiler error: in get_initial_def_for_induction, at tree-vect-loop.c:2431)
2010-12-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46723
* tree-vect-loop.c (get_initial_def_for_induction): Strip
conversions from the induction evolution and apply it to
the result instead.
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
assigns for induction defs.
Bernd Schmidt [Thu, 2 Dec 2010 15:48:36 +0000 (15:48 +0000)]
DFA model for Core 2 and Core i7 scheduling.
* config/i386/core2.md: New DFA model for Core 2 and Core i7.
* config/i386/i386.c (ix86_option_override_internal): Update entries
for Core 2 and Core i7.
(ix86_issue_rate): Set issue rate to 3 [be realistic].
* config/i386/i386.md: Include "core2.md".
(define_attr cpu): Add "corei7".
Jakub Jelinek [Thu, 2 Dec 2010 14:31:27 +0000 (15:31 +0100)]
re PR libgomp/43706 (scheduling two threads on one core leads to starvation)
PR libgomp/43706
* env.c (initialize_env): Default to spin count 300000
instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
is specified.
Kai Tietz [Thu, 2 Dec 2010 13:15:10 +0000 (13:15 +0000)]
re PR libstdc++/43738 (basic_file_stdio.cc uses ioctl on a fd, but not available on mingw32)
2010-12-02 Kai Tietz <kai.tietz@onevision.com>
PR libstdc++/43738
* config/io/basic_file_stdio.cc (showmanyc): Check _GLIBCXX_NO_IOCTL
before use of ioctl.
* config/os/mingw32/os_defines.h (_GLIBCXX_NO_IOCTL): New.
re PR c++/44871 (Invalid type mismatches while merging C and C++ sources)
2010-12-02 Richard Guenther <rguenther@suse.de>
PR lto/44871
* gimple.c (canonical_type_hash_cache): New hashtable.
(gimple_type_hash): Make a wrapper around ...
(gimple_type_hash_1): ... this. Take gtc_mode argument.
(gimple_canonical_type_hash): Likewise.
(gtc_visit): Take a gtc_mode argument.
(gimple_types_compatible_p_1): Likewise. Do not compare struct
tag names or field names when computing canonical types.
(gimple_types_compatible_p): Adjust.
(visit): Take a gtc_mode argument.
(iterative_hash_gimple_type): Likewise. Do not hash struct tag
names or field names when computing hashes of canonical types.
(gimple_register_canonical_type): Use gimple_canonical_type_hash
for the hash.
(print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
(free_gimple_type_tables): Free canonical_type_hash_cache.
* g++.dg/lto/20101126-1_0.C: New testcase.
* g++.dg/lto/20101126-1_1.c: Likewise.
François Dumont [Wed, 1 Dec 2010 20:51:38 +0000 (21:51 +0100)]
2.cc: Fix to explicitely invoke the copy construtor with or without C++0x mode.
2010-12-01 François Dumont <francois.cppdevs@free.fr>
* testsuite/23_containers/deque/cons/2.cc: Fix to explicitely invoke
the copy construtor with or without C++0x mode.
* testsuite/23_containers/vector/cons/4.cc: Likewise.
Sebastian Pop [Wed, 1 Dec 2010 17:25:10 +0000 (17:25 +0000)]
Postpone the rewrite out of SSA to the end of the translation to polyhedral representation.
2010-11-22 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/45297
* graphite-poly.c (new_poly_bb): Returns a poly_bb_p. Do not take
the reduction bool in parameter. Clear PBB_IS_REDUCTION. Set GBB_PBB.
* graphite-poly.h (new_poly_bb): Update declaration.
(gbb_from_bb): Moved here...
(pbb_from_bb): New.
* graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
Removed.
(graphite_stmt_p): Removed.
(try_generate_gimple_bb): Returns a gimple_bb_p. Do not pass in
sbitmap reductions. Always build a gimple_bb_p. Do not call
new_poly_bb.
(build_scop_bbs_1): Do not pass in sbitmap reductions.
(build_scop_bbs): Same.
(gbb_from_bb): ... from here.
(add_conditions_to_constraints): Moved up.
(analyze_drs): New.
(build_scop_drs): Call analyze_drs. Remove all the PBBs that do
not contain data references.
(new_pbb_from_pbb): New.
(insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
block is split.
(rewrite_close_phi_out_of_ssa): Update call to
insert_out_of_ssa_copy_on_edge.
(rewrite_reductions_out_of_ssa): Now static.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
(split_pbb): New.
(split_reduction_stmt): Call split_pbb.
(translate_scalar_reduction_to_array): Pass in the scop, do not
pass in the sbitmap reductions.
(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
(rewrite_commutative_reductions_out_of_ssa_loop): Same.
(rewrite_commutative_reductions_out_of_ssa): Same.
(build_poly_scop): Call build_scop_bbs,
rewrite_commutative_reductions_out_of_ssa,
rewrite_reductions_out_of_ssa, and
rewrite_cross_bb_scalar_deps_out_of_ssa. Move build_scop_drs
before scop_to_lst.
* graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
Removed declaration.
(rewrite_reductions_out_of_ssa): Same.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
(build_scop_bbs): Same.
* graphite.c (graphite_transform_loops): Do not initialize reductions.
Do not call build_scop_bbs,
rewrite_commutative_reductions_out_of_ssa,
rewrite_reductions_out_of_ssa, and
rewrite_cross_bb_scalar_deps_out_of_ssa.
* sese.h (struct gimple_bb): Add field pbb.
(GBB_PBB): New.
Sebastian Pop [Wed, 1 Dec 2010 17:24:57 +0000 (17:24 +0000)]
Do not rewrite out of SSA scalar dependences crossing the limits of the scop.
2010-11-22 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
New.
(rewrite_cross_bb_scalar_deps): Pass in the scop. Call
handle_scalar_deps_crossing_scop_limits.
(rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
after the scop. Update call to rewrite_cross_bb_scalar_deps.
Joseph Myers [Wed, 1 Dec 2010 13:58:52 +0000 (13:58 +0000)]
common.opt (flag_stack_check): New Variable entry.
* common.opt (flag_stack_check): New Variable entry.
(fcompare-debug-second): Use Var.
* flags.h (flag_compare_debug, flag_stack_check): Remove.
* opts.c (flag_compare_debug): Remove.
(common_handle_option): Don't handle OPT_fcompare_debug_second.
Set opts->x_flag_stack_check for OPT_fstack_check_.
* toplev.c (flag_stack_check): Remove.
ada:
* gcc-interface/misc.c (flag_compare_debug, flag_stack_check):
Undefine as macros then define as variables.
(gnat_post_options): Set variables from global_options.
In gcc/objc/:
2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_volatilized_type): Removed.
(objc_non_volatilized_type): Removed.
(objc_type_quals_match): Removed.
(local_variables_to_volatilize): New.
(objc_volatilize_decl): Add the decl to volatilize to
local_variables_to_volatilize, but don't volatilize it yet.
(objc_finish_function): New.
* objc-act.h (local_variables_to_volatilize): New.
In gcc/cp/:
2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
* decl.c (finish_function): Call objc_finish_function when
compiling Objective-C++.
* call.c (standard_conversion): Do not call
objc_non_volatilized_type().
(implicit_conversion): Same change.
* typeck.c (comp_ptr_ttypes_real): Same change.
In gcc/:
2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
* c-decl.c (finish_function): Call objc_finish_function in
Objective-C.
* c-typeck.c (convert_for_assignment): Do not call
objc_type_quals_match().
Richard Guenther [Tue, 30 Nov 2010 16:55:35 +0000 (16:55 +0000)]
re PR tree-optimization/46722 (Missed fma for x*x + y)
2010-11-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46722
* tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
operands as arguments.
(execute_optimize_widening_mul): Also handle power of two as
multiplication.
Richard Guenther [Tue, 30 Nov 2010 14:33:00 +0000 (14:33 +0000)]
re PR middle-end/46717 (Compiler segfault in profile-use mode)
2010-11-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46717
* value-prof.c (gimple_ic): Preserve EH edges of the indirect
call. Manually create EH edges for the direct call and update
target PHI nodes.
Nicola Pero [Mon, 29 Nov 2010 20:45:49 +0000 (20:45 +0000)]
In gcc/objc/: 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (start_class): When a class is reimplemented,
generate an error and avoid adding the class to the list of
implemented classes again, but do not return error_mark_node.
In gcc/testsuite/:
2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
Kai Tietz [Mon, 29 Nov 2010 17:52:24 +0000 (17:52 +0000)]
configure: Regenerated.
2010-11-29 Kai Tietz <kai.tietz@onevision.com>
* configure: Regenerated.
* Makefile.in: Regenerated.
* configure.ac (ACX_NONCANONICAL_TARGET): Call it.
(target_alias): Use AC_SUBST for it.
(GCC_NO_EXECUTABLES): Call it.
(AC_PROG_CC): Improve multilib handling.
Check that gcc is used for compilation.
Use pattern from libssp for symbol versioning checking.
* Makefile.am (LTLDFLAGS): Removed.
(libquadmath_la_LDFLAGS): Add -no-undefined.
(libquadmath_la_LINK): Commented out.
(libquadmath_la_DEPENDENCIES): Add libquadmath_la_LIBADD.
(AM_MAKEFLAGS): Add hack for argument passing by top-level.
(MAKEOVERRIDES): New.
* aclocal.m4: Regenerated.
Iain Sandoe [Mon, 29 Nov 2010 16:52:41 +0000 (16:52 +0000)]
strings-1.m: Move to...
gcc/testsuite:
* gcc/testsuite/objc.dg/strings-1.m: Move to...
* gcc/testsuite/objc.dg/strings/strings-1.m: ... here. Update paths.
* gcc/testsuite/objc.dg/strings-2.m: Move to ...
* gcc/testsuite/objc.dg/strings/strings-2.m ... here, provide a
constructor and class reference for NeXT runtime. Update paths.
* gcc/testsuite/obj-c++.dg/strings-1.m: Move to...
* gcc/testsuite/obj-c++.dg/strings/strings-1.m: ... here. Update paths.
* gcc/testsuite/obj-c++.dg/strings-2.m: Move to ...
* gcc/testsuite/obj-c__.dg/strings/strings-2.m ... here, provide a
constructor and class reference for NeXT runtime. Update paths.