Jan Hubicka [Sat, 10 Oct 2015 19:43:49 +0000 (21:43 +0200)]
tree.c (type_with_interoperable_signedness): New.
* tree.c (type_with_interoperable_signedness): New.
(gimple_canonical_types_compatible_p): Use it.
* tree.h (type_with_interoperable_signedness): Declare
* lto.c (hash_canonical_type): Honor
type_with_interoperable_signedness.
* gfortran.dg/lto/bind_c-2_0.f90: New testcase.
* gfortran.dg/lto/bind_c-2_1.c: New testcase.
* gfortran.dg/lto/bind_c-3_0.f90: New testcase.
* gfortran.dg/lto/bind_c-3_1.c: New testcase.
* gfortran.dg/lto/bind_c-4_0.f90: New testcase.
* gfortran.dg/lto/bind_c-4_1.c: New testcase.
* gfortran.dg/lto/bind_c-5_0.f90: New testcase.
* gfortran.dg/lto/bind_c-5_1.c: New testcase.
From-SVN: r228680
Jan Hubicka [Sat, 10 Oct 2015 19:37:47 +0000 (21:37 +0200)]
fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF and OEP_CONSTANT_ADDRESS_OF...
* fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
when OEP_ADDRESS_OF is se.
From-SVN: r228679
Aditya Kumar [Sat, 10 Oct 2015 14:53:16 +0000 (14:53 +0000)]
add dump of data dependences
2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-dependences.c (scop_get_dependences): Add dump of the
data dependence graph.
* graphite-poly.c (print_isl_union_map): New.
(debug_isl_union_map): New.
* graphite-poly.h (print_isl_union_map): Declare.
(debug_isl_union_map): Declare.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228677
Aditya Kumar [Sat, 10 Oct 2015 14:53:10 +0000 (14:53 +0000)]
clean up debug functions
2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-poly.c (print_iteration_domain): Remove verbosity.
Remove OpenScop formatting.
(print_iteration_domains): Same.
(debug_iteration_domain): Same.
(debug_iteration_domains): Same.
(print_pdr): Same.
(debug_pdr): Same.
(dump_gbb_cases): Same.
(dump_gbb_conditions): Same.
(print_pdrs): Same.
(debug_pdrs): Same.
(print_pbb_body): Same.
(print_pbb): Same.
(print_scop_params): Same.
(print_scop_context): Same.
(print_scop): Same.
(debug_pbb_domain): Same.
(debug_pbb): Same.
(debug_scop_context): Same.
(debug_scop): Same.
(debug_scop_params): Same.
* graphite-poly.h: Same.
* graphite.c (graphite_transform_loops): Same.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228676
Trevor Saunders [Sat, 10 Oct 2015 14:32:56 +0000 (14:32 +0000)]
remove an unneeded as_a<rtx_insn *> ()
gcc/ChangeLog:
2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
call that isn't needed.
From-SVN: r228675
GCC Administrator [Sat, 10 Oct 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228672
Jeff Law [Fri, 9 Oct 2015 21:16:16 +0000 (15:16 -0600)]
Re: [PATCH] Update SSA_NAME manager to use two lists
* tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
rather than moving each name to the freelist individually.
From-SVN: r228668
Steve Ellcey [Fri, 9 Oct 2015 17:12:26 +0000 (17:12 +0000)]
mips.exp (mips_option_groups): Add -mframe-header-opt and -mno-frame-header-opt options.
2015-10-09 Steve Ellcey <sellcey@imgtec.com>
* gcc.target/mips/mips.exp (mips_option_groups): Add -mframe-header-opt
and -mno-frame-header-opt options.
* gcc.target/mips/frame-header-1.c: New file.
* gcc.target/mips/frame-header-2.c: New file.
* gcc.target/mips/frame-header-3.c: New file.
From-SVN: r228667
Steve Ellcey [Fri, 9 Oct 2015 17:10:42 +0000 (17:10 +0000)]
config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
2015-10-05 Steve Ellcey <sellcey@imgtec.com>
* config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
* frame-header-opt.c: New file.
* config/mips/mips-proto.h (mips_register_frame_header_opt):
Add prototype.
* config/mips/mips.c (mips_compute_frame_info): Check
optimize_call_stack flag.
(mips_option_override): Register new frame_header_opt pass.
(mips_frame_info, mips_int_mask, mips_shadow_set,
machine_function): Move these types to...
* config/mips/mips.h: here.
(machine_function): Add does_not_use_frame_header and
optimize_call_stack fields.
* config/mips/t-mips (frame-header-opt.o): Add new make rule.
* doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
Document new flags.
* config/mips/mips.opt (mframe-header-opt): Add new option.
From-SVN: r228666
Uros Bizjak [Fri, 9 Oct 2015 16:53:37 +0000 (18:53 +0200)]
* config/i386/i386.c
(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
ROUND_DOWN where applicable.
From-SVN: r228665
Jeff Law [Fri, 9 Oct 2015 16:34:00 +0000 (10:34 -0600)]
[PATCH] [6/n] Fix minor SSA_NAME leaks
* tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
correct statement.
From-SVN: r228663
Renlin Li [Fri, 9 Oct 2015 16:22:33 +0000 (16:22 +0000)]
[PATCH][ARM]Add earlyclobber modifier for neon_(vtrn, vuzp, vzip)<mode>_insn rtx
pattern.
gcc/
2015-10-09 Renlin Li <renlin.li@arm.com>
* config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
operands[0] and operands[2].
(neon_vtrn<mode>_insn): Likewise.
(neon_vzip<mode>_insn): Likewise.
From-SVN: r228662
Andre Vieira [Fri, 9 Oct 2015 16:08:35 +0000 (16:08 +0000)]
[PATCH V3][GCC] Algorithmic optimization in match and simplify
gcc/ChangeLog
* match.pd: ((X inner_op C0) outer_op C1) New pattern.
((X & C2) << C1): Expand to...
(X {&,^,|} C2 << C1): ...This.
((X & C2) >> C1): Expand to...
(X {&,^,|} C2 >> C1): ...This.
gcc/testsuite/ChangeLog
* gcc.dg/tree-ssa/forwprop-33.c: New.
Co-Authored-By: Hale Wang <hale.wang@arm.com>
From-SVN: r228661
Alexander Fomin [Fri, 9 Oct 2015 15:57:06 +0000 (15:57 +0000)]
AVX512: Fix embedded rounding/SAE specifier position.
gcc/
PR target/67895
* config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
Adjust embedded rounding/SAE specifier position.
(define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
(define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
(define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
(define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
(define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
Likewise.
(define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
gcc/testsuite
PR target/67895
* gcc.target/i386/avx512dq-vrangepd-1.c: Adjust assembly regexp.
* gcc.target/i386/avx512dq-vrangeps-1.c: Likewise.
* gcc.target/i386/avx512dq-vrangesd-1.c: Likewise.
* gcc.target/i386/avx512dq-vrangess-1.c: Likewise.
* gcc.target/i386/avx512f-vcvtsi2sd64-1.c: Likewise.
* gcc.target/i386/avx512f-vcvtsi2ss-1.c: Likewise.
* gcc.target/i386/avx512f-vcvtsi2ss64-1.c: Likewise.
* gcc.target/i386/avx512f-vcvtusi2sd64-1.c: Likewise.
* gcc.target/i386/avx512f-vcvtusi2ss-1.c: Likewise.
* gcc.target/i386/avx512f-vcvtusi2ss64-1.c: Likewise.
From-SVN: r228660
David Malcolm [Fri, 9 Oct 2015 13:55:23 +0000 (13:55 +0000)]
Testsuite: add dg-{begin|end}-multiline-output commands
This patch adds an easy way to write tests for expected multiline
output. For example we can test carets and underlines for
a particular diagnostic with:
/* { dg-begin-multiline-output "" }
typedef struct _GMutex GMutex;
^~~~~~~
{ dg-end-multiline-output "" } */
multiline.exp is used by prune.exp; hence we need to load it before
prune.exp via *load_gcc_lib* for the testsuites of the various
non-"gcc" support libraries (e.g. boehm-gc).
gcc/testsuite/ChangeLog:
* lib/multiline.exp: New file.
* lib/prune.exp: Load multiline.exp.
(prune_gcc_output): Call into multiline.exp to handle any
multiline output directives.
* lib/libgo.exp: Load multiline.exp before prune.exp, using
load_gcc_lib.
boehm-gc/ChangeLog:
* testsuite/lib/boehm-gc.exp: Load multiline.exp before
prune.exp, using load_gcc_lib.
libatomic/ChangeLog:
* testsuite/lib/libatomic.exp: Load multiline.exp before
prune.exp, using load_gcc_lib.
libgomp/ChangeLog:
* testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
using load_gcc_lib.
libitm/ChangeLog:
* testsuite/lib/libitm.exp: Load multiline.exp before prune.exp,
using load_gcc_lib.
libvtv/ChangeLog:
* testsuite/lib/libvtv.exp: Load multiline.exp before prune.exp,
using load_gcc_lib.
From-SVN: r228655
Martin Jambor [Fri, 9 Oct 2015 13:13:38 +0000 (15:13 +0200)]
[PR 67794] Also remap SSA_NAMEs defined in ASMs in IPA-SRA
2015-10-09 Martin Jambor <mjambor@suse.cz>
tree-optimization/67794
* tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
between types of state,ents but accept original definitions as a
parameter.
(ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
iterate over definitions.
testsuite/
* gcc.dg/ipa/ipa-sra-10.c: Nw test.
* gcc.dg/torture/pr67794.c: Likewise.
From-SVN: r228654
James Norris [Fri, 9 Oct 2015 12:35:58 +0000 (12:35 +0000)]
rs6000.c (rs6000_offload_options): New.
* config/rs6000/rs6000.c (rs6000_offload_options): New.
(TARGET_OFFLOAD_OPTIONS): New.
From-SVN: r228653
Alexandre Oliva [Fri, 9 Oct 2015 12:18:58 +0000 (12:18 +0000)]
[PR67891] don't test is_gimple_reg after parm expansion
for gcc/ChangeLog
PR middle-end/67891
* cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
From-SVN: r228652
Alexandre Oliva [Fri, 9 Oct 2015 12:18:40 +0000 (12:18 +0000)]
[PR67766] reorder handling of parallels, concats and promoted values in return
for gcc/ChangeLog
PR middle-end/67766
* function.c (expand_function_end): Move return value
promotion past the handling of PARALLELs and CONCATs.
From-SVN: r228651
Alexandre Oliva [Fri, 9 Oct 2015 12:18:24 +0000 (12:18 +0000)]
[PR67828] don't unswitch on default defs of non-parms
for gcc/ChangeLog
PR rtl-optimizatoin/67828
* tree-ssa-loop-unswitch.c: Include tree-ssa.h.
(tree_may_unswitch_on): Don't unswitch on expressions
involving undefined values.
for gcc/testsuite/ChangeLog
PR rtl-optimization/67828
* gcc.dg/torture/pr67828.c: New.
From-SVN: r228650
Martin Liska [Fri, 9 Oct 2015 11:49:49 +0000 (13:49 +0200)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r228649
Richard Biener [Fri, 9 Oct 2015 11:47:31 +0000 (11:47 +0000)]
genmatch.c (print_operand): Fix formatting.
2015-10-09 Richard Biener <rguenther@suse.de>
* genmatch.c (print_operand): Fix formatting.
(dt_node::append_simplify): Warn for multiple simplifiers
that match the same pattern.
* match.pd (log (exp @0)): Remove duplicates.
From-SVN: r228648
Christian Bruel [Fri, 9 Oct 2015 11:20:23 +0000 (13:20 +0200)]
fix Changelog entry removed at revision 228479
From-SVN: r228647
Jonathan Wakely [Fri, 9 Oct 2015 11:19:04 +0000 (12:19 +0100)]
Missed ChangeLog for previous libstdc++-v3 commit
Add include/experimental/bits dir
* include/experimental/erase_if.h: Move to ...
* include/experimental/bits/erase_if.h: New.
* include/experimental/fs_dir.h: Move to ...
* include/experimental/bits/fs_dir.h: New.
* include/experimental/fs_fwd.h: Move to ...
* include/experimental/bits/fs_fwd.h: New.
* include/experimental/fs_ops.h: Move to ...
* include/experimental/bits/fs_ops.h: New.
* include/experimental/fs_path.h: Move to ...
* include/experimental/bits/fs_path.h: New.
* include/experimental/string_view.tcc: Move to ...
* include/experimental/bits/string_view.tcc: New.
* include/Makefile.am: Add include/experimental/bits sub-directory.
* include/Makefile.in: Regenerate.
* include/experimental/filesystem: Adjust includes.
* include/experimental/map: Likewise.
* include/experimental/set: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
From-SVN: r228646
Jonathan Wakely [Fri, 9 Oct 2015 11:11:54 +0000 (12:11 +0100)]
Add include/experimental/bits dir
From-SVN: r228645
Ramana Radhakrishnan [Fri, 9 Oct 2015 10:58:06 +0000 (10:58 +0000)]
[PATCH PR target/67366 2/2] [gimple-fold.c] Support movmisalign optabs in gimple-fold.c
This patch by Richard allows for movmisalign optabs to be supported
in gimple-fold.c. This caused a bit of pain in the testsuite with strlenopt-8.c
in conjunction with the ARM support for movmisalign_optabs as the test
was coded up to do different things depending on whether the target
supported misaligned access or not. However now with unaligned access
being allowed for different levels of the architecture in the arm backend,
the concept of the helper function non_strict_align mapping identically
to the definition of STRICT_ALIGNMENT disappears.
Adjusted thusly for ARM. The testsuite/lib changes were tested with an
arm-none-eabi multilib that included architecture variants that did not
support unaligned access and architecture variants that did.
The testing matrix for this patch was:
1. x86_64 bootstrap and regression test - no regressions.
2. armhf bootstrap and regression test - no regressions.
3. arm-none-eabi cross build and regression test for
{-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp}
{-mthumb/-march=armv8-a/-mfpu=crypto-neon-fp-armv8/-mfloat-abi=hard}
{-marm/-mcpu=arm7tdmi/-mfloat-abi=soft}
{-mthumb/-mcpu=arm7tdmi/-mfloat-abi=soft}
with no regressions.
Ok to apply ?
2015-10-09 Richard Biener <rguenth@suse.de>
PR target/67366
* gimple-fold.c (optabs-query.h): Include
(gimple_fold_builtin_memory_op): Allow unaligned stores
when movmisalign_optabs are available.
2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/67366
* lib/target-supports.exp (check_effective_target_non_strict_align):
Adjust for arm*-*-*.
* gcc.target/arm/pr67366.c: New test.
From-SVN: r228644
Ramana Radhakrishnan [Fri, 9 Oct 2015 10:53:31 +0000 (10:53 +0000)]
[Patch PR target/67366 1/2] [ARM] - Add movmisalignhi / si patterns
This adds movmisalignhi and movmisalignsi expanders when unaligned
access is allowed by the architecture. This allows the mid-end
to expand to misaligned loads and stored.
Compared code generated for the Linux kernel and
it changes code generation for a handful of files all for the better
basically by reducing the stack usage.
Tested by :
1. armhf bootstrap and regression test - no regressions.
2.. arm-none-eabi cross build and regression test for
{-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp}
{-mthumb/-march=armv8-a/-mfpu=crypto-neon-fp-armv8/-mfloat-abi=hard}
{-marm/-mcpu=arm7tdmi/-mfloat-abi=soft}
{-mthumb/-mcpu=arm7tdmi/-mfloat-abi=soft}
Will apply to trunk once 2/2 is approved.
regards
Ramana
2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/67366
* config/arm/arm.md (movmisalign<mode>): New.
* config/arm/iterators.md (HSI): New.
From-SVN: r228643
Alexander Fomin [Fri, 9 Oct 2015 10:50:51 +0000 (10:50 +0000)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r228642
Eric Botcazou [Fri, 9 Oct 2015 08:13:33 +0000 (08:13 +0000)]
Make-lang.in: Make sure that GNAT1_OBJS and not just GNAT1_ADA_OBJS are compiled only after...
* gcc-interface/Make-lang.in: Make sure that GNAT1_OBJS and not just
GNAT1_ADA_OBJS are compiled only after generated files are created.
From-SVN: r228636
Richard Biener [Fri, 9 Oct 2015 08:12:18 +0000 (08:12 +0000)]
re PR middle-end/67891 (FAIL: gcc.dg/pr43300.c (internal compiler error) on alpha-linux-gnu)
2015-10-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/67891
* gimple-match.h (gimple_simplified_result_is_gimple_val):
New helper.
(gimple_resimplify1): Declare.
(gimple_resimplify2): Likewise.
(gimple_resimplify3): Likewise.
* gimple-match-head.c (gimple_resimplify1): Export.
(gimple_resimplify2): Likewise.
(gimple_resimplify3): Likewise.
(maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
* tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
to avoid creating stmts without VN info.
* gcc.dg/tree-ssa/pr67891.c: New testcase.
From-SVN: r228635
Jeff Law [Fri, 9 Oct 2015 05:09:56 +0000 (23:09 -0600)]
[PATCH] [5/n] Fix minor SSA_NAME leaks
* value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
and release_ssa_name in two places.
(gimple_stringop_fixed_value): Similarly.
From-SVN: r228632
GCC Administrator [Fri, 9 Oct 2015 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228631
Jan Hubicka [Thu, 8 Oct 2015 23:20:06 +0000 (01:20 +0200)]
ipa-icf.c (sem_item::compare_symbol_references): Fix use of availability.
* ipa-icf.c (sem_item::compare_symbol_references): Fix use
of availability.
From-SVN: r228628
Jeff Law [Thu, 8 Oct 2015 23:19:35 +0000 (17:19 -0600)]
[PATCH] [4/n] Fix minor SSA_NAME leaks
* tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
release_defs.
From-SVN: r228627
Jeff Law [Thu, 8 Oct 2015 23:18:03 +0000 (17:18 -0600)]
[PATCH] [4/n] Fix minor SSA_NAME leaks
* tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
release_defs.
From-SVN: r228626
Jeff Law [Thu, 8 Oct 2015 20:47:46 +0000 (14:47 -0600)]
[PATCH] [3/n] Fix minor SSA_NAME leaks
* tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
unlink_stmt_vdef and release_ssa_name_fn.
From-SVN: r228625
Jeff Law [Thu, 8 Oct 2015 20:27:38 +0000 (14:27 -0600)]
[PATCH] [2/n] Fix minor SSA_NAME leaks
* tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
release_defs.
From-SVN: r228624
Ilya Verbin [Thu, 8 Oct 2015 19:04:43 +0000 (19:04 +0000)]
liboffloadmic: Add missed checks for malloc and strdup return values
liboffloadmic/
* runtime/offload_engine.cpp (Engine::init_process): Use strdup instead
of sizeof+malloc+sprintf, check for return value.
* runtime/offload_env.cpp (MicEnvVar::get_env_var_kind): Check for
strdup return value.
* runtime/offload_host.cpp (__offload_init_library_once): Check for
strdup return value. Fix size calculation of COI_HOST_THREAD_AFFINITY.
* runtime/emulator/coi_device.cpp (COIProcessWaitForShutdown): Check for
malloc return value.
From-SVN: r228622
H.J. Lu [Thu, 8 Oct 2015 18:57:11 +0000 (18:57 +0000)]
Round up the SSE register save area only if needed
There is is no point to round up the SSE register save area to 16 bytes if
the incoming stack boundary is less than 16 bytes.
* config/i386/i386.c (ix86_compute_frame_layout): Round up the
SSE register save area to 16 bytes only if the incoming stack
boundary is no less than 16 bytes.
From-SVN: r228621
Jeff Law [Thu, 8 Oct 2015 17:50:44 +0000 (11:50 -0600)]
[PATCH] [1/n] Fix minor SSA_NAME leaks
* tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
release_ssa_name. Fix typo in comment.
From-SVN: r228619
Nathan Sidwell [Thu, 8 Oct 2015 17:31:36 +0000 (17:31 +0000)]
nvptx.h (struct machine_function): Add comment.
* config/nvptx/nvptx.h (struct machine_function): Add comment.
* config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
may return pointer as well as in memory.
(nvptx_output_return): Likewise.
From-SVN: r228618
Richard Sandiford [Thu, 8 Oct 2015 16:54:37 +0000 (16:54 +0000)]
Move sqrt and cbrt simplifications to match.pd
This patch moves the sqrt and cbrt simplification rules to match.pd.
builtins.c now only does the constant folding.
Bootstrapped & regression-tested on x86_64-linux-gnu.
gcc/
* builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
(fold_builtin_1): Update accordingly. Handle constant arguments here.
* match.pd: Add rules previously handled by fold_builtin_sqrt
and fold_builtin_cbrt.
gcc/testsuite/
* gcc.dg/builtins-47.c: Test the optimized dump instead.
From-SVN: r228616
Richard Sandiford [Thu, 8 Oct 2015 16:49:24 +0000 (16:49 +0000)]
Make tree_expr_nonnegative_warnv_p recurse into SSA names
The upcoming patch to move sqrt and cbrt simplifications to match.pd
caused a regression because the (abs @0)->@0 simplification didn't
trigger for:
(abs (convert (abs X)))
The simplification is based on tree_expr_nonnegative_p, which at
the moment just gives up if it sees an SSA_NAME.
This patch makes tree_expr_nonnegative_p recurse into SSA name
definitions, but limits the depth of recursion to a small number
for the reason mentioned in the comment (adapted from an existing
comment in gimple_val_nonnegative_real_p). The patch reuses code
in tree-vrp.c, moving it to gimple-fold.c. It also replaces calls
to gimple_val_nonnegative_real_p with calls to tree_expr_nonnegative_p.
A knock-on effect is that we can now prove _i_589 < 0 is false in
sequences like:
i_1917 = ASSERT_EXPR <i_1075, i_1075 == 0>;
_i_589 = (const int) i_1917;
_i_1507 = ASSERT_EXPR <_i_589, _i_589 < 0>;
This defeats an assert in tree-vrp.c that ASSERT_EXPR conditions
are never known to be false. Previously the assert only ever used
local knowledge and so would be limited to cases like x != x for
integer x. Now that we use global knowledge it's possible to prove
the assertion condition is false in blocks that are in practice
unreachable. The patch therefore removes the assert.
Bootstrapped & regression-tested on x86_64-linux-gnu. I didn't write
a specific test because this is already covered by the testsuite if
the follow-on patch is also applied.
gcc/
* params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
* doc/invoke.texi (--param max-ssa-name-query-depth): Document.
* fold-const.h (tree_unary_nonnegative_warnv_p)
(tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
(tree_expr_nonnegative_warnv_p): Add depth parameters.
* fold-const.c: Include gimple-fold.h and params.h.
(tree_ssa_name_nonnegative_warnv_p): New function.
(tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
(tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
(tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
Add a depth parameter and increment it for recursive calls to
tree_expr_nonnegative_warnv_p. Use tree_ssa_name_nonnegative_warnv_p
to handle SSA names.
* gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
(gimple_stmt_nonnegative_warnv_p): Declare.
* tree-vrp.c (remove_range_assertions): Remove assert that condition
cannot be proven false.
(gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
(gimple_stmt_nonnegative_warnv_p): Move to...
* gimple-fold.c: ...here. Add depth parameters and pass them
down to the tree routines. Accept statements that aren't
assignments or calls but just return false for them.
(gimple_val_nonnegative_real_p): Delete.
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
Check HONOR_NANs first.
From-SVN: r228614
Martin Jambor [Thu, 8 Oct 2015 16:30:06 +0000 (18:30 +0200)]
Fix Solaris bootstrap
2015-10-08 Martin Jambor <mjambor@suse.cz>
* ipa-cp.c (meet_with_1): Make the argument of abs signed. Remove
unnecessary MIN.
From-SVN: r228607
Jason Merrill [Thu, 8 Oct 2015 16:14:03 +0000 (12:14 -0400)]
cp-tree.h (SIMPLE_TARGET_EXPR_P): New.
* cp-tree.h (SIMPLE_TARGET_EXPR_P): New.
* init.c (get_nsdmi): Use it.
* typeck2.c (massage_init_elt): Use it.
From-SVN: r228606
Jason Merrill [Thu, 8 Oct 2015 16:13:57 +0000 (12:13 -0400)]
format
From-SVN: r228605
Joseph Myers [Thu, 8 Oct 2015 15:55:25 +0000 (16:55 +0100)]
* zh_TW.po: Update.
From-SVN: r228603
Jason Merrill [Thu, 8 Oct 2015 14:42:02 +0000 (10:42 -0400)]
re PR c++/67557 (Calling copy constructor of base class in constructor of derived class produces crashing code)
PR c++/67557
* call.c (is_base_field_ref): New.
(unsafe_copy_elision_p): New.
(build_over_call): Use it.
From-SVN: r228602
Yuri Rumyantsev [Thu, 8 Oct 2015 14:28:53 +0000 (14:28 +0000)]
tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi in the tail of outer-loop.
gcc/
* tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
in the tail of outer-loop.
gcc/testsuite/
* gcc.dg/vect/vect-outer-simd-3.c: New test.
From-SVN: r228601
David Edelsohn [Thu, 8 Oct 2015 14:19:57 +0000 (14:19 +0000)]
rs6000.c (rs6000_xcoff_debug_unwind_info): Always return UI_NONE.
* config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
return UI_NONE.
From-SVN: r228600
Yuri Rumyantsev [Thu, 8 Oct 2015 13:14:09 +0000 (13:14 +0000)]
tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and "cfghooks.h"...
gcc/
* tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
"cfghooks.h", add prototypes for introduced new functions.
(tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
checks on ability of loop unswitching to tree_unswitch_single_loop;
invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
on innermost loop check.
(tree_unswitch_single_loop): Add all required checks on ability of
loop unswitching under zero recursive level guard.
(tree_unswitch_outer_loop): New function.
(find_loop_guard): Likewise.
(empty_bb_without_guard_p): Likewise.
(used_outside_loop_p): Likewise.
(get_vop_from_header): Likewise.
(hoist_guard): Likewise.
(check_exit_phi): Likewise.
gcc/testsuite/
* gcc.dg/loop-unswitch-2.c: New test.
* gcc.dg/loop-unswitch-3.c: Likewise.
* gcc.dg/loop-unswitch-4.c: Likewise.
From-SVN: r228599
Marek Polacek [Thu, 8 Oct 2015 10:20:22 +0000 (10:20 +0000)]
tree-ssa-reassoc.c (dump_ops_vector): Print newline after each ops element.
* tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
ops element.
From-SVN: r228598
Tom de Vries [Thu, 8 Oct 2015 09:03:51 +0000 (09:03 +0000)]
Dump only required dse1 file
2015-10-08 Tom de Vries <tom@codesourcery.com>
* gcc.dg/dse.c: Only dump in dse1 pass.
* gcc.dg/tree-ssa/pr30375.c: Same.
From-SVN: r228597
Andreas Krebbel [Thu, 8 Oct 2015 07:49:41 +0000 (07:49 +0000)]
S/390: Use create_tmp_var_raw in s390_atomic_assign_expand_fenv.
gcc/ChangeLog:
2015-10-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR c/65345
* config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
create_tmp_var_raw instead of create_tmp_var.
From-SVN: r228594
GCC Administrator [Thu, 8 Oct 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228590
Jan Hubicka [Wed, 7 Oct 2015 22:54:35 +0000 (00:54 +0200)]
expr.c (store_expr_with_bounds): Handle aggregate moves from BLKmode.
* expr.c (store_expr_with_bounds): Handle aggregate moves from
BLKmode.
* gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
to define gimple type system; compare aggregates only by size.
From-SVN: r228586
Jeff Law [Wed, 7 Oct 2015 21:56:18 +0000 (15:56 -0600)]
Re: [PATCH] Improve DOM's optimization of control statements
* tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
here instead. Tighten test to avoid setting LOOPS_NEED_FIXUP
unnecessarily.
@@ -1848,12 +1848,6 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si,
From-SVN: r228585
Aditya Kumar [Wed, 7 Oct 2015 19:25:35 +0000 (19:25 +0000)]
gather bbs and conditions in a single walk through dominators
Clean up the function to build scop's basic blocks and the function
that gathers the conditions under which a basic block is executed. We remove
one traversal of the dominator tree.
This refactoring was triggered by the need of a vec<bb> of all the basic blocks
in a region. We will use that vector in a patch that removes the out-of-ssa
translation of scalar dependences: we will iterate through the basic blocks of a
region to record scalar dependences crossing bbs or going out of the region.
The patch passes bootstrap and regtest on x86_64-linux.
2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
* graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
(generate_isl_schedule): Same.
* graphite-optimize-isl.c (scop_get_domains): Same.
(apply_schedule_map_to_scop): Same.
* graphite-poly.c (print_iteration_domains): Same.
(remove_gbbs_in_scop): Same.
(new_scop): Same.
(free_scop): Same.
(print_scop): Same.
* graphite-poly.h (struct scop): Rename bbs to pbbs.
(SCOP_BBS): Remove.
* graphite-scop-detection.c (compare_bb_depths): Remove.
(graphite_sort_dominated_info): Remove.
(try_generate_gimple_bb): Move out of scop_detection.
(all_non_dominated_preds_marked_p): Remove.
(build_scop_bbs_1): Remove.
(build_scop_bbs): Remove.
(nb_pbbs_in_loops): Do not use SCOP_BBS.
(find_scop_parameters): Same.
(sese_dom_walker): Rename gather_bbs.
(before_dom_children): Call try_generate_gimple_bb and collect gbb
and pbb.
(build_scops): Call gather_bbs.
* graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
(add_conditions_to_constraints): Same.
(build_scop_iteration_domain): Same.
(build_scop_drs): Same.
(new_pbb_from_pbb): Same.
* sese.c (new_sese_info): Create bbs.
* sese.h (struct sese_info_t): Add bbs.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228581
David Edelsohn [Wed, 7 Oct 2015 18:35:23 +0000 (18:35 +0000)]
xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit encoding in 64-bit mode.
* config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
encoding in 64-bit mode.
From-SVN: r228579
Ian Lance Taylor [Wed, 7 Oct 2015 17:47:45 +0000 (17:47 +0000)]
compiler: Don't make temporaries for constant operands.
Fixes golang/go#12616.
Reviewed-on: https://go-review.googlesource.com/14645
From-SVN: r228578
Uros Bizjak [Wed, 7 Oct 2015 17:42:09 +0000 (19:42 +0200)]
re PR target/66697 (Feature request: -mstackrealign and force_align_arg_pointer for x86_64)
PR target/66697
* config/i386/i386.c (ix86_option_override_internal): Always use
8-byte minimum stack boundary in 64-bit mode.
(ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
(ix86_emit_save_reg_using_mov): Support unaligned SSE store.
Add a REG_CFA_EXPRESSION note if needed.
(ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
(ix86_handle_force_align_arg_pointer_attribute): New.
(ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
(ix86_attribute_table): Set ix86_force_align_arg_pointer_string
with ix86_handle_force_align_arg_pointer_attribute.
* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
testsuite/ChangeLog:
PR target/66697
* gcc.target/i386/
20060512-1.c: Remove ia32 requirement.
(PUSH, POP): New defines.
(sse2_test): Use PUSH and POP to misalign runtime stack.
* gcc.target/i386/
20060512-2.c: Remove ia32 requirement.
From-SVN: r228577
Ian Lance Taylor [Wed, 7 Oct 2015 17:22:08 +0000 (17:22 +0000)]
re PR go/67874 (fd_unix.go does not build when there is fcntl64 and no fcntl syscall)
PR go/67874
net, runtime: Call C library fcntl function rather than syscall.Syscall.
Not all systems define a fcntl syscall; some only have fcntl64.
Fixes GCC PR go/67874.
Reviewed-on: https://go-review.googlesource.com/15497
From-SVN: r228576
James Norris [Wed, 7 Oct 2015 17:09:46 +0000 (17:09 +0000)]
atomic-dg.exp (atomic_link_flags): Move flag setting to atomic_init.
* testsuite/lib/atomic-dg.exp (atomic_link_flags): Move flag setting
to atomic_init. (atomic_init): Restrict flags usage.
From-SVN: r228575
Aditya Kumar [Wed, 7 Oct 2015 16:19:09 +0000 (16:19 +0000)]
remove unused code
2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-scop-detection.c (parameter_index_in_region): Remove
use of SESE_ADD_PARAMS.
(find_scop_parameters): Same.
* sese.c (new_sese_info): Same.
* sese.h (struct sese_info_t): Remove add_params.
(SESE_ADD_PARAMS): Remove.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228574
Aditya Kumar [Wed, 7 Oct 2015 15:40:17 +0000 (15:40 +0000)]
move graphite bookkeeping from sese to sese_info
2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
an sese_info_p.
(copy_def): Same.
(copy_internal_parameters): Same.
(translate_isl_ast_to_gimple): Use an sese_l.
(build_iv_mapping): Same.
* graphite-poly.c (new_sese): Rename new_sese_info.
(free_sese): Rename free_sese_info.
* graphite-poly.h (struct scop): Use an sese_info_p.
(scop_set_region): Same.
* graphite-scop-detection.c (struct sese_l): Moved...
(get_entry_bb): Moved...
(get_exit_bb): Moved...
(parameter_index_in_region_1): Use an sese_info_p.
(parameter_index_in_region): Same.
(scan_tree_for_params): Same.
(find_params_in_bb): Same.
(sese_dom_walker): Use an sese_l.
* graphite-sese-to-poly.c (remove_invariant_phi): Same.
(reduction_phi_p): Same.
(parameter_index_in_region_1): Use an sese_info_p.
(propagate_expr_outside_region): Use an sese_l.
* graphite.c: Replace uses of SCOP_REGION.
* sese.c (sese_record_loop): Use an sese_info_p.
(build_sese_loop_nests): Same.
(sese_build_liveouts_use): Same.
(sese_build_liveouts_bb): Same.
(sese_build_liveouts_bb): Same.
(sese_bad_liveouts_use): Same.
(sese_reset_debug_liveouts_bb): Same.
(sese_build_liveouts): Same.
(new_sese): Renamed new_sese_info.
(free_sese): Renamed free_sese_info.
(set_rename): Use an sese_info_p.
(graphite_copy_stmts_from_block): Same.
(copy_bb_and_scalar_dependences): Same.
(outermost_loop_in_sese_1): Use an sese_l.
(outermost_loop_in_sese): Same.
(if_region_set_false_region): Use an sese_info_p.
(move_sese_in_condition): Same.
(scalar_evolution_in_region): Use an sese_l.
* sese.h (struct sese_l): ... here.
(SESE_ENTRY): Remove.
(SESE_ENTRY_BB): Remove.
(SESE_EXIT): Remove.
(SESE_EXIT_BB): Remove.
(sese_contains_loop): Use an sese_info_p.
(sese_nb_params): Same.
(bb_in_sese_p): Use an sese_l.
(stmt_in_sese_p): Same.
(defined_in_sese_p): Same.
(loop_in_sese_p): Same.
(sese_loop_depth): Same.
(struct ifsese_s): Use an sese_info_p.
(gbb_loop_at_index): Use an sese_l.
(nb_common_loops): Same.
(scev_analyzable_p): Same.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228572
Marek Polacek [Wed, 7 Oct 2015 14:09:05 +0000 (14:09 +0000)]
re PR sanitizer/67867 (UBSan bootstrap fails with error: ‘otype’ may be used uninitialized in this function [-Werror=maybe-uninitialized])
PR sanitizer/67867
* search.c (accessible_p): Initialize OTYPE to NULL_TREE.
From-SVN: r228569
H.J. Lu [Wed, 7 Oct 2015 13:47:12 +0000 (13:47 +0000)]
Define x86 CALL_USED_REGISTERS_MASK
Define x86 CALL_USED_REGISTERS_MASK used on x86 CALL_USED_REGISTERS.
* config/i386/i386.c (ix86_conditional_register_usage): Use
CALL_USED_REGISTERS_MASK.
* config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
From-SVN: r228568
H.J. Lu [Wed, 7 Oct 2015 13:45:21 +0000 (13:45 +0000)]
Check $READELF_FOR_TARGET for readelf in configure
Similar to as, ld, nm and objdump, gcc configure should check
$READELF_FOR_TARGET for readelf.
PR bootstrap/67385
* configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
* configure: Regenerated.
From-SVN: r228567
Andre Vehreschild [Wed, 7 Oct 2015 10:58:46 +0000 (12:58 +0200)]
re PR fortran/65889 ([6 Regressions] [OOP] ICE with sizeof a polymorphic variable.)
gcc/fortran/ChangeLog:
2015-10-07 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/65889
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
on stack class objects as sizeof parameter.
gcc/testsuite/ChangeLog:
2015-10-07 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/65889
* gfortran.dg/sizeof_5.f90: New test.
From-SVN: r228566
H.J. Lu [Wed, 7 Oct 2015 10:30:12 +0000 (10:30 +0000)]
Merge ix86_maybe_switch_abi with ix86_set_current_function
ix86_maybe_switch_abi is called to late during RTL expansion and we
use the stale information from compilation of the previous function.
aggregate_value_p uses call_used_regs. aggregate_value_p is used by
IPA and return value optimization, which are called before
ix86_maybe_switch_abi is called. This patch merges ix86_maybe_switch_abi
with ix86_set_current_function.
PR target/67850
* config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
(ix86_set_current_function): This.
(TARGET_EXPAND_TO_RTL_HOOK): Removed.
From-SVN: r228565
Louis Krupp [Wed, 7 Oct 2015 09:21:58 +0000 (09:21 +0000)]
Check in forgotten test for fortran/65766
From-SVN: r228564
Richard Biener [Wed, 7 Oct 2015 09:04:48 +0000 (09:04 +0000)]
tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2015-10-07 Richard Biener <rguenther@suse.de>
* tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
(vinfo_for_stmt): Adjust.
(set_vinfo_for_stmt): Likewise.
* tree-vectorizer.c (stmt_vec_info_vec): Likewise.
* tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
* tree-vect-loop.c (new_loop_vec_info): Remove special-casing
of inner loop.
(vect_analyze_loop_1): Remove.
(vect_analyze_loop_form_1): Avoid building a loop_vec_info for
inner loop when vectorizing an outer loop by splitting out from ...
(vect_analyze_loop_form): ... here.
From-SVN: r228563
Ramana Radhakrishnan [Wed, 7 Oct 2015 08:37:35 +0000 (08:37 +0000)]
Fix PR c/65345 for arm
2015-10-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR c/65345
* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
Use create_tmp_var_raw instead of create_tmp_var.
From-SVN: r228562
Richard Sandiford [Wed, 7 Oct 2015 08:09:45 +0000 (08:09 +0000)]
Cache reals for 1/4, 1/6 and 1/9
We have a global 1/2 and a cached 1/3, but recalculate 1/4, 1/6 and 1/9
each time we need them. That seems a bit arbitrary and makes the folding
code more noisy (especially once it's moved to match.pd).
This patch caches the other three constants too. Bootstrapped &
regression-tested on x86_64-linux-gnu.
gcc/
* real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
* real.c (CACHED_FRACTION): New helper macro.
(dconst_third_ptr): Use it.
(dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
* builtins.c (fold_builtin_sqrt): Use dconst_quarter and
dconst_sixth.
(fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
From-SVN: r228561
Marek Polacek [Wed, 7 Oct 2015 06:52:45 +0000 (06:52 +0000)]
cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
* cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
(genericize_cp_loop): Likewise.
* decl.c (cxx_maybe_build_cleanup): Likewise.
* parser.c (cp_parser_binary_expression): Likewise.
(cp_parser_omp_for_loop): Likewise.
(cp_parser_omp_construct): Likewise.
* semantics.c (finish_transaction_stmt): Likewise.
(build_transaction_expr): Likewise.
From-SVN: r228560
Jeff Law [Wed, 7 Oct 2015 02:25:57 +0000 (20:25 -0600)]
[PATCH][PR tree-optimization/67816] Fix jump threading when DOM removes conditionals in jump threading path
PR tree-optimization/67816
* tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
from remove_jump_threads_starting_at. Accept an edge rather than
a basic block.
* tree-ssa-threadupdate.c (removed_edges): New hash table.
(remove_jump_threads_including): Note edges that get removed from
the CFG for later pruning of jump threading paths including them.
(thread_through_all_blocks): Remove paths which include edges that
have been removed.
* tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
on each outgoing edges when optimizing away a control statement.
* gcc.c-torture/compile/pr67816.c: New test.
From-SVN: r228559
Trevor Saunders [Wed, 7 Oct 2015 02:11:17 +0000 (02:11 +0000)]
reorg.c: use vec<rtx_insn *> instead of rtx_insn_list for the delay insn list
gcc/ChangeLog:
2015-10-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* reorg.c (emit_delay_sequence): Store list of delay slot insns
in a vector instead of rtx_insn_list.
(add_to_delay_list): Likewise.
(delete_from_delay_slot): Likewise.
(optimize_skip): Likewise.
(redirect_with_delay_list_safe_p): Likewise.
(check_annul_list_true_false): Likewise.
(steal_delay_list_from_target): Likewise.
(steal_delay_list_from_fallthrough): Likewise.
(redundant_insn): Likewise.
(fill_simple_delay_slots): Likewise.
(fill_slots_from_thread): Likewise.
(fill_eager_delay_slots): Likewise.
(relax_delay_slots): Likewise.
From-SVN: r228558
Jason Merrill [Wed, 7 Oct 2015 01:46:54 +0000 (21:46 -0400)]
re PR c++/67810 (Non-expression recognized as fold expression)
PR c++/67810
* parser.c (cp_parser_fold_expr_p): Remove.
(is_binary_op): New.
(cp_parser_fold_expression): Take LHS as parameter.
(cp_parser_primary_expression): Call it after parsing an expression.
(cp_parser_binary_expression, cp_parser_assignment_operator_opt)
(cp_parser_expression): Ignore an operator followed by '...'.
(is_binary_op): New.
* pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
(tsubst_unary_right_fold, tsubst_binary_right_fold): Handle errors.
From-SVN: r228556
GCC Administrator [Wed, 7 Oct 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r228555
Louis Krupp [Tue, 6 Oct 2015 23:47:18 +0000 (23:47 +0000)]
[multiple changes]
2015-10-06 Louis Krupp <louis.krupp@zoho.com>
PR fortran/65766
* resolve.c (gfc_resolve_substring_charlen): For derived type,
use typespec of string component when resolving substring length.
2015-10-06 Louis Krupp <louis.krupp@zoho.com>
PR fortran/65766
* gfortran.dg/substr_alloc_string_comp_1.f90: New.
From-SVN: r228551
Ian Lance Taylor [Tue, 6 Oct 2015 21:24:17 +0000 (21:24 +0000)]
compiler: Record each import as a distinct alias.
This patch introduces the Package_alias class which is a
finer representation of the different between a package and the
aliases it is imported under. Each alias keeps track of the location
of its import statement and how many times that alias has been used.
This allows the gofrontend to report when a specific import has not
been used even if a symbol from the package has been used by another
import.
Fixes golang/go#12326.
Reviewed-on: https://go-review.googlesource.com/14259
From-SVN: r228550
Sandra Loosemore [Tue, 6 Oct 2015 21:10:15 +0000 (17:10 -0400)]
nios2.c (nios2_symbol_ref_in_small_data_p): For -mgpopt=local, also exclude unintialized common symbols.
2015-10-06 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
For -mgpopt=local, also exclude unintialized common symbols.
* doc/invoke.texi (Nios II Options): Document the change.
From-SVN: r228549
Kugan Vivekanandarajah [Tue, 6 Oct 2015 21:08:05 +0000 (21:08 +0000)]
iterators.md (vwcore): Add missing cases for V4HF/V8HF modes.
gcc/ChangeLog:
2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org>
* config/aarch64/iterators.md (vwcore): Add missing cases for
V4HF/V8HF modes.
gcc/testsuite/ChangeLog:
2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org>
* gcc.target/aarch64/get_lane_f16_1.c: New test.
From-SVN: r228547
Aditya Kumar [Tue, 6 Oct 2015 20:50:35 +0000 (20:50 +0000)]
move dr->alias_set to a helper structure
2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-poly.c (new_scop): Initialize drs.
* graphite-poly.h (struct dr_info): New.
(struct scop): Add drs.
* graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
(pdr_add_memory_accesses): Same.
(build_poly_dr): Same.
(build_alias_set): Same.
(build_scop_drs): Same.
(build_pbb_drs): Remove.
* tree-data-ref.c (create_data_ref): Do not initialize alias_set.
* tree-data-ref.h (data_reference): Remove alias_set.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228545
Aditya Kumar [Tue, 6 Oct 2015 20:50:29 +0000 (20:50 +0000)]
remove unused struct base_alias_pair
2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-poly.c (free_data_refs_aux): Remove.
(free_gimple_poly_bb): Do not call free_data_refs_aux.
* graphite-poly.h (struct base_alias_pair): Remove.
* graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
base_alias_pair and dr->aux.
(build_alias_set): Same.
* tree-data-ref.c (create_data_ref): Initialize alias_set.
* tree-data-ref.h (data_reference): Add alias_set.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228544
Aditya Kumar [Tue, 6 Oct 2015 20:50:22 +0000 (20:50 +0000)]
remove dead code in computation of alias sets
2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
Do not set PDR_BASE_OBJECT_SET.
* graphite-poly.h (poly_dr): Same.
(PDR_BASE_OBJECT_SET): Remove.
(new_poly_dr): Update decl.
* graphite-sese-to-poly.c (build_poly_dr): Update call to
new_poly_dr.
(write_alias_graph_to_ascii_dimacs): Remove.
(write_alias_graph_to_ascii_dot): Remove.
(write_alias_graph_to_ascii_ecc): Remove.
(dr_same_base_object_p): Remove.
(build_alias_set_optimal_p): Rename build_alias_set. Remove dead
code.
(build_base_obj_set_for_drs): Remove.
(dump_alias_graphs): Remove.
(build_scop_drs): Remove dead code.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228543
Marek Polacek [Tue, 6 Oct 2015 17:59:10 +0000 (17:59 +0000)]
c-parser.c (c_parser_statement_after_labels): Use protected_set_expr_location.
* c-parser.c (c_parser_statement_after_labels): Use
protected_set_expr_location.
(c_parser_omp_clause_num_gangs): Likewise.
(c_parser_omp_clause_num_threads): Likewise.
(c_parser_omp_clause_num_workers): Likewise.
(c_parser_omp_clause_vector_length): Likewise.
(c_parser_omp_clause_num_teams): Likewise.
(c_parser_omp_clause_thread_limit): Likewise.
* c-typeck.c (build_c_cast): Likewise.
(c_cast_expr): Likewise.
From-SVN: r228541
Marek Polacek [Tue, 6 Oct 2015 17:56:23 +0000 (17:56 +0000)]
re PR c++/67863 (-Wtautological-compare warns when it shouldn't)
PR c++/67863
* call.c (build_conditional_expr_1): Build the COND_EXPR with
a location.
* c-c++-common/Wtautological-compare-4.c: New test.
From-SVN: r228540
Michael Meissner [Tue, 6 Oct 2015 17:49:17 +0000 (17:49 +0000)]
Remove duplicate target line.
From-SVN: r228539
Michael Meissner [Tue, 6 Oct 2015 17:20:49 +0000 (17:20 +0000)]
re PR target/67808 (LRA ICEs on simple double to long double conversion test case)
[gcc]
2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
Peter Bergner <bergner@vnet.ibm.com>
PR target/67808
* config/rs6000/rs6000.md (extenddftf2): In the expander, only
allow registers, but provide insns for the combiner to create for
loads from memory. Separate VSX code from non-VSX code. For
non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
externaldftf2_internal to externaldftf2_fprs. Reorder constraints
so that registers come before memory operations. Drop support from
converting DFmode to TFmode, if the DFmode value is in a GPR
register.
(extenddftf2_fprs): Likewise.
(extenddftf2_internal): Likewise.
(extenddftf2_vsx): Likewise.
(extendsftf2): In the expander, only allow registers, but provide
insns for the combiner to create for stores and loads.
[gcc/testsuite]
2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
Peter Bergner <bergner@vnet.ibm.com>
PR target/67808
* gcc.target/powerpc/pr67808.c: New test.
Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r228538
Ramana Radhakrishnan [Tue, 6 Oct 2015 17:00:12 +0000 (17:00 +0000)]
Remove ATTRIBUTE_UNUSED from `decl' parameter of default_elf_asm_named_section
The decl parameter in default_elf_asm_named_section is actually used.
Applied as obvious after an arm-none-eabi build.
Ramana
2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
from the decl parameter.
From-SVN: r228537
Nathan Sidwell [Tue, 6 Oct 2015 16:47:00 +0000 (16:47 +0000)]
re PR middle-end/67861 (coreutils' wc.c:write_counts is miscompiled since commit
7e3a76de7c496449b187c2688d958631cf21a944)
PR 67861
* gimple-fold.c (gimple_fold_builtin): Add break after
BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
From-SVN: r228536
H.J. Lu [Tue, 6 Oct 2015 16:42:13 +0000 (16:42 +0000)]
Rename scop->ctx to isl_context
* graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
to scop->isl_context.
From-SVN: r228535
Eric Botcazou [Tue, 6 Oct 2015 16:39:00 +0000 (16:39 +0000)]
arm.c (arm_emit_probe_stack_range): Adjust comment.
* config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
(output_probe_stack_range): Rotate the loop and simplify.
(thumb1_expand_prologue): Tweak sorry message.
* config/arm/arm.md (probe_stack): Use bare string.
From-SVN: r228534
Nick Clifton [Tue, 6 Oct 2015 16:36:49 +0000 (16:36 +0000)]
* config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
From-SVN: r228533
Nick Clifton [Tue, 6 Oct 2015 16:26:22 +0000 (16:26 +0000)]
gcc * config/msp430/msp430.c (ATTR_NOINIT): New constant.
(ATTR_PERSIST): New constant.
(msp430_data_attr): New function - verifies an attribute that only
applies to variables.
(msp430_attributes): Add noinit and persistent attributes.
(noinit_section): New variable.
(presis_section): New variable.
(TARGET_ASM_INIT_SECTIONS): Define.
(msp430_init_sections): New function - initialises the noinit and
persist section variables.
(msp430_select_section): Add support for noinit and persist
attributes.
(msp430_section_type_flags): Likewise.
* doc/extend.texi: Document the reent, critical, wakeup, noinit
and persistent attributes.
tests * gcc.target/msp430: New directory.
* gcc.target/msp430/msp430.exp: New file. Runs MSP430 specific
tests.
* gcc.target/msp430/data-attributes.c: New file. Checks the
noinit and persistent data attributes.
From-SVN: r228531
Aditya Kumar [Tue, 6 Oct 2015 15:56:15 +0000 (15:56 +0000)]
remove dead code used by the old cloog scheduler
2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-dependences.c (scop_get_transformed_schedule): Remove.
(no_violations): Remove.
(subtract_commutative_associative_deps): Remove.
(compute_deps): Do not call subtract_commutative_associative_deps.
(transform_is_safe): Remove.
(graphite_legal_transform): Remove.
* graphite-poly.h (graphite_legal_transform): Remove.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r228530
Aditya Kumar [Tue, 6 Oct 2015 15:56:09 +0000 (15:56 +0000)]
Early exit to avoid redundant computations
Analyze only those bbs which are outside the region for uses which might be
defined inside the region. This is intended to improve the compile time. This
algorithm may be further improved by only looking at the successors of region as
these regions are sese. Added FIXMEs to make this improvement in future.
Passes regtest and bootstrap on x86_64.
gcc/ChangeLog:
2015-10-05 Aditya Kumar <hiraditya@msn.com>
* graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
which are in this region are passed so gcc_assert and remove redundant
computation.
* sese.c (sese_build_liveouts): Pass only those bbs which are not in region.
(sese_bad_liveouts_use): Only BBs which are not in region are passed so
gcc_assert on that and remove unnecessary computation.
(sese_build_liveouts_use): Same.
From-SVN: r228529
Aditya Kumar [Tue, 6 Oct 2015 15:56:03 +0000 (15:56 +0000)]
Move declarations, assign types, renaming.
1. Move declarations near the assignment/usage.
2. Assign type to members which were void*.
3. Rename scop->context to scop::param_context, and scop::ctx to
scop::isl_context
No functional changes intended. Passes regtest and bootstrap.
gcc/ChangeLog:
2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
* graphite-dependences.c (scop_get_reads): Renamed scop->context to scop->param_context.
(scop_get_must_writes): Same.
(scop_get_may_writes): Same.
(scop_get_original_schedule): Same.
(scop_get_transformed_schedule): Same.
(subtract_commutative_associative_deps): Same.
* graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
(generate_isl_context): Same.
(generate_isl_schedule): Same.
(scop_to_isl_ast): Same.
(graphite_regenerate_ast_isl): Same.
* graphite-optimize-isl.c (scop_get_domains): Same.
(optimize_isl): Renamed scop->context to scop->param_context.
* graphite-poly.c (new_poly_bb): Change the type of argument to gimple_poly_bb_p.
(new_scop): Renamed scop->context to scop->param_context.
(free_scop): Same.
(print_scop_context): Same.
* graphite-poly.h (new_poly_dr): Change the type of argument from void* to data_reference_p.
(struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
(new_poly_bb): Change the type of argument from void* to gimple_poly_bb_p.
(pbb_set_black_box): Same.
(struct scop): Rename context to param_context, ctx to isl_context.
* graphite-scop-detection.c (scop_detection::build_scop_bbs_1): Move declarations closer to assignment.
(find_params_in_bb): Same.
(find_scop_parameters): Same.
* graphite-sese-to-poly.c (unsigned ssa_name_version_typesize): Global to be used for statement IDs.
(isl_id_for_pbb): Use ssa_name_version_typesize.
(simple_copy_phi_p): Move declarations closer to assignment.
(build_pbb_scattering_polyhedrons): Same.
(build_scop_scattering): Same.
(isl_id_for_ssa_name): Same.
(extract_affine_name): Same.
(extract_affine_int): Same.
(extract_affine): Same.
(set_scop_parameter_dim): Use renamed member.
(build_loop_iteration_domains): Same.
(add_param_constraints): Same.
(build_scop_iteration_domain): Same.
(pdr_add_data_dimensions): Same.
(build_poly_dr): Same.
(build_scop_drs): Move declarations closer to assignment.
(analyze_drs_in_stmts): Same.
(insert_out_of_ssa_copy): Same.
(insert_out_of_ssa_copy_on_edge): Same.
(propagate_expr_outside_region): Same.
(rewrite_phi_out_of_ssa): Same.
(rewrite_degenerate_phi): Same.
(rewrite_reductions_out_of_ssa): Same.
(rewrite_cross_bb_scalar_dependence): Same.
(handle_scalar_deps_crossing_scop_limits): Same.
(rewrite_cross_bb_scalar_deps): Same.
* graphite.c (graphite_transform_loops): Use renamed member.
From-SVN: r228528
Uros Bizjak [Tue, 6 Oct 2015 15:31:11 +0000 (17:31 +0200)]
re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
create_tmp_var_raw instead of create_tmp_var.
From-SVN: r228527