Age | Commit message (Collapse) | Author |
|
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 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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237797 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
always return NO_REGS.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237793 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
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
|
|
* 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
|
|
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
|
|
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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237788 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237784 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* 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
|
|
* 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
|
|
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
|
|
(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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237779 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
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 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
|
|
* 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
|
|
PRIu64 instead of lu.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237772 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* 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
|
|
* 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
|
|
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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237764 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* 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
|
|
* 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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237760 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237759 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
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
|
|
* 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
|
|
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
|
|
(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
|
|
(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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237753 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* 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
|
|
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 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
|
|
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
|
|
* 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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237737 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
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
|
|
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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237734 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
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
|
|
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
|
|
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
|
|
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
|
|
* config.host: Add suport for arm*-*-phoenix* targets.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237729 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* 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
|
|
* 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
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@237726 138bc75d-0d04-0410-961f-82ee72b054a4
|