gcc/
* genpreds.c (write_lookup_constraint): Rename to...
(write_lookup_constraint_1): ...this.
(write_lookup_constraint_array): New function.
(write_tm_preds_h): Define lookup_constraint as an inline function
that uses write_lookup_constraint_array where possible.
(write_insn_preds_c): Update for the changes above.
gcc/
* doc/md.texi (regclass_for_constraint): Rename to...
(reg_class_for_constraint): ...this.
* genpreds.c (num_constraints, enum_order, register_start)
(register_end, satisfied_start, memory_start, memory_end)
(address_start, address_end): New variables.
(add_constraint): Count the number of constraints.
(choose_enum_order): New function.
(write_enum_constraint_num): Iterate over enum_order.
(write_regclass_for_constraint): Rename to...
(write_reg_class_for_constraint_1): ...this and update output
accordingly.
(write_constraint_satisfied_p): Rename to...
(write_constraint_satisfied_p_1): ...this and update output
accordingly. Do nothing if all extra constraints are register
constraints.
(write_insn_extra_memory_constraint): Delete.
(write_insn_extra_address_constraint): Delete.
(write_range_function): New function.
(write_tm_preds_h): Define constraint_satisfied_p and
reg_class_for_constraint as inline functions that do a range check
before calling the out-of-line function. Use write_range_function
to implement insn_extra_{register,memory,address}_constraint,
the first of which is new.
(write_insn_preds_c): Update after above changes to write_* functions.
(main): Call choose_enum_order.
* a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add
new variable First_Node. Update the position after all insertions have
taken place to First_Node.
2014-06-11 Robert Dewar <dewar@adacore.com>
* debug.adb: Remove debug flag -gnatd.1, no longer needed.
* layout.adb (Layout_Type): Remove test of -gnatd.1.
Arnaud Charlet [Wed, 11 Jun 2014 12:50:22 +0000 (14:50 +0200)]
[multiple changes]
2014-06-11 Thomas Quinot <quinot@adacore.com>
* freeze.ads: Minor reformatting.
* checks.adb (Determine_Range): Do not attempt to determine
the range of a deferred constant whose full view has not been
seen yet.
* sem_res.adb (Resolve): Remove undesirable guard against
resolving expressions from expression functions.
2014-06-11 Robert Dewar <dewar@adacore.com>
* debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous
access types.
* layout.adb (Layout_Type): Make anonymous access types for
subprogram formal types and return types always thin. For now
only enabled if -gnatd.1 set.
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality
rule for stream attributes of interface types (RM 13.13.2 (38/3)):
subprogram must be a null procedure.
* sem_prag.adb (Analyze_Input_Item): Allow formal
parameters to appear as input_items in an initialization_list
of pragma Initializes. Encapsulation now applies to states and
variables only (as it should). Add RM references to key errors.
* sem_prag.adb (Set_Imported): Suppress errors
about preceding Imports when the pragma does not come from source,
which can happen through use of pragma Provide_Shift_Operators.
2014-06-11 Thomas Quinot <quinot@adacore.com>
* sem_ch3.adb: Minor reformatting.
* einfo.ads (Full_View): Minor comment update.
Arnaud Charlet [Wed, 11 Jun 2014 12:37:07 +0000 (14:37 +0200)]
[multiple changes]
2014-06-11 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb,
opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of
pragma/aspects Pure_05 Pure_12 Preelaborate_05.
* errout.adb (Output_Messages): Avoid duplicate output for
library level instance.
* sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level
(Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal
* exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular.
* s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to
accomodate largest modulus value.
* gnat_ugn.texi: Minor updates.
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Instantiate_Package_Body): Do not attempt to
load body of generic package or its parent, if body is optional
and the unit does not require a body.
Robert Dewar [Wed, 11 Jun 2014 12:34:08 +0000 (12:34 +0000)]
gnat_rm.texi: Document System.Unsigned_Types.
2014-06-11 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document System.Unsigned_Types.
* impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible.
* s-unstyp.ads: Update comments (this is now user available unit).
Arnaud Charlet [Wed, 11 Jun 2014 12:31:56 +0000 (14:31 +0200)]
[multiple changes]
2014-06-11 Robert Dewar <dewar@adacore.com>
* make.adb, sem_res.adb: Minor reformatting.
2014-06-11 Thomas Quinot <quinot@adacore.com>
* a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads,
a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads,
a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas
Preelaborate_05 to just Preelaborate in runtime units, and similarly
change Pure_05 to just Pure.
Arnaud Charlet [Wed, 11 Jun 2014 12:29:22 +0000 (14:29 +0200)]
[multiple changes]
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt
analysis if error has been posted on subprogram body.
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality
rule given in RM 13.1 (8/1) for operational attributes to stream
attributes: the attribute must apply to a first subtype. Fixes
missing errors in ACATS test bdd2004.
2014-06-11 Robert Dewar <dewar@adacore.com>
* exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant
record type if restriction No_Implicit_Conditionals is active.
(Expand_N_Object_Declaration): Don't allow default initialization
for variant record type if restriction No_Implicit_Condition is active.
(Build_Variant_Record_Equality): Don't build for variant
record type if restriction No_Implicit_Conditionals is active.
* exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with
No_Implicit_Conditionals.
* sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function.
2014-06-11 Ramon Fernandez <fernandez@adacore.com>
* i-cstrin.ads: Update comments.
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Selected_Component): Handle properly a
selected component whose prefix is overloaded, when none of the
interpretations matches the expected type.
2014-06-11 Bob Duff <duff@adacore.com>
* make.adb (Wait_For_Available_Slot): Give a more
informative error message; if the ALI file is not found, print
the full path of what it's looking for.
Arnaud Charlet [Wed, 11 Jun 2014 12:22:57 +0000 (14:22 +0200)]
[multiple changes]
2014-06-11 Yannick Moy <moy@adacore.com>
* einfo.ads: Minor typo in comment
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for
formal private types and private type extensions, to indicate
variable in a generic unit whose uninitialized use suggest that
actual type should be fully initialized.
Needs_Initialized_Actual: removed, functionaity replaced by
the above.
* lib-xref.adb (Generate_Reference): Generate a reference for
variables of a formal type when the unit is not the main unit,
to enable appropriate warnings in an instance.
* sem_ch12.adb (Check_Ininialized_Type): Improve warning on use
of variable in a generic unit that suggests that actual type
should be full initialized.
* sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure
and do not emot warning, which now only appears in an instance.
* sem_ch3.adb Add with and use clause for Sem_Ch10.
(Analyze_Declarations): Code reformatting. Analyze the contract
of a subprogram body stub at the end of the declarative region.
* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is
now a variable. Do not process the body if its contract is not
available. Account for subprogram body stubs when extracting
the corresponding spec.
* sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment
on usage.
* sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract):
New routine.
* sem_prag.adb (Analyze_Depends_In_Decl_Part):
Account for subprogram body stubs when extracting the
corresponding spec.
(Analyze_Global_In_Decl_List):
Account for subprogram body stubs when extracting the
corresponding spec.
(Analyze_Refined_Depends_In_Decl_Part):
Use Find_Related_Subprogram_Or_Body to retrieve the declaration
of the related body. Spec_Is now a variable. Account for
subprogram body stubs when extracting the corresponding spec.
(Analyze_Refined_Global_In_Decl_Part): Use
Find_Related_Subprogram_Or_Body to retrieve the declaration
of the related body. Spec_Is now a variable. Account for
subprogram body stubs when extracting the corresponding spec.
(Collect_Subprogram_Inputs_Output): Account for subprogram body
stubs when extracting the corresponding spec.
2014-06-11 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Process_Link): Do not invoke gnatlink with
-lgnarl or -lgnat.
Richard Biener [Wed, 11 Jun 2014 11:17:21 +0000 (11:17 +0000)]
re PR tree-optimization/61452 (hang at -O1 and -Os on x86_64-linux-gnu)
2014-06-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/61452
* tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
expr and has_constants in case we found a leader.
(simplify_binary_expression): Always valueize operands first.
(simplify_unary_expression): Likewise.
Andrew Burgess [Wed, 11 Jun 2014 10:57:27 +0000 (10:57 +0000)]
Delete temporary string within demangler even in failure cases.
A call to demangle_template might allocate storage within a temporary
string even if the call to demangle_template eventually returns
failure.
This will never cause the demangler to crash, but does leak memory, as
a result I've not added any tests for this.
Calling string_delete is safe, even if nothing is allocated into the
string, the string is initialised with string_init, so we know the
internal pointers are NULL.
libiberty/ChangeLog
* cplus-dem.c (do_type): Call string_delete even if the call to
demangle_template fails.
Arnaud Charlet [Wed, 11 Jun 2014 10:52:35 +0000 (12:52 +0200)]
[multiple changes]
2014-06-11 Geert Bosch <bosch@adacore.com>
* s-exctab.adb: avoid race conditions in exception registration.
2014-06-11 Robert Dewar <dewar@adacore.com>
* errout.adb (Warn_Insertion): New function.
(Error_Msg): Use Warn_Insertion and Prescan_Message.
(Error_Msg_Internal): Set Info field of error object.
(Error_Msg_NEL): Use Prescan_Message.
(Set_Msg_Text): Don't store info: at start of message.
(Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning.
(Skip_Msg_Insertion_Warning): Now just skips warning insertion.
* errout.ads: Document new ?$? and >$> insertion sequences
Document use of "(style)" and "info: "
* erroutc.adb (dmsg): Print several missing fields
(Get_Warning_Tag): Handle -gnatel case (?$?) (Output_Msg_Text):
Deal with new tagging of info messages
* erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object):
Add field Info (Prescan_Message): New procedure, this procedure
replaces the old Test_Style_Warning_Serious_Unconditional_Msg
* errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb,
sem_elab.adb: Follow new rules for info message (info belongs
only at the start of a message, and only in the first message,
not in any of the continuations).
* gnat_ugn.texi: Document full set of warning tags.
re PR tree-optimization/61306 (wrong code at -Os and above on x86_64-linux-gnu)
2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/61306
* tree-ssa-math-opts.c (struct symbolic_number): Store type of
expression instead of its size.
(do_shift_rotate): Adapt to change in struct symbolic_number. Return
false to prevent optimization when the result is unpredictable due to
arithmetic right shift of signed type with highest byte is set.
(verify_symbolic_number_p): Adapt to change in struct symbolic_number.
(init_symbolic_number): Likewise.
(find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
when the result is unpredictable due to sign extension.
Kyrylo Tkachov [Wed, 11 Jun 2014 09:19:14 +0000 (09:19 +0000)]
[AArch64] Add CRC32 ACLE intrinsics testsuite.
* gcc.target/aarch64/acle/acle.exp: New.
* gcc.target/aarch64/acle/crc32b.c: New test.
* gcc.target/aarch64/acle/crc32cb.c: Likewise.
* gcc.target/aarch64/acle/crc32cd.c: Likewise.
* gcc.target/aarch64/acle/crc32ch.c: Likewise.
* gcc.target/aarch64/acle/crc32cw.c: Likewise.
* gcc.target/aarch64/acle/crc32d.c: Likewise.
* gcc.target/aarch64/acle/crc32h.c: Likewise.
* gcc.target/aarch64/acle/crc32w.c: Likewise.
--This line,gand those below, will be ignored--
A gcc/testsuite/gcc.target/aarch64/acle
A gcc/testsuite/gcc.target/aarch64/acle/acle.exp
A gcc/testsuite/gcc.target/aarch64/acle/crc32b.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32d.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32w.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32h.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32cw.c
A gcc/testsuite/gcc.target/aarch64/acle/crc32ch.c
M gcc/testsuite/ChangeLog
re PR tree-optimization/52252 (An opportunity for x86 gcc vectorizer (gain up to 3 times))
gcc/
* tree-vect-data-refs.c (vect_grouped_store_supported): New
check for stores group of length 3.
(vect_permute_store_chain): New permutations for stores group of
length 3.
* tree-vect-stmts.c (vect_model_store_cost): Change cost
of vec_perm_shuffle for the new permutations.
gcc/testsuite/
PR tree-optimization/52252
* gcc.dg/vect/pr52252-st.c: Test on stores group of size 3.
Jan Hubicka [Wed, 11 Jun 2014 05:51:23 +0000 (07:51 +0200)]
varasm.c (set_implicit_section): New function.
* varasm.c (set_implicit_section): New function.
(resolve_unique_section): Use it to set implicit section
for aliases, too.
(get_named_text_section): Use symtab_get_node (decl)->implicit_section
(default_function_section): Likewise.
(decl_binds_to_current_def_p): Constify argument.
* varasm.h (decl_binds_to_current_def_p): Update prototype.
* asan.c (asan_protect_global): Use symtab_get_node (decl)->implicit_section.
* symtab.c (dump_symtab_base): Dump implicit sections.
(verify_symtab_base): Verify sanity of sectoins and comdats.
(symtab_resolve_alias): Alias share the section of its target.
(set_section_1): New function.
(symtab_node::set_section): Move here, recurse to aliases.
(verify_symtab): Check for duplicated symtab lists.
* tree-core.h (implicit_section_name_p): Remove.
* tree-vect-data-refs.c: Include varasm.h.
(vect_can_force_dr_alignment_p): Fix conditional on when
decl bints to current definition; use
symtab_get_node (decl)->implicit_section.
* cgraph.c (cgraph_make_node_local_1): Fix section set.
* cgraph.h (struct symtab_node): Add implicit_section.
(set_section): Rename to ...
(set_section_for_node): ... this one.
(set_section): Declare.
* tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
input_overwrite_node, input_varpool_node): Stream implicit_section.
* ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
removal; it will fail in LTO.
* vtable-class-hierarchy.c: Use symtab_get_node (var_decl)->implicit_section.
* optimize.c (cdtor_comdat_group): Fix handling of aliases.
(maybe_clone_body): Move symbol across comdat groups.
* method.c (use_thunk): Copy implicit section flag.
* go/go-gcc.cc (Gcc_backend::global_variable_set_init): Use
symtab_get_node(var_decl)->implicit_section.
* lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
(do_whole_program_analysis): Use verify_symtab.
Kyrylo Tkachov [Tue, 10 Jun 2014 16:05:17 +0000 (16:05 +0000)]
[AArch64] Fix some reg-to-reg move scheduler types.
* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
Change second alternative type to f_mcr.
* config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
and 12th alternatives' types to f_mcr and f_mrc.
(*movdi_aarch64): Same for 12th and 13th alternatives.
(*movsf_aarch64): Change 9th alternatives' type to mov_reg.
(aarch64_movtilow_tilow): Change type to fmov.
Richard Biener [Tue, 10 Jun 2014 14:10:57 +0000 (14:10 +0000)]
re PR middle-end/61456 (Bogus "may be used uninitialized" warning)
2014-06-10 Richard Biener <rguenther@suse.de>
PR middle-end/61456
* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
Do not use the main variant for the type comparison.
(ncr_compar): Likewise.
(nonoverlapping_component_refs_p): Likewise.
Kyrylo Tkachov [Tue, 10 Jun 2014 09:50:22 +0000 (09:50 +0000)]
[ARM][doc] Improve description of AArch32 CRC32 intrinsics.
* doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
available.
Simplify description of __crc32d and __crc32cd intrinsics.
* doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
availability.
Jan Hubicka [Tue, 10 Jun 2014 06:30:50 +0000 (08:30 +0200)]
ipa-reference.c (is_proper_for_analysis): Exclude addressable and public vars.
* ipa-reference.c (is_proper_for_analysis): Exclude addressable and public
vars.
(intersect_static_var_sets): Remove.
(propagate): Do not prune local statics.
Jakub Jelinek [Tue, 10 Jun 2014 06:05:22 +0000 (08:05 +0200)]
re PR fortran/60928 (gfortran issue with allocatable components and OpenMP)
PR fortran/60928
* omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
Set lastprivate_firstprivate even if omp_private_outer_ref
langhook returns true.
<case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
langhook, call unshare_expr on new_var and call
build_outer_var_ref to get the last argument.
gcc/c-family/
* c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
(omp_pragmas): ... back here.
gcc/fortran/
* f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
like -fopenmp.
* openmp.c (resolve_omp_clauses): Remove allocatable components
diagnostics. Add associate-name and intent(in) pointer
diagnostics for various clauses, diagnose procedure pointers in
reduction clause.
* parse.c (match_word_omp_simd): New function.
(matchs, matcho): New macros.
(decode_omp_directive): Change match macros to either matchs
or matcho. Handle -fopenmp-simd.
(next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
* scanner.c (skip_free_comments, skip_fixed_comments, include_line):
Likewise.
* trans-array.c (get_full_array_size): Rename to...
(gfc_full_array_size): ... this. No longer static.
(duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
and handle it.
(gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
duplicate_allocatable callers.
(gfc_duplicate_allocatable_nocopy): New function.
(structure_alloc_comps): Adjust g*_full_array_size and
duplicate_allocatable caller.
* trans-array.h (gfc_full_array_size,
gfc_duplicate_allocatable_nocopy): New prototypes.
* trans-common.c (create_common): Call gfc_finish_decl_attrs.
* trans-decl.c (gfc_finish_decl_attrs): New function.
(gfc_finish_var_decl, create_function_arglist,
gfc_get_fake_result_decl): Call it.
(gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
don't allocate it again.
(gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
associate-names.
* trans.h (gfc_finish_decl_attrs): New prototype.
(struct lang_decl): Add scalar_allocatable and scalar_pointer
bitfields.
(GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
GFC_DECL_ASSOCIATE_VAR_P): Define.
(GFC_POINTER_TYPE_P): Remove.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
(gfc_omp_predetermined_sharing): Associate-names are predetermined.
(enum walk_alloc_comps): New.
(gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
gfc_walk_alloc_comps): New functions.
(gfc_omp_private_outer_ref): Return true for scalar allocatables or
decls with allocatable components.
(gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
allocatables and decls with allocatable components.
(gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
arrays here.
(gfc_trans_omp_reduction_list): Call
gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
(gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
(gfc_trans_omp_parallel_do_simd): Likewise.
* trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
(gfc_get_derived_type): Call gfc_finish_decl_attrs.
gcc/testsuite/
* gfortran.dg/gomp/allocatable_components_1.f90: Remove dg-error
directives.
* gfortran.dg/gomp/associate1.f90: New test.
* gfortran.dg/gomp/intentin1.f90: New test.
* gfortran.dg/gomp/openmp-simd-1.f90: New test.
* gfortran.dg/gomp/openmp-simd-2.f90: New test.
* gfortran.dg/gomp/openmp-simd-3.f90: New test.
* gfortran.dg/gomp/proc_ptr_2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/allocatable9.f90: New test.
* testsuite/libgomp.fortran/allocatable10.f90: New test.
* testsuite/libgomp.fortran/allocatable11.f90: New test.
* testsuite/libgomp.fortran/allocatable12.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
* testsuite/libgomp.fortran/associate1.f90: New test.
* testsuite/libgomp.fortran/associate2.f90: New test.
* testsuite/libgomp.fortran/procptr1.f90: New test.
re PR middle-end/61141 (c-common.c:1502:1: ICE: in reset_insn_used_flags, at emit-rtl.c:2677)
2014-05-18 John David Anglin <danglin@gcc.gnu.org>
PR middle-end/61141
* emit-rtl.c (reset_all_used_flags): In a sequence, check that
XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
(verify_rtl_sharing): Likewise.
Eric Botcazou [Sat, 7 Jun 2014 11:59:18 +0000 (11:59 +0000)]
tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a call statement, if any.
* tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
call statement, if any.
(gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
statements, if any. Tidy up.
re PR target/18343 (mmix-knuth-mmixware testsuite failure: gcc.dg/builtin-return-1.c)
PR target/18343
* gcc.dg/torture/stackalign/builtin-return-1.c (STACK_ARGUMENTS_SIZE):
New macro, 0 for __MMIX__, default 64.
(bar): Pass it to __builtin_apply instead of literal 64.
re PR target/61431 (Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems)
2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/61431
* config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
iterators, VSX_D that handles 64-bit types, and VSX_LE that
handles swapping the two 64-bit double words on little endian
systems. Include V1TImode and optionally TImode in VSX_LE so that
these types are properly swapped. Change all of the insns and
splits that do the 64-bit swaps to use VSX_LE.
(vsx_le_perm_load_<mode>): Likewise.
(vsx_le_perm_store_<mode>): Likewise.
(splitters for little endian memory operations): Likewise.
(vsx_xxpermdi2_le_<mode>): Likewise.
(vsx_lxvd2x2_le_<mode>): Likewise.
(vsx_stxvd2x2_le_<mode>): Likewise.
Uros Bizjak [Fri, 6 Jun 2014 17:45:10 +0000 (19:45 +0200)]
re PR target/61423 (Incorrect conversion from unsigned int to floating point)
PR target/61423
* config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
define_insn_and_split pattern, merged from *floatunssi<mode>2_1
and corresponding splitters. Zero extend general register
or memory input operand to XMM temporary. Enable for
TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
(floatunssi<mode>2): Update expander predicate.
testsuite/ChangeLog:
PR target/61423
* gcc.target/i386/pr61423.c: New test.
re PR rtl-optimization/61325 (aarch64_be build fails)
2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/61325
* lra-constraints.c (process_address_1): Check scale equal to one
to prevent transformation: base + scale * index => base + new_reg.
Richard Biener [Fri, 6 Jun 2014 15:31:47 +0000 (15:31 +0000)]
re PR tree-optimization/59299 (We do not sink loads)
2014-06-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/59299
* tree-ssa-sink.c (all_immediate_uses_same_place): Work on
a def operand.
(nearest_common_dominator_of_uses): Likewise.
(statement_sink_location): Adjust. Support sinking loads.
Martin Jambor [Fri, 6 Jun 2014 13:26:24 +0000 (15:26 +0200)]
ipa-prop.c (get_place_in_agg_contents_list): New function.
2014-06-06 Martin Jambor <mjambor@suse.cz>
* ipa-prop.c (get_place_in_agg_contents_list): New function.
(build_agg_jump_func_from_list): Likewise.
(determine_known_aggregate_parts): Renamed to
determine_locally_known_aggregate_parts. Moved some functionality
to the two functions above, removed bound checks.
bswap-2.c: Add alignment constraints to bitfield and test wrong results instead of correct...
2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.c-torture/execute/bswap-2.c: Add alignment constraints to
bitfield and test wrong results instead of correct results to make the
test more portable.