aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2016-05-20tree-vrp.c (compare_values_warnv): Simplify handling of symbolic ranges by ↵Eric Botcazou8-113/+121
calling get_single_symbol and tidy up. * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic ranges by calling get_single_symbol and tidy up. Look more closely into NAME + CST1 vs CST2 comparisons if type overflow is undefined. ada/ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Make same-sized subtypes of signed base types signed. * gcc-interface/utils.c (make_type_from_size): Adjust to above change. (unchecked_convert): Likewise. From-SVN: r236548
2016-05-20* bitmap.c (bitmap_find_bit): Remove useless test.Jeff Law2-1/+5
From-SVN: r236546
2016-05-20This fixes a bug in my r236491: on nvptx, functions without prologueSegher Boessenkool2-0/+6
would not get an epilogue either. * function.c (thread_prologue_and_epilogue_insns): Commit the insertion of the epilogue. From-SVN: r236545
2016-05-20[PR 70884] Constant pool SRA fixMartin Jambor4-27/+86
2016-05-20 Martin Jambor <mjambor@suse.cz> PR tree-optimization/70884 * tree-sra.c (initialize_constant_pool_replacements): Do not check should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits. (sort_and_splice_var_accesses): Do not consider multiple scalar reads of constant pool data as a reason for scalarization. testsuite/ * gcc.dg/tree-ssa/pr70919.c: New test. From-SVN: r236544
2016-05-20constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if ...Nathan Sidwell2-13/+19
* constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if ... goto. (cxx_eval_call_expression): Fix comment grammar. From-SVN: r236543
2016-05-20arm.c (arm_expand_prologue): Set the stack usage to 0 for naked functions.Eric Botcazou2-2/+16
* config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0 for naked functions. (thumb1_expand_prologue): Likewise. From-SVN: r236539
2016-05-20This patch changes some of the dejagnu options to better restrict where the...Bill Seurer4-75/+98
This patch changes some of the dejagnu options to better restrict where the test cases run so that they will no longer cause failures on power7 machines. Based on a subsequent patch I also updated the code formatting (indentation, etc.) for the code from the original patch (r235577) in both the test cases and in rs6000-c.c. [gcc] 2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com> * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Fix code formatting in ALTIVEC_BUILTIN_VEC_ADDE section. [gcc/testsuite] 2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com> * gcc.target/powerpc/vec-adde.c: Change dejagnu options, fix code formatting. * gcc.target/powerpc/vec-adde-int128.c: Change dejagnu options, fix code formatting. From-SVN: r236537
2016-05-20nptx.c (nvptx_option_override): Only set flag_toplevel_reorder, if not ↵Nathan Sidwell4-5/+36
explicitly specified. * config/nvptx/nptx.c (nvptx_option_override): Only set flag_toplevel_reorder, if not explicitly specified. Set flag_no_common, unless explicitly specified. testsuite/ * gcc.target/nvptx/uninit-decl.c: Force common storage, add non-common cases. * gcc.dg/tree-ssa/ssa-store-ccp-2.c: Add -fcommon. From-SVN: r236532
2016-05-20jit: implement gcc_jit_rvalue_set_bool_require_tail_callDavid Malcolm15-38/+433
This implements the libgccjit support for must-tail-call via a new: gcc_jit_rvalue_set_bool_require_tail_call API entrypoint. (I didn't implement a wrapper for this within the C++ bindings) gcc/jit/ChangeLog: * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_6. * docs/topics/expressions.rst (Function calls): Add documentation of gcc_jit_rvalue_set_bool_require_tail_call. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-common.h (gcc::jit::recording::base_call): Add forward decl. * jit-playback.c: Within namespace gcc::jit::playback... (context::build_call) Add "require_tail_call" param and use it to set CALL_EXPR_MUST_TAIL_CALL. (context::new_call): Add "require_tail_call" param. (context::new_call_through_ptr): Likewise. * jit-playback.h: Within namespace gcc::jit::playback... (context::new_call: Add "require_tail_call" param. (context::new_call_through_ptr): Likewise. (context::build_call): Likewise. * jit-recording.c: Within namespace gcc::jit::recording... (base_call::base_call): New constructor. (base_call::write_reproducer_tail_call): New method. (call::call): Update for inheritance from base_call. (call::replay_into): Provide m_require_tail_call to call to new_call. (call::write_reproducer): Call write_reproducer_tail_call. (call_through_ptr::call_through_ptr): Update for inheritance from base_call. (call_through_ptr::replay_into): Provide m_require_tail_call to call to new_call_through_ptr. (recording::call_through_ptr::write_reproducer): Call write_reproducer_tail_call. * jit-recording.h: Within namespace gcc::jit::recording... (rvalue::dyn_cast_base_call): New virtual function. (class base_call): New subclass of class rvalue. (class call): Inherit from base_call rather than directly from rvalue, moving get_precedence and m_args to base_call. (class call_through_ptr): Likewise. * libgccjit.c (gcc_jit_rvalue_set_bool_require_tail_call): New function. * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_rvalue_set_bool_require_tail_call): New macro. (gcc_jit_rvalue_set_bool_require_tail_call): New function. * libgccjit.map (LIBGCCJIT_ABI_6): New. (gcc_jit_rvalue_set_bool_require_tail_call): Add. gcc/testsuite/ChangeLog: * jit.dg/all-non-failing-tests.h: Add test-factorial-must-tail-call.c. * jit.dg/test-error-impossible-must-tail-call.c: New test case. * jit.dg/test-factorial-must-tail-call.c: New test case. From-SVN: r236531
2016-05-20calls.c: fix warning on targets without REG_PARM_STACK_SPACEDavid Malcolm2-1/+6
gcc/ChangeLog: * calls.c (can_implement_as_sibling_call_p): Mark param reg_parm_stack_space with ATTRIBUTE_UNUSED. From-SVN: r236527
2016-05-20re PR fortran/71204 (ICE with -O0 in expand_expr_real_1, at expr.c:9651)Jakub Jelinek4-1/+31
PR fortran/71204 * frontend-passes.c (realloc_string_callback): Clear inserted_block and changed_statement before calling create_var. * gfortran.dg/pr71204.f90: New test. From-SVN: r236525
2016-05-20i386.c (ix86_rtx_costs): Use IS_STACK_MODE when calculating cost of standard ↵Uros Bizjak2-36/+43
80387 constants. * gcc/config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>: Use IS_STACK_MODE when calculating cost of standard 80387 constants. Fallthru to CONST_VECTOR case to calculate cost of standard SSE constants. <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)). (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT and CASE_CONST_ANY. From-SVN: r236524
2016-05-20nvptx.md (sincossf3): New pattern.Cesar Philippidis4-0/+36
gcc/ * config/nvptx/nvptx.md (sincossf3): New pattern. gcc/testsuite/ * gcc.target/nvptx/sincos.c: New test. From-SVN: r236523
2016-05-20re PR c++/70572 (ICE on code with decltype (auto) in digest_init_r, at ↵Paolo Carlini4-0/+25
cp/typeck2.c:1103 with -std=c++14) /cp 2016-05-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70572 * decl.c (cp_finish_decl): Check do_auto_deduction return value and return immediately in case of erroneous code. /testsuite 2016-05-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70572 * g++.dg/cpp1y/auto-fn31.C: New. From-SVN: r236522
2016-05-20Add -mgeneral-regs-only optionH.J. Lu15-2/+193
X86 Linux kernel is compiled only with integer instructions. Currently, -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-80387 -mno-fp-ret-in-387 -mskip-rax-setup is used to compile kernel. If we add another non-integer feature, it has to be turned off. We can add a -mgeneral-regs-only option, similar to AArch64, to disable all non-integer features so that kernel doesn't need a long list and the same option will work for future compilers. It can also be used to compile interrupt handler. gcc/ PR target/70738 * common/config/i386/i386-common.c (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New. (ix86_handle_option): Disable MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only. * config/i386/i386.c (ix86_option_override_internal): Don't enable x87 instructions if only the general registers are allowed. * config/i386/i386.opt: Add -mgeneral-regs-only. * doc/invoke.texi: Document -mgeneral-regs-only. gcc/testsuite/ PR target/70738 * gcc.target/i386/pr70738-1.c: Likewise. * gcc.target/i386/pr70738-2.c: Likewise. * gcc.target/i386/pr70738-3.c: Likewise. * gcc.target/i386/pr70738-4.c: Likewise. * gcc.target/i386/pr70738-5.c: Likewise. * gcc.target/i386/pr70738-6.c: Likewise. * gcc.target/i386/pr70738-7.c: Likewise. * gcc.target/i386/pr70738-8.c: Likewise. * gcc.target/i386/pr70738-9.c: Likewise. From-SVN: r236520
2016-05-20This patch adds support for the signed and unsigned int versions of the...Bill Seurer6-1/+330
This patch adds support for the signed and unsigned int versions of the vec_addec altivec builtins from the Power Architecture 64-Bit ELF V2 ABI OpenPOWER ABI for Linux Supplement (16 July 2015 Version 1.1). There are many of the builtins that are missing and this is part of a series of patches to add them. There aren't instructions for the int versions of vec_addec so the output code is built from other built-ins that do have instructions which in this case is the following. vec_addec (va, vb, carryv) == vec_or (vec_addc (va, vb), vec_addc(vec_add(va, vb), vec_and (carryv, 0x1))) The new test cases are executable tests which verify that the generated code produces expected values. C macros were used so that the same test case could be used for both the signed and unsigned versions. An extra executable test case is also included to ensure that the modified support for the __int128 versions of vec_addec is not broken. The same test case could not be used for both int and __int128 because of some differences in loading and storing the vectors. Bootstrapped and tested on powerpc64le-unknown-linux-gnu and powerpc64-unknown-linux-gnu with no regressions. Is this ok for trunk? [gcc] 2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com> * config/rs6000/rs6000-builtin.def (vec_addec): Change vec_addec to a special case builtin. * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add support for ALTIVEC_BUILTIN_VEC_ADDEC. * config/rs6000/rs6000.c (altivec_init_builtins): Add definition for __builtin_vec_addec. [gcc/testsuite] 2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com> * gcc.target/powerpc/vec-addec.c: New test. * gcc.target/powerpc/vec-addec-int128.c: New test. From-SVN: r236515
2016-05-20Implement CALL_EXPR_MUST_TAIL_CALLDavid Malcolm14-17/+332
This patch implements support for marking CALL_EXPRs as being mandatory for tail-call-optimization. expand_call tries harder to perform the optimization on such CALL_EXPRs, and issues an error if it fails. Currently this flag isn't accessible from any frontend, so the patch uses a plugin for testing the functionality. gcc/ChangeLog: * calls.c (maybe_complain_about_tail_call): New function. (initialize_argument_information): Call maybe_complain_about_tail_call when clearing *may_tailcall. (can_implement_as_sibling_call_p): Call maybe_complain_about_tail_call when returning false. (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set, ensure try_tail_call is set. Call maybe_complain_about_tail_call if tail-call optimization fails. * cfgexpand.c (expand_call_stmt): Initialize CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p. * gimple-pretty-print.c (dump_gimple_call): Dump gimple_call_must_tail_p. * gimple.c (gimple_build_call_from_tree): Call gimple_call_set_must_tail with the value of CALL_EXPR_MUST_TAIL_CALL. * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL. (gimple_call_set_must_tail): New function. (gimple_call_must_tail_p): New function. * print-tree.c (print_node): Update printing of TREE_STATIC to reflect its use for CALL_EXPR_MUST_TAIL_CALL. * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the trailing comment listing applicable flags. * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro. gcc/testsuite/ChangeLog: * gcc.dg/plugin/must-tail-call-1.c: New test case. * gcc.dg/plugin/must-tail-call-2.c: New test case. * gcc.dg/plugin/must_tail_call_plugin.c: New file. * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above. From-SVN: r236514
2016-05-20Introduce can_implement_as_sibling_call_pDavid Malcolm2-38/+83
gcc/ChangeLog: * calls.c (expand_call): Move "Rest of purposes for tail call optimizations to fail" to... (can_implement_as_sibling_call_p): ...this new function, and split into multiple "if" statements. From-SVN: r236513
2016-05-20cfgloop.h (expected_loop_iterations_unbounded, [...]): Unconstify.Jan Hubicka3-12/+35
* cfgloop.h (expected_loop_iterations_unbounded, expected_loop_iterations): Unconstify. * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the profile with known upper bound; return 3 when profile is absent. (expected_loop_iterations): Update. From-SVN: r236511
2016-05-20loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int and ↵Jan Hubicka2-12/+13
get_max_loop_iterations_int. * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int and get_max_loop_iterations_int. From-SVN: r236509
2016-05-20prefetch-5.c: xfail.Jan Hubicka4-7/+17
* gcc.dg/tree-ssa/prefetch-5.c: xfail. * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce realistic upper bounds here. From-SVN: r236508
2016-05-20re PR c++/71210 (internal compiler error: in assign_temp, at function.c:961)Jakub Jelinek5-2/+66
PR c++/71210 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn calls if the LHS is variable length or has addressable type. If targets[0]->decl is a noreturn call with void return type and zero arguments, adjust fntype and remove lhs in that case. * g++.dg/opt/pr71210-1.C: New test. * g++.dg/opt/pr71210-2.C: New test. From-SVN: r236506
2016-05-20re PR target/29756 (SSE intrinsics hard to use without redundant temporaries ↵Jakub Jelinek2-2/+12
appearing) PR tree-optimization/29756 gcc.dg/tree-ssa/vector-6.c: Add -Wno-psabi -w to dg-options. Add -msse2 for x86 and -maltivec for powerpc. Use scan-tree-dump-times only on selected targets where V4SImode vectors are known to be supported. From-SVN: r236505
2016-05-20PR71206: inconsistent types after match.pd transformationMarc Glisse4-1/+21
2016-05-20 Marc Glisse <marc.glisse@inria.fr> PR tree-optimization/71079 PR tree-optimization/71206 gcc/ * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments. gcc/testsuite/ * gcc.dg/tree-ssa/pr71206.c: New testcase. From-SVN: r236504
2016-05-20Add test-cases mentioned in r236502.Prathamesh Kulkarni3-0/+87
From-SVN: r236503
2016-05-20tree-vectorizer.c (get_vec_alignment_for_decl): New static function.Prathamesh Kulkarni3-14/+133
2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * tree-vectorizer.c (get_vec_alignment_for_decl): New static function. (get_vec_alignment_for_array_decl): Likewise. (get_vec_alignment_for_record_decl): Likewise. (increase_alignment::execute): Move code to find alignment to get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl. (type_align_map): New hash_map. testsuite/ * gcc.dg/vect/section-anchors-vect-70.c: New test-case. * gcc.dg/vect/section-anchors-vect-71.c: Likewise. * gcc.dg/vect/section-anchors-vect-72.c: Likewise. From-SVN: r236502
2016-05-20re PR target/29756 (SSE intrinsics hard to use without redundant temporaries ↵Richard Guenther15-6/+312
appearing) 2016-05-20 Richard Guenther <rguenther@suse.de> PR tree-optimization/29756 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code. * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR. * fold-const.c (operand_equal_p): Likewise. (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR. * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR. * tree-inline.c (estimate_operator_cost): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. * cfgexpand.c (expand_debug_expr): Likewise. * gimple-pretty-print.c (dump_ternary_rhs): Likewise. * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR. * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR. * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite vector inserts using BIT_FIELD_REF or MEM_REF on the lhs. (execute_update_addresses_taken): Do it. * gcc.dg/tree-ssa/vector-6.c: New testcase. From-SVN: r236501
2016-05-20re PR target/71185 (ice in gimplify_modify_expr, at gimplify.c:4873)Richard Biener4-0/+27
2016-05-20 Richard Biener <rguenther@suse.de> PR tree-optimization/71185 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop register operations. * gcc.dg/tree-ssa/pr71185.c: New testcase. From-SVN: r236499
2016-05-20tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use ↵Richard Biener4-10/+32
gimple_seq_add_seq_without_update. 2016-05-20 Richard Biener <rguenther@suse.de> * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use gimple_seq_add_seq_without_update. (release_bb_predicate): Assert we have no operands to free. (if_convertible_loop_p_1): Calculate post dominators later. Do not free BB predicates here. (combine_blocks): Do not recompute BB predicates. (version_loop_for_if_conversion): Save BB predicates around loop versioning. * gcc.dg/tree-ssa/ifc-cd.c: Adjust. From-SVN: r236498
2016-05-20Daily bump.GCC Administrator1-1/+1
From-SVN: r236495
2016-05-20function: Restructure *logue insertionSegher Boessenkool4-145/+124
This patch restructures how the prologues/epilogues are inserted. Sibcalls that run without prologue are now handled in shrink-wrap.c; it communicates what is already handled by setting the EDGE_IGNORE flag. The try_shrink_wrapping function then doesn't need to be passed the bb_flags anymore. * function.c (make_epilogue_seq): Remove epilogue_end parameter. (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure code. Ignore sibcalls on EDGE_IGNORE edges. * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE on edges for sibcalls that run without prologue. The rest of the function is combined from... (fix_fake_fallthrough_edge): ... this, and ... (try_shrink_wrapping): ... a part of this. Remove the bb_with function argument, make it a local variable. From-SVN: r236491
2016-05-19cygming.h (DWARF2_UNWIND_INFO): Allow --disable-sjlj-exceptions for ↵Sandra Loosemore3-9/+16
TARGET_BI_ARCH to select DWARF-2 EH for... 2016-05-19 Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH for 32-bit mode and SEH for 64-bit. * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle TARGET_64BIT_DEFAULT. libgcc/ * config.host [x86_64-*-cygwin*]: Handle tmake_eh_file for mixed dw2/seh configuration. [x86_64-*-mingw*]: Likewise. From-SVN: r236490
2016-05-19PR c/71171: Fix uninitialized source_range in c_parser_postfix_expressionDavid Malcolm4-37/+61
A common way for a c_expr to have an uninitialized src_range is in error-handling, where the "value" field is set to error_mark_node without touching the src_range, leading to complaints from valgrind. This patch introduces a new method c_expr::set_error which sets the value to error_mark_node whilst initializing the src_range to UNKNOWN_LOCATION. This fixes the valgrind issue seen in PR c/71171, along with various other related issues seen when running the testsuite using the checker patch I posted here: https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00887.html (this checker still doesn't fully work yet, but it seems to be good for easily detecting these issues without needing Valgrind). gcc/c/ChangeLog: PR c/71171 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error in error-handling. (c_parser_postfix_expression): Likewise. * c-tree.h (c_expr::set_error): New method. * c-typeck.c (parser_build_binary_op): In error-handling, ensure that result's range is initialized. From-SVN: r236488
2016-05-19re PR c++/71075 (Broken diagnostic: 'integer_cst' not supported by 'dump_decl')Marek Polacek4-1/+19
PR c++/71075 * pt.c (unify_template_argument_mismatch): Use %qE instead of %qD. * g++.dg/diagnostic/pr71075.C: New test. From-SVN: r236487
2016-05-19Fix handling of non-dependent calls with default template args.Jason Merrill3-6/+37
PR c++/10200 * pt.c (fn_type_unification): Add outer template args if needed. (type_unification_real): Handle getting full args. From-SVN: r236486
2016-05-19PR c++/71184: Fix NULL dereference in cp_parser_operatorDavid Malcolm4-2/+16
The source-range handling for the array form of operator new/delete erroneously assumed that the "]" was present, leading to a dereference of NULL when it's absent. Fix it thusly. gcc/cp/ChangeLog: PR c++/71184 * parser.c (cp_parser_operator): For array new/delete, check that cp_parser_require returned a non-NULL token before dereferencing it. gcc/testsuite/ChangeLog: PR c++/71184 * g++.dg/pr71184.C: New test case. From-SVN: r236483
2016-05-19Makefile.in (GTFILES): Add cilk.h and cilk-common.c.Ryan Burn3-2/+8
2016-05-16 Ryan Burn <contact@rnburn.com> * Makefile.in (GTFILES): Add cilk.h and cilk-common.c. * gengtype.c (open_base_files): Add cilk.h to ifiles. From-SVN: r236482
2016-05-19sched-deps.c (sched_analyze_2): Also force pending loads from memory.Uros Bizjak2-5/+12
* sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also force pending loads from memory. From-SVN: r236481
2016-05-19darn-0.c: New test.Kelvin Nilsen10-10/+313
gcc/testsuite/ChangeLog: 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/darn-0.c: New test. * gcc.target/powerpc/darn-1.c: New test. * gcc.target/powerpc/darn-2.c: New test. gcc/ChangeLog: 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant. (UNSPEC_DARN_32): New unspec constant. (UNSPEC_DARN_RAW): New unspec constant. (darn_32): New instruction. (darn_raw): New instruction. (darn): New instruction. * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add support and documentation for this macro. (BU_P9_MISC_1): New macro definition. (BU_P9_64BIT_MISC_0): New macro definition. (BU_P9_MISC_0): New macro definition. (darn_32): New builtin definition. (darn_raw): New builtin definition. (darn): New builtin definition. * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef RS6000_BUILTIN_0 directives to surround each occurrence of #include "rs6000-builtin.def". (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and RS6000_BTM_64BIT flags to the returned mask, depending on configuration. (def_builtin): Correct an error in the assignments made to the debugging variable attr_string. (rs6000_expand_builtin): Add support for no-operand built-in functions. (builtin_function_type): Remove fatal_error assertion that is no longer valid. (rs6000_common_init_builtins): Add support for no-operand built-in functions. * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro definition. (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag definition. (RS6000_BTM_64BIT): New macro definition. * doc/extend.texi: Document __builtin_darn (void), __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in functions. From-SVN: r236480
2016-05-19tree-vect-loop.c (vect_analyze_loop_2): Use also max_loop_iterations_int.Jan Hubicka2-0/+7
* tree-vect-loop.c (vect_analyze_loop_2): Use also max_loop_iterations_int. From-SVN: r236478
2016-05-19re PR tree-optimization/71031 (ICE in extract_range_from_binary_expr_1, at ↵Marek Polacek4-9/+51
tree-vrp.c:2535 w/ -Os) PR tree-optimization/71031 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a condition and adjust the code a bit. * gcc.dg/tree-ssa/vrp100.c: New test. From-SVN: r236477
2016-05-19Fix memory leak in tree-vect-stmts.cMartin Liska2-16/+10
* tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize auto_vec instead of vec. From-SVN: r236472
2016-05-19Fix memory leak in tree-parloops.cMartin Liska2-0/+5
* tree-parloops.c (oacc_entry_exit_ok): Release a vector. From-SVN: r236471
2016-05-19Fix memory leak in tree-if-conv.cMartin Liska2-2/+6
* tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs. From-SVN: r236470
2016-05-19Fix memory leak in ipa-pure-constMartin Liska2-6/+15
* ipa-pure-const.c (set_function_state): Remove an existing funct_state. (remove_node_data): Do not free it as it's released in set_function_state. From-SVN: r236469
2016-05-19Fix memory leak in tree-vect-slp.cMartin Liska2-1/+9
* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release bitmap. From-SVN: r236468
2016-05-19Fix memory leak in omp-simd-clone.cMartin Liska2-0/+5
* omp-simd-clone.c (simd_clone_adjust): Release vector. From-SVN: r236467
2016-05-19Fix leak in gcc/tree-ssa-reassoc.c.Martin Liska2-1/+6
* tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate an auto_vec instead of re-creating it. From-SVN: r236466
2016-05-19Fix leak in tree-ssa-loop-prefetch.cMartin Liska2-1/+6
* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use auto_vec instead of vec. From-SVN: r236465
2016-05-19LTO: display file name if LTO version check failsMartin Liska4-5/+14
* lto-section-in.c (lto_get_section_data): Call lto_check_version with additional argument. * lto-streamer.c (lto_check_version): Add new argument. * lto-streamer.h (lto_check_version): Likewise. From-SVN: r236464