aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-12-102014-12-10 Richard Biener <rguenther@suse.de>Richard Biener2-0/+18
* tree-ssa-loop-im.c (move_computations_dom_walker::before_dom_children): Clear SSA_NAME_RANGE_INFO on moved stmts. From-SVN: r218580
2014-12-10New sreal implementation which uses int64_t as m_sig.Martin Liska4-126/+81
* sreal.c (sreal::shift_right): New implementation for int64_t as m_sig. (sreal::normalize): Likewise. (sreal::to_int): Likewise. (sreal::operator+): Likewise. (sreal::operator-): Likewise. (sreal::operator*): Likewise. (sreal::operator/): Likewise. (sreal::signedless_minus): Removed. (sreal::signedless_plus): Removed. (sreal::debug): const keyword is added. * sreal.h (sreal::operator<): New implementation for int64_t as m_sig. * ipa-inline.c (recursive_inlining): LONG_MIN is replaced with sreal::min (). From-SVN: r218579
2014-12-10re PR ipa/63909 (ICE: SIGSEGV in ipa_icf_gimple::func_checker::compare_bb())Martin Liska5-15/+60
PR ipa/63909 * gimple-iterator.h (gsi_start_bb_nondebug): New function. * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration replaces loop based on precomputed number of non-debug statements. * gcc.dg/ipa/pr63909.c: New test. From-SVN: r218578
2014-12-10linux.c (linux_has_ifunc_p): Remove.Alexander Ivchenko3-12/+5
gcc/ * config/linux.c (linux_has_ifunc_p): Remove. * config/linux.h (TARGET_HAS_IFUNC_P): Use default version. From-SVN: r218577
2014-12-10check_GNU_style.sh "80 characters exceeded" error fixMantas Mikaitis1-0/+5
2014-12-10 Mantas Mikaitis <mantas.mikaitis@arm.com> * contrib/check_GNU_style.sh (col): Got rid of cut operation from the pipe chain and instead added cut inside awk command. From-SVN: r218575
2014-12-10re PR c++/64127 (ICE on invalid: tree check: expected identifier_node, have ↵Kai Tietz2-0/+12
template_id_expr in cp_parser_diagnose_invalid_type_name, at cp/parser.c:2980) PR c++/64127 * g++.dg/cpp/pr64127.C: New file. From-SVN: r218574
2014-12-10re PR c++/64127 (ICE on invalid: tree check: expected identifier_node, have ↵Kai Tietz2-0/+5
template_id_expr in cp_parser_diagnose_invalid_type_name, at cp/parser.c:2980) PR c++/64127 * parser.c (cp_parser_diagnose_invalid_type_name): Check id for being an identifier before accessing it. From-SVN: r218573
2014-12-10re PR c++/64100 (A static assert using the the current class in a noexcept ↵Kai Tietz2-0/+14
test leads to a segfault) PR c++/64100 * g++.dg/template/pr64100.C: New file. From-SVN: r218572
2014-12-10re PR c++/64100 (A static assert using the the current class in a noexcept ↵Kai Tietz2-0/+11
test leads to a segfault) PR c++/64100 * typeck.c (lookup_destructor): Handle incomplete type. From-SVN: r218571
2014-12-10ChangeLog fix for r218307Matthew Fortune1-0/+5
Remove entry from ChangeLog. Insert entry into appropriate location of gcc/ChangeLog. From-SVN: r218570
2014-12-10re PR tree-optimization/64191 (indirect clobbers messes up dead code ↵Richard Biener4-2/+58
elimination in loop calling dtor) 2014-12-10 Richard Biener <rguenther@suse.de> PR tree-optimization/64191 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark clobbers as necessary. (eliminate_unnecessary_stmts): Keep clobbers live if we can. * g++.dg/pr64191.C: Make sure we can DCE empty loops with indirect clobbers. From-SVN: r218566
2014-12-10re PR target/63594 (ICE: in ix86_vector_duplicate_value, at ↵Jakub Jelinek5-127/+95
config/i386/i386.c:39831 with -mavx512f) PR target/63594 * config/i386/sse.md (vec_dupv4sf): Move after <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern. (*vec_dupv4si, *vec_dupv2di): Likewise. (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ... (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this pattern. (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW is set too). * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_PBROADCASTQ256_MEM_MASK, IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and IX86_BUILTIN_PBROADCASTQ512_MEM. (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask, __builtin_ia32_pbroadcastq256_gpr_mask and __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask regardless of OPTION_MASK_ISA_64BIT. * config/i386/avx512fintrin.h (_mm512_set1_epi64, _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask builtins regardless of whether TARGET_64BIT is defined or not. * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64, _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64): Likewise. From-SVN: r218565
2014-12-10sse.md (*mov<mode>_internal, [...]): Use <MODE_SIZE> instead of ↵Jakub Jelinek2-2/+7
GET_MODE_SIZE (<MODE>mode). * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode). From-SVN: r218564
2014-12-10re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)Oleg Endo2-1/+6
gcc/ PR target/53513 * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo. From-SVN: r218563
2014-12-10re PR tree-optimization/61686 (Incorrect check in comparison function ↵Marek Polacek2-1/+7
range_entry_cmp() in tree_ssa_reassoc.c) PR tree-optimization/61686 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of p->high. From-SVN: r218560
2014-12-10libgcc.texi: Update text to match implementation in libgcc/libgcc2.cKito Cheng2-14/+19
* doc/libgcc.texi: Update text to match implementation in libgcc/libgcc2.c From-SVN: r218559
2014-12-10remove gengtype support for param_is use_param, if_marked and splay tree ↵Trevor Saunders13-917/+85
allocators gcc/ * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c, gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h, doc/plugins.texi, doc/gty.texi: Remove support for if_marked and param_is. include/ * hashtab.h, splay-tree.h: Remove GTY markers. From-SVN: r218558
2014-12-09re PR c++/64129 (ICE on invalid: in grokfndecl, at cp/decl.c:7658)Jason Merrill3-0/+22
PR c++/64129 * decl.c (grokdeclarator): Recover from variable template specialization declared as function. From-SVN: r218557
2014-12-09re PR c++/64222 (error: ‘__FUNCTION__’ was not declared in this scope)Jason Merrill3-1/+27
PR c++/64222 * parser.c (cp_parser_unqualified_id): Don't declare fname while parsing function parms. From-SVN: r218556
2014-12-10compiler: Don't track fields in compiler-generated hash and eq funcs.Ian Lance Taylor4-0/+23
Also, lower field tracking calls. From-SVN: r218554
2014-12-10re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)Oleg Endo2-0/+15
gcc/ PR target/53513 * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr): Document it. From-SVN: r218551
2014-12-10Daily bump.GCC Administrator1-1/+1
From-SVN: r218550
2014-12-09re PR middle-end/64225 (-funsafe-math-optimizations generates call to pow ↵Bill Schmidt2-0/+9
where multiply instruction would do) 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR middle-end/64225 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation for BUILT_IN_POW when flag_errno_math is present. From-SVN: r218546
2014-12-09lto-wrapper.c (compile_offload_image): Start processing in_argv from 0 ↵Ilya Verbin2-14/+43
instead of 1. gcc/ * lto-wrapper.c (compile_offload_image): Start processing in_argv from 0 instead of 1. (run_gcc): Put offload objects into offload_argv, put LTO objects and possible preceding arguments into lto_argv. Pass offload_argv to compile_images_for_offload_targets instead of argv. Use lto_argv for LTO recompilation instead of argv. lto-plugin/ * lto-plugin.c (offload_files, num_offload_files): New static variables. (free_1): Use arguments instead of global variables. (free_2): Free offload_files. (all_symbols_read_handler): Add names from offload_files to lto-wrapper arguments. (claim_file_handler): Do not add file to claimed_files if it contains offload sections without LTO sections. Add it to offload_files instead. From-SVN: r218543
2014-12-09toyvm.c: use correct path in debuginfoDavid Malcolm2-8/+34
gcc/jit/ChangeLog: * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile): Move logic for determine "funcname" to new function... (get_function_name): ...here, adding logic to skip any leading path from the filename. (toyvm_function_parse): Use the filename for fn_filename, rather than "name", so that the debugger can locate the source .toy file. (toyvm_function_parse): Don't fclose a NULL FILE *. From-SVN: r218540
2014-12-09(libgcc_s) Optional filename-based shared library versioning on AIX.Michael Haubenwallner2-0/+118
2014-12-09 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> (libgcc_s) Optional filename-based shared library versioning on AIX. * gcc/doc/install.texi: Describe --with-aix-soname option. * Makefile.in (with_aix_soname): Define. * config/rs6000/t-slibgcc-aix: Act upon --with-aix-soname option. * configure.ac: Accept --with-aix-soname=aix|svr4|both option. * configure: Recreate. From-SVN: r218539
2014-12-09PR jit/63854: Document how to run the jit testsuite under valgrindDavid Malcolm3-10/+119
gcc/jit/ChangeLog: PR jit/63854 * docs/internals/index.rst (Running under valgrind): New subsection. (docs/_build/texinfo/libgccjit.texi): Regenerate. From-SVN: r218538
2014-12-09[AArch64]Remove aarch64_get_lanedi, unusedAlan Lawrence2-11/+4
* config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove. From-SVN: r218537
2014-12-09[AArch64]Remove be_checked_get_lane, check bounds with ↵Alan Lawrence29-283/+682
__builtin_aarch64_im_lane_boundsi. gcc/: PR target/63870 * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane): Delete. * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>): Delete. * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi. (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64, __aarch64_vget_lane_p8, __aarch64_vget_lane_p16, __aarch64_vget_lane_s8, __aarch64_vget_lane_s16, __aarch64_vget_lane_s32, __aarch64_vget_lane_s64, __aarch64_vget_lane_u8, __aarch64_vget_lane_u16, __aarch64_vget_lane_u32, __aarch64_vget_lane_u64, __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64, __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16, __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16, __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64, __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16, __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete. (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove 'q2' argument. (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64, __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16, __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16, __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64, __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16, __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64, __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64, __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16, __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16, __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64, __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16, __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument to __aarch64_vdup_lane_any. (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16, vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64, vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64, vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16, vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64, vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64, vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16, vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32, vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8, vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32, vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64, vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64, vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64, vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32, vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16, vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32, vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32, vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16, vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32, vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16, vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32, vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32, vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16, vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32, vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64, vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64, vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32, vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16, vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16, vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use __aarch64_vget_lane_any. gcc/testsuite/: * gcc.target/aarch64/simd/vget_lane_f32_indices_1.c: New test. * gcc.target/aarch64/simd/vget_lane_f64_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_p16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_p8_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_s64_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_s8_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_u16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_u32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_u64_indices_1.c: Likewise. * gcc.target/aarch64/simd/vget_lane_u8_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c: Likewise. * gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c: Likewise. From-SVN: r218536
2014-12-09Add missing PR numbers to ChangeLog. Too late?Alan Lawrence2-0/+6
From-SVN: r218535
2014-12-09[AArch64]Improve error message for non-constant immediatesAlan Lawrence4-5/+18
gcc/: * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error message for SIMD_ARG_CONSTANT. gcc/testsuite/: * gcc.target/aarch64/arg-type-diagnostics-1.c: Call intrinsic, update expected error message. From-SVN: r218534
2014-12-09Add jit-tempdir.{c|h}David Malcolm7-83/+292
gcc/jit/ChangeLog: PR jit/64206 * Make-lang.in (jit_OBJS): Add jit/jit-tempdir.o. * jit-common.h (gcc::jit::tempdir): New forward decl. * jit-playback.c: Include jit-tempdir.h. (gcc::jit::playback::context::context): Initialize m_tempdir. (gcc::jit::playback::context::~context): Move tempdir cleanup to new file jit-tempdir.c (make_tempdir_path_template): Move to new file jit-tempdir.c. (gcc::jit::playback::context::compile): Move tempdir creation to new tempdir object in new file jit-tempdir.c. (gcc::jit::playback::context::make_fake_args): Get path from tempdir object rather than from member data. (gcc::jit::playback::context::convert_to_dso): Likewise. (gcc::jit::playback::context::dlopen_built_dso): Likewise. (gcc::jit::playback::context::dump_generated_code): Likewise. (gcc::jit::playback::context::get_path_c_file): New function. (gcc::jit::playback::context::get_path_s_file): New function. (gcc::jit::playback::context::get_path_so_file): New function. * jit-playback.h (gcc::jit::playback::context::get_path_c_file): New function. (gcc::jit::playback::context::get_path_s_file): New function. (gcc::jit::playback::context::get_path_so_file): New function. (gcc::jit::playback::context): Move fields "m_path_template", "m_path_tempdir", "m_path_c_file", "m_path_s_file", "m_path_so_file" to new jit::tempdir class; add field "m_tempdir". * jit-tempdir.c: New file. * jit-tempdir.h: New file. From-SVN: r218533
2014-12-09[AArch64] Fix ICE on non-constant indices to __builtin_aarch64_im_lane_boundsiAlan Lawrence7-56/+104
gcc/: * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers, TYPES_BINOPV): Delete. (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and AARCH64_SIMD_PATTERN_START. (aarch64_init_simd_builtins): Register __builtin_aarch64_im_lane_boundsi; use AARCH64_SIMD_PATTERN_START. (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use AARCH64_SIMD_PATTERN_START. * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete. * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete. * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New. (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64, __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64, vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16, vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32, vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8, vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32, vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK. gcc/testsuite/: * gcc.target/aarch64/simd/vset_lane_s16_const_1.c: New test. From-SVN: r218532
2014-12-09[AArch64]Fix ICE at -O0 on vld1_lane intrinsicsAlan Lawrence4-184/+218
gcc/: * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2): New. (aarch64_vset_lane_any): Redefine using previous, same for BE + LE. (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16, vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64, vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove number of lanes. (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call __aarch64_vset_lane_any rather than vset_lane_xxx. gcc/testsuite/: * gcc.target/aarch64/vld1_lane-o0.c: New test. From-SVN: r218531
2014-12-09vabs_intrinsic_2.c: New test.Alan Lawrence5-9/+36
gcc/testsuite/: * gcc.target/aarch64/vabs_intrinsic_2.c: New test. From-SVN: r218530
2014-12-09Fix bogus ChangeLog entry from r218521David Malcolm2-42/+42
In r218521 I erroneously added the entries meant for gcc/jit/ChangeLog to gcc/ChangeLog instead. Move them to the correct ChangeLog file. Sorry for the noise. From-SVN: r218529
2014-12-09Guard less code with the JIT mutexDavid Malcolm5-22/+68
gcc/jit/ChangeLog: * jit-playback.c (gcc::jit::playback::context::compile): Acquire the mutex here, immediately before using toplev, and release it here, on each exit path after acquisition. (jit_mutex): Move this variable here, from jit-recording.c. (gcc::jit::playback::context::acquire_mutex): New function, based on code in jit-recording.c. (gcc::jit::playback::context::release_mutex): Likewise. * jit-playback.h (gcc::jit::playback::context::acquire_mutex): New function. (gcc::jit::playback::context::release_mutex): New function. * jit-recording.c (jit_mutex): Move this variable to jit-playback.c. (gcc::jit::recording::context::compile): Move mutex-handling from here into jit-playback.c's gcc::jit::playback::context::compile. * notes.txt: Update to show the new locations of ACQUIRE_MUTEX and RELEASE_MUTEX. From-SVN: r218528
2014-12-09jit-playback.c: Move dlopen code into a new functionDavid Malcolm3-19/+41
gcc/jit/ChangeLog: * jit-playback.c (gcc::jit::playback::context::compile): Move the dlopen code into... (gcc::jit::playback::context::dlopen_built_dso): ...this new function. * jit-playback.h (gcc::jit::playback::context::dlopen_built_dso): New function. From-SVN: r218527
2014-12-09[AArch64] Add TARGET_SCHED_REASSOCIATION_WIDTHWilco Dijkstra3-4/+47
2014-12-09 Wilco Dijkstra <wilco.dijkstra@arm.com> * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation tuning parameters. * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH): Define. (aarch64_reassociation_width): New function. (generic_tunings): Add reassociation tuning parameters. (cortexa53_tunings): Likewise. (cortexa57_tunings): Likewise. (thunderx_tunings): Likewise. From-SVN: r218526
2014-12-09[AARCH64][5/5] Add macro fusion support for cmp/b.X for ThunderXAndrew Pinski2-1/+23
* config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define. (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops. (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH. From-SVN: r218525
2014-12-09jit: Add new testcase missing from r218521David Malcolm1-0/+27
I intended for r218521 to contain this file: gcc/testsuite/ChangeLog: * jit.dg/test-error-unrecognized-dump.c: New file. Add it. From-SVN: r218522
2014-12-09PR jit/64166: Add API entrypoint gcc_jit_context_enable_dumpDavid Malcolm14-153/+662
gcc/jit/ChangeLog: PR jit/64166 * docs/topics/contexts.rst (Debugging): Add description of gcc_jit_context_enable_dump. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-playback.c: Include context.h. (class auto_argvec): New class. (auto_argvec::~auto_argvec): New function. (gcc::jit::playback::context::compile): Convert fake_args to be an auto_argvec, so that it can contain dynamically-allocated strings. Construct a vec of all requested dumps, and pass it to make_fake_args. Extract requested dumps between the calls to toplev::main and toplev::finalize. (gcc::jit::playback::context::make_fake_args): Convert param "argvec" to be a vec <char *>, and gain a "requested_dumps" param. Convert to dynamically-allocated arg strings by converting ADD_ARG to take a copy of the arg, and add ADD_ARG_TAKE_OWNERSHIP for args that are already a copy. Add args for all requested dumps. (gcc::jit::playback::context::extract_any_requested_dumps): New function. (gcc::jit::playback::context::read_dump_file): New function. * jit-playback.h (gcc::jit::playback::context::make_fake_args): Convert param "argvec" to be a vec <char *>, and gain a "requested_dumps" param. (gcc::jit::playback::context::extract_any_requested_dumps): New function. (gcc::jit::playback::context::read_dump_file): New function. * jit-recording.c (gcc::jit::recording::context::enable_dump): New function. (gcc::jit::recording::context::get_all_requested_dumps): New function. * jit-recording.h (gcc::jit::recording::requested_dump): New struct. (gcc::jit::recording::context::enable_dump): New function. (gcc::jit::recording::context::get_all_requested_dumps): New function. (gcc::jit::recording::context::m_requested_dumps): New field. * libgccjit.c (gcc_jit_context_enable_dump): New API entrypoint. * libgccjit.h (gcc_jit_context_enable_dump): New API entrypoint. * libgccjit.map (gcc_jit_context_enable_dump): New API entrypoint. gcc/testsuite/ChangeLog: PR jit/64166 PR jit/64020 * jit.dg/harness.h (CHECK_STRING_CONTAINS): New macro. (check_string_contains): New function. * jit.dg/test-error-unrecognized-dump.c: New file. * jit.dg/test-functions.c (trig_sincos_dump): New variable. (trig_statistics_dump): New variable. (create_test_of_builtin_trig): Enable dumping of "sincos" and "statistics" into "trig_sincos_dump" and "trig_statistics_dump". (verify_test_of_builtin_trig): Verify the sincos and statistics dumps. * jit.dg/test-sum-of-squares.c (dump_vrp1): New variable. (create_code): Enable dumping of "tree-vrp1" into dump_vrp1. (verify_code): Verify the tree-vrp1 dump. From-SVN: r218521
2014-12-09PR jit/64166: Add methods to gcc::dump_manager needed by JIT testingDavid Malcolm3-1/+53
gcc/ChangeLog: PR jit/64166 * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch): New function. (gcc::dump_manager::get_dump_file_name): Split out bulk of implementation into a new overloaded variant taking a dump_file_info *. * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch): New function. (gcc::dump_manager::get_dump_file_name): New overloaded variant of this function, taking a dump_file_info *. From-SVN: r218520
2014-12-09re PR bootstrap/64213 (gimple-match.c:1523:6: error: ‘GIMPLE’ was not ↵Uros Bizjak4-29/+21
declared in this scope) PR bootstrap/64213 Revert: 2014-11-28 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/64037 * combine.c (setup_incoming_promotions): Pass the argument before any promotions happen to promote_function_mode. testsuite/ChangeLog: PR bootstrap/64213 Revert: 2014-11-28 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/64037 * g++.dg/pr64037.C: New test. From-SVN: r218516
2014-12-09re PR tree-optimization/64193 (Decreased performance after r173250)Richard Biener7-3/+60
2014-12-09 Richard Biener <rguenther@suse.de> PR tree-optimization/64193 * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter and valueize the VUSE before looking up the def stmt. * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype. * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize to walk_non_aliased_vuses. (vn_reference_lookup): Likewise. * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize callback to walk_non_aliased_vuses. * gcc.dg/tree-ssa/ssa-fre-43.c: New testcase. From-SVN: r218515
2014-12-09re PR tree-optimization/64199 (ICE: tree check: expected class 'constant', ↵Richard Biener4-2/+20
have 'binary' (plus_expr) in fold_binary_loc, at fold-const.c:10404 with -ffast-math -frounding-math) 2014-12-09 Richard Biener <rguenther@suse.de> PR middle-end/64199 * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P. * gcc.dg/torture/pr64199.c: New testcase. From-SVN: r218513
2014-12-09re PR tree-optimization/64191 (indirect clobbers messes up dead code ↵Richard Biener2-1/+8
elimination in loop calling dtor) 2014-12-09 Richard Biener <rguenther@suse.de> PR tree-optimization/64191 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are not relevant (nor are their uses). From-SVN: r218509
2014-12-09lto-partition.c (privatize_symbol_name): Correctly privatize instrumentation ↵Ilya Enkovich6-10/+61
clones. gcc/ * lto/lto-partition.c (privatize_symbol_name): Correctly privatize instrumentation clones. gcc/testsuite/ * gcc.dg/lto/lto.exp: Load mpx-dg.exp. * gcc.dg/lto/chkp-privatize_0.c: New. * gcc.dg/lto/chkp-privatize_1.c: New. From-SVN: r218508
2014-12-09lto-cgraph.c (input_cgraph_1): Don't break existing instrumentation clone ↵Ilya Enkovich3-1/+33
references. * lto-cgraph.c (input_cgraph_1): Don't break existing instrumentation clone references. * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect instrumented_version references appropriately. From-SVN: r218507
2014-12-09re PR bootstrap/63995 (Bootstrap error with -mmpx -fcheck-pointer-bounds)Ilya Enkovich5-4/+53
gcc/ PR bootstrap/63995 * tree-chkp.c (chkp_make_static_bounds): Share bounds var between nodes sharing assembler name. gcc/testsuite/ PR bootstrap/63995 * g++.dg/dg.exp: Add mpx-dg.exp. * g++.dg/pr63995-1.C: New. From-SVN: r218506