aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-27The code currently generated for the vpermr is (sometimes/always?) wrong inibm/fixvpermrKelvin Nilsen
that the two register inputs are swapped. The translation of gcc-torture/execute/sxcal-to-vec1.c emits vpermr v0,v0,v1,v13 when it should instead emit vpermr v0,v1,v0,v13. This branch provides a worspace to address this problem. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ibm/fixvpermr@237799 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-27[ARM][testsuite] Add missing guards to fp16 AdvSIMD testsChristophe Lyon
2016-06-27 Christophe Lyon <christophe.lyon@linaro.org> * gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: Add ifdef around fp16 code. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c: Add arm_neon_fp16_ok effective target. * gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237798 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-27Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237797 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-26 * config/i386/i386.c (ix86_spill_class): Disable condition toUros Bizjak
always return NO_REGS. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237793 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-26 PR target/70902Uros Bizjak
PR target/71453 PR target/71555 PR target/71596 PR target/71657 * config/i386/i386.c (TARGET_SPILL_CLASS): #if 0 out the definition. (ix86_spill_class): Disable to always return NO_REGS. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237792 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-26 * gcc.dg/predict-12.c: New testcase.Jan Hubicka
* predict.c: Include gimple-pretty-print.h (predicted_by_loop_heuristics_p): Check also PRED_LOOP_EXIT_WITH_RECURSION (predict_loops): Find self recursive calls and use special purpose predictors for them; dump log about decisions. (pass_profile::execute): Dump info about #of iterations. * predict.def (PRED_LOOP_EXIT_WITH_RECURSION, (PRED_LOOP_GUARD_WITH_RECURSION): New predictors. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237791 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-26 * config/pa/pa.c (pa_output_indirect_call): Rework to combineJohn David Anglin
output_asm_insn calls and shorten long lines. Output .CALL argument descriptor using pa_output_arg_descriptor. Add various inline $$dyncall and other optimizations. (pa_attr_length_indirect_call): Adjust ordering and lengths. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237790 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-262016-06-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>Jerry DeLisle
PR fortran/71649 * module.c (create_intrinsic_function): Check for NULL values and return after giving error. PR fortran/71649 * gfortran.dg/pr71649.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237789 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-26Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237788 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-25Add missing ChangeLog entries for r237765H.J. Lu
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237784 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-25 PR tree-optimization/71643Jakub Jelinek
* tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with EH preds. * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't leak a bitmap if dep_bb is NULL. * g++.dg/opt/pr71643.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237783 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-25 PR tree-optimization/71631Jakub Jelinek
* tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument to rewrite_expr_tree even if negate_result, move new_lhs var declaration and initialization earlier, for powi_result set afterwards new_lhs to lhs. For negate_result, use new_lhs instead of tmp if new_lhs != lhs, and don't shadow gsi var. * gcc.c-torture/execute/pr71631.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237782 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-25 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):Jan Hubicka
Add in_loop parameter. (predict_loops): Add loop guard heuristics. * predict.def (PRED_LOOP_GUARD): New heuristics. * gcc.dg/predict-11.c: New testcase. * gfortran.dg/predict-2.f90: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237781 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-25 * predict.c: Include ipa-utils.hJan Hubicka
(tree_bb_level_prediction): Predict recursive calls. (tree_estimate_probability_bb): Skip inexpensive calls for call predictor. * predict.def (PRED_RECURSIVE_CALL): New. * gcc.dg/predict-10.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237780 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-25Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237779 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 P0145R2: Refining Expression Order for C++ (complex LHS of =).Jason Merrill
gcc/c-common/ * c-common.c (verify_tree) [COMPOUND_EXPR]: Fix handling on LHS of MODIFY_EXPR. gcc/cp/ * typeck.c (cp_build_modify_expr): Leave COMPOUND_EXPR on LHS. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237775 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24[gcc]Bill Schmidt
2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define. (BU_FLOAT128_1): Likewise. (FABSQ): Likewise. (COPYSIGNQ): Likewise. (RS6000_BUILTIN_NANQ): Likewise. (RS6000_BUILTIN_NANSQ): Likewise. (RS6000_BUILTIN_INFQ): Likewise. (RS6000_BUILTIN_HUGE_VALQ): Likewise. * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype. (TARGET_FOLD_BUILTIN): New #define. (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry. (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128. (rs6000_fold_builtin): New target hook implementation, handling folding of 128-bit NaNs and infinities. (rs6000_init_builtins): Initialize const_str_type_node; ensure all entries are filled in to avoid problems during bootstrap self-test; define builtins for 128-bit NaNs and infinities. (rs6000_opt_mask): Add entry for float128. * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define. (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128. (rs6000_builtin_type_index): Add RS6000_BTI_const_str. (const_str_type_node): New #define. * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert to a define_expand that dispatches to either copysign<mode>3_soft or copysign<mode>3_hard. (copysign<mode>3_hard): Rename from copysign<mode>3. (copysign<mode>3_soft): New define_insn. * doc/extend.texi: Document new builtins. [gcc/testsuite] 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/abs128-1.c: New. * gcc.target/powerpc/copysign128-1.c: New. * gcc.target/powerpc/inf128-1.c: New. * gcc.target/powerpc/nan128-1.c: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237774 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 Fix get_target_expr for bit-field expressions.Jason Merrill
* tree.c (get_target_expr_sfinae): Handle bit-fields. (build_target_expr): Call mark_rvalue_use. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237773 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it usingJakub Jelinek
PRIu64 instead of lu. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237772 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 PR debug/71642Eric Botcazou
* tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just copy the type name. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237771 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 PR tree-optimization/71647Jakub Jelinek
* omp-low.c (lower_rec_input_clauses): Convert omp_clause_aligned_alignment (c) to size_type_node for the last argument of __builtin_assume_aligned. * gcc.target/i386/pr71647.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237769 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24Call tls_get_addr via GOT for GNU TLS if possibleH.J. Lu
There are extensions to x86-64 psABI: https://groups.google.com/forum/#!topic/x86-64-abi/de5_KnLHxtI and i386 psABI: https://groups.google.com/forum/#!topic/ia32-abi/awsRSvJOJfs to call tls_get_addr via GOT. X86 assembler and linker in binutils 2.27 implemented call *__tls_get_addr@GOTPCREL(%rip) in 64-bit and call *___tls_get_addr@GOT(%reg) in 32-bit to access global and local thread loal variables in shared library. We check if 32-bit x86 assembler and linker work with call *___tls_get_addr@GOT(%reg) as 32-bit and 64-bit assembler and linker are enabled togther. In 32-bit, since any integer register except EAX, which is used to pass parameter to ___tls_get_addr, and ESP, can be used as GOT base, a new register class, TLS_GOTBASE_REGS, along with a new constraint, Yb, are added. They are used to improve register allocation for 32-bit dynamic TLS patterns. gcc/ * configure.ac (calling ___tls_get_addr via GOT): New assembler/linker check. (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit assembler and linker supports calling ___tls_get_addr via GOT. Otherise, defined to 0. * config.in: Regenerated. * configure: Likewise. * config/i386/constraints.md (Yb): New constraint. * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS. (REG_CLASS_NAMES): Likewise. (REG_CLASS_CONTENTS): Likewise. * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace the b constraint with the Yb constraint. Call ___tls_get_addr via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1. (*tls_local_dynamic_base_32_gnu): Likewise. (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1. (*tls_local_dynamic_base_64_<mode>): Likewise. gcc/testsuite/ * gcc.target/i386/noplt-gd-1.c: New test. * gcc.target/i386/noplt-gd-2.c: Likewise. * gcc.target/i386/noplt-gd-3.c: Likewise. * gcc.target/i386/noplt-ld-1.c: Likewise. * gcc.target/i386/noplt-ld-2.c: Likewise. * gcc.target/i386/noplt-ld-3.c: Likewise. * lib/target-supports.exp (check_effective_target_tls_get_addr_via_got): New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237765 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * gcc.dg/vect/vect-bool-cmp.c: Revert unwanted change.Uros Bizjak
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237764 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24Dump profile-based number of iterationsMartin Liska
* analyze_brprob.py: Parse and display average number of loop iterations. * cfgloop.c (flow_loop_dump): Dump average number of loop iterations. * cfgloop.h: Change 'struct loop' to 'const struct loop' for a few functions. * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new argument to true if the expected number of iterations is loop-based. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237762 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-242016-06-24 Uros Bizjak <ubizjak@gmail.com>Uros Bizjak
* gcc.dg/vect/vect-nb-iter-ub-1.c: Remove default vector testsuite compile flags. * gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto. 2016-06-24 Uros Bizjak <ubizjak@gmail.com> * g++dg/vect/pr36684.cc: Add dg-do compile. * gcc.dg/vect/O3-pr70130.c: Remove dg-do run. * gcc.dg/vect/pr70021.c: Ditto. * gcc.dg/vect/pr70138-1.c: Ditto. * gcc.dg/vect/pr70138-2.c: Ditto. * gcc.dg/vect/pr70354-1.c: Ditto. * gcc.dg/vect/pr70354-2.c: Ditto. * gcc.dg/vect/pr71259.c: Ditto. * gcc.dg/vect/pr71416-1.c: Ditto. * gcc.dg/vect/slp-43.c: Ditto. * gcc.dg/vect/slp-45.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-1.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto. * gfortran.dg/vect/pr69980.f90: Ditto. 2016-06-24 Uros Bizjak <ubizjak@gmail.com> * gcc.dg/vect/O3-pr70130.c: Include tree-vect.h and call check_vect. * gcc.dg/vect/bb-slp-30.c: Ditto. * gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Ditto. * gcc.dg/vect/fast-math-bb-slp-call-3.c: Ditto. * gcc.dg/vect/pr45902.c: Ditto. * gcc.dg/vect/pr48172.c: Ditto. * gcc.dg/vect/pr48377.c: Ditto. * gcc.dg/vect/pr49038.c: Ditto. * gcc.dg/vect/pr49771.c: Ditto. * gcc.dg/vect/pr52091.c: Ditto. * gcc.dg/vect/pr53185-2.c: Ditto. * gcc.dg/vect/pr56826.c: Ditto. * gcc.dg/vect/pr60276.c: Ditto. * gcc.dg/vect/pr62021.c: Ditto. * gcc.dg/vect/pr63530.c: Ditto. * gcc.dg/vect/pr65518.c: Ditto. * gcc.dg/vect/pr65947-1.c: Ditto. * gcc.dg/vect/pr65947-10.c: Ditto. * gcc.dg/vect/pr65947-11.c: Ditto. * gcc.dg/vect/pr65947-12.c: Ditto. * gcc.dg/vect/pr65947-13.c: Ditto. * gcc.dg/vect/pr65947-2.c: Ditto. * gcc.dg/vect/pr65947-3.c: Ditto. * gcc.dg/vect/pr65947-4.c: Ditto. * gcc.dg/vect/pr65947-5.c: Ditto. * gcc.dg/vect/pr65947-6.c: Ditto. * gcc.dg/vect/pr65947-7.c: Ditto. * gcc.dg/vect/pr65947-8.c: Ditto. * gcc.dg/vect/pr65947-9.c: Ditto. * gcc.dg/vect/pr71416-1.c: Ditto. * gcc.dg/vect/pr71439.c: Ditto. * gcc.dg/vect/slp-widen-mult-half.c: Ditto. * gcc.dg/vect/vect-bswap16.c: Ditto. * gcc.dg/vect/vect-bswap32.c: Ditto. * gcc.dg/vect/vect-bswap64.c: Ditto. * gcc.dg/vect/vect-live-1.c: Ditto. * gcc.dg/vect/vect-live-2.c: Ditto. * gcc.dg/vect/vect-live-3.c: Ditto. * gcc.dg/vect/vect-live-4.c: Ditto. * gcc.dg/vect/vect-live-5.c: Ditto. * gcc.dg/vect/vect-live-slp-1.c: Ditto. * gcc.dg/vect/vect-live-slp-2.c: Ditto. * gcc.dg/vect/vect-live-slp-3.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-1.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto. * gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto. * gcc.dg/vect/vect-neg-store-1.c: Ditto. * gcc.dg/vect/vect-neg-store-2.c: Ditto. * gcc.dg/vect/vect-outer-pr69720.c: Ditto. * gcc.dg/vect/vect-reduc-mul_1.c: Ditto. * gcc.dg/vect/vect-reduc-mul_2.c: Ditto. * gcc.dg/vect/vect-reduc-or_1.c: Ditto. * gcc.dg/vect/vect-reduc-or_2.c: Ditto. * gcc.dg/vect/vect-widen-mult-const-s16.c: Ditto. * gcc.dg/vect/vect-widen-mult-const-u16.c: Ditto. * gcc.dg/vect/vect-widen-mult-half-u8.c: Ditto. * gcc.dg/vect/vect-widen-mult-half.c: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237761 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * gcc.dg/torture/float128-cmp-invalid.c (main): Use __builtin_nanq.Uros Bizjak
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237760 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * gcc.dg/vect/tree-vect.h (check_vect): Handle __SSE4_2__.Uros Bizjak
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237759 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt toUros Bizjak
assemble for 32bit target. (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble and $ld_ix86_gld_32_opt to link for 32bit target. (HAVE_AS_IX86_TLSLDMPLT): Ditto. * configure: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237758 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24[ARM][1/4] Replace uses of int_log2 by exact_log2Kyrylo Tkachov
* config/arm/arm.c (int_log2): Delete definition and prototype. (shift_op): Use exact_log2 instead of int_log2. (vfp3_const_double_for_fract_bits): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237757 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24Enable non-PIC noplt tests on 32-bit x86 targetH.J. Lu
Since non-PIC noplt works on 32-bit x86 target now with assembler/linker support, enable non-PIC noplt tests on 32-bit x86 target. main in noplt-2.c and noplt-4.c are renamed to bar to avoid stack re-alignment in main for 32-bit target, which disables tailcall optimization. * gcc.target/i386/noplt-1.c: Don't disable for ia32. Scan for ia32 if R_386_GOT32X relocation is supported. * gcc.target/i386/noplt-3.c: Likewise. * gcc.target/i386/noplt-2.c: Likewise. (main): Renamed to ... (bar): This. * gcc.target/i386/noplt-4.c: Likewise. (main): Renamed to ... (bar): This. * gcc.target/i386/pr67400-3.c: Don't disable for ia32. * gcc.target/i386/pr67400-5.c: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237756 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p.Jakub Jelinek
(build_over_call): For magic == 3, do no conversion only on 3rd argument. * c-c++-common/torture/builtin-arith-overflow-p-19.c: Run for C++ too. * g++.dg/ext/builtin-arith-overflow-2.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237755 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24 * internal-fn.c (expand_arith_set_overflow): New function.Jakub Jelinek
(expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use it. (expand_arith_overflow_result_store): Likewise. Handle precision smaller than mode precision. * tree-vrp.c (extract_range_basic): For imag part, handle properly signed 1-bit precision result. * doc/extend.texi (__builtin_add_overflow): Document that last argument can't be pointer to enumerated or boolean type. (__builtin_add_overflow_p): Document that last argument can't have enumerated or boolean type. * c-common.c (check_builtin_function_arguments): Require last argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type. Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW if the last argument is pointer to enumerated or boolean type. * c-c++-common/builtin-arith-overflow-1.c (generic_wrong_type, f3, f4): Adjust expected diagnostics. * c-c++-common/torture/builtin-arith-overflow.h (TP): New macro. (T): If OVFP is defined, redefine to TP. * c-c++-common/torture/builtin-arith-overflow-12.c: Adjust comment. * c-c++-common/torture/builtin-arith-overflow-p-1.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-2.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-3.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-4.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-5.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-6.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-7.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-8.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-9.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-10.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-11.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-12.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-13.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-14.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-15.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-16.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-17.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-18.c: New test. * c-c++-common/torture/builtin-arith-overflow-p-19.c: New test. * g++.dg/ext/builtin-arith-overflow-1.C: Pass 0 instead of C as last argument to __builtin_add_overflow_p. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237754 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-24Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237753 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-232016-06-23 François Dumont <fdumont@gcc.gnu.org>François Dumont
* include/debug/array (array<>::swap): Fix noexcept qualificaton for zero-size array. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237747 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23 * g++.dg/vect/pr33834_2.cc: Use dg-additional-options instead ofUros Bizjak
dg-options and remove default vector testsuite compile flags. * g++.dg/vect/pr33860a.cc: Ditto. * g++.dg/vect/pr45470-a.cc: Ditto. * g++.dg/vect/pr45470-b.cc: Ditto. * g++.dg/vect/pr60896.cc: Ditto. * gcc.dg/vect/no-tree-pre-pr45241.c: Ditto. * gcc.dg/vect/pr18308.c: Ditto. * gcc.dg/vect/pr24049.c: Ditto. * gcc.dg/vect/pr33373.c: Ditto. * gcc.dg/vect/pr36228.c: Ditto. * gcc.dg/vect/pr42395.c: Ditto. * gcc.dg/vect/pr42604.c: Ditto. * gcc.dg/vect/pr46663.c: Ditto. * gcc.dg/vect/pr48765.c: Ditto. * gcc.dg/vect/pr49093.c: Ditto. * gcc.dg/vect/pr49352.c: Ditto. * gcc.dg/vect/pr52298.c: Ditto. * gcc.dg/vect/pr52870.c: Ditto. * gcc.dg/vect/pr53185.c: Ditto. * gcc.dg/vect/pr53773.c: Ditto. * gcc.dg/vect/pr56695.c: Ditto. * gcc.dg/vect/pr62171.c: Ditto. * gcc.dg/vect/pr63530.c: Ditto. * gcc.dg/vect/pr68339.c: Ditto. * gcc.dg/vect/pr71259.c: Ditto. * gcc.dg/vect/vect-82_64.c: Ditto. * gcc.dg/vect/vect-83_64.c: Ditto. * gcc.dg/vect/vect-debug-pr41926.c: Ditto. * gcc.dg/vect/vect-shift-2-big-array.c: Ditto. * gcc.dg/vect/vect-shift-2.c: Ditto. * gfortran.dg/vect/fast-math-mgrid-resid.f: Ditto. * gfortran.dg/vect/pr39318.f90: Ditto. * gfortran.dg/vect/pr45714-a.f: Ditto. * gfortran.dg/vect/pr45714-b.f: Ditto. * gfortran.dg/vect/pr46213.f90: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237745 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23[gcc]Michael Meissner
2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/predicates.md (splat_input_operand): Rework. Don't allow constants, since the insns that use this predicate don't support constants. Constants are handled by other insns that are created via combine. During and after register allocation, only allow indexed or indirect addresses, and not general addresses. Only allow modes supported by the hardware. * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage comment. Move check for using VSPLTIS<x> to a common location, instead of doing it in two different places. [gcc/testsuite] 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/p9-splat-5.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237743 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23 * config/i386/driver-i386.c (host_detect_local_cpu): SetJocelyn Mayer
PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9. <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for signature_CENTAUR_ebx. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237741 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23 PR tree-optimization/71488Uros Bizjak
* gcc.target/i386/i386.exp (check_effective_target_sse4): Move to ... * lib/target-supports.exp: ... here. (check_sse4_hw_available): New procedure. (check_effective_target_sse4_runtime): Ditto. * g++.dg/pr71488.C (dg-additional-options): Use -msse4 instead of -march=westmere for sse4_runtime targets. * gcc.dg/vect/vect-bool-cmp.c: Include "tree-vect.h". (dg-additional-options): Use for sse4_runtime targets. (main): Call check_vect (). (dg-final): Perform scan only for sse4_runtime targets. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237738 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23Apply missing changesH.J. Lu
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237737 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23i386: Access external function via GOT slot for -fno-pltH.J. Lu
i386 psABI has been updated to clarify that R_386_GOT32X and R_386_GOT32 relocations can be used to access GOT without base register when PIC is disabled: https://groups.google.com/forum/#!topic/ia32-abi/awsRSvJOJfs 32-bit x86 assembler and linker from binutils 2.26.1 and 2.27 support call/jmp *_start@GOT cmpl $0, bar@GOT for both normal and IFUNC functions. We check if 32-bit x86 assembler and linker have the fix for: https://sourceware.org/bugzilla/show_bug.cgi?id=20244 before accessing external function via GOT slot for -fno-plt in both PIC and non-PIC modes. PR target/66232 PR target/67400 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ... (as_ix86_gas_32_opt): This. (ld_ix86_tls_ldm_opt): Renamed to ... (ld_ix86_gld_32_opt): This. (R_386_TLS_LDM reloc): Updated. (R_386_GOT32X reloc): New assembler/linker check. (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise, defined to 0. * config.in: Regenerated. * configure: Likewise. * config/i386/i386.c (ix86_force_load_from_GOT_p): Return true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode. (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt if ix86_force_load_from_GOT_p returns true. (ix86_print_operand_address_as): Also support UNSPEC_GOT if ix86_force_load_from_GOT_p returns true. (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load the external function address via the GOT slot. (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and HAVE_AS_IX86_GOT32X before returning false. (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in 32-bit mode if ix86_nopic_noplt_attribute_p returns true. gcc/testsuite/ PR target/66232 PR target/67400 * gcc.target/i386/pr66232-14.c: New file. * gcc.target/i386/pr66232-15.c: Likewise. * gcc.target/i386/pr66232-16.c: Likewise. * gcc.target/i386/pr66232-17.c: Likewise. * gcc.target/i386/pr67400-1.c: Don't disable for ia32. Scan for ia32 if R_386_GOT32X relocation is supported. * gcc.target/i386/pr67400-2.c: Likewise. * gcc.target/i386/pr67400-3.c: Likewise. * gcc.target/i386/pr67400-4.c: Likewise. * gcc.target/i386/pr67400-6.c: Likewise. * gcc.target/i386/pr67400-7.c: Likewise. * lib/target-supports.exp (check_effective_target_got32x_reloc): New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237736 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-232016-06-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>Jerry DeLisle
PR libgfortran/48852 * io/write.c: Cleaned up whitespace. (write_d, write_e, write_f, write_es, write_en): Use new helper function write_float_0. (write_float_0): New helper function. (get_precision, select_buffer, select_string, write_float_string): New helper functions used in remaining float writing functions. Helper function write_float_string now contains code for writing to kind=4 character internal units. (write_real): Modified to establish working buffers at this level and to use new helper functions. (write_real_g0): Likewise modified. (write_complex): Likewise modified. Gets both float strings before output so that final lengths can be determined which allows right justifying the complex number with no intervening spaces. * io/write_float.def (build_float_string): Renamed from previosly output_float, modified to use buffers passed in from higher functions, builds a null terminated string of the floating point value. Character kind=4 code eliminated. (write_infnan): Likewise modified to use incoming buffers and eliminate kind=4 related code. (OUTPUT_FLOAT_FMT_G): Deleted, functionality moved into FORMAT_FLOAT. (FORMAT_FLOAT): Renamed macro from WRITE_FLOAT. Use build_float_string. (get_float_string): Renamed from write_float, uses FORMAT_FLOAT macro. Buffer allocation removed, now at higher level. PR libgfortran/48852 * gfortran.dg/char4_iunit_1.f03: Update test. * gfortran.dg/f2003_io_5.f03: Update test. * gfortran.dg/real_const_3.f90: Update test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237735 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.Eric Botcazou
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237734 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23Add make autoprofiledbootstrapAndi Kleen
Add support for profiledbootstrap with autofdo. Will be useful to get better testing coverage of autofdo. This requires Linux perf and autofdo to be installed, only really for x86_64 linux on Intel so far. Profile the whole build process with perf, then convert the file, and pass it back to the compiler in the feedback stage. The conversion has to be done per language, as only that knows the name of the binary. Currently we only do it for C and C++, as the other languages don't have enough coverage during a normal bootstrap. For lto1 it is also disabled, because it would only be useful during a LTO bootstrap, but right now autofdo and LTO are not working together due to PR66229 For common backend files always the profile output of the C++ compiler is used. In theory multiple inputs could be merged here, but so far that is not implemented. The method is not friendly to partial rebuilds, as only the profile information from the current rebuild is used. So if an error occurs it is best to clean and restart, otherwise the code quality may be worse. This patch is fairly large, but most of it is auto generated from autogen in Makefile.in. for the new stage targets. Passes profiledbootstrap and normal bootstrap on x86_64-linux. autoprofiledbootstrap is currently not working due to PR70427 (but it finishes with that worked around) The autofdo'ed compiler is ~7% faster on insn-recog.i (vs ~11% for profiledfeedback), and ~4% faster for tramp3d-v4 (vs 10% for profiledfeedback) on a Sandy Bridge system. gcc/lto/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * Make-lang.in: Add support for autofdo (disabled for now) gcc/cp/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * Make-lang.in: Add support for autofdo. gcc/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * Makefile.in: Regenerate. * doc/install.texi: Document autoprofiledbootstrap. /: 2016-06-23 Andi Kleen <ak@linux.intel.com> * Makefile.def: Add autoprofiledbootstrap. * Makefile.tpl: Dito. * Makefile.in: Regenerate. gcc/c/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * Make-lang.in: Add support for autofdo. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237733 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23Run profile feedback tests with autofdoAndi Kleen
Extend the existing bprob and tree-prof tests to also run with autofdo. The test runtimes are really a bit too short for autofdo, but it's a reasonable sanity check. This only works natively for now. dejagnu doesn't seem to support a wrapper for unix tests, so I had to open code running these tests. That should be ok due to the native run restrictions. gcc/testsuite/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * g++.dg/bprob/bprob.exp: Support autofdo. * g++.dg/tree-prof/tree-prof.exp: dito. * gcc.dg/tree-prof/tree-prof.exp: dito. * gcc.misc-tests/bprob.exp: dito. * gfortran.dg/prof/prof.exp: dito. * lib/profopt.exp: dito. * lib/target-supports.exp: Check for autofdo. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237732 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23Add gcc-auto-profile scriptAndi Kleen
Using autofdo is currently something difficult. It requires using the model specific branches taken event, which differs on different CPUs. The example shown in the manual requires a special patched version of perf that is non standard, and also will likely not work everywhere. This patch adds a new gcc-auto-profile script that figures out the correct event and runs perf. This is needed to actually make use of autofdo in a generic way in the build system and in the test suite. Since maintaining the script would be somewhat tedious (needs changes every time a new CPU comes out) I auto generated it from the online Intel event database. The script to do that is in contrib and can be rerun. Right now there is no test if perf works in configure. This would vary depending on the build and target system, and since it currently doesn't work in virtualization and needs uptodate kernel it may often fail in common distribution build setups. So far the script is not installed. gcc/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * config/i386/gcc-auto-profile: New file. contrib/: 2016-06-23 Andi Kleen <ak@linux.intel.com> * gen_autofdo_event.py: New file to regenerate gcc-auto-profile. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237731 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23Fix PR middle-end/71619Martin Liska
PR middle-end/71619 * predict.c (predict_loops): Revert the hunk that was removed in r237103. * gcc.dg/pr71619.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237730 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-232016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>Jakub Sejdak
* config.host: Add suport for arm*-*-phoenix* targets. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237729 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-232016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>Jakub Sejdak
* config.gcc: Add support for arm*-*-phoenix* targets. * config/arm/t-phoenix: New. * config/phoenix.h: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237728 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-232016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>Jakub Sejdak
* configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets. * configure: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237727 138bc75d-0d04-0410-961f-82ee72b054a4
2016-06-23Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237726 138bc75d-0d04-0410-961f-82ee72b054a4