aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-12-27ipa-visibility.c (function_and_variable_visibility): Do not dissolve comdat ↵Jan Hubicka2-2/+11
groups when in LTO mode. * ipa-visibility.c (function_and_variable_visibility): Do not dissolve comdat groups when in LTO mode. From-SVN: r231965
2015-12-27Daily bump.GCC Administrator1-1/+1
From-SVN: r231964
2015-12-26Daily bump.GCC Administrator1-1/+1
From-SVN: r231960
2015-12-25freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64 defines.Andreas Tobler2-19/+11
2015-12-25 Andreas Tobler <andreast@gcc.gnu.org> * config/rs6000/freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64 defines. Use FBSD_DYNAMIC_LINKER instead. Rename and simplify LINK_OS_FREEBSD_SPEC_DEF32/64 to LINK_OS_FREEBSD_SPEC_DEF. From-SVN: r231955
2015-12-24Fix PR number in revision 231905 ChangeLogs.Peter Bergner2-2/+2
From-SVN: r231954
2015-12-24Correct use of __GXX_WEAK__ macro.Jason Merrill3-2/+8
* testsuite/ext/bitmap_allocator/check_deallocate_null.cc * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc From-SVN: r231953
2015-12-24re PR c++/69005 (infinite(?) recursion in template instantiations)Jason Merrill3-22/+63
PR c++/69005 * call.c (add_template_candidate_real): Don't try to deduce X(X). From-SVN: r231952
2015-12-25Daily bump.GCC Administrator1-1/+1
From-SVN: r231951
2015-12-24Use const-ref instead of values for sese_l passed to functions.Aditya Kumar4-10/+21
gcc/ChangeLog: 2015-12-24 hiraditya <hiraditya@msn.com> * graphite-sese-to-poly.c (build_loop_iteration_domains): Use ref instead of value. * sese.c (invariant_in_sese_p_rec): Use const ref instead of value. (scalar_evolution_in_region): Same * sese.h (bb_in_region): Same (bb_in_sese_p): Same. (stmt_in_sese_p): Same. (defined_in_sese_p): Same. (loop_in_sese_p): Same. From-SVN: r231947
2015-12-24Fix computation of single entry/exit of a region.Aditya Kumar2-10/+30
For basic block with two preds, allow (as single entry) only when the other edge is a backedge. Similarly for basic block with two succs, allow (as single exit) only when the other edge is a back edge. 2015-12-21 Aditya Kumar <hiraditya@msn.com> * graphite-scop-detection.c (scop_detection::get_nearest_dom_with_single_entry): Check l == l2. (scop_detection::get_nearest_pdom_with_single_exit): Same. (scop_detection::merge_sese): Whitespace. (scop_detection::add_scop): Comment. (build_scops): Whitespace. From-SVN: r231946
2015-12-24Add missing intrinsic file.Kirill Yukhin1-0/+56
From-SVN: r231945
2015-12-24Introduce support for PKU instructions.Kirill Yukhin22-17/+180
gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_PKU_SET): New. (OPTION_MASK_ISA_PKU_UNSET): Ditto. (ix86_handle_option): Handle OPT_mpku. * config.gcc: Add pkuintrin.h to i[34567]86-*-* and x86_64-*-* targets. * config/i386/cpuid.h (host_detect_local_cpu): Detect PKU feature. * config/i386/i386-c.c (ix86_target_macros_internal): Handle PKU ISA flag. * config/i386/i386.c (ix86_target_string): Add "-mpku" to ix86_target_opts. (ix86_option_override_internal): Define PTA_PKU, mention new key in skylake-avx512. Handle new ISA bits. (ix86_valid_target_attribute_inner_p): Add "pku". (enum ix86_builtins): Add IX86_BUILTIN_RDPKRU and IX86_BUILTIN_WRPKRU. (builtin_description bdesc_special_args[]): Add new built-ins. * config/i386/i386.h (define TARGET_PKU): New. (define TARGET_PKU_P): Ditto. * config/i386/i386.md (define_c_enum "unspecv"): Add UNSPEC_PKU. (define_expand "rdpkru"): New. (define_insn "*rdpkru"): Ditto. (define_expand "wrpkru"): Ditto. (define_insn "*wrpkru"): Ditto. * config/i386/i386.opt (mpku): Ditto. * config/i386/pkuintrin.h: New file. * config/i386/x86intrin.h: Include pkuintrin.h * doc/extend.texi: Describe new built-ins. * doc/invoke.texi: Describe new switches. gcc/testsuite/ * g++.dg/other/i386-2.C: Add -mpku. * g++.dg/other/i386-3.C: Ditto. * gcc.target/i386/rdpku-1.c: New test. * gcc.target/i386/sse-12.c: Add -mpku. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-33.c: Ditto. * gcc.target/i386/wrpku-1.c: New test. From-SVN: r231944
2015-12-23re PR ipa/67811 ([TM] ICE with try-block in transaction)Richard Henderson2-1/+7
PR ipa/67811 * tree-cfg.c (make_edges_bb): Add abort edge for outer transactions. From-SVN: r231943
2015-12-24Daily bump.GCC Administrator1-1/+1
From-SVN: r231942
2015-12-23PR c++/69023 - bitset whose name is used in constant-expression rejectedMartin Sebor2-0/+89
PR c++/69023 - bitset whose name is used in constant-expression rejected * g++.dg/lookup/name-clash11.C: New test. From-SVN: r231938
2015-12-23cgraph.h (decl_in_symtab_p): Revert check DECL_IN_CONSTANT_POOL.Nathan Sidwell4-22/+9
gcc/ * cgraph.h (decl_in_symtab_p): Revert check DECL_IN_CONSTANT_POOL. gcc/testsuite/ * gcc.dg/alias-15.c: Revert. From-SVN: r231931
2015-12-23* config/nvptx/nvptx-protos.hNathan Sidwell4-64/+24
(nvptx_maybe_convert_symbolic_operand): Delete prototype. * config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand): Delete. (nvptx_output_mov_insn): Record fnsym here. (nvptx_wpropagate): Don't create UNSPEC_TO_GENERIC unspec. * config/nvptx/nvptx.md (UNSPEC_TO_GENERIC): Delete. (symbolic_operand): Delete predicate. (nvptx_nonimmediate_operand): Delete predicate. (mov<mode>): Hard regs are perfectly ok here. (convaddr_<mode>): Delete. From-SVN: r231930
2015-12-23[Patch testsuite] Skip gcc.dg/ifcvt-4.c for targets on which it may not workJames Greenhalgh2-0/+7
gcc/testsuite/ PR testsuite/68232 * gcc.dg/ifcvt-4.c: Skip for arm*-*-* and powerpc64le*-*-*. From-SVN: r231929
2015-12-23alias.c (compare_base_decls): Simplify in-symtab check.Nathan Sidwell5-5/+34
gcc/ * alias.c (compare_base_decls): Simplify in-symtab check. * cgraph.h (decl_in_symtab_p): Check DECL_IN_CONSTANT_POOL. testsuite/ * gcc.dg/alias-15.c: New. From-SVN: r231928
2015-12-23Fix broken handling of LABEL_REF in genrecog + genpreds.Dominik Vogt4-5/+14
gcc/ChangeLog * config/s390/predicates.md ("larl_operand"): Remove now superfluous const_int and const_double. * genrecog.c (safe_predicate_mode): Return false for VOIDmode LABEL_REFs even if the predicate does not handle const_int, const_double or const_wide_int. * genpreds.c (add_mode_tests): Treat LABEL_REF like CONST_INT. From-SVN: r231927
2015-12-23Merge OMP_CLAUSE_USE_DEVICE into OMP_CLAUSE_USE_DEVICE_PTRThomas Schwinge15-41/+24
gcc/c/ * c-parser.c (c_parser_oacc_clause_use_device): Merge function into... (c_parser_omp_clause_use_device_ptr): ... this function. Adjust all users. gcc/ * tree-core.h (enum omp_clause_code): Merge OMP_CLAUSE_USE_DEVICE into OMP_CLAUSE_USE_DEVICE_PTR. Adjust all users. From-SVN: r231926
2015-12-23Don't run OpenACC C++ test twiceThomas Schwinge2-0/+6
gcc/testsuite/ * g++.dg/dg.exp (tests): Prune "goacc/*" and "goacc-gomp/*" files. From-SVN: r231925
2015-12-23iterators.md (VMAXMINFNM): New int iterator.David Sherwood9-0/+131
2015-12-23 David Sherwood <david.sherwood@arm.com> gcc/ * config/arm/iterators.md (VMAXMINFNM): New int iterator. (fmaxmin): New int attribute. (fmaxmin_op): Likewise. * config/arm/unspecs.md (UNSPEC_VMAXNM): New unspec. (UNSPEC_VMINNM): Likewise. * config/arm/neon.md (fmaxmin): New pattern. * config/arm/vfp.md (fmaxmin): Likewise. gcc/testsuite * gcc.target/arm/fmaxmin.x: New file used by tests below. * gcc.target/arm/fmaxmin.c: New test. * gcc.target/arm/vect-fmaxmin.c: Likewise. From-SVN: r231924
2015-12-23[PATCH] Allow indirect call via GOT for 64-bit Pmode x32H.J. Lu8-18/+97
From: H.J. Lu <hongjiu.lu@intel.com> Since Pmode is 64-bit with -maddress-mode=long for x32, indirect call via GOT slot doesn't need zero_extend. This patch enables indirect call via GOT for x32 with 64-bit Pmode. gcc/ PR target/66232 * config/i386/constraints.md (Bs): Allow GOT slot for x32 with 64-bit Pmode. (Bw): Likewise. (Bz): Likewise. * config/i386/predicates.md (call_insn_operand): Likewise. (sibcall_insn_operand): Likewise. gcc/testsuite/ PR target/66232 * gcc.target/i386/pr66232-10.c: New test. * gcc.target/i386/pr66232-11.c: Likewise. * gcc.target/i386/pr66232-12.c: Likewise. * gcc.target/i386/pr66232-13.c: Likewise. From-SVN: r231923
2015-12-23Daily bump.GCC Administrator1-1/+1
From-SVN: r231922
2015-12-22PR c/68473: sanitize source range-printing within certain macro expansionsDavid Malcolm5-6/+84
gcc/ChangeLog: PR c/68473 * diagnostic-show-locus.c (layout::layout): Make loc_range const. Sanitize the layout_range against ranges that finish before they start. gcc/testsuite/ChangeLog: PR c/68473 * gcc.dg/plugin/diagnostic-test-expressions-1.c (fminl): New decl. (TEST_EQ): New macro. (test_macro): New function. * gcc.target/i386/pr68473-1.c: New test case. From-SVN: r231919
2015-12-22libcpp: Avoid unnecessary ad-hoc uses for large source filesDavid Malcolm2-3/+9
libcpp/ChangeLog: * line-map.c (get_combined_adhoc_loc): Remove condition on locus < RESERVED_LOCATION_COUNT when considering whether a caret == start == finish location can be simply stored as the caret location. From-SVN: r231918
2015-12-22[PATCH] Avoid unnecessary block copying in path splittingJeff Law2-5/+9
* gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block copying. From-SVN: r231915
2015-12-22re PR c++/66921 (failure to determine size of static constexpr array that is ↵Jason Merrill3-1/+15
nested within a templated class) PR c++/66921 * decl.c (cp_complete_array_type): Allow an initializer that already has array type. From-SVN: r231914
2015-12-22re PR c++/67257 (Internal compiler error in retrieve_specialization)Jason Merrill4-2/+34
PR c++/67257 * parser.c (cp_parser_single_declaration): Reject a class template that also declares a variable. From-SVN: r231913
2015-12-22re PR c++/67339 (Segfault when parsing a typename involving a template-alias)Jason Merrill3-1/+23
PR c++/67339 * parser.c (cp_parser_elaborated_type_specifier): Use CLASS_TYPE_P rather than check for RECORD_TYPE. From-SVN: r231912
2015-12-22re PR c++/67376 (Comparison with pointer to past-the-end of array fails ↵Jakub Jelinek4-44/+112
inside constant expression) PR c++/67376 * fold-const.c (size_low_cst): Removed. (fold_comparison): For POINTER_PLUS_EXPR where base is ADDR_EXPR call get_inner_reference and handle INDIRECT_REF base of it. Use offset_int for computation of the bitpos. (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Formatting fixes for X +- Y CMP X and C - X CMP X folding. Add X CMP X +- Y and X CMP C - X folding. * g++.dg/cpp0x/constexpr-67376.C: New test. From-SVN: r231909
2015-12-22Give EH_ELSE access to __builtin_eh_pointerRichard Henderson2-48/+52
The must-not-throw wrapper for protect_cleanup_actions gets in the way of being able to access __builtin_eh_pointer without confusion as the identit of the exception to which we are referring (b_eh_p has no usable argument up to this point). Since EH_ELSE never comes from user derived code, let's drop the c++ specific wrapping. * tree-eh.c (honor_protect_cleanup_actions): Do not wrap eh_else in a must-not-throw; set ehp_region for it too. From-SVN: r231908
2015-12-22re PR ipa/67811 ([TM] ICE with try-block in transaction)Richard Henderson16-122/+288
PR ipa/67811 * gimple.h (struct gtransaction): Add label_norm, label_uninst; replace label with label_over. (gimple_build_transaction): Remove label parameter. (gimple_transaction_label_norm): New. (gimple_transaction_label_uninst): New. (gimple_transaction_label_over): Rename from gimple_transaction_label. (gimple_transaction_label_norm_ptr): New. (gimple_transaction_label_uninst_ptr): New. (gimple_transaction_label_over_ptr): Rename from gimple_transaction_label_ptr. (gimple_transaction_set_label_norm): New. (gimple_transaction_set_label_uninst): New. (gimple_transaction_set_label_over): Rename from gimple_transaction_set_label. * gimple-pretty-print.c (dump_gimple_transaction): Update. * gimple-streamer-in.c (input_gimple_stmt) [GIMPLE_TRANSACTION]: Same. * gimple-streamer-out.c (output_gimple_stmt) [GIMPLE_TRANSACTION]: Same. * gimple-walk.c (walk_gimple_op) [GIMPLE_TRANSACTION]: Same. * tree-cfg.c (make_edges_bb) [GIMPLE_TRANSACTION]: Same. (cleanup_dead_labels) [GIMPLE_TRANSACTION]: Same. (verify_gimple_transaction): Same. (gimple_redirect_edge_and_branch) [GIMPLE_TRANSACTION]: Same. * tree-inline.c (remap_gimple_stmt) [GIMPLE_TRANSACTION]: Same. * gimple.c (gimple_build_transaction): Remove label parameter; initialize all three label memebers. * gimplify.c (gimplify_transaction): Update call to gimple_build_transaction. * trans-mem.c (make_tm_uninst): New. (lower_transaction): Create uninstrumented code path here... (ipa_tm_scan_calls_transaction): ... not here. (ipa_uninstrument_transaction): Remove. testsuite/ * g++.dg/tm/noexcept-1.C: Update expected must_not_throw count. * g++.dg/tm/noexcept-4.C: Likewise. * g++.dg/tm/noexcept-5.C: Likewise. * g++.dg/tm/pr67811.C: New. From-SVN: r231907
2015-12-22Fix previous ChangeLog entryPeter Bergner1-4/+1
From-SVN: r231906
2015-12-22re PR target/68772 (Many -gstabs tests FAIL with Xcode 7 as)Peter Bergner4-0/+29
gcc/ PR target/68772 * config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le, pass %(asm_cpu_power8)/-mpwr8. * config/rs6000/aix53.h: Likewise. * config/rs6000/aix61.h: Likewise. * config/rs6000/aix71.h: Likewise. gcc/testsuite/ PR target/68772 * gcc.target/powerpc/pr68872.c: New test. From-SVN: r231905
2015-12-22Fix read of uninitialized value in make_pack_expansion()Patrick Palka2-0/+7
gcc/cp/ChangeLog: * pt.c (make_pack_expansion): Make sure to initialize ppd.type_pack_expansion_p. From-SVN: r231904
2015-12-22[PATCH] Use call-clobbered register for sibcall via GOTH.J. Lu11-9/+163
From: H.J. Lu <hongjiu.lu@intel.com> Since sibcall never returns, we can only use call-clobbered register as GOT base. Otherwise, callee-saved register used as GOT base won't be properly restored. sibcall_memory_operand is changed to allow 32-bit GOT slot only with pseudo register as GOT base for RTL expansion. 2 new patterns, *sibcall_GOT_32 and *sibcall_value_GOT_32, are added to expose GOT base register to register allocator so that call-clobbered register will be used for GOT base. gcc/ PR target/68937 * config/i386/i386.c (ix86_function_ok_for_sibcall): Count call to global function via GOT slot as indirect call. * config/i386/i386.md (*sibcall_GOT_32): New pattern. (*sibcall_value_GOT_32): Likewise. * config/i386/predicates.md (sibcall_memory_operand): Rewrite. Allow 32-bit GOT slot only with pseudo register as GOT base. (GOT32_symbol_operand): New predicate. gcc/testsuite/ PR target/68937 * gcc.target/i386/pr68937-1.c: New test. * gcc.target/i386/pr68937-2.c: Likewise. * gcc.target/i386/pr68937-3.c: Likewise. * gcc.target/i386/pr68937-4.c: Likewise. * gcc.target/i386/pr68937-5.c: Likewise. * gcc.target/i386/pr68937-6.c: Likewise. From-SVN: r231903
2015-12-22re PR c/69002 (C front end should warn about undefined access to atomic ↵Marek Polacek5-5/+121
structure or union) PR c/69002 * c-typeck.c (build_component_ref): Warn when acessing elements of atomic structures or unions. * gcc.dg/c11-atomic-1.c: Add dg-warnings. * gcc.dg/c11-atomic-4.c: New test. From-SVN: r231902
2015-12-22This series of patches fix PR61441.Sujoy Saraswati8-20/+190
This series of patches fix PR61441. This patch avoids various transformations with signaling NaN operands when flag_signaling_nans is on, to avoid folding which would lose exceptions. Bootstrapped & regression-tested on x86_64-linux-gnu. gcc/ * fold-const.c (const_binop): Convert sNaN to qNaN when flag_signaling_nans is off. (const_unop): Avoid the operation, other than NEGATE and ABS, if flag_signaling_nans is on and the operand is an sNaN. (fold_convert_const_real_from_real): Avoid the operation if flag_signaling_nans is on and the operand is an sNaN. (integer_valued_real_unary_p): Update comment stating it returns false for sNaN values. (integer_valued_real_binary_p, integer_valued_real_call_p): Same. (integer_valued_real_single_p): Same. (integer_valued_real_invalid_p, integer_valued_real_p): Same. * fold-const-call.c (fold_const_pow): Avoid the operation if flag_signaling_nans is on and the operand is an sNaN. (fold_const_builtin_load_exponent) Same. (fold_const_call_sss): Same for CASE_CFN_POWI. * gimple-fold.c (gimple_assign_integer_valued_real_p): Same. (gimple_call_integer_valued_real_p): Same. (gimple_phi_integer_valued_real_p): Same. (gimple_stmt_integer_valued_real_p): Same. * simplify-rtx.c (simplify_const_unary_operation): Avoid the operation if flag_signaling_nans is on and the operand is an sNaN. (simplify_const_binary_operation): Same. * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Avoid the operation if flag_signaling_nans is on and the operand is an sNaN. * gcc.dg/pr61441.c: New testcase. From-SVN: r231901
2015-12-22Add inline to std::__invfwdJonathan Wakely2-1/+6
PR libstdc++/59768 * include/std/functional (__invfwd): Add inline specifier. From-SVN: r231900
2015-12-22[combine] Check WORD_REGISTER_OPERATIONS normally rather than through ↵Kyrylo Tkachov2-3/+7
preprocessor * combine.c (simplify_comparison): Convert preprocessor check of WORD_REGISTER_OPERATIONS into runtime check. From-SVN: r231899
2015-12-22* gcc.dg/torture/pr68264.c: Tweak for Solaris.Eric Botcazou2-3/+17
From-SVN: r231898
2015-12-22re PR debug/60756 (var-tracking selects wrong registers)Eric Botcazou2-14/+33
PR debug/60756 * var-tracking.c (tracked_record_parameter_p): New predicate. (track_expr_p): Invoke it. (add_stores): Likewise. From-SVN: r231897
2015-12-21dbgcnt.def (dom_unreachable_edges): New debug counter.Jeff Law3-0/+11
* dbgcnt.def (dom_unreachable_edges): New debug counter. * tree-ssa-dom.c: Include dbgcnt.h (dom_opt_dom_walker::before_dom_children): Handle the new counter. From-SVN: r231896
2015-12-22go-gcc.cc (class Bvariable): Remove Gcc_tree parent class.Ian Lance Taylor2-29/+77
* go-gcc.cc (class Bvariable): Remove Gcc_tree parent class. Add t_ and orig_type_ fields. Add new two parameter constructor. Add get_tree and get_decl methods. (Gcc_backend::var_expression): Pass location to var get_tree. (Gcc_backend::global_variable): Don't add VIEW_CONVERT_EXPR. Use two parameter constructor for Bvariable. (Gcc_backend::global_variable_set_init): Don't remove VIEW_CONVERT_EXPR. Use var get_decl, not get_tree. (Gcc_backend::write_global_definitions): Likewise. (Gcc_backend::init_statement): Call var get_decl, not get_tree. (Gcc_backend::block): Likewise. (Gcc_backend::implicit_variable_set_init): Likewise. (Gcc_backend::immutable_struct_set_init): Likewise. (Gcc_backend::function_set_parameters): Likewise. From-SVN: r231894
2015-12-22Daily bump.GCC Administrator1-1/+1
From-SVN: r231892
2015-12-22go-gcc.cc (Gcc_backend::global_variable): If type is zero-sized, add a ↵Ian Lance Taylor2-1/+23
VIEW_CONVERT_EXPR to the tree. * go-gcc.cc (Gcc_backend::global_variable): If type is zero-sized, add a VIEW_CONVERT_EXPR to the tree. (Gcc_backend::global_variable_set_init): Remove any VIEW_CONVERT_EXPR. (Gcc_backend::write_global_definitions): Likewise. From-SVN: r231888
2015-12-21aarch64-option-extensions.def (LSE): Change FEAT_STRING to "atomics".Andrew Pinski2-1/+6
2015-12-21 Andrew Pinski <apinski@cavium.com> * config/aarch64/aarch64-option-extensions.def (LSE): Change FEAT_STRING to "atomics". From-SVN: r231887
2015-12-21C and C++ FE: fix source ranges for binary opsDavid Malcolm11-55/+159
gcc/c-family/ChangeLog: * c-common.c (binary_op_error): Convert first param from location_t to rich_location * and use it when emitting an error. * c-common.h (binary_op_error): Convert first param from location_t to rich_location *. gcc/c/ChangeLog: * c-typeck.c: Include "gcc-rich-location.h". (build_binary_op): In the two places that call binary_op_error, create a gcc_rich_location and populate it with the location of the binary op and its two operands. gcc/cp/ChangeLog: * typeck.c (cp_build_binary_op): Update for change in signature of build_binary_op. Use error_at to replace an implicit use of input_location with param "location" in "invalid operands" error. (cp_build_binary_op): Replace an error with an error_at, using "location", rather than implicitly using input_location. gcc/testsuite/ChangeLog: * g++.dg/diagnostic/bad-binary-ops.C: New test case. * gcc.dg/bad-binary-ops.c: New test case. gcc.dg/plugin/diagnostic_plugin_show_trees.c (get_range_for_expr): Remove material copied from gcc-rich-location.c (gcc_rich_location::add_expr): Likewise. From-SVN: r231884