aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
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
2016-05-19[ARM] Fix costing of sign-extending load in rtx costsKyrylo Tkachov2-2/+6
* config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case): Don't add cost of inner memory when handling sign-extended loads. From-SVN: r236461
2016-05-19cse.c (cse_main): Free dominance info.Ilya Enkovich4-9/+63
gcc/ * cse.c (cse_main): Free dominance info. (rest_of_handle_cse): Don't free dominance info. (rest_of_handle_cse2): Likewise. (rest_of_handle_cse_after_global_opts): Likewise. gcc/testsuite/ * gcc.dg/pr71148.c: New test. From-SVN: r236460
2016-05-19[ARM] PR target/71056: Don't use vectorized builtins when NEON is not availableKyrylo Tkachov4-1/+49
PR target/71056 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return NULL_TREE early if NEON is not available. Remove now redundant check in ARM_CHECK_BUILTIN_MODE. * gcc.target/arm/pr71056.c: New test. From-SVN: r236459
2016-05-19decl.c (finish_enum_value_list): Use the specified mode.Bernd Edlinger4-0/+24
2016-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de> * decl.c (finish_enum_value_list): Use the specified mode. testsuite: 2016-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-c++-common/pr69669.c: Check the used mode. From-SVN: r236458
2016-05-19re PR sanitizer/64354 (no preprocessor symbol __SANITIZE_THREAD__)Maxim Ostapenko5-0/+30
2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/64354 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch. * doc/cpp.texi: Document new macros. * c-c++-common/tsan/sanitize-thread-macro.c: New test. From-SVN: r236457
2016-05-19re PR tree-optimization/69848 (poor vectorization of a loop from SPEC2006 ↵Bin Cheng2-12/+11
464.h264ref) PR tree-optimization/69848 * tree-vect-loop.c (vectorizable_reduction): Don't factor comparison expr out of VEC_COND_EXPR for COND_REDUCTION. From-SVN: r236447
2016-05-19function: A fix for my previous commitSegher Boessenkool2-5/+10
It failed for targets that have an eh_return pattern with a splitter gated by epilogue_done. * function.c (thread_prologue_and_epilogue_insn): Move the "goto epilogue_done" one block later. From-SVN: r236441
2016-05-19re PR tree-optimization/70729 (Loop marked with omp simd pragma is not ↵Richard Biener17-18/+41
vectorized) 2016-05-19 Richard Biener <rguenther@suse.de> PR tree-optimization/70729 * passes.def: Move LIM pass before PRE. Remove no longer required copyprop and move first DCE out of the loop pipeline. * gcc.dg/autopar/outer-6.c: Adjust to avoid redundant store. * gcc.dg/graphite/scop-18.c: Likewise. * gcc.dg/pr41783.c: Disable LIM. * gcc.dg/tree-ssa/loadpre10.c: Likewise. * gcc.dg/tree-ssa/loadpre23.c: Likewise. * gcc.dg/tree-ssa/loadpre24.c: Likewise. * gcc.dg/tree-ssa/loadpre25.c: Likewise. * gcc.dg/tree-ssa/loadpre4.c: Likewise. * gcc.dg/tree-ssa/loadpre8.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-16.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-18.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-20.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-3.c: Likewise. * gfortran.dg/pr42108.f90: Likewise. From-SVN: r236440
2016-05-19PR driver/69265: add hint for options with misspelled argumentsDavid Malcolm5-3/+33
opts-common.c's cmdline_handle_error handles invalid arguments for options with CL_ERR_ENUM_ARG by building a string listing the valid arguments. By also building a vec of valid arguments, we can use find_closest_string and provide a hint if we see a close misspelling. gcc/ChangeLog: PR driver/69265 * Makefile.in (GCC_OBJS): Move spellcheck.o to... (OBJS-libcommon-target): ...here. * opts-common.c: Include spellcheck.h. (cmdline_handle_error): Build a vec of valid options and use it to suggest provide hints for misspelled arguments. gcc/testsuite/ChangeLog: PR driver/69265 * gcc.dg/spellcheck-options-11.c: New test case. From-SVN: r236439
2016-05-19Daily bump.GCC Administrator1-1/+1
From-SVN: r236438
2016-05-18re PR c++/71100 (Internal compiler error while calling a pointer to member ↵Jakub Jelinek4-1/+31
function that throws) PR c++/71100 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop lhs if it has TREE_ADDRESSABLE type. * g++.dg/opt/pr71100.C: New test. From-SVN: r236430
2016-05-18re PR target/71145 (Alpha: Error: No lda !gpdisp!278 was found)Uros Bizjak2-20/+27
PR target/71145 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)). (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS. From-SVN: r236423
2016-05-18pt.c (value_dependent_expression_p): Tweak new cases to better match the ↵Jason Merrill2-11/+11
wording in the standard. * pt.c (value_dependent_expression_p): Tweak new cases to better match the wording in the standard. From-SVN: r236421
2016-05-18Allow constant global VAR_DECLs in constant jump functionsMartin Jambor8-2/+197
2016-05-18 Martin Jambor <mjambor@suse.cz> PR ipa/69708 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant input for NOP_EXPR pass-through functions. * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow aggregate global constant VAR_DECLs in constant jump functions. testsuite/ * gcc.dg/ipa/iinline-cstagg-2.c: New test. * gcc.dg/ipa/ipcp-cstagg-5.c: Likewise. * gcc.dg/ipa/ipcp-cstagg-6.c: Likewise. * gcc.dg/ipa/ipcp-cstagg-7.c: Likewise. From-SVN: r236418
2016-05-18Const parameters are always unmodifiedMartin Jambor2-0/+11
2016-05-18 Martin Jambor <mjambor@suse.cz> PR ipa/69708 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads from TREE_READONLY parameters. From-SVN: r236417
2016-05-18Indirect inlining of targets from references of global constantsMartin Jambor12-38/+476
2016-05-18 Martin Jambor <mjambor@suse.cz> PR ipa/69708 * cgraph.h (cgraph_indirect_call_info): New field guaranteed_unmodified. * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value to ipa_find_agg_cst_for_param, check guaranteed_unmodified when appropriate. * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also pass the parameter value to ipa_find_agg_cst_for_param. * ipa-prop.c (ipa_load_from_parm_agg): New parameter guaranteed_unmodified, store AA results there instead of bailing out if present. (ipa_note_param_call): Also initialize guaranteed_unmodified flag. (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag. (find_constructor_constant_at_offset): New function. (ipa_find_agg_cst_from_init): Likewise. (ipa_find_agg_cst_for_param): Also seearch for aggregate values in static initializers of contants, report back through a new paameter from_global_constant if that was the case. (try_make_edge_direct_simple_call): Also pass parameter value to ipa_find_agg_cst_for_param, check guaranteed_unmodified when appropriate. (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified. (ipa_read_indirect_edge_info): Likewise. * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration. (ipa_load_from_parm_agg): Likewise. testsuite/ * gcc.dg/ipa/iinline-cstagg-1.c: New test. * gcc.dg/ipa/ipcp-cstagg-1.c: Likewise. * gcc.dg/ipa/ipcp-cstagg-2.c: Likewise. * gcc.dg/ipa/ipcp-cstagg-3.c: Likewise. * gcc.dg/ipa/ipcp-cstagg-4.c: Likewise. From-SVN: r236416
2016-05-18re PR c++/69793 (ICE on invalid code in "cp_lexer_peek_nth_token")Paolo Carlini4-4/+19
/cp 2016-05-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/69793 * parser.c (cp_parser_template_id): Don't call cp_lexer_peek_nth_token when the previous cp_lexer_peek_token returns CPP_EOF. /testsuite 2016-05-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/69793 * g++.dg/template/crash122.C: New. From-SVN: r236414
2016-05-18[Patch, lra] Guard in_class_p with REG_P checkJiong Wang2-1/+8
gcc/ PR rtl-optimization/71150 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P check. From-SVN: r236396
2016-05-18re PR c++/70466 ([ICE on invalid code in tree check: expected constructor, ↵Paolo Carlini5-1/+66
have parm_decl in convert_like_real, at cp/call.c:6371 with -std=c++11) /cp 2016-05-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70466 * call.c (convert_like_real): Check that we are actually converting from an init list. /testsuite 2016-05-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70466 * g++.dg/template/pr70466-1.C: New. * g++.dg/template/pr70466-2.C: Likewise. From-SVN: r236395
2016-05-18re PR target/70915 (Improve loading 0/-1 in VSX registers on PowerPC)Michael Meissner12-118/+694
[gcc] 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/70915 * config/rs6000/constraints.md (wE constraint): New constraint for a vector constant that can be loaded with XXSPLTIB. (wM constraint): New constraint for a vector constant of a 1's. (wS constraint): New constraint for a vector constant that can be loaded with XXSPLTIB and a vector sign extend instruction. * config/rs6000/predicates.md (xxspltib_constant_split): New predicates for wE/wS constraints. (xxspltib_constant_nosplit): Likewise. (easy_vector_constant): Add support for constants that can be loaded via XXSPLTIB. (all_ones_constant): New predicate for vector constant with all 1's set. (splat_input_operand): Add support for ISA 3.0 word splat operations. * config/rs6000/rs6000.c (xxspltib_constant_p): New function to return if a constant can be loaded with the ISA 3.0 XXSPLTIB instruction and possibly with a sign extension. (output_vec_const_move): Add support for XXSPLTIB. If we are loading up 0/-1 into Altivec registers, prefer using VSPLTISW instead of XXLXOR/XXLORC. (rs6000_expand_vector_init): Add support for ISA 3.0 word splat operations. (rs6000_legitimize_reload_address): Likewise. (rs6000_output_move_128bit): Use output_vec_const_move to emit constants. * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and combine VSX_M and VSX_M2 into one iterator. (VSX_M2): Likewise. (VSINT_84): New iterators for loading constants with XXSPLTIB. (VSINT_842): Likewise. (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC. (xxspltib_v16qi): New insns to load up constants with the ISA 3.0 XXSPLTIB instruction. (xxspltib_<mode>_nosplit): Likewise. (xxspltib_<mode>_split): New insn to load up constants with XXSPLTIB and a sign extend instruction. (vsx_mov<mode>): Replace single move that handled all vector types with separate 32-bit and 64-bit moves. Combine the movti_<bit> moves (when -mvsx-timode is in effect) into the main vector moves. Eliminate separate moves for <VSr> <VSa>, where the preferred register class (<VSr>) is listed first, and the secondary register class (<VSa>) is listed second with a '?' to discourage use. Prefer loading 0/-1 in any VSX register for ISA 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so that if the register was involved in a slow operation, the clear/set operation does not wait for the slow operation to finish. Adjust the length attributes for 32-bit mode. Use rs6000_output_move_128bit and drop the use of the string instructions for 32-bit movti when -mvsx-timode is in effect. Use spacing so that the alternatives and attributes don't generate long lines, and put things in columns, so that it is easier to match up the operands and attributes with the insn alternatives. (vsx_mov<mode>_64bit): Likewise. (vsx_mov<mode>_32bit): Likewise. (vsx_movti_64bit): Fold movti into normal vector moves. (vsx_movti_32bit): Likewise. (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word spat instructions. (vsx_splat_v4si_internal): Likewise. (vsx_splat_v4sf_internal): Likewise. (vector fusion peepholes): Use VSX_M instead of VSX_M2. (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign extend vector elements. (vsx_sign_extend_hi_<mode>): Likewise. (vsx_sign_extend_si_v2di): Likewise. * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add declaration. * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS constraints. Add trailing period to wL documentation. [gcc/testsuite] 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/p9-splat-1.c: New tests for ISA 3.0 word splat operations and the XXSPLTIB instruction. * gcc.target/powerpc/p9-splat-2.c: Likewise. * gcc.target/powerpc/p9-splat-3.c: Likewise. * gcc.target/powerpc/pr47755.c: Allow vspltisw in addition to xxlxor to clear a register. From-SVN: r236394
2016-05-18To...Richard Sandiford6-60/+166
To: gcc-patches@gcc.gnu.org Subject: PR 71020: Handle abnormal PHIs in tree-call-cdce.c From: Richard Sandiford <richard.sandiford@arm.com> Gcc: private.sent --text follows this line-- The PR is about a case where tree-call-cdce.c causes two abnormal PHIs for the same variable to be live at the same time, leading to a coalescing failure. It seemed like getting rid of these kinds of input would be generally useful, so I added a utility to tree-dfa.c. Tested on x86_64-linux-gnu. gcc/ PR middle-end/71020 * tree-dfa.h (replace_abnormal_ssa_names): Declare. * tree-dfa.c (replace_abnormal_ssa_names): New function. * tree-call-cdce.c: Include tree-dfa.h. (can_guard_call_p): New function, extracted from... (can_use_internal_fn): ...here. (shrink_wrap_one_built_in_call_with_conds): Remove failure path and return void. (shrink_wrap_one_built_in_call): Likewise. (use_internal_fn): Likewise. (shrink_wrap_conditional_dead_built_in_calls): Update accordingly and return void. Call replace_abnormal_ssa_names. (pass_call_cdce::execute): Check can_guard_call_p during the initial walk. Assume shrink_wrap_conditional_dead_built_in_calls will always change something. gcc/testsuite/ * gcc.dg/torture/pr71020.c: New test. From-SVN: r236393
2016-05-18Respect --param ipa-max-agg-items=0Martin Jambor2-0/+9
2016-05-18 Martin Jambor <mjambor@suse.cz> PR ipa/70646 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early if parameter PARAM_IPA_MAX_AGG_ITEMS is zero. From-SVN: r236390
2016-05-18[PR 70646] Store size to inlining predicate conditionsMartin Jambor5-51/+148
2016-05-18 Martin Jambor <mjambor@suse.cz> PR ipa/70646 * ipa-inline.h (condition): New field size. * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it for comaprison and store it into the new condition. (evaluate_conditions_for_known_args): Use condition size to check access sizes for all but CHANGED conditions. (unmodified_parm_1): New parameter size_p, store access size into it. (unmodified_parm): Likewise. (unmodified_parm_or_parm_agg_item): Likewise. (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p. (set_cond_stmt_execution_predicate): Extract access sizes and store them to conditions. (set_switch_stmt_execution_predicate): Likewise. (will_be_nonconstant_expr_predicate): Likewise. (will_be_nonconstant_predicate): Likewise. (inline_read_section): Stream condition size. (inline_write_summary): Likewise. testsuite/ * gcc.dg/ipa/pr70646.c: New test. From-SVN: r236389
2016-05-18vget_lane.c: Add fp16 tests.Christophe Lyon2-0/+23
* gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: Add fp16 tests. From-SVN: r236388
2016-05-18vreinterpret.c: Add missing tests for vreinterpretq_p{8,16}.Christophe Lyon2-0/+104
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add missing tests for vreinterpretq_p{8,16}. From-SVN: r236387
2016-05-18vsli_n.c: Add checks for vsliq_n_s64 and vsliq_n_u64.Christophe Lyon2-0/+7
* gcc.target/aarch64/advsimd-intrinsics/vsli_n.c: Add checks for vsliq_n_s64 and vsliq_n_u64. From-SVN: r236385
2016-05-18arm-neon-ref.h (CHECK, [...]): Print which type was checked.Christophe Lyon2-3/+9
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK, CHECK_FP, CHECK_CUMULATIVE_SAT): Print which type was checked. From-SVN: r236384
2016-05-18vmul.c: Remove useless #ifdef.Christophe Lyon4-6/+6
* gcc.target/aarch64/advsimd-intrinsics/vmul.c: Remove useless #ifdef. * gcc.target/aarch64/advsimd-intrinsics/vshl.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vtst.c: Likewise. From-SVN: r236383
2016-05-18vreinterpret.c: Fix typo in comment.Christophe Lyon2-1/+6
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Fix typo in comment. From-SVN: r236382