aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-01-24PR c++/79118 - anon-members and constexprNathan Sidwell4-26/+102
PR c++/79118 - anon-members and constexpr * constexpr.c (cx_check_missing_mem_inits): Caller passes type not ctor decl. Recursively check anonymous members. (register_constexpr_fundef): Adjust cx_check_missing_mem_inits call. (explain_invalid_constexpr_fn): Likewise. PR c++/79118 * g++.dg/cpp0x/pr79118.C: New. From-SVN: r244881
2017-01-24re PR target/77439 (wrong code for sibcall with longcall, APCS frame and VFP)Eric Botcazou4-0/+50
PR target/77439 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction for long calls with APCS frame and VFP. From-SVN: r244879
2017-01-24Add "__RTL" to cc1David Malcolm48-43/+1954
gcc/c-family/ChangeLog: * c-common.c (c_common_reswords): Add "__RTL". * c-common.h (enum rid): Add RID_RTL. gcc/c/ChangeLog: * c-parser.c: Include "read-rtl-function.h" and "run-rtl-passes.h". (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in grammar to gimple-or-rtl-pass-list. Add rtl-function-definition production. Update for renaming of field "gimple_pass" to "gimple_or_rtl_pass". If __RTL was seen, call c_parser_parse_rtl_body. Convert a timevar_push/pop pair to an auto_timevar, to cope with early exit. (c_parser_declspecs): Update RID_GIMPLE handling for renaming of field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list. Handle RID_RTL. (c_parser_parse_rtl_body): New function. * c-tree.h (enum c_declspec_word): Add cdw_rtl. (struct c_declspecs): Rename field "gimple_pass" to "gimple_or_rtl_pass". Add field "rtl_p". * gimple-parser.c (c_parser_gimple_pass_list): Rename to... (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly. * gimple-parser.h (c_parser_gimple_pass_list): Rename to... (c_parser_gimple_or_rtl_pass_list): ...this. gcc/ChangeLog: * cfg.c (original_copy_tables_initialized_p): New function. * cfg.h (original_copy_tables_initialized_p): New decl. * cfgrtl.c (relink_block_chain): Guard the call to free_original_copy_tables with a call to original_copy_tables_initialized_p. * cgraph.h (symtab_node::native_rtl_p): New decl. * cgraphunit.c (symtab_node::native_rtl_p): New function. (symtab_node::needed_p): Don't assert for early assembly output for __RTL functions. (cgraph_node::finalize_function): Set "force_output" for __RTL functions. (cgraph_node::analyze): Bail out early for __RTL functions. (analyze_functions): Update assertion to support __RTL functions. (cgraph_node::expand): Bail out early for __RTL functions. * final.c (rest_of_clean_state): Don't call delete_tree_ssa for __RTL functions. * function.h (struct function): Update comment for field "pass_startwith". * gimple-expr.c: Include "tree-pass.h". (gimple_has_body_p): Return false for __RTL functions. * Makefile.in (OBJS): Add run-rtl-passes.o. * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New accessor. (gcc::pass_manager::get_clean_slate): New accessor. * passes.c: Include "insn-addr.h". (should_skip_pass_p): Add logging. Update logic for running "expand" to be compatible with both __GIMPLE and __RTL. Guard property-provider override so it is only done for gimple passes. Don't skip dfinit. (skip_pass): New function. (execute_one_pass): Call skip_pass when skipping passes. * read-md.c (md_reader::read_char): Support filtering the input to a subset of line numbers. (md_reader::md_reader): Initialize fields m_first_line and m_last_line. (md_reader::read_file_fragment): New function. * read-md.h (md_reader::read_file_fragment): New decl. (md_reader::m_first_line): New field. (md_reader::m_last_line): New field. * read-rtl-function.c (function_reader::create_function): Only create cfun if it doesn't already exist. Set PROP_rtl on cfun's curr_properties. Set DECL_INITIAL to a dummy block. (read_rtl_function_body_from_file_range): New function. * read-rtl-function.h (read_rtl_function_body_from_file_range): New decl. * run-rtl-passes.c: New file. * run-rtl-passes.h: New file. gcc/testsuite/ChangeLog: * gcc.dg/rtl/aarch64/asr_div1.c: New test case. * gcc.dg/rtl/aarch64/pr71779.c: New test case. * gcc.dg/rtl/rtl.exp: New file. * gcc.dg/rtl/test.c: New file. * gcc.dg/rtl/truncated-rtl-file.c: New test case. * gcc.dg/rtl/unknown-rtx-code.c: New test case. * gcc.dg/rtl/x86_64/dfinit.c: New test case. * gcc.dg/rtl/x86_64/different-structs.c: New test case. * gcc.dg/rtl/x86_64/final.c: New test case. * gcc.dg/rtl/x86_64/into-cfglayout.c: New test case. * gcc.dg/rtl/x86_64/ira.c: New test case. * gcc.dg/rtl/x86_64/pro_and_epilogue.c: New test case. * gcc.dg/rtl/x86_64/test-multiple-fns.c: New test case. * gcc.dg/rtl/x86_64/test-return-const.c.after-expand.c: New test case. * gcc.dg/rtl/x86_64/test-return-const.c.before-fwprop.c: New test case. * gcc.dg/rtl/x86_64/test-rtl.c: New test case. * gcc.dg/rtl/x86_64/test_1.h: New file. * gcc.dg/rtl/x86_64/times-two.c.after-expand.c: New test case. * gcc.dg/rtl/x86_64/times-two.c.before-df.c: New test case. * gcc.dg/rtl/x86_64/times-two.h: New file. * gcc.dg/rtl/x86_64/vregs.c: New test case. From-SVN: r244878
2017-01-24microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase buffer size.Jeff Law2-1/+6
* config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase buffer size. From-SVN: r244877
2017-01-24Fix typo.David Edelsohn1-1/+1
From-SVN: r244874
2017-01-24re PR tree-optimization/79159 (spurious array-bounds warning)Bin Cheng4-2/+71
PR tree-optimization/79159 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function. (record_nonwrapping_iv): Imporve boundary using above function if no value range information. gcc/testsuite PR tree-optimization/79159 * g++.dg/tree-ssa/pr79159.C: New test. From-SVN: r244868
2017-01-24Brig front-endPekka Jääskeläinen65-3/+11408
2017-01-24 Pekka Jääskeläinen <pekka@parmance.com> Martin Jambor <mjambor@suse.cz> * Makefile.def (target_modules): Added libhsail-rt. (languages): Added language brig. * Makefile.in: Regenerated. * configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Added tgarget-libhsail-rt. Make brig unsupported on untested architectures. * configure: Regenerated. gcc/ * brig-builtins.def: New file. * builtins.def (DEF_HSAIL_BUILTIN): New macro. (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. (DEF_HSAIL_SAT_BUILTIN): Likewise. (DEF_HSAIL_INTR_BUILTIN): Likewise. (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. * builtin-types.def (BT_INT8): New. (BT_INT16): Likewise. (BT_UINT8): Likewise. (BT_UINT16): Likewise. (BT_FN_ULONG): Likewise. (BT_FN_UINT_INT): Likewise. (BT_FN_UINT_ULONG): Likewise. (BT_FN_UINT_LONG): Likewise. (BT_FN_UINT_PTR): Likewise. (BT_FN_ULONG_PTR): Likewise. (BT_FN_INT8_FLOAT): Likewise. (BT_FN_INT16_FLOAT): Likewise. (BT_FN_UINT32_FLOAT): Likewise. (BT_FN_UINT16_FLOAT): Likewise. (BT_FN_UINT8_FLOAT): Likewise. (BT_FN_UINT64_FLOAT): Likewise. (BT_FN_UINT16_UINT32): Likewise. (BT_FN_UINT32_UINT16): Likewise. (BT_FN_UINT16_UINT16_UINT16): Likewise. (BT_FN_INT_PTR_INT): Likewise. (BT_FN_UINT_PTR_UINT): Likewise. (BT_FN_LONG_PTR_LONG): Likewise. (BT_FN_ULONG_PTR_ULONG): Likewise. (BT_FN_VOID_UINT64_UINT64): Likewise. (BT_FN_UINT8_UINT8_UINT8): Likewise. (BT_FN_INT8_INT8_INT8): Likewise. (BT_FN_INT16_INT16_INT16): Likewise. (BT_FN_INT_INT_INT): Likewise. (BT_FN_UINT_FLOAT_UINT): Likewise. (BT_FN_FLOAT_UINT_UINT): Likewise. (BT_FN_ULONG_UINT_UINT): Likewise. (BT_FN_ULONG_UINT_PTR): Likewise. (BT_FN_ULONG_ULONG_ULONG): Likewise. (BT_FN_UINT_UINT_UINT): Likewise. (BT_FN_VOID_UINT_PTR): Likewise. (BT_FN_UINT_UINT_PTR: Likewise. (BT_FN_UINT32_UINT64_PTR): Likewise. (BT_FN_INT_INT_UINT_UINT): Likewise. (BT_FN_UINT_UINT_UINT_UINT): Likewise. (BT_FN_UINT_UINT_UINT_PTR): Likewise. (BT_FN_UINT_ULONG_ULONG_UINT): Likewise. (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise. (BT_FN_LONG_LONG_UINT_UINT): Likewise. (BT_FN_ULONG_ULONG_UINT_UINT): Likewise. (BT_FN_VOID_UINT32_UINT64_PTR): Likewise. (BT_FN_VOID_UINT32_UINT32_PTR): Likewise. (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise. (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise. (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise. * doc/frontends.texi: List BRIG FE. * doc/install.texi (Testing): Add BRIG tesring requirements. * doc/invoke.texi (Overall Options): Mention BRIG. * doc/standards.texi (Standards): Doucment BRIG HSA version. gcc/brig/ * Make-lang.in: New file. * brig-builtins.h: Likewise. * brig-c.h: Likewise. * brig-lang.c: Likewise. * brigspec.c: Likewise. * config-lang.in: Likewise. * lang-specs.h: Likewise. * lang.opt: Likewise. * brigfrontend/brig-arg-block-handler.cc: Likewise. * brigfrontend/brig-atomic-inst-handler.cc: Likewise. * brigfrontend/brig-basic-inst-handler.cc: Likewise. * brigfrontend/brig-branch-inst-handler.cc: Likewise. * brigfrontend/brig-cmp-inst-handler.cc: Likewise. * brigfrontend/brig-code-entry-handler.cc: Likewise. * brigfrontend/brig-code-entry-handler.h: Likewise. * brigfrontend/brig-comment-handler.cc: Likewise. * brigfrontend/brig-control-handler.cc: Likewise. * brigfrontend/brig-copy-move-inst-handler.cc: Likewise. * brigfrontend/brig-cvt-inst-handler.cc: Likewise. * brigfrontend/brig-fbarrier-handler.cc: Likewise. * brigfrontend/brig-function-handler.cc: Likewise. * brigfrontend/brig-function.cc: Likewise. * brigfrontend/brig-function.h: Likewise. * brigfrontend/brig-inst-mod-handler.cc: Likewise. * brigfrontend/brig-label-handler.cc: Likewise. * brigfrontend/brig-lane-inst-handler.cc: Likewise. * brigfrontend/brig-machine.c: Likewise. * brigfrontend/brig-machine.h: Likewise. * brigfrontend/brig-mem-inst-handler.cc: Likewise. * brigfrontend/brig-module-handler.cc: Likewise. * brigfrontend/brig-queue-inst-handler.cc: Likewise. * brigfrontend/brig-seg-inst-handler.cc: Likewise. * brigfrontend/brig-signal-inst-handler.cc: Likewise. * brigfrontend/brig-to-generic.cc: Likewise. * brigfrontend/brig-to-generic.h: Likewise. * brigfrontend/brig-util.cc: Likewise. * brigfrontend/brig-util.h: Likewise. * brigfrontend/brig-variable-handler.cc: Likewise. * brigfrontend/phsa.h: Likewise. gcc/testsuite/ * lib/brig-dg.exp: New file. * lib/brig.exp: Likewise. * brig.dg/README: Likewise. * brig.dg/dg.exp: Likewise. * brig.dg/test/gimple/alloca.hsail: Likewise. * brig.dg/test/gimple/atomics.hsail: Likewise. * brig.dg/test/gimple/branches.hsail: Likewise. * brig.dg/test/gimple/fbarrier.hsail: Likewise. * brig.dg/test/gimple/function_calls.hsail: Likewise. * brig.dg/test/gimple/kernarg.hsail: Likewise. * brig.dg/test/gimple/mem.hsail: Likewise. * brig.dg/test/gimple/mulhi.hsail: Likewise. * brig.dg/test/gimple/packed.hsail: Likewise. * brig.dg/test/gimple/smoke_test.hsail: Likewise. * brig.dg/test/gimple/variables.hsail: Likewise. * brig.dg/test/gimple/vector.hsail: Likewise. include/ * hsa.h: Moved here from libgomp/plugin/hsa.h. libgomp/ * plugin/hsa.h: Moved to top level include. * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly. libhsail-rt/ * Makefile.am: New file. * target-config.h.in: Likewise. * configure.ac: Likewise. * configure: Likewise. * config.h.in: Likewise. * aclocal.m4: Likewise. * README: Likewise. * Makefile.in: Likewise. * include/internal/fibers.h: Likewise. * include/internal/phsa-queue-interface.h: Likewise. * include/internal/phsa-rt.h: Likewise. * include/internal/workitems.h: Likewise. * rt/arithmetic.c: Likewise. * rt/atomics.c: Likewise. * rt/bitstring.c: Likewise. * rt/fbarrier.c: Likewise. * rt/fibers.c: Likewise. * rt/fp16.c: Likewise. * rt/misc.c: Likewise. * rt/multimedia.c: Likewise. * rt/queue.c: Likewise. * rt/sat_arithmetic.c: Likewise. * rt/segment.c: Likewise. * rt/workitems.c: Likewise. Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r244867
2017-01-24re PR translation/79208 (Typo in gcc/ipa-devirt.c:1631)Richard Biener2-1/+6
2017-01-24 Richard Biener <rguenther@suse.de> PR translation/79208 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic. From-SVN: r244866
2017-01-24[PR 79198] Call ipa-prop func summary destructorMartin Jambor2-0/+10
2017-01-24 Martin Jambor <mjambor@suse.cz> PR bootstrap/79198 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor. * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts and known_contexts. From-SVN: r244860
2017-01-24re PR middle-end/79123 (incorrect -Walloca-larger-than: alloca may be too ↵Aldy Hernandez3-2/+40
large due to conversion from long int to long unsigned int) PR middle-end/79123 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure casts from signed to unsigned really don't have a range. From-SVN: r244859
2017-01-24Fix build failure with MPFR 2.4.xMarkus Trippelsdorf2-1/+6
* gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to GMP_RNDx for compatiblity. From-SVN: r244858
2017-01-24Fix false positive for -Walloc-size-larger-than (PR bootstrap/79132).Martin Liska2-0/+7
2017-01-24 Martin Liska <mliska@suse.cz> PR bootstrap/79132 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert that would prevent us to call alloca with -1 as argument. From-SVN: r244857
2017-01-24asan_test.C: Enable on all *-*-linux* targets that support asan...Jakub Jelinek2-1/+6
* g++.dg/asan/asan_test.C: Enable on all *-*-linux* targets that support asan, only on i?86/x86_64 require sse2_runtime. From-SVN: r244856
2017-01-24dwarf2out.c (output_compilation_unit_header, [...]): Avoid -Wformat-security ↵Jakub Jelinek2-4/+12
warning. * dwarf2out.c (output_compilation_unit_header, output_file_names): Avoid -Wformat-security warning. From-SVN: r244855
2017-01-23aarch64.c (thunderx2t99_addrcost_table): Improve cost table.Andrew Pinski2-3/+8
2017-01-23 Andrew Pinski <apinski@cavium.com> * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve cost table. From-SVN: r244851
2017-01-24re PR rtl-optimization/66669 (FAIL: gcc.dg/loop-8.c)Kelvin Nilsen2-1/+7
gcc/testsuite/ChangeLog: 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/66669 * gcc.dg/loop-8.c: Modify dg-skip-if directive to exclude this test on powerpc targets. From-SVN: r244850
2017-01-23Amend recent entry.Martin Sebor1-0/+1
From-SVN: r244849
2017-01-23builtin-sprintf.c: Add test cases.Martin Sebor2-0/+36
gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases. From-SVN: r244848
2017-01-23PR middle-end/78703 - -fprintf-return-value floating point handling incorrect...Martin Sebor2-167/+246
PR middle-end/78703 - -fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point * gimple-ssa-sprintf.c (warn_level): New global. (format_integer): Use it here and throughout the rest of the file. Use the same switch to compute sign as base. (maybe_warn): New function. (format_directive): Factor out warnings into maybe_warn. Add debugging output. Use warn_level. (add_bytes): Use warn_level. (pass_sprintf_length::compute_format_length): Add debugging output. (try_substitute_return_value): Same. (pass_sprintf_length::handle_gimple_call): Set and use warn_level. From-SVN: r244847
2017-01-23PR middle-end/78703 - -fprintf-return-value floating point handling incorrect...Martin Sebor2-110/+88
PR middle-end/78703 - -fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point * gimple-ssa-sprintf.c (struct format_result): Remove constant member. (struct fmtresult, format_integer, format_floating): Adjust. (get_string_length, format_string,format_directive): Same. (pass_sprintf_length::compute_format_length): Same. (try_substitute_return_value): Simplify slightly. From-SVN: r244846
2017-01-23PR middle-end/78703 - -fprintf-return-value floating point handling incorrect...Martin Sebor2-660/+804
PR middle-end/78703 - -fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting. (fmtresult::operator+=): Outlined. (struct fmtresult): Add ctors. (struct conversion_spec): Rename... (struct directive): ...to this. Add and remove data members. (directive::set_width, directive::set_precision): New functions. (format_percent): Use fmtresult ctor. (get_width_and_precision): Remove. (format_integer): Make naming changes. Avoid computing width and precision. (format_floating): Same. Adjust indentation. (format_character, format_none): New functions. (format_string): Moved character handling to format_character. (format_directive): Remove arguments, change return type. (parse_directive): New function. (pass_sprintf_length::compute_format_length): Move directive parsing to parse_directive. From-SVN: r244845
2017-01-24Daily bump.GCC Administrator1-1/+1
From-SVN: r244843
2017-01-23tree.h (assign_assembler_name_if_neeeded): Rename to ...Jakub Jelinek5-6/+17
* tree.h (assign_assembler_name_if_neeeded): Rename to ... (assign_assembler_name_if_needed): ... this. * tree.c (assign_assembler_name_if_neeeded): Rename to ... (assign_assembler_name_if_needed): ... this. (free_lang_data_in_cgraph): Adjust callers. * cgraphunit.c (cgraph_node::analyze): Likewise. * omp-expand.c (expand_omp_taskreg, expand_omp_target): Likewise. From-SVN: r244839
2017-01-23re PR tree-optimization/79088 (wrong code at -O2 on x86_64-linux-gnu)Richard Biener6-36/+128
2017-01-23 Richard Biener <rguenther@suse.de> PR tree-optimization/79088 PR tree-optimization/79188 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code resetting loop bounds after last path deletion. Reset loop bounds of the target loop, make code match the comments. * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute): Make sure loops need no fixups. * gcc.dg/torture/pr79088.c: New testcase. * gcc.dg/torture/pr79188.c: Likewise. From-SVN: r244837
2017-01-23libgo: update to go1.8rc2Ian Lance Taylor1-1/+1
Fix a bug in the generation of the hash value in reflect.FuncOf. The merge script missed a bunch of testdata files over the years. Copy them over. Reviewed-on: https://go-review.googlesource.com/35570 From-SVN: r244835
2017-01-23scalar-insert-exp-3.c: New test.Kelvin Nilsen41-88/+378
gcc/testsuite/ChangeLog: 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/bfp/scalar-insert-exp-3.c: New test. * gcc.target/powerpc/bfp/scalar-insert-exp-4.c: New test. * gcc.target/powerpc/bfp/scalar-insert-exp-5.c: New test. * gcc.target/powerpc/bfp/scalar-test-data-class-0.c: Adjust return type of test function to reflect change in built-in function's return type. * gcc.target/powerpc/bfp/scalar-test-data-class-1.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-2.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-3.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-4.c: Adjust return type and second argument type to reflect change in built-in function's type signature. * gcc.target/powerpc/bfp/scalar-test-data-class-5.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Adjust return type of test function to reflect change in built-in function's return type. * gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-0.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-1.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-exp-0.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-exp-1.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-sig-0.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-sig-1.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise. * gcc.target/powerpc/bfp/vec-insert-exp-4.c: New test. * gcc.target/powerpc/bfp/vec-insert-exp-5.c: New test. * gcc.target/powerpc/bfp/vec-insert-exp-6.c: New test. * gcc.target/powerpc/bfp/vec-insert-exp-7.c: New test. * gcc.target/powerpc/bfp/vec-test-data-class-0.c: Adjust return type of test function to reflect change in built-in function's return type. * gcc.target/powerpc/bfp/vec-test-data-class-1.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-4.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-5.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-6.c: Adjust types of test function's result and second argument to reflect change in built-in function's type signature. * gcc.target/powerpc/bfp/vec-test-data-class-7.c: Likewise. gcc/ChangeLog: 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert exponent support with double type for first argument. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed type returned by __builtin_vec_extract_sig, __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp functions from "vector int" to "vector unsigned int" or from "vector long long int" to "vector unsigned long long int". Changed type returned by __builtin_vec_extract_exp, __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp functions from "vector int" to "vector unsigned int" or from "vector long long int" to "vector unsigned long long int". Changed return type of __builtin_vec_test_data_class, __builtin_vec_test_data_class_sp, and __builtin_vec_test_data_class_dp from "vector int" to "vector bool int" or from "vector long long int" to "vector bool long long int" and changed second argument type from "unsigned int" to "int". Added new overloaded function forms "vector float __builtin_vec_insert_exp (vector float, vector unsigned int)" and "vector float __builtin_vec_insert_exp_sp (vector float, vector unsigned int)" and "vector double __builtin_vec_insert_exp (vector double, vector unsigned long long int)" and "vector double __builtin_vec_insert_exp_dp (vector double, vector unsigned long long int)". Changed return type of __builtin_scalar_test_data_class and __builtin_scalar_test_data_class_sp and __builtin_scalar_test_data_class_dp from "unsigned int" to "bool int" and changed second argument from "unsigned int" to "int". Changed type returned by __builtin_scalar_test_neg, __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp from "int" to "bool int". Added new overloaded function form "double __builtin_scalar_insert_exp (double, unsigned long long int)". * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert exponent double-precision with floating point first argument. * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust documentation of scalar_test_data_class, scalar_test_neg, scalar_extract_sig, scalar_extract_exp, scalar_insert_exp, vector_extract_exp, vec_extract_sig, vec_insert_exp, and vec_test_data_class built-in functions to reflect refinements in their type signatures. From-SVN: r244834
2017-01-23PR c++/71710 - template using directive of fieldNathan Sidwell4-8/+25
PR c++/71710 - template using directive of field * pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL check earlier. PR C++/71710 * g++.dg/template/pr71710.C: New. From-SVN: r244833
2017-01-23PR c++/71406 - ICE with scope-ref'd template id exprsNathan Sidwell4-17/+59
PR c++/71406 - ICE with scope-ref'd template id exprs PR c++/77508 * typeck.c (finish_class_member_access_expr): Break up SCOPE_REF before breaking up TEMPLATE_ID_EXPR. PR c++/71406 PR c++/77508 * g++.dg/template/pr71406.C: New. From-SVN: r244832
2017-01-23arith.c (arith_power): If simplifying integer power expression to zero...Thomas Koenig4-0/+18
2017-01-23 Thomas Koenig <tkoenig@netcologne.de> * arith.c (arith_power): If simplifying integer power expression to zero, warn if -Winteger-division is given. 2017-01-23 Thomas Koenig <tkoenig@netcologne.de> * gfortran.dg/integer_exponentiation_7.f90: New test. From-SVN: r244830
2017-01-23aarch64.c (aarch64_elf_asm_constructor): Increase size of buf.Andreas Tobler2-2/+14
2017-01-23 Andreas Tobler <andreast@gcc.gnu.org> * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase size of buf. (aarch64_elf_asm_destructor): Likewise. From-SVN: r244828
2017-01-23re PR go/79037 (gccgo: Binaries crash with parforsetup: pos is not aligned ↵Ian Lance Taylor2-2/+17
on m68k) PR go/79037 compiler, runtime: align gc data for m68k The current GC requires that the gc data be aligned to at least a 4 byte boundary, because it uses the lower two bits of the address for flags (see LOOP and PRECISE in runtime/mgc0.c). As the gc data is stored as a [...]uintptr, that is normally always true. However, on m68k, that only guarantees 2 byte alignment. Fix it by forcing the alignment. The parfor code used by the current GC requires that the parfor data be aligned to at least an 8 byte boundary. The code in parfor.c verifies this. This is normally true, as the data uses uint64_t values, but, again, this must be enforced explicitly on m68k. Fixes GCC PR 79037. Reviewed-on: https://go-review.googlesource.com/35478 From-SVN: r244824
2017-01-23libgo: bump library version to 11Ian Lance Taylor1-1/+1
As usual I forgot to bump the library version when I updated the library to 1.8rc1. Reviewed-on: https://go-review.googlesource.com/35568 From-SVN: r244823
2017-01-23* fr.po: Update.Joseph Myers2-871/+596
From-SVN: r244818
2017-01-23re PR rtl-optimization/71724 (ICE: Segmentation fault, deep recursion ↵Bernd Schmidt2-3/+27
between combine_simplify_rtx and subst) PR rtl-optimization/71724 * combine.c (if_then_else_cond): Look for situations where it is beneficial to undo the work of one of the recursive calls. From-SVN: r244817
2017-01-23re PR rtl-optimization/78634 (30% performance drop after r242832.)Bernd Schmidt5-2/+38
PR rtl-optimization/78634 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function. (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define. * ifcvt.c (noce_try_cmove): Add missing cost check. testsuite/ PR rtl-optimization/78634 * gcc.target/i386/funcspec-11.c: Also pass -mtune=i686. From-SVN: r244816
2017-01-23re PR tree-optimization/70754 (ICE during predictive commoning)Bin Cheng4-12/+94
PR tree-optimization/70754 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert combined stmt before it if not NULL. (combine_chains): Process refs reversely and compute dominance point for root ref. gcc/testsuite PR tree-optimization/70754 * gfortran.dg/pr70754.f90: New test. From-SVN: r244815
2017-01-23Fix strstr folding (PR tree-optimization/79196).Martin Liska5-19/+50
2017-01-23 Martin Liska <mliska@suse.cz> PR tree-optimization/79196 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ... (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp instead of memcmp. (strlen_optimize_stmt): Call the renamed function. 2017-01-23 Martin Liska <mliska@suse.cz> PR tree-optimization/79196 * gcc.dg/asan/pr79196.c: New test. * gcc.dg/strlenopt-30.c: Update scanned pattern. From-SVN: r244812
2017-01-23fix pr78384Michael Matz4-1/+36
PR tree-optimization/78384 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge. testsuite/ PR tree-optimization/78384 * gcc.dg/pr78384.c: New test. From-SVN: r244811
2017-01-23sem_util.adb (New_Copy_Tree): Code cleanup: removal of the internal map (ie.Javier Miranda5-231/+134
2017-01-23 Javier Miranda <miranda@adacore.com> * sem_util.adb (New_Copy_Tree): Code cleanup: removal of the internal map (ie. variable Actual_Map, its associated local variables, and all the code handling it). * sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode force loading of the System package when processing a task type. (Analyze_Protected_Type_Declaration): in GNATprove mode force loading of the System package when processing a protected type. * sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode force loading of the System package when processing compilation unit with a main-like subprogram. * frontend.adb (Frontend): remove forced loading of the System package. From-SVN: r244810
2017-01-23sem_prag.adb (Default_Initial_Condition): If the desired type declaration is ↵Ed Schonberg4-7/+30
a derived type declaration with discriminants... 2017-01-23 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Default_Initial_Condition): If the desired type declaration is a derived type declaration with discriminants, it is rewritten as a private type declaration. * sem_ch13.adb (Replace_Type_References_Generic, Visible_Component): A discriminated private type with descriminnts has components that must be rewritten as selected components if they appear as identifiers in an aspect expression such as a Default_Initial_Condition. * sem_util.adb (Defining_Entity): support N_Iterator_Specification nodes. From-SVN: r244809
2017-01-23ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.Hristian Kirtchev7-31/+62
2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> * ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine. * gnat1drv.adb Generate an empty object file for an ignored Ghost compilation unit. * inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting. From-SVN: r244808
2017-01-23[multiple changes]Arnaud Charlet4-121/+150
2017-01-23 Yannick Moy <moy@adacore.com> * sem_ch4.adb (Analyze_Indexed_Component_Form): Adapt to inlined prefix with string literal subtype. * inline.adb (Expand_Inlined_Call): Keep unchecked conversion inside inlined call when formal type is constrained. 2017-01-23 Javier Miranda <miranda@adacore.com> * sem_util.adb (New_Copy_Tree): Code cleanup: removal of global variables. All the global variables, global functions and tables of this subprogram are now declared locally. From-SVN: r244807
2017-01-23[multiple changes]Arnaud Charlet20-93/+221
2017-01-23 Gary Dismukes <dismukes@adacore.com> * exp_strm.ads: Minor reformatting and typo fixes. 2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> * sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb, exp_aggr.adb: Minor reformatting. * g-diopit.adb: minor grammar/punctuation fix in comment. * g-byorma.ads: minor fix of unbalanced parens in comment. 2017-01-23 Hristian Kirtchev <kirtchev@adacore.com> * par.adb: Update the documentation of component Labl. * par-ch6.adb (P_Return_Statement): Set the expected label of an extended return statement to Error. 2017-01-23 Tristan Gingold <gingold@adacore.com> * s-boustr.ads, s-boustr.adb (Is_Full): New function. 2017-01-23 Ed Schonberg <schonberg@adacore.com> * expander.adb: Handle N_Delta_Aggregate. 2017-01-23 Javier Miranda <miranda@adacore.com> * exp_ch6.adb (Expand_Call): Improve the code that checks if some formal of the called subprogram is a class-wide interface, to handle subtypes of class-wide interfaces. 2017-01-23 Javier Miranda <miranda@adacore.com> * checks.adb (Apply_Parameter_Aliasing_Checks): Remove side effects of the actuals before generating the overlap check. From-SVN: r244806
2017-01-23[multiple changes]Arnaud Charlet6-43/+96
2017-01-23 Justin Squirek <squirek@adacore.com> * exp_strm.ads, exp_strm.ads (Build_Record_Or_Elementary_Input_Function): Add an extra parameter so as to avoid getting the underlying type by default. * exp_attr.adb (Expand_N_Attribute_Reference): Remove use of underlying type in the Iiput and output attribute cases when building their respective functions. 2017-01-23 Gary Dismukes <dismukes@adacore.com> * scng.adb: Minor reformatting of error message. 2017-01-23 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): Do not attempt to freeze the return type of an expression funxtion that is a completion, if the type is a limited view and the non-limited view is available. From-SVN: r244805
2017-01-23re PR tree-optimization/79186 (ICE on valid code at -O2 and -O3 on ↵Richard Biener5-0/+48
x86_64-linux-gnu: Segmentation fault (in VRP)) 2017-01-23 Richard Biener <rguenther@suse.de> PR tree-optimization/79186 * tree-vrp.c (register_new_assert_for): Make sure we've seen both incoming edges before moving an assert. * gcc.dg/torture/pr79186.c: New testcase. * gcc.dg/torture/pr79187.c: Likewise. From-SVN: r244804
2017-01-23Fix compute_complex_assign_jump_funcMartin Jambor4-52/+71
2017-01-23 Martin Jambor <mjambor@suse.cz> * ipa-prop.c (load_from_param_1): Removed. (load_from_unmodified_param): Bits from load_from_param_1 put back here. (load_from_param): Removed. (compute_complex_assign_jump_func): Removed stmt2 and just replaced it with stmt. Reverted back to use of load_from_unmodified_param. testsuite/ * gcc.dg/ipa/vrp8.c: New test. From-SVN: r244803
2017-01-23[PR 79108] Put ipa_node_params to GC memoryMartin Jambor7-74/+161
2017-01-23 Martin Jambor <mjambor@suse.cz> PR ipa/79108 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()). (ipa_node_params): Annotate with GTY((for_user)). Make descriptors field a pointer to garbage collected vector, mark lattices and ipcp_orig_node with GTY((skip)). (ipa_get_param_count): Adjust to descriptors being a pointer. (ipa_get_param): Likewise. (ipa_get_type): Likewise. (ipa_get_param_move_cost): Likewise. (ipa_set_param_used): Likewise. (ipa_get_controlled_uses): Likewise. (ipa_set_controlled_uses): Likewise. (ipa_is_param_used): Likewise. (ipa_node_params_t): Move into garbage collector. New methods insert and remove. (ipa_node_params_sum): Annotate wth GTY(()). (ipa_check_create_node_params): Adjust to ipa_node_params_sum being garbage collected. (ipa_load_from_parm_agg): Adjust declaration. * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer. * ipa-profile.c (ipa_profile): Likewise. * ipa-prop.c (ipa_get_param_decl_index_1): Likewise. (ipa_populate_param_decls): Make descriptors parameter garbage collected. (ipa_dump_param): Adjust to descriptors being a pointer. (ipa_alloc_node_params): Likewise. (ipa_initialize_node_params): Likewise. (load_from_param_1): Make descriptors parameter garbage collected. (load_from_unmodified_param): Likewise. (load_from_param): Likewise. (ipa_load_from_parm_agg): Likewise. (ipa_node_params::~ipa_node_params): Removed. (ipa_free_all_node_params): Remove call to delete operator. (ipa_node_params_t::insert): New. (ipa_node_params_t::remove): Likewise. (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer, copy known_csts and known_contexts vectors. (ipa_read_node_info): Adjust to descriptors being a pointer. (ipcp_modif_dom_walker): Make m_descriptors field garbage collected. (ipcp_transform_function): Make descriptors variable garbage collected. testsuite/ * gfortran.dg/lto/pr79108_0.f90: New test. From-SVN: r244802
2017-01-23Add AVX512 k-mask intrinsicsAndrew Senkevich24-29/+599
gcc/ * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics. * config/i386/avx512dqintrin.h: Ditto. * config/i386/avx512fintrin.h: Ditto. * gcc/config/i386/i386.c: Handle new builtins. * config/i386/i386-builtin.def: Add new builtins. * config/i386/sse.md (ktest<mode>, kortest<mode>): New. (UNSPEC_KORTEST, UNSPEC_KTEST): New. gcc/testsuite/ * gcc.target/i386/avx512bw-ktestd-1.c: New test. * gcc.target/i386/avx512bw-ktestq-1.c: Ditto. * gcc.target/i386/avx512dq-ktestb-1.c: Ditto. * gcc.target/i386/avx512f-ktestw-1.c: Ditto. * gcc.target/i386/avx512bw-kortestd-1.c: Ditto. * gcc.target/i386/avx512bw-kortestq-1.c: Ditto. * gcc.target/i386/avx512dq-kortestb-1.c: Ditto. * gcc.target/i386/avx512f-kortestw-1.c: Ditto. * gcc.target/i386/avx512bw-ktestd-2.c: Ditt * gcc.target/i386/avx512bw-ktestq-2.c: Ditto. * gcc.target/i386/avx512dq-ktestb-2.c: Ditto. * gcc.target/i386/avx512f-ktestw-2.c: Ditto. * gcc.target/i386/avx512bw-kortestd-2.c: Ditto. * gcc.target/i386/avx512bw-kortestq-2.c: Ditto. * gcc.target/i386/avx512dq-kortestb-2.c: Ditto. * gcc.target/i386/avx512f-kortestw-2.c: Ditto. From-SVN: r244801
2017-01-23re PR testsuite/78421 (vect-strided-a-u8-i2-gap.c fails on armeb)Richard Biener3-1/+16
PR testsuite/78421 * lib/target-supports.exp (check_effective_target_vect_hw_misalign): If the target is ARM return the result of the check_effective_target_arm_vect_no_misalign proc. * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: If the target does not support unaligned vectors then only expect one of the loops to be unrolled. Co-Authored-By: Nick Clifton <nickc@redhat.com> From-SVN: r244796
2017-01-23Minor editing.Arnaud Charlet2-3/+3
From-SVN: r244795