aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-06-09builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, [...]): New.Jan Hubicka13-17/+56
* builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New. * builtins.def (abort, trap, unreachable): Declare cold. * calls.c (flags_from_decl_or_type): Lookup ECF_COLD. * tree-core.h (ECF_COLD): New. * tree.c (set_call_expr_flags): Handle ECF_COLD. (build_common_builtin_nodes): Mark unreachable and abort as cold. * class.c (build_vtbl_initializer): Mark dvirt_fn as cold. * decl.c (cxx_init_decl_processing, push_throw_library_fn): Likewise. (excpet.c): Mark terminate as cold. * gcc.dg/predict-14.c: Avoid cold function detection. * gcc.target/i386/umod-3.c: Likewise. From-SVN: r249070
2017-06-09* predict.c (unlikely_executed_stmt_p): Cleanup.Jan Hubicka1-1/+1
From-SVN: r249069
2017-06-09* predict.c (unlikely_executed_stmt_p): Cleanup.Jan Hubicka2-2/+7
From-SVN: r249068
2017-06-09aarch64.md (lrint<GPF:mode><GPI:mode>2): New.Tamar Christina8-0/+111
2017-06-09 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New. gcc/testsuite/ 2017-06-09 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/lrint-matherr.h: New. * gcc.target/aarch64/inline-lrint_1.c: New. * gcc.target/aarch64/inline-lrint_2.c: New. * gcc.target/aarch64/no-inline-lrint_1.c: New. * gcc.target/aarch64/no-inline-lrint_2.c: New. From-SVN: r249064
2017-06-09tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded model if the ↵Richard Biener2-2/+10
ref is always written to. 2017-06-09 Richard Biener <rguenther@suse.de> * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded model if the ref is always written to. From-SVN: r249063
2017-06-09arm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv.Tamar Christina4-1/+53
2017-06-09 Tamar Christina <tamar.christina@arm.com> * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv. gcc/testsuite/ 2017-06-09 Tamar Christina <tamar.christina@arm.com> * gcc.target/arm/sdiv_costs_1.c: New. From-SVN: r249062
2017-06-09Add "sorry, target cannot support label values" for nvptxTom de Vries4-0/+28
2017-06-09 Tom de Vries <tom@codesourcery.com> PR target/80855 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with "target cannot support label values" when encountering LABEL_REF. * gcc.target/nvptx/label-values.c: New test. From-SVN: r249060
2017-06-09[ARM] Allow arm_arch_*_ok to test several macrosThomas Preud'homme2-27/+20
2017-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): Test for null definitions instead of them being undefined. Add entry for ARMv7VE. Reindent entry for ARMv8-M Baseline. Add comment warning about using the effective target for architecture extension. (check_effective_target_arm_arch_v7ve_ok): Remove. (add_options_for_arm_arch_v7ve): Likewise. From-SVN: r249059
2017-06-09Speed-up indirect-call instrumentationMartin Liska2-16/+51
2017-06-09 Martin Liska <mliska@suse.cz> * tree-profile.c (gimple_gen_ic_profiler): Update comment. (gimple_gen_ic_func_profiler): Emit direct comparison of __gcov_indirect_call_callee with NULL. (gimple_gen_time_profiler): Change probability from PROB_VERY_UNLIKELY to PROB_UNLIKELY. 2017-06-09 Martin Liska <mliska@suse.cz> * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Reset __gcov_indirect_call_callee to NULL. From-SVN: r249058
2017-06-09profile.c (edge_gcov_counts): Turn to pointer.Jan Hubicka2-1/+1
* profile.c (edge_gcov_counts): Turn to pointer. (compute_branch_probabilities, compute_branch_probabilities): Update. (branch_prob): Do not clear edge_gcov_count. * profile.h (edge_gcov_counts): Turn to pointer. (edge_gcov_count): Update. From-SVN: r249057
2017-06-09profile.c (edge_gcov_counts): Turn to pointer.Jan Hubicka3-4/+13
* profile.c (edge_gcov_counts): Turn to pointer. (compute_branch_probabilities, compute_branch_probabilities): Update. * profile.h (edge_gcov_counts): Turn to pointer. (edge_gcov_count): Update. From-SVN: r249056
2017-06-09* gimple.h (gimple_check_failed): Mark cold.Jan Hubicka2-1/+6
From-SVN: r249055
2017-06-09re PR tree-optimization/66623 (Unsafe FP math reduction used in strict math ↵Richard Biener4-51/+161
mode) 2017-06-09 Richard Biener <rguenther@suse.de> PR tree-optimization/66623 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup, refactor check_reduction into two parts, properly computing whether we have to check reduction validity for outer loop vectorization. * gcc.dg/vect/pr66623.c: New testcase. From-SVN: r249053
2017-06-09re PR tree-optimization/79483 ([graphite] ICE: verify_ssa failed (error: ↵Richard Biener4-1/+81
definition in block 31 does not dominate use in block 28)) 2017-06-09 Richard Biener <rguenther@suse.de> PR tree-optimization/79483 * graphite-scop-detection.c (order): New global. (get_order): Compute bb to order mapping that satisfies code generation constraints. (cmp_pbbs): New helper. (build_scops): Start domwalk at entry block, sort generated pbbs. * gcc.dg/graphite/pr79483.c: New testcase. From-SVN: r249052
2017-06-09re PR ipa/81007 (ICE with virtual function in broken class)Richard Biener5-2/+32
2017-06-09 Richard Biener <rguenther@suse.de> PR middle-end/81007 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class): Skip FIELD_DECLs with error_mark_node type. * passes.def (all_lowering_passes): Run pass_build_cgraph_edges last again. * g++.dg/pr81007.C: New testcase. From-SVN: r249051
2017-06-09Reverted r249005 until PowerPC and AIX issues sorted.Tamar Christina23-1355/+380
From-SVN: r249050
2017-06-09hard-reg-1-nov.c (mpx_test): Use "esp" instead of "rsp" for -m32.Jakub Jelinek5-6/+19
* gcc.target/i386/mpx/hard-reg-1-nov.c (mpx_test): Use "esp" instead of "rsp" for -m32. * gcc.target/i386/mpx/hard-reg-2-lbv.c: Require sse2_runtime effective target, add -msse2 to dg-options. * gcc.target/i386/mpx/hard-reg-2-nov.c: Likewise. * gcc.target/i386/mpx/hard-reg-2-ubv.c: Likewise. From-SVN: r249049
2017-06-09Come up with selftests for predict.c.Martin Liska4-0/+54
2017-06-09 Martin Liska <mliska@suse.cz> * predict.c (struct branch_predictor): New struct. (test_prediction_value_range): New test. (predict_c_tests): New function. * selftest-run-tests.c (selftest::run_tests): Run the function. * selftest.h: Declare new tests. From-SVN: r249048
2017-06-09compiler: additional lvalue/rvalue context fixesIan Lance Taylor3-3/+18
Fix lvalue/rvalue context mixup Set_and_use_temporary_expression's do_get_backend() method. Enhance Mark_lvalue_varexprs to handle conversions and temporary reference expressions, since occasionally the front end emits code such as "deref(conv(tempref)) = ...". Reviewed-on: https://go-review.googlesource.com/45141 From-SVN: r249047
2017-06-09rs6000: Don't add an immediate to r0 (PR80966)Segher Boessenkool5-3/+40
If there is a large stack frame the rs6000 -fstack-limit code would calculate the new stack pointer value using two insns (an addis and an addi), with r0 as temporary. Such instructions do not exist. This patch changes add<mode>3 to expand using a different strategy in such cases; to FAIL if there is no way to do it (namely, if the source is r0 and there is no way to get a temporary reg); and it changes rs6000_emit_allocate_stack to assert gen_add3_insn did in fact emit instructions. PR target/80966 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that gen_add3_insn did not fail. * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to r0, construct that number in a temporary reg and add that reg to r0. If asked to put the result in r0 as well, fail. gcc/testsuite/ * gcc.target/powerpc/stack-limit.c: New testcase. From-SVN: r249046
2017-06-09Daily bump.GCC Administrator1-1/+1
From-SVN: r249045
2017-06-08rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of ↵Will Schmidt9-0/+184
vec_eqv. [gcc] 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_eqv. [gcc/testsuite] 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c: New. * testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c: New. From-SVN: r249040
2017-06-08re PR c/81006 (ICE with zero-size array and #pragma omp task depend)Jakub Jelinek6-6/+29
PR c/81006 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE to sizetype before size_binop. * semantics.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE to sizetype before size_binop. * c-c++-common/gomp/pr81006.c: New test. From-SVN: r249035
2017-06-08libgo: update to 1.8.3 releaseIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/45150 From-SVN: r249033
2017-06-08re PR c++/81011 (ICE with #pragma omp task and inaccessible copy-constructor)Jakub Jelinek4-1/+34
PR c++/81011 * cp-gimplify.c (cxx_omp_finish_clause): When changing clause to OMP_CLAUSE_SHARED, also clear OMP_CLAUSE_SHARED_FIRSTPRIVATE and OMP_CLAUSE_SHARED_READONLY flags. * g++.dg/gomp/pr81011.C: New test. From-SVN: r249031
2017-06-08re PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't ↵Jakub Jelinek5-2/+103
check aggregate arguments of calls) PR middle-end/81005 * ubsan.c (instrument_null): Avoid pointless code temporary. (pass_ubsan::execute): Instrument aggregate arguments of calls. * c-c++-common/ubsan/align-10.c: New test. * c-c++-common/ubsan/null-13.c: New test. From-SVN: r249030
2017-06-08compiler: lvalue context fixes in Unary_expression::do_get_backendIan Lance Taylor2-4/+4
A couple of the Backend::var_expression invocations in Unary_expression::do_get_backend were selecting "lvalue" context incorrectly (these var exprs were not in an assignment or LHS position); fix is to change back to "rvalue" context. Reviewed-on: https://go-review.googlesource.com/45136 From-SVN: r249029
2017-06-08re PR target/81015 (Bad codegen for __builtin_clz(unsigned short))Uros Bizjak6-92/+94
PR target/81015 Revert: 2016-12-14 Uros Bizjak <ubizjak@gmail.com> PR target/59874 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. (*clzhi2): Ditto. testsuite/ChangeLog: PR target/81015 * gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs. * gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs. * gcc.target/i386/pr81015.c: New test. From-SVN: r249028
2017-06-08Remove NO_TRAMPOLINESTom de Vries28-99/+81
2017-06-08 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target trampolines instead of NO_TRAMPOLINES. * gcc.c-torture/execute/20000822-1.c: Same. * gcc.c-torture/execute/920428-2.c: Same. * gcc.c-torture/execute/920501-7.c: Same. * gcc.c-torture/execute/920612-2.c: Same. * gcc.c-torture/execute/921017-1.c: Same. * gcc.c-torture/execute/921215-1.c: Same. * gcc.c-torture/execute/931002-1.c: Same. * gcc.c-torture/execute/comp-goto-2.c: Same. * gcc.c-torture/execute/nestfunc-1.c: Same. * gcc.c-torture/execute/nestfunc-2.c: Same. * gcc.c-torture/execute/nestfunc-3.c: Same. * gcc.c-torture/execute/nestfunc-5.c: Same. * gcc.c-torture/execute/nestfunc-6.c: Same. * gcc.c-torture/execute/pr24135.c: Same. * gcc.dg/Wtrampolines.c: Same. * gcc.dg/torture/stackalign/comp-goto-1.c: Same. * gcc.dg/torture/stackalign/nested-5.c: Same. * gcc.dg/torture/stackalign/nested-6.c: Same. * gcc.dg/torture/stackalign/non-local-goto-3.c: Same. * gcc.dg/torture/stackalign/non-local-goto-4.c: Same. * gcc.dg/torture/stackalign/non-local-goto-5.c: Same. * gcc.dg/trampoline-1.c: Same. * gcc.dg/tree-prof/pr44777.c: Same. * gcc.target/i386/pr67770.c: Same. * lib/gcc.exp (gcc_target_compile): Remove appending of -DNO_TRAMPOLINES to additional_flags. * lib/objc.exp (objc_target_compile): Same. From-SVN: r249027
2017-06-08Fix no_trampolines test in check_effective_target_trampolinesTom de Vries2-1/+6
2017-06-08 Tom de Vries <tom@codesourcery.com> * lib/target-supports.exp (check_effective_target_trampolines): Test for 'gcc,no_trampolines' instead of 'no_trampolines'. From-SVN: r249026
2017-06-08predict.c (unlikely_executed_edge_p): Move ahead.Jan Hubicka2-9/+16
* predict.c (unlikely_executed_edge_p): Move ahead. (probably_never_executed_edge_p): Use it. From-SVN: r249025
2017-06-08compiler: fix undefined symbol error with unexported methodIan Lance Taylor6-25/+65
When an interface I1 in an imported package has an unexported method, and is then embedded into another interface I2, in a different package, that has other methods, and a type T2 is converted to I2, we failed to ever define the required interface method table. Naturally T2 must implement the unexported method, and must therefore either be defined in the same package as I1, or embed a type from that package. In this case the compiler was assuming that that package would define the interface method table, but of course, since I2 was not defined in that package, that did not happen. The fix is to only assume that the interface method table will be defined elsewhere in the case where T2 and I2 are defined in the same package. The compiler ensures that all such interface method tables are created, in Gogo::build_interface_method_tables. This requires knowing the package in which an interface type is defined, a simple tweak to the importer. Testing this revealed that the special case for stub methods created for the embedded unexported methods of T2 needs to be done for function declarations as it currently is for function definitions, so that the newly created interface method tables use the correct name. Testing that revealed that the code to determine the pkgpath symbol for such stub methods was wrong. It assumed that one could call pkgpath_for_symbol on the pkgpath to get the pkgpath symbol. Would that it twere so simple. Instead, add a function to look up the package, which must be known, and fetch the pkgpath symbol. The test for this is https://golang.org/cl/45085. Reviewed-on: https://go-review.googlesource.com/45086 From-SVN: r249024
2017-06-08re PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of ↵Alexander Ivchenko4-1/+22
call_expr with 4 operands in ix86_expand_builtin, at config/i386/i386.c:36851) 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> PR middle-end/79988 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove gimple_call_builtin_p call. 017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> PR middle-end/79988 * gcc.target/i386/mpx/pr79988.c: New test. From-SVN: r249023
2017-06-08system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.Jan Hubicka6-27/+51
* system.h (fancy_abort): Annotate by ATTRIBUTE_COLD. * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, rtl_check_failed_type2, rtl_check_failed_code1, rtl_check_failed_code2, rtl_check_failed_code_mode, rtl_check_failed_block_symbol, cwi_check_failed_bounds, rtvec_check_failed_bounds, rtl_check_failed_flag, _fatal_insn_not_found, _fatal_insn): Likewise. * tree.h (tree_contains_struct_check_failed, tree_check_failed, tree_not_check_failed, tree_class_check_failed, tree_range_check_failed, tree_not_class_check_failed, tree_int_cst_elt_check_failed, tree_vec_elt_check_failed, phi_node_elt_check_failed, tree_operand_check_failed, omp_clause_check_failed, omp_clause_operand_check_failed, omp_clause_range_check_failed): Likewise. * cp-tree.h (lang_check_failed): Annotate by ATTRIBUTE_COLD. From-SVN: r249022
2017-06-08cgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities.Jan Hubicka9-14/+23
* cgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities. * ipa-inline.c (edge_badness): Likewise. * ipa-profile.c (ipa_propagate_frequency_1): Likewise. * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. * predict.c (maybe_hot_frequency_p): Likewise. (probably_never_executed): Likewise. * sched-ebb.c (schedule_ebbs): Likewise. * sched-rgn.c (find_single_block_region): Likewise. * tracer.c (tail_duplicate): Likewise. From-SVN: r249020
2017-06-08opts.c (finish_options): x_flag_reorder_blocks_and_partition no longer ↵Jan Hubicka2-10/+5
requires x_flag_profile_use. * opts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_flag_profile_use. From-SVN: r249019
2017-06-08cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of ↵Jan Hubicka7-19/+25
flag_reorder_blocks_and_partition. * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorder_blocks_and_partition. * dbxout.c (dbxout_function_end): Likewise. * dwarf2out.c (gen_subprogram_die): Likewise. * haifa-sched.c (sched_create_recovery_edges): Likewise. * hw-doloop.c (reorg_loops): Likewise. * varasm.c (assemble_start_function, assemble_end_function): Likewise. (decide_function_section): Do not check for flag_reorder_blocks_and_partition. From-SVN: r249017
2017-06-08tree-chkp.c (chkp_get_hard_register_var_fake_base_address): New function.Alexander Ivchenko6-0/+145
gcc/ChangeLog: 2017-05-09 Alexander Ivchenko <aivchenk@gmail.com> * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): New function. (chkp_get_hard_register_fake_addr_expr): Ditto. (chkp_build_addr_expr): Add check for hard reg case. (chkp_parse_array_and_component_ref): Ditto. (chkp_find_bounds_1): Ditto. (chkp_process_stmt): Don't generate bounds store for hard reg case. gcc/testsuite/ChangeLog: 2017-05-09 Alexander Ivchenko <aivchenk@gmail.com> * gcc.target/i386/mpx/hard-reg-2-lbv.c: New test. * gcc.target/i386/mpx/hard-reg-2-nov.c: New test. * gcc.target/i386/mpx/hard-reg-2-ubv.c: New test. From-SVN: r249015
2017-06-08predict.c (maybe_hot_bb_p): Do not check profile status.Jan Hubicka6-21/+304
* predict.c (maybe_hot_bb_p): Do not check profile status. (maybe_hot_edge_p): Likewise. (probably_never_executed): Check for zero counts even if profile is not read. (unlikely_executed_edge_p): New function. (unlikely_executed_stmt_p): New function. (unlikely_executed_bb_p): New function. (set_even_probabilities): Use unlikely predicates. (combine_predictions_for_bb): Likewise. (predict_paths_for_bb): Likewise. (predict_paths_leading_to_edge): Likewise. (determine_unlikely_bbs): New function. (estimate_bb_frequencies): Use it. (compute_function_frequency): Use zero counts even if profile is not read. * profile-count.h: Fix typo. * g++.dg/tree-ssa/counts-1.C: New testcase. * gcc.dg/tree-ssa/counts-1.c: New testcase. From-SVN: r249013
2017-06-08Add mov[us]wb store intrinsics.Julia Koval13-9/+164
gcc/ * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8, _mm512_mask_cvtsepi16_storeu_epi8, _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics. * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8, _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8, _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8, _mm_mask_cvtepi16_storeu_epi8): New intrinsics. * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type. (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI, VOID_FTYPE_PV16QI_V16HI_UHI): New function types. * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask, __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask, __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask, __builtin_ia32_pmovuswb256mem_mask, __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask) __builtin_ia32_pmovwb512mem_mask): New builtins. gcc/testsuite/ * gcc.target/i386/avx512bw-vpmovswb-1.c: Add new intrinsics to test. * gcc.target/i386/avx512bw-vpmovswb-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovuswb-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovuswb-2.c: Ditto. * gcc.target/i386/avx512bw-vpmovwb-1.c: Ditto. * gcc.target/i386/avx512bw-vpmovwb-2.c: Ditto. From-SVN: r249012
2017-06-08re PR sanitizer/80932 (UBSAN: false positive as a result of distribution: ↵Marek Polacek2-2/+7
c1*(c2*v1-c3*v2)=>c1*c2*v1-c1*c3*v2) PR sanitize/80932 * c-c++-common/ubsan/pr80932.c: Test with ints, not with long ints. From-SVN: r249010
2017-06-08[PR73350][PR80862] Improve subst for RC-capable insns.Julia Koval5-32/+74
PR target/73350,80862 gcc/ * config/i386/subst.md (round): Fix round pattern. * config/i386/i386.c (ix86_erase_embedded_rounding): Fix erasing rounding for the fixed pattern. gcc/testsuite/ * gcc.target/i386/pr73350.c: New test. From-SVN: r249009
2017-06-08* cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.Jan Hubicka2-1/+5
From-SVN: r249008
2017-06-08vx_crtbegin_auto.c: Update year in copyright notice.Olivier Hainque5-4/+11
2017-06-08 Olivier Hainque <hainque@adacore.com> * vx_crtbegin_auto.c: Update year in copyright notice. * vx_crtbegin.c: Likewise. * vx_crtbegin.inc: Likewise. * vx_crtend.c: Likewise. From-SVN: r249007
2017-06-08gcov: Add block_info::block_info (PR gcov-profile/80911).Martin Liska2-0/+16
2017-06-08 Martin Liska <mliska@suse.cz> PR gcov-profile/80911 * gcov.c (block_info::block_info): New constructor. From-SVN: r249006
2017-06-08re PR middle-end/77925 (Add __builtin_issubnormal)Tamar Christina23-380/+1355
2017-06-08 Tamar Christina <tamar.christina@arm.com> PR middle-end/77925 PR middle-end/77926 PR middle-end/66462 * gcc/builtins.c (fold_builtin_fpclassify): Remove. (fold_builtin_interclass_mathfn): Remove. (expand_builtin): Add builtins to lowering list. (fold_builtin_n): Remove fold_builtin_varargs. (fold_builtin_varargs): Remove. * gcc/builtins.def (BUILT_IN_ISZERO, BUILT_IN_ISSUBNORMAL): New. * gcc/real.h (get_min_float): New. (real_format): Add is_ieee_compatible field. * gcc/real.c (get_min_float): New. (ieee_single_format): Set is_ieee_compatible flag. * gcc/gimple-low.c (lower_stm): Define BUILT_IN_FPCLASSIFY, CASE_FLT_FN (BUILT_IN_ISINF), BUILT_IN_ISINFD32, BUILT_IN_ISINFD64, BUILT_IN_ISINFD128, BUILT_IN_ISNAND32, BUILT_IN_ISNAND64, BUILT_IN_ISNAND128, BUILT_IN_ISNAN, BUILT_IN_ISNORMAL, BUILT_IN_ISZERO, BUILT_IN_ISSUBNORMAL, CASE_FLT_FN (BUILT_IN_FINITE), BUILT_IN_FINITED32 BUILT_IN_FINITED64, BUILT_IN_FINITED128, BUILT_IN_ISFINITE. (lower_builtin_fpclassify, is_nan, is_normal, is_infinity): New. (is_zero, is_subnormal, is_finite, use_ieee_int_mode): Likewise. (lower_builtin_isnan, lower_builtin_isinfinite): Likewise. (lower_builtin_isnormal, lower_builtin_iszero): Likewise. (lower_builtin_issubnormal, lower_builtin_isfinite): Likewise. (emit_tree_cond, get_num_as_int, emit_tree_and_return_var): New. (mips_single_format): Likewise. (motorola_single_format): Likewise. (spu_single_format): Likewise. (ieee_double_format): Likewise. (mips_double_format): Likewise. (motorola_double_format): Likewise. (ieee_extended_motorola_format): Likewise. (ieee_extended_intel_128_format): Likewise. (ieee_extended_intel_96_round_53_format): Likewise. (ibm_extended_format): Likewise. (mips_extended_format): Likewise. (ieee_quad_format): Likewise. (mips_quad_format): Likewise. (vax_f_format): Likewise. (vax_d_format): Likewise. (vax_g_format): Likewise. (decimal_single_format): Likewise. (decimal_quad_format): Likewise. (iee_half_format): Likewise. (mips_single_format): Likewise. (arm_half_format): Likewise. (real_internal_format): Likewise. * gcc/doc/extend.texi: Add documentation for built-ins. * gcc/c/c-typeck.c (convert_arguments): Add BUILT_IN_ISZERO and BUILT_IN_ISSUBNORMAL. gcc/testsuite/ 2017-06-08 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/builtin-fpclassify.c: New codegen test. * gcc.dg/fold-notunord.c: Removed. * gcc.dg/torture/floatn-tg-4.h: Add tests for iszero and issubnormal. * gcc.dg/torture/float128-tg-4.c: Likewise. * gcc.dg/torture/float128x-tg-4: Likewise. * gcc.dg/torture/float16-tg-4.c: Likewise. * gcc.dg/torture/float32-tg-4.c: Likewise. * gcc.dg/torture/float32x-tg-4.c: Likewise. * gcc.dg/torture/float64-tg-4.c: Likewise. * gcc.dg/torture/float64x-tg-4.c: Likewise. * gcc.dg/pr28796-1.c: Add -O2. * gcc.dg/builtins-43.c: Check lower instead of gimple. * gcc.dg/tg-tests.h: Add iszero and issubnormal. * gcc.dg/pr77925.c: Add to test safe cases. From-SVN: r249005
2017-06-08re PR tree-optimization/80928 (SLP vectorization does not handle induction ↵Richard Biener2-2/+7
in outer loop vectorization) 2017-06-08 Richard Biener <rguenther@suse.de> PR tree-optimization/80928 * gcc.dg/vect/slp-perm-8.c: Do not expect check loop to be vectorized. From-SVN: r249004
2017-06-08Daily bump.GCC Administrator1-1/+1
From-SVN: r249003
2017-06-07rs6000-c: The return type of the following built-in functions was ↵Carl Love5-25/+51
implemented as int not... gcc/ChangeLog: 2017-06-07 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c: The return type of the following built-in functions was implemented as int not long long. Fix sign of return value for the unsigned version of vec_mulo and vec_mule. vector unsigned long long vec_bperm (vector unsigned long long, vector unsigned char) vector signed long long vec_mule (vector signed int, vector signed int) vector unsigned long long vec_mule (vector unsigned int, vector unsigned int) vector signed long long vec_mulo (vector signed int, vector signed int) vector unsigned long long vec_mulo (vector unsigned int, vector unsigned int) * doc/extend.texi: Fix the documentation for the built-in functions. gcc/testsuite/ChangeLog: 2017-06-07 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-3.c: Fix vec_mule, vec_mulo test cases. --- From-SVN: r248998
2017-06-07re PR target/80982 (gcc.target/powerpc/builtins-3-runnable.c fails starting ↵Carl Love2-3/+9
with its introduction in r248846) gcc/ChangeLog: 2017-06-07 Carl Love <cel@us.ibm.com> PR target/80982 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of for BE. From-SVN: r248997