2015-05-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/66251
* tree-vect-stmts.c (vectorizable_conversion): Properly
set STMT_VINFO_VEC_STMT even for the SLP case.
* gfortran.fortran-torture/compile/pr66251.f90: New testcase.
From-SVN: r223552
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb (Default_Init_Cond_Procedure): Code cleanup. The
attribute now applies to the base type.
(Has_Default_Init_Cond): Now applies to the base type.
(Has_Inherited_Default_Init_Cond): Now applies to the base type.
(Set_Default_Init_Cond_Procedure): Code cleanup. The attribute now
applies to the base type.
(Set_Has_Default_Init_Cond): Now applies to the base type.
(Set_Has_Inherited_Default_Init_Cond): Now applies to the base type.
* exp_ch3.adb (Expand_N_Object_Declaration): No need to use the
base type when adding a call to the Default_Initial_Condition.
From-SVN: r223551
* einfo.adb Node36 is now used as Anonymous_Master. Flag253
is now unused.
(Anonymous_Master): New routine.
(Has_Anonymous_Master): Removed.
(Set_Anonymous_Master): New routine.
(Set_Has_Anonymous_Master): Removed.
(Write_Entity_Flags): Remove the output for Has_Anonymous_Maser.
(Write_Field36_Name): Add output for Anonymous_Master.
* einfo.ads Add new attribute Anonymous_Master along with
occurrences in nodes. Remove attribute Has_Anonymous_Master along
with occurrences in nodes.
(Anonymous_Master): New routine along with pragma Inline.
(Has_Anonymous_Master): Removed along with pragma Inline.
(Set_Anonymous_Master): New routine along with pragma Inline.
(Set_Has_Anonymous_Master): Removed along with pragma Inline.
* exp_ch4.adb (Create_Anonymous_Master): New routine.
(Current_Anonymous_Master): Reimplemented.
From-SVN: r223550
2015-05-22 Bob Duff <duff@adacore.com>
* freeze.adb (Freeze_Profile): Suppress warning if imported
subprogram is not at library level.
From-SVN: r223549
2015-05-22 Robert Dewar <dewar@adacore.com>
* debug.adb: Update documentation.
* einfo.ads, einfo.adb (Needs_Typedef): New flag
* exp_unst.adb (Unnest_Subprogram): Mark AREC types as needing
typedef's in C.
* frontend.adb: Update comments.
* gnat1drv.adb (Adjust_Global_Switches): Set all needed flags
for -gnatd.V
* opt.ads (Generate_C_Code): New switch.
* osint-c.adb (Write_C_File_Info): Removed, not used
(Write_H_File_Info): Removed, not used
* osint-c.ads (Write_C_File_Info): Removed, not used
(Write_H_File_Info): Removed, not used
* osint.ads (Write_Info): Minor comment updates.
(Output_FD): Moved from private part to public part of spec.
* sem.adb (Semantics): Force expansion on if in Generate_C_Code
mode.
* atree.ads: minor typo in comment.
* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
Do not allow VFA on composite object with aliased component.
From-SVN: r223546
2015-05-22 Pascal Obry <obry@adacore.com>
* makeutl.ads (In_Place_Option): New constant.
* prj.ads (Obj_Root_Dir): New variable (absolute path to relocate
objects).
(Root_Src_Tree): New variable (absolute path of root source tree).
* prj-conf.adb (Do_Autoconf): Take into account the object root
directory (if defined) to generate configuration project.
* prj-nmsc.adb (Get_Directories): Handle case where Obj_Root_Dir
is defined.
(Locate_Directory): Likewise.
From-SVN: r223543
2015-05-22 Bob Duff <duff@adacore.com>
* exp_utils.ads, exp_utils.adb (Find_Optional_Prim_Op): New
interface to return Empty when not found, so we can avoid handling
Program_Error in that case.
(Find_Prim_Op): Fix latent bug: raise Program_Error when there are no
primitives.
* exp_ch7.adb, sem_util.adb: Use Find_Optional_Prim_Op when the
code is expecting Empty.
* sem_ch8.adb: Use Find_Optional_Prim_Op to avoid handling
Program_Error.
From-SVN: r223541
2015-05-22 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_intr.adb, exp_ch4.adb, s-rannum.adb,
sem_eval.adb, s-fatgen.adb, s-expmod.ads: Remove incorrect hyphen in
non-binary.
* exp_util.adb: Add comment.
* osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move from spec to
body.
(Set_File_Name): New name for the above.
(Create_C_File, Create_H_File, Write_C_File_Info, Write_H_File_Info,
Close_C_File, Close_H_File): New procedure.
* osint.adb: Minor reformatting.
* osint.ads: Minor comment updates.
From-SVN: r223540
2015-05-22 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb: Minor rewording.
* exp_util.ads: Clarify that Find_Prim_Op is only for
tagged types.
From-SVN: r223539
2015-05-22 Robert Dewar <dewar@adacore.com>
* atree.adb, atree.ads, treepr.adb: Change name Needs_Actuals_Check to
Check_Actuals.
* exp_ch4.adb (Expand_N_Op_Expon): Optimize 2**x in modular
and overflow cases.
From-SVN: r223538
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
* exp_pakd.adb (Install_PAT): Propagate representation aspects
from the original array type to the PAT.
2015-05-22 Robert Dewar <dewar@adacore.com>
* treepr.adb (Print_Node_Header): Add output of Needs_Actuals_Check.
From-SVN: r223537
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Remove the detection
of a useless Part_Of indicator when the related item is a constant.
(Check_Matching_Constituent): Do not emit an error on a constant.
(Check_Missing_Part_Of): Do not check for a missing Part_Of indicator
when the related item is a constant.
(Collect_Body_States): Code cleanup.
(Collect_Visible_States): Code cleanup.
(Report_Unused_States): Do not emit an error on a constant.
* sem_util.ads, sem_util.adb (Has_Variable_Input): Removed.
From-SVN: r223535
2015-05-22 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch8.adb (Analyze_Object_Renaming): Copy
Has_Volatile_Full_Access from renamed to renaming entities.
* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
Tidy up and remove redundant setting of Has_Volatile_Full_Access.
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* ghost.adb (Check_Ghost_Completion): Update references to SPARK
RM 6.9 rules.
(Check_Ghost_Policy): Update references to SPARK RM 6.9 rules.
* sem_ch3.adb (Analyze_Object_Declaration): Update references
to SPARK RM 6.9 rules.
(Check_Completion): Ghost entities do not require a special form of
completion.
* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
to SPARK RM 6.9 rules.
(Analyze_Subprogram_Body_Helper): Update references to SPARK RM 6.9
rules.
* sem_ch7.adb (Analyze_Package_Body_Helper): Update references
to SPARK RM 6.9 rules.
(Requires_Completion_In_Body): Ghost entities do not require a special
form of completion.
2015-05-22 Robert Dewar <dewar@adacore.com>
* a-csquin.ads: Use Ada 2012 notation.
* sem_ch8.adb: Minor reformatting.
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Import
acts as a completion.
From-SVN: r223534
2015-05-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb: Minor reformatting.
2015-05-22 Jose Ruiz <ruiz@adacore.com>
* a-reatim.adb: Minor change, fix typo.
From-SVN: r223533
2015-05-22 Robert Dewar <dewar@adacore.com>
* sem_util.ads: Minor addition of ??? comment.
* sem_prag.adb, sem_util.adb: Minor reformatting.
* sem_ch13.adb: minor reformatting.
From-SVN: r223532
2015-05-22 Robert Dewar <dewar@adacore.com>
* a-reatim.ads: Add Compile_Time_Error to ensure Duration
is 64-bits.
* sem_ch13.adb: Improve error message.
* exp_ch4.adb: Minor reformatting.
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Constants without variable
input do not require indicator Part_Of.
(Check_Missing_Part_Of): Constants without variable input do not
requrie indicator Part_Of.
(Collect_Visible_States): Constants without variable input are
not part of the hidden state of a package.
* sem_util.ads, sem_util.adb (Has_Variable_Input): New routine.
From-SVN: r223531
2015-05-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/65701
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
Move peeling cost models into one place. Peel for alignment
for single loads only if an aligned load is cheaper than
an unaligned load.
From-SVN: r223528
2015-05-22 Richard Biener <rguenther@suse.de>
* tree-vect-loop.c (get_reduction_op): New function.
(vect_model_reduction_cost): Use it, add reduc_index parameter.
Make ready for BB reductions.
(vect_create_epilog_for_reduction): Use get_reduction_op.
(vectorizable_reduction): Init reduc_index to a valid value.
Adjust vect_model_reduction_cost call.
* tree-vect-slp.c (vect_get_constant_vectors): Use the proper
operand for reduction defaults. Add SAD_EXPR support.
Assert we have a neutral op for SLP reductions.
* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
walking pattern stmt ops only recurse to SSA names.
From-SVN: r223526
2015-05-21 Robert Dewar <dewar@adacore.com>
* exp_util.adb (Activate_Atomic_Synchronization): Do not set
Atomic_Sync_Required for an object renaming declaration.
* sem_ch8.adb (Analyze_Object_Renaming): Copy Is_Atomic and
Is_Independent to renaming object.
2015-05-21 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): Diagnose
various illegalities in iterators over arrays and containers:
a) New function Get_Cursor_Type, to verify that the cursor is
not a limited type at the point of iteration.
b) If the container is a constant, an element_iterator is illegal
if the container type does not have a Constant_Indexing aspect.
c) If the iterate function has an in-out controlling parameter,
the container cannot be a constant object.
d) Reject additional cases of iterators over a
discriminant-dependent component of a mutable object.
From-SVN: r223524
gcc/c-family/ChangeLog:
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
STACK_GROWS_DOWNWARD.
gcc/ChangeLog:
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
sched-deps.c: Use if instead of preprocessor checks with
STACK_GROWS_DOWNWARD.
From-SVN: r223514
gcc/c-family/ChangeLog:
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* c-cppbuiltin.c (c_cpp_builtins): Check the value of
STACK_GROWS_DOWNWARD rather than if it is defined.
gcc/ChangeLog:
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
is defined.
* config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
* defaults.h: Provide default for STACK_GROWS_DOWNWARD.
* doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
* doc/tm.texi: Regenerate.
From-SVN: r223513
2015-05-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/66176
* frontend-passes.c (check_conjg_variable): New function.
(inline_matmul_assign): Use it to keep track of conjugated
variables.
2015-05-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/66176
* gfortran.dg/inline_matmul_11.f90: New test
From-SVN: r223499
PR target/66224
* config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
Don't use isync. Use lwsync if available.
* configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
powerpc cpu definition.
From-SVN: r223496
* config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
than MULT for shadd sequences.
* gcc.target/hppa/shadd-4.c: New test.
From-SVN: r223495