- 17 Nov, 2017 40 commits
-
-
libsanitizer/ * acinclude.m4: Add enable.m4 and cet.m4. * Makefile.in: Regenerate. * asan/Makefile.am: Update AM_CXXFLAGS. * asan/Makefile.in: Regenerate. * configure: Likewise. * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS, EXTRA_CXXFLAGS, EXTRA_ASFLAGS. * interception/Makefile.am: Update AM_CXXFLAGS. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.am: Update AM_CFLAGS, AM_CXXFLAGS. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.am: Update AM_CXXFLAGS. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.am: Update AM_CXXFLAGS, AM_CCASFLAGS. * sanitizer_common/sanitizer_linux_x86_64.S: Include cet.h. Add _CET_ENDBR macro. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.am: Update AM_CXXFLAGS. * tsan/Makefile.in: Regenerate. * tsan/tsan_rtl_amd64.S Include cet.h. Add _CET_ENDBR macro. * ubsan/Makefile.am: Update AM_CXXFLAGS. * ubsan/Makefile.in: Regenerate. From-SVN: r254896
Igor Tsimbalist committed -
libstdc++-v3/ * acinclude.m4: Add cet.m4. * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS, EXTRA_CXX_FLAGS. * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS. * Makefile.in: Regenerate. * configure: Likewise. * doc/Makefile.in: Likewise. * include/Makefile.in: Likewise. * libsupc++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * python/Makefile.in: Likewise. * src/Makefile.in: Likewise. * src/c++11/Makefile.in: Likewise. * src/c++98/Makefile.in: Likewise. * src/filesystem/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. From-SVN: r254895
Igor Tsimbalist committed -
libgomp/ * configure.ac: Set CET_FLAGS, update XCFLAGS and FCFLAGS. * acinclude.m4: Add cet.m4. * configure: Regenerate. * Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. From-SVN: r254894
Igor Tsimbalist committed -
libatomic/ * configure.ac: Set CET_FLAGS, update XCFLAGS. * acinclude.m4: Add cet.m4 and enable.m4. * configure: Regenerate. * Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. From-SVN: r254893
Igor Tsimbalist committed -
libbacktrace/ * configure.ac: Add CET_FLAGS to EXTRA_FLAGS. * aclocal.m4: Regenerate. * Makefile.in: Likewise. * configure: Likewise. From-SVN: r254892
Igor Tsimbalist committed -
crt1.o is used to create dynamic and non-PIE static executables. Static PIE needs to link with rcrt1.o, instead of crt1.o, which is also used by musl libc and OpenBSD: https://gcc.gnu.org/ml/gcc/2015-06/msg00008.html to relocate static PIE at run-time. When -pg is used with -static-pie, grcrt1.o should be used. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use rcrt1.o%s/grcrt1.o%s for -static-pie. From-SVN: r254890
H.J. Lu committed -
* i386.c (ix86_multiplication_cost, ix86_division_cost, ix86_shift_rotate_cost): Break out from ... (ix86_rtx_costs): ... here. (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of vector operations. * gcc.target/i386/xop-imul64-vector.c: Disable vectorizer costmodel. From-SVN: r254889
Jan Hubicka committed -
predict.c (determine_unlikely_bbs): Set cgraph node count to 0 when entry block was promoted unlikely. * predict.c (determine_unlikely_bbs): Set cgraph node count to 0 when entry block was promoted unlikely. (estimate_bb_frequencies): Increase frequency scale. * profile-count.h (profile_count): Export precision info. * gcc.dg/tree-ssa/dump-2.c: Fixup template for profile precision changes. * gcc.dg/tree-ssa/pr77445-2.c: Fixup template for profile precision changes. From-SVN: r254888
Jan Hubicka committed -
* tree-tailcall.c (eliminate_tail_call): Be more careful about not disturbin profile of entry block. From-SVN: r254887
Jan Hubicka committed -
* ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for roundoff errors. From-SVN: r254886
Jan Hubicka committed -
* ipa-cp.c (update_profiling_info): Handle conversion to local profile. * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does. From-SVN: r254885
Jan Hubicka committed -
* gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted from evrp_dom_walker class. Various methods moved into new class. (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class. (evrp_range_analyzer::enter): New method. (evrp_range_analyzer::leave): New method. (evrp_dom_walker): Remove delegators no longer needed by this class. Replace vr_values data member with evrp_range_analyzer From-SVN: r254884
Jeff Law committed -
gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New method extracted from evrp_dom_walker::before_dom_children. * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New method extracted from evrp_dom_walker::before_dom_children. (evrp_dom_walker::record_ranges_from_stmt): Likewise. (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise. From-SVN: r254883
Jeff Law committed -
* gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method. Add private copy constructor and move assignment operators. Privatize methods and class data where trivially possible. (evrp_dom_walker::cleanup): New function, extracted from execute_early_vrp. Simplify access to class data. From-SVN: r254882
Jeff Law committed -
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01515.html * g++.dg/pr82836.C: Fix for c++17. From-SVN: r254881
Nathan Sidwell committed -
* vr-values.h (get_output_for_vrp): Prototype. * vr-values.c (get_output_for_vrp): New function extracted from vrp_visit_assignment_or_call and extract_range_from_stmt. (vrp_visit_assignment_or_call): Use get_output_for_vrp. Simplify. From-SVN: r254880
Jeff Law committed -
Disabling software prefetching and switching the autoprefetcher to weak improves CPU2017 rate and speed benchmarks for both int and fp sets on Falkor. SPECrate 2017 fp is up 0.38% SPECspeed 2017 fp is up 0.54% SPECrate 2017 int is up 3.02% SPECspeed 2017 int is up 3.16% There are only a couple individual regressions. The biggest one being about 4% in parest. For SPEC2006, we've noticed the following: SPECint is up 0.91% SPECfp is stable In the case of SPEC2006 we noticed both a big regression in mcf (about 20%) and a big improvement for hmmer (about 40%). Since the overall result is positive, we would like to make these new tuning settings the default for Falkor. We may revisit the software prefetcher setting in the future, in case we can adjust it enough so it provides us a good balance between improvements and regressions (mcf). But for now it is best if it stays off. 2017-11-17 Luis Machado <luis.machado@linaro.org> gcc/ * config/aarch64/aarch64.c (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1. (qdf24xx_tunings) <autoprefetcher_model>: Set to tune_params::AUTOPREFETCHER_WEAK. From-SVN: r254879
Luis Machado committed -
re PR target/82641 (Unable to enable crc32 for a certain function with target attribute on ARM (aarch32)) 2017-11-17 Tamar Christina <tamar.christina@arm.com> PR target/82641 * config/arm/arm.c (arm_valid_target_attribute_rec): Parse "arch=" and "+<ext>". (arm_valid_target_attribute_tree): Re-init global options. (arm_option_override): Make non-static. (arm_options_perform_arch_sanity_checks): Make errors fatal. * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef. (__ARM_FEATURE_CRC32): Support undef. * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma. * doc/extend.texi (ARM Function Attributes): Add pragma and target. gcc/testsuite/ 2017-11-17 Tamar Christina <tamar.christina@arm.com> PR target/82641 * gcc.target/arm/pragma_arch_attribute.c: New. From-SVN: r254878
Tamar Christina committed -
gcc/ChangeLog: * gdbinit.in (break-on-diagnostic): New command. From-SVN: r254877
David Malcolm committed -
Control-flow Enforcement Technology (CET), published by Intel, introduces the Shadow Stack feature, which ensures a return from a function is done to exactly the same location from where the function was called. When EH is present the control-flow transfer may skip some stack frames and the shadow stack has to be adjusted not to signal a violation of a control-flow transfer. It's done by counting a number of skiping frames and adjasting shadow stack pointer by this number. Having new semantic of the 'ret' instruction if CET is supported in HW the 'ret' instruction cannot be generated in ix86_expand_epilogue when we are returning after EH is processed. Added a code in ix86_expand_epilogue to adjust Shadow Stack pointer and to generate an indirect jump instead of 'ret'. As sp register is used during this adjustment thus the argument in pro_epilogue_adjust_stack is changed to update cfa_reg based on whether control-flow instrumentation is set. Without updating the cfa_reg field there is an assert later in dwarf2 pass related to mismatch the stack register and cfa_reg value. gcc/ * config/i386/i386.c (ix86_expand_epilogue): Change simple return to indirect jump for EH return if control-flow protection is enabled. Change explicit 'false' argument in pro_epilogue_adjust_stack with a value of flag_cf_protection. * config/i386/i386.md (simple_return_indirect_internal): Remove SImode restriction to support 64-bit. libgcc/ * config/i386/linux-unwind.h: Include config/i386/shadow-stack-unwind.h. * config/i386/shadow-stack-unwind.h: New file. * unwind-dw2.c: (uw_install_context): Add a frame parameter and pass it to _Unwind_Frames_Extra. * unwind-generic.h (_Unwind_Frames_Extra): New. * unwind.inc (_Unwind_RaiseException_Phase2): Add frames_p parameter. Add local variable frames to count number of frames. (_Unwind_ForcedUnwind_Phase2): Likewise. (_Unwind_RaiseException): Add local variable frames to count number of frames, pass it to _Unwind_RaiseException_Phase2 and uw_install_context. (_Unwind_ForcedUnwind): Likewise. (_Unwind_Resume): Likewise. (_Unwind_Resume_or_Rethrow): Likewise. From-SVN: r254876
Igor Tsimbalist committed -
This patch makes combine reconsider insns it added notes to. This matters for example if the note is a REG_DEAD; without the note the setter of the register has to be kept around in the result of combinations, so it cannot be a 2->1 combination, and the cost of the result is higher than without that extra set, so try_combine may refuse the combination with the set, but allow it without the set. This fixes a regression for powerpc: pr69946.c has started to fail after the bitfield expansion changes. GCC used to generate lwz 3,0(9) rlwinm 3,3,12,20,23 ori 3,3,0x11 rotldi 3,3,52 bl bar but now it does lwz 3,0(9) rldicr 3,3,32,3 srdi 3,3,48 ori 3,3,0x110 sldi 3,3,48 bl bar (an instruction too many). After this patch it is lwz 3,0(9) rlwinm 3,3,16,16,19 ori 3,3,0x110 sldi 3,3,48 bl bar (the testcase still does not pass, it looks for very specific insns). * combine.c (added_notes_insn): New. (try_combine): Handle added_notes_insn like added_links_insn. Rewrite return value code. (distribute_notes): Set added_notes_insn to the earliest insn we added a note to. From-SVN: r254875
Segher Boessenkool committed -
If we have a PARALLEL of two SETs, and one half is unused, we currently happily split that into two instructions (although the unused one is useless). Worse, as PR82621 shows, combine will happily merge this insn into I3 even if some intervening insn sets the same register again, which is wrong. This fixes it by not splitting PARALLELs with REG_UNUSED notes. It all is handled fine by combine in that case: just the "single set that is unused" case isn't handled properly. This also results in better code: combine will now actually throw away the unused SET. (It still won't do that in an I3). PR rtl-optimization/82621 * combine.c (try_combine): Do not split PARALLELs of two SETs if the dest of one of those SETs is unused. From-SVN: r254874
Segher Boessenkool committed -
This fixes the altivec-macros.c testcase; we now need to explicitly say "no column number" for messages without one. gcc/testsuite/ * gcc.target/powerpc/altivec-macros.c: Include "-:" in the messages matched for. From-SVN: r254873
Segher Boessenkool committed -
From-SVN: r254872
Jason Merrill committed -
PR libstdc++/83025 * include/std/fstream (basic_filebuf::_If_path): Move to namespace-scope and rename to _If_fs_path. (basic_filebuf::open): Use new name. (basic_ifstream(_Path, ios::openmode)) (basic_ifstream::open(_Path, ios::openmode)) (basic_ofstream(_Path, ios::openmode)) (basic_ofstream::open(_Path, ios::openmode)) (basic_fstream(_Path, ios::openmode)) (basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path. * testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename as non-const char*. * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise. * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise. * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise. * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise. * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise. * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise. From-SVN: r254871
Jonathan Wakely committed -
From-SVN: r254870
Henry Linjamäki committed -
2017-11-17 Richard Biener <rguenther@suse.de> PR fortran/83017 * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind. * tree-pretty-print.c (dump_generic_node): Handle annot_expr_parallel_kind. * tree-cfg.c (replace_loop_annotate_in_block): Likewise. * gimplify.c (gimple_boolify): Likewise. fortran/ * trans-stmt.c (gfc_trans_forall_loop): Annotate DO CONCURRENT loops with annot_expr_parallel_kind instead of just annot_expr_ivdep_kind. From-SVN: r254869
Richard Biener committed -
Enable building libgcc with CET options by default on Linux/x86 if binutils supports CET v2.0. It can be disabled with --disable-cet. It is an error to configure GCC with --enable-cet if bintuiils doesn't support CET v2.0. ENDBR instruction is added to __morestack_large_model since it is called indirectly. 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> config/ * cet.m4: New file. gcc/ * config.gcc (extra_headers): Add cet.h for x86 targets. * config/i386/cet.h: New file. * doc/install.texi: Add --enable-cet/--disable-cet. libgcc/ * Makefile.in (configure_deps): Add $(srcdir)/../config/cet.m4. (CET_FLAGS): New. * config/i386/morestack.S: Include <cet.h>. (__morestack_large_model): Add _CET_ENDBR at function entrance. * config/i386/resms64.h: Include <cet.h>. * config/i386/resms64f.h: Likewise. * config/i386/resms64fx.h: Likewise. * config/i386/resms64x.h: Likewise. * config/i386/savms64.h: Likewise. * config/i386/savms64f.h: Likewise. * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add $(CET_FLAGS). (CRTSTUFF_T_CFLAGS): Likewise. * configure.ac: Include ../config/cet.m4. Set and substitute CET_FLAGS. * configure: Regenerated. From-SVN: r254868
Igor Tsimbalist committed -
2017-11-17 Richard Biener <rguenther@suse.de> PR tree-optimization/83017 * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread. (gen_parallel_loop): Properly count iterations. (parallelize_loops): Handle loop->can_be_parallel independent of flag_loop_parallelize_all. Make static profitability test match the runtime one. * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New. * invoke.texi (parloops-min-per-thread): Document. * gcc.dg/autopar/pr49960.c: Adjust. From-SVN: r254867
Richard Biener committed -
Update GLIBC_DYNAMIC_LINKER per glibc upstreaming review comments: http://lists.infradead.org/pipermail/linux-snps-arc/2017-June/002634.html gcc/ * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc upstreaming review comments From-SVN: r254866
Vineet Gupta committed -
2017-11-17 Sudakshina Das <sudi.das@arm.com> * gcc.target/arm/armv8_2-fp16-move-1.c: Edit vmov scan-assembler directives. From-SVN: r254863
Sudakshina Das committed -
2017-11-17 Tamar Christina <tamar.christina@arm.com> * expr.c (copy_blkmode_to_reg): Fix bitsize for targets with fast unaligned access. * doc/sourcebuild.texi (word_mode_no_slow_unalign): New. gcc/testsuite/ 2017-11-17 Tamar Christina <tamar.christina@arm.com> * gcc.dg/struct-simple.c: New. * lib/target-supports.exp (check_effective_target_word_mode_no_slow_unalign): New. From-SVN: r254862
Tamar Christina committed -
Testcase gcc.target/arm/cmse/cmse-14.c checks whether bar is called via __gnu_cmse_nonsecure_call libcall and not via a direct call. However the pattern is a bit surprising in that it needs to explicitely allow "by" due to allowing anything before the 'b'. This patch rewrites the logic to look for b as a first non-whitespace letter followed iby anything (to match bl and conditional branches) followed by some spaces and then bar. 2017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * gcc.target/arm/cmse/cmse-14.c: Change logic to match branch instruction to bar. From-SVN: r254861
Thomas Preud'homme committed -
Some of the tests in the gcc.target/arm/cmse directory (eg. gcc.target/arm/cmse/mainline/bitfield-4.c) are failing when run without an architecture specified in RUNTESTFLAGS due to them not adding the option to select an Armv8-M architecture. This patch fixes the issue by adding the right option from the exp file so that no architecture fiddling is necessary in the individual tests. 2017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * gcc.target/arm/cmse/cmse.exp: Add option to select Armv8-M Baseline or Armv8-M Mainline when running the respective tests. * gcc.target/arm/cmse/baseline/cmse-11.c: Remove architecture check and selection. * gcc.target/arm/cmse/baseline/cmse-13.c: Likewise. * gcc.target/arm/cmse/baseline/cmse-2.c: Likewise. * gcc.target/arm/cmse/baseline/cmse-6.c: Likewise. * gcc.target/arm/cmse/baseline/softfp.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-8.c: Likewise. From-SVN: r254860
Thomas Preud'homme committed -
Commit r253825 which introduced some sanity checks for sbitmap revealed a bug in the conversion of cmse_nonsecure_entry_clear_before_return () to using bitmap structure. bitmap_and expects that the two bitmaps have the same length, yet the code in cmse_nonsecure_entry_clear_before_return () have different size for to_clear_bitmap and to_clear_arg_regs_bitmap, with the assumption that bitmap_and would behave has if the bits not allocated were in fact zero. This commit makes sure both bitmap are equally sized. 2017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate to_clear_arg_regs_bitmap to the same size as to_clear_bitmap. From-SVN: r254859
Thomas Preud'homme committed -
2017-11-17 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (phi_translate_1): Remove redundant constant folding of references. From-SVN: r254858
Richard Biener committed -
PR testsuite/82997 * gcc.dg/cpp/macsyntx.c (var1, rest): Don't expect "requires at least one" warning. * gcc.dg/cpp/sysmac1.c (foo): Likewise. * gcc.dg/cpp/macsyntx2.c: New test. * gcc.dg/cpp/sysmac3.c: New test. * gcc.dg/cpp/sysmac3.h: New file. From-SVN: r254857
Jakub Jelinek committed -
2017-11-15 Qing Zhao <qing.zhao@oracle.com> PR middle-end/78809 * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling of replacing call to strncmp with corresponding call to strcmp when meeting conditions. PR middle-end/78809 * gcc.dg/strcmpopt_1.c: New test. From-SVN: r254856
Qing Zhao committed -
gcc/ * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning option prefer-avx256 for skylake-avx512 configuration. * config/i386/i386.c (ix86_option_override_internal): Ditto. (get_builtin_code_for_version): Ditto. From-SVN: r254855
Sergey Shalnov committed -
gcc/ * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify. (FIXED_REGISTERS): Reserve more register numbers. (CALL_USED_REGISTERS): Likewise. (REG_ALLOC_ORDER): Likewise. (REG_CLASS_CONTENTS): Likewise. (REGISTER_NAMES): Likewise. Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com> From-SVN: r254854
Chung-Ju Wu committed
-