1. 06 Jun, 2016 15 commits
    • decl.c (Gigi_Equivalent_Type): Make sure equivalent types are present before returning them. · 42a5e410
      	* gcc-interface/decl.c (Gigi_Equivalent_Type): Make sure equivalent
      	types are present before returning them.  Remove final assertion.
      	(gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Adjust to
      	above change.
      	<E_Protected_Type>: Likewise.
      
      From-SVN: r237130
      Eric Botcazou committed
    • trans.c (elaborate_all_entities_for_package): Also do not elaborate Itypes. · f8a9b81f
      	* gcc-interface/trans.c (elaborate_all_entities_for_package): Also do
      	not elaborate Itypes.
      
      From-SVN: r237129
      Eric Botcazou committed
    • utils.c (gnat_internal_attribute_table): Add support for noinline and noclone attributes. · 1f0b1322
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
      	for noinline and noclone attributes.
      	(handle_noinline_attribute): New handler.
      	(handle_noclone_attribute): Likewise.
      
      From-SVN: r237127
      Eric Botcazou committed
    • * gcc-interface/trans.c (process_type): Beef up comment. · 5a4916be
      From-SVN: r237126
      Eric Botcazou committed
    • utils2.c (build_call_alloc_dealloc): Do not substitute placeholder expressions here but... · 62801a77
      	* gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute
      	placeholder expressions here but...
      	* gcc-interface/trans.c (gnat_to_gnu) <N_Free_Statement>: ...here.
      	Make an exception to the protection of a CALL_EXPR result with an
      	unconstrained type only in the same cases as Call_to_gnu.
      
      From-SVN: r237125
      Eric Botcazou committed
    • trans.c (gnat_to_gnu): Rework special code dealing with boolean rvalues and set… · f1ff07ec
      trans.c (gnat_to_gnu): Rework special code dealing with boolean rvalues and set the location directly.
      
      	* gcc-interface/trans.c (gnat_to_gnu): Rework special code dealing
      	with boolean rvalues and set the location directly.  Do not set the
      	location in the other cases for a simple name.
      	(gnat_to_gnu_external): Clear the location on the expression.
      
      From-SVN: r237123
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Remove useless 'else' statements and tidy up. · d5ebeb8c
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Remove
      	useless 'else' statements and tidy up.
      	<E_Array_Subtype>: Fully deal with the declaration here.
      	<E_Incomplete_Type>: Use properly-typed constant.
      	Assert that we don't apply the special type treatment to dummy types.
      	Separate this treatment from the final back-annotation and simplify
      	the condition for the RM size.
      	(gnat_to_gnu_param): Add GNU_PARAM_TYPE parameter and adjust.
      	(gnat_to_gnu_subprog_type): Ajust call to gnat_to_gnu_param.
      	* gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Declaration>: Add
      	comment.
      	(process_freeze_entity): Remove obsolete code.
      	(process_type): Minor tweaks.
      
      From-SVN: r237122
      Eric Botcazou committed
    • einfo.ads (Returns_Limited_View): Remove. · 4d9446f9
      	* einfo.ads (Returns_Limited_View): Remove.
      	(Set_Returns_Limited_View ): Likewise.
      	* einfo.adb (Returns_Limited_View): Likewise.
      	(Set_Returns_Limited_View ): Likewise.
      	* freeze.adb (Late_Freeze_Subprogram): Remove.
      	(Freeze_Entity): Do not defer the freezing of functions returning an
      	incomplete type coming from a limited context.
      
      From-SVN: r237121
      Eric Botcazou committed
    • vect-live-1.c: Use additional-options. · 31ce6157
      2016-06-06  Alan Hayward  <alan.hayward@arm.com>
      
      testsuite/
      	* gcc.dg/vect/vect-live-1.c: Use additional-options.
      	* gcc.dg/vect/vect-live-3.c: Likewise.
      
      From-SVN: r237120
      Alan Hayward committed
    • gigi.h (finish_subprog_decl): Add ASM_NAME parameter. · 7414a3c3
      	* gcc-interface/gigi.h (finish_subprog_decl): Add ASM_NAME parameter.
      	* gcc-interface/decl.c (gnu_ext_name_for_subprog): New function.
      	(gnat_to_gnu_entity) <E_Subprogram_Type>: Do not check compatibility
      	of profiles for builtins here...  Call gnu_ext_name_for_subprog.
      	Also update profiles if pointers to limited_with'ed types are
      	updated.
      	(gnat_to_gnu_param): Restore the correct source location information
      	for vector ABI warnings.
      	(associate_subprog_with_dummy_type): Add comment about AI05-019.
      	Set TYPE_DUMMY_IN_PROFILE_P flag unconditionally.
      	(update_profile): Deal with builtin declarations.
      	Call gnu_ext_name_for_subprog.  Adjust call to finish_subprog_decl.
      	(update_profiles_with): Add comment.
      	(gnat_to_gnu_subprog_type): Reuse the return type if it is complete.
      	Likewise for parameter declarations in most cases.  Do not change
      	the return type for the CICO mechanism if the profile is incomplete.
      	...but here instead.  Always reset the slot for the parameters.
      	* gcc-interface/utils.c (create_subprog_decl): Call
      	gnu_ext_name_for_subprog.  Do not set the assembler name here but...
      	(finish_subprog_decl): ...but here instead.  Add ASM_NAME parameter.
      
      From-SVN: r237119
      Eric Botcazou committed
    • exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the declaration of the… · 128a98ea
      exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the declaration of the corresponding record type before that of the...
      
      	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the
      	declaration of the corresponding record type before that of the
      	unprotected version of the subprograms that operate on it.
      	(Expand_Access_Protected_Subprogram_Type): Declare the Equivalent_Type
      	just before the original type.
      	* sem_ch3.adb (Handle_Late_Controlled_Primitive): Point the current
      	declaration to the newly created declaration for the primitive.
      	(Analyze_Subtype_Declaration): Remove obsolete code forcing the
      	freezing of the subtype before its declaration.
      	(Replace_Anonymous_Access_To_Protected_Subprogram): Insert the new
      	declaration in the nearest enclosing scope for formal parameters too.
      	(Build_Derived_Access_Type): Restore the status of the created Itype
      	after it is erased by Copy_Node.
      	* sem_ch6.adb (Exchange_Limited_Views): Remove guard on entry.
      	(Analyze_Subprogram_Body_Helper): Call Exchange_Limited_Views only if
      	the specification is present.
      	Move around the code changing the designated view of the return type
      	and save the original view.  Restore it on exit.
      	* sem_ch13.adb (Build_Predicate_Function_Declaration): Always insert
      	the declaration right after that of the type.
      
      From-SVN: r237118
      Eric Botcazou committed
    • re PR tree-optimization/71398 (ICE at -O3 in 32-bit and 64-bit mode on… · 9fcebb5a
      re PR tree-optimization/71398 (ICE at -O3 in 32-bit and 64-bit mode on x86_64-linux-gnu (Segmentation fault, find_edge))
      
      2016-06-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/71398
      	* tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
      	remove edges.
      
      	* gcc.dg/torture/pr71398.c: New testcase.
      
      From-SVN: r237117
      Richard Biener committed
    • ft32.c (ft32_setup_incoming_varargs, [...]): Handle pretend_args. · d48ab010
      [gcc]
         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
         ft32_expand_prolog, ft32_expand_epilogue):
         Handle pretend_args.
         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
         * config/ft32/ft32.md: Add pretend_returner.
      
      From-SVN: r237116
      James Bowman committed
    • Daily bump. · 24673d55
      From-SVN: r237115
      GCC Administrator committed
  2. 05 Jun, 2016 11 commits
  3. 04 Jun, 2016 7 commits
  4. 03 Jun, 2016 7 commits
    • re PR tree-optimization/71316 (test case gcc.dg/tree-ssa/ssa-dom-thread-4.c… · 08bbb1f8
      re PR tree-optimization/71316 (test case gcc.dg/tree-ssa/ssa-dom-thread-4.c fails starting with r236831)
      
      	PR tree-optimization/71316
      	* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output.
      
      From-SVN: r237083
      Jeff Law committed
    • vect-live-1.c: Remove dg-options. · 7c35235c
      	* gcc.dg/vect/vect-live-1.c: Remove dg-options.  Add
      	dg-additional-options with just -fno-tree-scev-cprop in it.
      	* gcc.dg/vect/vect-live-2.c: Likewise.
      	* gcc.dg/vect/vect-live-5.c: Likewise.
      	* gcc.dg/vect/vect-live-slp-1.c: Likewise.
      	* gcc.dg/vect/vect-live-slp-2.c: Likewise.
      	* gcc.dg/vect/vect-live-slp-3.c: Likewise.
      
      From-SVN: r237082
      Jakub Jelinek committed
    • * sr.po: Update. · 892e5f4e
      From-SVN: r237079
      Joseph Myers committed
    • re PR c++/27100 (ICE with multiple friend declarations) · c8572dd6
      Fix PR c++/27100
      
      gcc/cp/ChangeLog:
      
      	PR c++/27100
      	* decl.c (duplicate_decls): Properly copy the
      	DECL_PENDING_INLINE_P, DECL_PENDING_INLINE_INFO and
      	DECL_SAVED_FUNCTION_DATA fields from OLDDECL to NEWDECL.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/27100
      	* g++.dg/other/friend6.C: New test.
      
      From-SVN: r237078
      Patrick Palka committed
    • rs6000-c.c (c/c-tree.h): Add #include. · 1c7733a7
      [gcc]
      
      2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* rs6000-c.c (c/c-tree.h): Add #include.
      	(altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
      	in C++ when found in the base position of vec_ld or vec_st.
      
      [gcc/testsuite]
      
      2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* g++.dg/torture/ppc-ldst-array.C: New.
      
      From-SVN: r237077
      Bill Schmidt committed
    • tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid use of… · 641762ae
      tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid use of profile unless profile status is PROFILE_READ.
      
      
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
      	use of profile unless profile status is PROFILE_READ.
      	* profile.c (compute_branch_probabilities): Set profile status
      	only after reporting predictor hitrates.
      
      From-SVN: r237076
      Jan Hubicka committed
    • Add option for whether ceil etc. can raise "inexact", adjust x86 conditions. · 0d2f700f
      In ISO C99/C11, the ceil, floor, round and trunc functions may or may
      not raise the "inexact" exception for noninteger arguments.  Under TS
      18661-1:2014, the C bindings for IEEE 754-2008, these functions are
      prohibited from raising "inexact", in line with the general rule that
      "inexact" is only when the mathematical infinite precision result of a
      function differs from the result after rounding to the target type.
      
      GCC has no option to select TS 18661 requirements for not raising
      "inexact" when expanding built-in versions of these functions inline.
      Furthermore, even given such requirements, the conditions on the x86
      insn patterns for these functions are unnecessarily restrictive.  I'd
      like to make the out-of-line glibc versions follow the TS 18661
      requirements; in the cases where this slows them down (the cases using
      x87 floating point), that makes it more important for inline versions
      to be used when the user does not care about "inexact".
      
      This patch fixes these issues.  A new option
      -fno-fp-int-builtin-inexact is added to request TS 18661 rules for
      these functions; the default -ffp-int-builtin-inexact reflects that
      such exceptions are allowed by C99 and C11.  (The intention is that if
      C2x incorporates TS 18661-1, then the default would change in C2x
      mode.)
      
      The x86 built-ins for rint (x87, SSE2 and SSE4.1) are made
      unconditionally available (no longer depending on
      -funsafe-math-optimizations or -fno-trapping-math); "inexact" is
      correct for noninteger arguments to rint.  For floor, ceil and trunc,
      the x87 and SSE2 built-ins are OK if -ffp-int-builtin-inexact or
      -fno-trapping-math (they may raise "inexact" for noninteger
      arguments); the SSE4.1 built-ins are made to use ROUND_NO_EXC so that
      they do not raise "inexact" and so are OK unconditionally.
      
      Now, while there was no semantic reason for depending on
      -funsafe-math-optimizations, the insn patterns had such a dependence
      because of use of gen_truncxf<mode>2_i387_noop to truncate back to
      SFmode or DFmode after using frndint in XFmode.  In this case a no-op
      truncation is safe because rounding to integer always produces an
      exactly representable value (the same reason why IEEE semantics say it
      shouldn't produce "inexact") - but of course that insn pattern isn't
      safe because it would also match cases where the truncation is not in
      fact a no-op.  To allow frndint to be used for SFmode and DFmode
      without that unsafe pattern, the relevant frndint patterns are
      extended to SFmode and DFmode or new SFmode and DFmode patterns added,
      so that the frndint operation can be represented in RTL as an
      operation acting directly on SFmode or DFmode without the extension
      and the problematic truncation.
      
      A generic test of the new option is added, as well as x86-specific
      tests, both execution tests including the generic test with different
      x86 options and scan-assembler tests verifying that functions that
      should be inlined with different options are indeed inlined.
      
      I think other architectures are OK for TS 18661-1 semantics already.
      Considering those defining "ceil" patterns: aarch64, arm, rs6000, s390
      use instructions that do not raise "inexact"; nvptx does not support
      floating-point exceptions.  (This does mean the -f option in fact only
      affects one architecture, but I think it should still be a -f option;
      it's logically architecture-independent and is expected to be affected
      by future -std options, so is similar to e.g. -fexcess-precision=,
      which also does nothing on most architectures but is implied by -std
      options.)
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.  OK to
      commit?
      
      	PR target/71276
      	PR target/71277
      gcc:
      	* common.opt (ffp-int-builtin-inexact): New option.
      	* doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
      	* doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
      	(ceil@var{m}2): Document dependence on this option.
      	* ipa-inline-transform.c (inline_call): Handle
      	flag_fp_int_builtin_inexact.
      	* ipa-inline.c (can_inline_edge_p): Likewise.
      	* config/i386/i386.md (rintxf2): Do not test
      	flag_unsafe_math_optimizations.
      	(rint<mode>2_frndint): New define_insn.
      	(rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
      	or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
      	for 387 instead of extending and truncating.
      	(frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
      	!flag_trapping_math instead of flag_unsafe_math_optimizations.
      	Change to frndint<mode>2_<rounding>.
      	(frndintxf2_<rounding>_i387): Likewise.  Change to
      	frndint<mode>2_<rounding>_i387.
      	(<rounding_insn>xf2): Likewise.
      	(<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
      	!flag_trapping_math instead of flag_unsafe_math_optimizations for
      	x87.  Test TARGET_ROUND || !flag_trapping_math ||
      	flag_fp_int_builtin_inexact instead of !flag_trapping_math for
      	SSE.  Use ROUND_NO_EXC in constant operand of
      	gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
      	for 387 instead of extending and truncating.
      
      gcc/testsuite:
      	* gcc.dg/torture/builtin-fp-int-inexact.c,
      	gcc.target/i386/387-builtin-fp-int-inexact.c,
      	gcc.target/i386/387-rint-inline-1.c,
      	gcc.target/i386/387-rint-inline-2.c,
      	gcc.target/i386/sse2-builtin-fp-int-inexact.c,
      	gcc.target/i386/sse2-rint-inline-1.c,
      	gcc.target/i386/sse2-rint-inline-2.c,
      	gcc.target/i386/sse4_1-builtin-fp-int-inexact.c,
      	gcc.target/i386/sse4_1-rint-inline.c: New tests.
      
      From-SVN: r237074
      Joseph Myers committed