Eric Botcazou [Mon, 9 Jan 2012 09:50:19 +0000 (09:50 +0000)]
re PR ada/41929 (64-bit null_pointer_deref1 gnat.dg test consumes all available memory)
PR ada/41929
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove SAVPC and
add CFA. Revert back to old code for Solaris 8+ multi-threaded.
(sparc_is_sighandler): Likewise.
(MD_FALLBACK_FRAME_STATE_FOR): Adjust call to IS_SIGHANDLER.
Gary Funck [Mon, 9 Jan 2012 08:48:43 +0000 (08:48 +0000)]
re PR preprocessor/33919 (__BASE_FILE__ does not expand correctly when included from the command line)
libcpp/
PR preprocessor/33919
* files.c (_cpp_get_file_name): New. Implement file name
access function.
* internal.h (_cpp_get_file_name): New prototype.
* macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
gcc/testsuite/
PR preprocessor/33919
* gcc.dg/pr33919.c: New test.
* gcc.dg/pr33919-0.h: New test header file.
* gcc.dg/pr33919-1.h: Ditto.
* gcc.dg/pr33919-2.h: Ditto.
Alexandre Oliva [Sat, 7 Jan 2012 21:37:15 +0000 (21:37 +0000)]
re PR bootstrap/51725 (segfault in stage 3 when compiling gcc/opts.c for sparc64-linux)
PR bootstrap/51725
* cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
Add canonical node to containing_mem chain after the non-canonical
one, even if there weren't any locs to propagate.
(remove_useless_values): Keep only canonical values.
(add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
(cselib_invalidate_mem): Likewise. Ensure v is canonical, and
canonicalize mem_chain elements that are not discarded.
Arnaud Charlet [Fri, 6 Jan 2012 14:48:05 +0000 (15:48 +0100)]
[multiple changes]
2012-01-06 Robert Dewar <dewar@adacore.com>
* a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads,
s-utf_32.ads: Add pragma Pure
* s-utf_32.adb: Suppress warnings on non-static constants (now
that this is Pure).
* gnat_rm.texi: Add documentation for conventions
Ada_Pass_By_Copy and Ada_Pass_By_Reference.
2012-01-06 Gary Dismukes <dismukes@adacore.com>
* a-tienio.adb (Put): Add exception message on
raise statements. Remove unneeded blocks and object declarations.
2012-01-06 Robert Dewar <dewar@adacore.com>
* sem_prag.adb: Minor reformatting.
2012-01-06 Ed Schonberg <schonberg@adacore.com>
* sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate
that a selected component within a generic unit has been resolved
as a prefixed call with local references.
* sem_ch3.adb (Is_Visible_Component): In an instance body a selected
component is always visible.
* sem_ch4.adb (Analyze_Selected_Component): If the node is a
prefixed call in an instance, do not look for visible components
of the type.
* sem_ch12.adb (Reset_Entity): If a selected component has resolved
to a prefixed call, mark the node accordingly when prefix and
selector are local references.
Tobias Burnus [Fri, 6 Jan 2012 13:38:49 +0000 (14:38 +0100)]
2012-01-06 Tobias Burnus <burnus@net-b.de>
* trans-openmp.c (gfc_omp_clause_dtor,
* gfc_trans_omp_array_reduction):
Update call to gfc_trans_dealloc_allocated.
* trans.c (gfc_allocate_using_malloc): Fix spacing.
(gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
label_finish when an error occurs.
(gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
* trans.h (gfc_allocate_allocatable,
* gfc_deallocate_with_status):
Update prototype.
(gfor_fndecl_caf_deregister): New tree symbol.
* trans-expr.c (gfc_conv_procedure_call): Update
gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
* trans-array.c (gfc_array_allocate,
* gfc_trans_dealloc_allocated,
structure_alloc_comps, gfc_trans_deferred_array): Ditto.
(gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
* trans-array.h (gfc_array_deallocate, gfc_array_allocate,
gfc_trans_dealloc_allocated): Update prototypes.
* trans-stmt.c (gfc_trans_sync): Fix indentation.
(gfc_trans_allocate): Fix errmsg padding and label handling.
(gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
* expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
* libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
to avoid other stats accidentally matching this one.
* trans-decl.c (gfor_fndecl_caf_deregister): New global var.
(gfc_build_builtin_function_decls): Fix prototype decl of caf_register
and add decl for caf_deregister.
(gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
* trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
gfc_deallocate_with_status.
Eric Botcazou [Thu, 5 Jan 2012 22:21:29 +0000 (22:21 +0000)]
re PR tree-optimization/51315 (unaligned memory accesses generated with -ftree-sra)
PR tree-optimization/51315
* tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
(build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
* configure.tgt: Support powerpc-linux and powerpc-darwin.
* config/linux/powerpc/futex_bits.h: New file.
* config/powerpc/cacheline.h: New file.
* config/powerpc/sjlj.S: New file.
* config/powerpc/target.h: New file.
* config/generic/asmcfi.h (cfi_offset): New.
(cfi_restore, cfi_undefined): New.
Paul Thomas [Thu, 5 Jan 2012 21:15:52 +0000 (21:15 +0000)]
PR fortran/PR48946
2012-01-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/PR48946
* resolve.c (resolve_typebound_static): If the typebound
procedure is 'deferred' try to find the correct specific
procedure in the derived type operator space itself.
2012-01-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/PR48946
* gfortran.dg/typebound_operator_9.f03: This is now a copy of
the old typebound_operator_8.f03.
* gfortran.dg/typebound_operator_8.f03: New version of
typebound_operator_7.f03 with 'u' a derived type instead of a
class object.
Jakub Jelinek [Thu, 5 Jan 2012 15:10:26 +0000 (16:10 +0100)]
re PR middle-end/51761 (ICE in verify_gimple_stmt, at tree-cfg.c:4241)
PR middle-end/51761
* gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr
field.
* gimplify.c (gimplify_cleanup_point_expr): Save and set
in_cleanup_point_expr before gimplify_stmt call and restore it
afterwards.
(gimplify_target_expr): Don't add {CLOBBER} cleanup if
in_cleanup_point_expr is false.
Eric Botcazou [Wed, 4 Jan 2012 21:34:27 +0000 (21:34 +0000)]
re PR tree-optimization/51624 (Assert_Failure atree.adb:808 during stage 3)
PR tree-optimization/51624
* tree-sra.c (build_ref_for_model): When replicating a chain of
COMPONENT_REFs, stop as soon as the offset would become negative.
Andrew Pinski [Wed, 4 Jan 2012 18:40:21 +0000 (18:40 +0000)]
mips.md (size): Add SI and DI.
2012-01-04 Andrew Pinski <apinski@cavium.com>
Adam Nemet <anemet@caviumnetworks.com>
* config/mips/mips.md (size): Add SI and DI.
(SIZE): New mode attribute.
(U): New code attribute.
* config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
(mips_lbux_<mode>): Delete.
(mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
(mips_lhx): Use gen_mips_lhx_extsi.
(mips_lhx_<mode>): Delete.
(mips_lwx): Delete.
(mips_l<size>x): New expand.
(mips_lwx_<mode>): Delete.
(mips_l<GPR:size>x_<P:mode>): New pattern.
(*mips_lw<u>x_<P:mode>_ext): Likewise.
* config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
* config/mips/mips.c (mips_lx_address_p): New function.
(mips_rtx_costs <case MEM>): Call mips_lx_address_p.
(dsp64): New availability predicate.
(mips_builtins): Add an entry for __builtin_mips_ldx.
* config/mips/mips.h (ISA_HAS_LBX): New define.
(ISA_HAS_LBUX): Likewise.
(ISA_HAS_LHX): Likewise.
(ISA_HAS_LHUX): Likewise.
(ISA_HAS_LWX): Likewise.
(ISA_HAS_LWUX): Likewise.
(ISA_HAS_LDX): Likewise.
* doc/extend.texi (__builtin_mips_ldx): Document.
2012-01-04 Andrew Pinski <apinski@cavium.com>
* gcc.target/mips/mips64-dsp-ldx1.c: New test.
* gcc.target/mips/octeon2-lx-1.c: New test.
* gcc.target/mips/mips64-dsp-ldx.c: New test.
* gcc.target/mips/octeon2-lx-2.c: New test.
* gcc.target/mips/octeon2-lx-3.c: New test.
Co-Authored-By: Adam Nemet <anemet@caviumnetworks.com>
From-SVN: r182884
Aldy Hernandez [Wed, 4 Jan 2012 14:53:30 +0000 (14:53 +0000)]
re PR middle-end/51212 (ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -fgnu-tm -fnon-call-exceptions and transaction_callable)
PR middle-end/51212
* opts.c (finish_options): Sorry out when using transactional
memory and non-call exceptions.
* doc/invoke.texi (C Dialect Options): Document it.
Mikael Morin [Wed, 4 Jan 2012 14:20:17 +0000 (14:20 +0000)]
re PR fortran/50981 ([OOP] Wrong-code for scalarizing ELEMENTAL call with absent OPTIONAL argument)
PR fortran/50981
* trans-array.h (gfc_walk_elemental_function_args): New argument.
* trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
* trans-stmt.c (gfc_trans_call): Ditto.
* trans-array.c (gfc_walk_function_expr): Ditto.
(gfc_walk_elemental_function_args): Get the dummy argument list
if possible. Check that the dummy and the actual argument are both
optional, and set can_be_null_ref accordingly.
* gfortran.dg/elemental_optional_args_2.f90: New test.
Mikael Morin [Wed, 4 Jan 2012 14:04:24 +0000 (14:04 +0000)]
re PR fortran/50981 ([OOP] Wrong-code for scalarizing ELEMENTAL call with absent OPTIONAL argument)
PR fortran/50981
* trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
* trans-array.c: If the reference can be NULL, save the reference
instead of the value.
* trans-expr.c (gfc_conv_expr): If we have saved a reference,
dereference it.
re PR middle-end/51750 (FAIL: 25_algorithms/heap/moveable*.cc execution test)
2012-01-04 Richard Guenther <rguenther@suse.de>
PR middle-end/51750
* tree.c (size_low_cst): New function.
* tree.h (size_low_cst): Declare.
* fold-const.c (fold_comparison): Use it to extract the low
part of the POINTER_PLUS_EXPR offset.
Fix clearing ZERO_REG
* config/avr/avr.md (cc): Add alternative "ldi".
(movqi_insn): Use it in cc attribute.
* config/avr/avr.c (notice_update_cc): Handle CC_LDI.
(output_reload_in_const): Use CLR to move 0 to ZERO_REG.
(output_reload_insisf): Use ZERO_REG to pre-clear register.
Thomas Koenig [Wed, 4 Jan 2012 11:51:37 +0000 (11:51 +0000)]
re PR fortran/49693 (Spurious "unused-variable" warnings for COMMON block module variables.)
2012-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/49693
* trans-common.c (create_common): Update copyright years. Mark
variables as used to avoid warnings about unused variables in
common blocks.
2012-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/49693
* gfortran.dg/common_17.f90: New test.
re PR tree-optimization/49651 (nested lambdas and -O3 produced incorrect integer variable increments)
2012-01-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49651
* tree-ssa-structalias.c (type_can_have_subvars): New function.
(var_can_have_subvars): Use it.
(get_constraint_for_1): Only consider subfields if there
can be any.
Jakub Jelinek [Tue, 3 Jan 2012 20:57:29 +0000 (21:57 +0100)]
re PR bootstrap/51725 (segfault in stage 3 when compiling gcc/opts.c for sparc64-linux)
PR bootstrap/51725
* cselib.c (new_elt_loc_list): When moving locs from one
cselib_val to its new canonical_cselib_val and the
cselib_val was in first_containing_mem chain, but
the canonical_cselib_val was not, add the latter into the
chain.
(cselib_invalidate_mem): Compare canonical_cselib_val of
addr_list chain elt with v.
François Dumont [Tue, 3 Jan 2012 20:33:20 +0000 (20:33 +0000)]
hashtable_policy.h (_Ebo_helper<>): Rename to the more specific _Hashtable_ebo_helper.
2012-01-03 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Ebo_helper<>): Rename to the more
specific _Hashtable_ebo_helper. Hide this implementation detail thanks
to private inheritance.
Ira Rosen [Tue, 3 Jan 2012 13:24:04 +0000 (13:24 +0000)]
re PR tree-optimization/51269 (Vectorization profitability threshold is not actually used)
PR tree-optimization/51269
* tree-vect-loop-manip.c (set_prologue_iterations): Make
first_niters a pointer.
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_do_peeling_for_loop_bound): Update call to
slpeel_tree_peel_loop_to_edge.
(vect_gen_niters_for_prolog_loop): Don't compute
wide_prolog_niters here. Remove it from the parameters list.
(vect_do_peeling_for_alignment): Update calls and compute
wide_prolog_niters.