- 09 Jan, 2018 27 commits
-
-
Add a flag -fgo-debug-escape-hash for debugging escape analysis. It takes a binary string, optionally led by a "-", as argument. When specified, the escape analysis runs only on functions whose name is hashed to a value with matching suffix. The "-" sign negates the match, i.e. the analysis runs only on functions with non-matching hash. Reviewed-on: https://go-review.googlesource.com/83878 * lang.opt (fgo-debug-escape-hash): New option. * go-c.h (struct go_create_gogo_args): Add debug_escape_hash field. * go-lang.c (go_langhook_init): Set debug_escape_hash field. * gccgo.texi (Invoking gccgo): Document -fgo-debug-escape-hash. From-SVN: r256393
Cherry Zhang committed -
From-SVN: r256392
Aaron Sawdey committed -
2018-01-09 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83742 * expr.c (gfc_is_simply_contiguous): Check for NULL pointer. 2018-01-09 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/83742 * gfortran.dg/contiguous_6.f90: New test. From-SVN: r256391
Steven G. Kargl committed -
PR libstdc++/59253 (partial) * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator type for pointer stored by shared_ptr, weak_ptr and unique_ptr. (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as children. * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output of unique_ptr printer. * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected output of shared_ptr printer. From-SVN: r256390
Juraj Oršulić committed -
Per gcc/go/go-system.h, this is what it is supposed to be, to support wider platforms. Reviewed-on: https://go-review.googlesource.com/85975 From-SVN: r256389
Ian Lance Taylor committed -
2018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New function. (do_ifelse): New function. (do_isel): New function. (do_sub3): New function. (do_add3): New function. (do_load_mask_compare): New function. (do_overlap_load_compare): New function. (expand_compare_loop): New function. (expand_block_compare): Call expand_compare_loop() when appropriate. * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change option description. (-mblock-compare-inline-loop-limit): New option. From-SVN: r256388
Aaron Sawdey committed -
PR target/83628 * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of op_mode in the force_to_mode call. From-SVN: r256387
Uros Bizjak committed -
This patch makes the AArch64 vec_perm_const code use the new vec_perm_indices routines, instead of checking each element individually. This means that they extend naturally to variable-length vectors. Also, aarch64_evpc_dup was the only function that generated rtl when testing_p is true, and that looked accidental. The patch adds the missing check and then replaces the gen_rtx_REG/start_sequence/ end_sequence stuff with an assert that no rtl is generated. 2018-01-09 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p instead of checking each element individually. (aarch64_evpc_uzp): Likewise. (aarch64_evpc_zip): Likewise. (aarch64_evpc_ext): Likewise. (aarch64_evpc_rev): Likewise. (aarch64_evpc_dup): Test the encoding for a single duplicated element, instead of checking each element individually. Return true without generating rtl if (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test whether all selected elements come from the same input, instead of checking each element individually. Remove calls to gen_rtx_REG, start_sequence and end_sequence and instead assert that no rtl is generated. From-SVN: r256385
Richard Sandiford committed -
The aarch64_legitimate_constant_p tests for HIGH and CONST seem to be the wrong way round: (high (const ...)) is valid rtl that could be passed in, but (const (high ...)) isn't. As it stands, we disallow anchor+offset but allow (high anchor+offset). 2018-01-09 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix order of HIGH and CONST checks. From-SVN: r256384
Richard Sandiford committed -
As mentioned in https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01575.html , the scatter handling in vectorizable_store seems to be dead code at the moment. Enabling it with the vect_analyze_data_ref_access part of that patch triggered an ICE in the avx512f-scatter-*.c tests (which previously didn't use scatters). The problem was that the NARROW and WIDEN handling uses permute_vec_elements to marshal the inputs, and permute_vec_elements expected the lhs of the stmt to be an SSA_NAME, which of course it isn't for stores. This patch makes permute_vec_elements create a fresh variable in this case. 2018-01-09 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable if the destination isn't an SSA_NAME. From-SVN: r256383
Richard Sandiford committed -
2018-01-09 Richard Biener <rguenther@suse.de> PR tree-optimization/83668 * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, move prologue... (canonicalize_loop_form): ... here, renamed from ... (canonicalize_loop_closed_ssa_form): ... this and amended to swap successor edges for loop exit blocks to make us use the RPO order we need for initial schedule generation. * gcc.dg/graphite/pr83668.c: New testcase. From-SVN: r256381
Richard Biener committed -
The folding of comparisons against Inf (to constants or comparisons with the maximum finite value) has various cases where it introduces or loses "invalid" exceptions for comparisons with NaNs. Folding x > +Inf to 0 should not be about HONOR_SNANS - ordered comparisons of both quiet and signaling NaNs should raise invalid. x <= +Inf is not the same as x == x, because again that loses an exception (equality comparisons don't raise exceptions except for signaling NaNs). x == +Inf is not the same as x > DBL_MAX, and a similar issue applies with the x != +Inf case - that transformation causes a spurious exception. This patch fixes the conditionals on the folding to avoid such introducing or losing exceptions. Bootstrapped with no regressions on x86_64-pc-linux-gnu (where the cases involving spurious exceptions wouldn't have failed anyway before GCC 8 because of unordered comparisons wrongly always having formerly been used by the back end). Also tested for powerpc-linux-gnu soft-float that this fixes many glibc math/ test failures that arose in that configuration because this folding affected the IBM long double support in libgcc (no such failures appeared for hard-float because of the bug of powerpc hard-float always using unordered comparisons) - some failures remain, but I believe them to be unrelated. PR tree-optimization/64811 gcc: * match.pd: When optimizing comparisons with Inf, avoid introducing or losing exceptions from comparisons with NaN. gcc/testsuite: * gcc.dg/torture/inf-compare-1.c, gcc.dg/torture/inf-compare-2.c, gcc.dg/torture/inf-compare-3.c, gcc.dg/torture/inf-compare-4.c, gcc.dg/torture/inf-compare-5.c, gcc.dg/torture/inf-compare-6.c, gcc.dg/torture/inf-compare-7.c, gcc.dg/torture/inf-compare-8.c: New tests. * gcc.c-torture/execute/ieee/fp-cmp-7.x: New file. From-SVN: r256380
Joseph Myers committed -
2018-01-09 Martin Liska <mliska@suse.cz> PR sanitizer/82517 * asan.c (shadow_mem_size): Add gcc_assert. From-SVN: r256378
Martin Liska committed -
PR target/79883 * gcc.target/avr/torture/pr57631.c (dg-warning): Quote 'signal'. From-SVN: r256376
Georg-Johann Lay committed -
re PR target/82641 (Unable to enable crc32 for a certain function with target attribute on ARM (aarch32)) 2018-01-09 Tamar Christina <tamar.christina@arm.com> PR target/82641 * gcc.target/arm/pragma_fpu_attribute.c: Rewrite to use no NEON and require softfp or hard float-abi. * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise. From-SVN: r256375
Tamar Christina committed -
From-SVN: r256374
Georg-Johann Lay committed -
gcc/ Don't save registers in main(). PR target/83737 * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. * config/avr/avr.opt (-mmain-is-OS_task): New target option. * config/avr/avr.c (avr_set_current_function): Don't error if naked, OS_task or OS_main are specified at the same time. (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, OS_main. (avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task attribute. * common/config/avr/avr-common.c (avr_option_optimization_table): Switch on -mmain-is-OS_task for optimizing compilations. From-SVN: r256373
Georg-Johann Lay committed -
re PR tree-optimization/83572 ([graphite] ICE in verify_dominators, at dominance.c:1184 (error: dominator of 7 should be 15, not 13)) 2018-01-09 Richard Biener <rguenther@suse.de> PR tree-optimization/83572 * graphite.c: Include cfganal.h. (graphite_transform_loops): Connect infinite loops to exit and remove fake edges at the end. * gcc.dg/graphite/pr83572.c: New testcase. From-SVN: r256372
Richard Biener committed -
From-SVN: r256370
Jan Hubicka committed -
PR ipa/80763 * ipa-comdats.c (set_comdat_group): Only set comdat group of real symbols; not inline clones. From-SVN: r256369
Jan Hubicka committed -
PR target/83507 * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move hard registers. Formatting fixes. * gcc.dg/sms-13.c: New test. From-SVN: r256368
Jakub Jelinek committed -
PR preprocessor/83722 * gcc.c (try_generate_repro): Pass &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to do_report_bug. From-SVN: r256367
Jakub Jelinek committed -
2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org> PR Fortran/83741 * gfortran.dg/allocate_assumed_charlen_3.f90: New test. From-SVN: r256366
Steven G. Kargl committed -
Update the Go library to the 1.10beta1 release. Requires a few changes to the compiler for modifications to the map runtime code, and to handle some nowritebarrier cases in the runtime. Reviewed-on: https://go-review.googlesource.com/86455 gotools/: * Makefile.am (go_cmd_vet_files): New variable. (go_cmd_buildid_files, go_cmd_test2json_files): New variables. (s-zdefaultcc): Change from constants to functions. (noinst_PROGRAMS): Add vet, buildid, and test2json. (cgo$(EXEEXT)): Link against $(LIBGOTOOL). (vet$(EXEEXT)): New target. (buildid$(EXEEXT)): New target. (test2json$(EXEEXT)): New target. (install-exec-local): Install all $(noinst_PROGRAMS). (uninstall-local): Uninstasll all $(noinst_PROGRAMS). (check-go-tool): Depend on $(noinst_PROGRAMS). Copy down objabi.go. (check-runtime): Depend on $(noinst_PROGRAMS). (check-cgo-test, check-carchive-test): Likewise. (check-vet): New target. (check): Depend on check-vet. Look at cmd_vet-testlog. (.PHONY): Add check-vet. * Makefile.in: Rebuild. From-SVN: r256365
Ian Lance Taylor committed -
2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org> * match.c (gfc_match_allocate): Check for NULL pointer. From-SVN: r256364
Steven G. Kargl committed -
2018-01-08 Monk Chiang <sh.chiang04@gmail.com> Kito Cheng <kito.cheng@gmail.com> gcc/ * config/riscv/riscv.c (machine_function::is_leaf): Remove field. (riscv_leaf_function_p): Delete. (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. 2018-01-08 Chih-Mao Chen <pkmx.tw@gmail.com> Monk Chiang <sh.chiang04@gmail.com> gcc/testsuite/ * gcc.target/riscv/save-restore-1.c: New. From-SVN: r256362
Jim Wilson committed -
From-SVN: r256361
GCC Administrator committed
-
- 08 Jan, 2018 13 commits
-
-
[gcc] 2018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/83677 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): Reverse order of second and third operands in first alternative. * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order of first and second elements in UNSPEC_VPERMR vector. (altivec_expand_vec_perm_le): Likewise. [gcc/testsuite] 2018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/83677 * gcc.target/powerpc/pr83677.c: New file. From-SVN: r256358
Bill Schmidt committed -
2018-01-08 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. (CVT_FLOAT128_TO_IBM128): Use TFtype instead of __float128 to accomidate -mabi=ieeelongdouble multilibs. (CVT_IBM128_TO_FLOAT128): Likewise. * config/rs6000/ibm-ldouble.c (IBM128_TYPE): New macro to define the appropriate IBM extended double type. (__gcc_qadd): Change all occurances of long double to IBM128_TYPE. (__gcc_qsub): Likewise. (__gcc_qmul): Likewise. (__gcc_qdiv): Likewise. (pack_ldouble): Likewise. (__gcc_qneg): Likewise. (__gcc_qeq): Likewise. (__gcc_qne): Likewise. (__gcc_qge): Likewise. (__gcc_qle): Likewise. (__gcc_stoq): Likewise. (__gcc_dtoq): Likewise. (__gcc_itoq): Likewise. (__gcc_utoq): Likewise. (__gcc_qunord): Likewise. * config/rs6000/_mulkc3.c (toplevel): Include soft-fp.h and quad-float128.h for the definitions. (COPYSIGN): Use the f128 version instead of the q version. (INFINITY): Likewise. (__mulkc3): Use TFmode/TCmode for float128 scalar/complex types. * config/rs6000/_divkc3.c (toplevel): Include soft-fp.h and quad-float128.h for the definitions. (COPYSIGN): Use the f128 version instead of the q version. (INFINITY): Likewise. (FABS): Likewise. (__divkc3): Use TFmode/TCmode for float128 scalar/complex types. * config/rs6000/extendkftf2-sw.c (__extendkftf2_sw): Likewise. * config/rs6000/trunctfkf2-sw.c (__trunctfkf2_sw): Likewise. From-SVN: r256354
Michael Meissner committed -
2018-01-08 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. (CVT_FLOAT128_TO_IBM128): Use TFtype instead of __float128 to accomidate -mabi=ieeelongdouble multilibs. (CVT_IBM128_TO_FLOAT128): Likewise. * config/rs6000/ibm-ldouble.c (IBM128_TYPE): New macro to define the appropriate IBM extended double type. (__gcc_qadd): Change all occurances of long double to IBM128_TYPE. (__gcc_qsub): Likewise. (__gcc_qmul): Likewise. (__gcc_qdiv): Likewise. (pack_ldouble): Likewise. (__gcc_qneg): Likewise. (__gcc_qeq): Likewise. (__gcc_qne): Likewise. (__gcc_qge): Likewise. (__gcc_qle): Likewise. (__gcc_stoq): Likewise. (__gcc_dtoq): Likewise. (__gcc_itoq): Likewise. (__gcc_utoq): Likewise. (__gcc_qunord): Likewise. * config/rs6000/_mulkc3.c (toplevel): Include soft-fp.h and quad-float128.h for the definitions. (COPYSIGN): Use the f128 version instead of the q version. (INFINITY): Likewise. (__mulkc3): Use TFmode/TCmode for float128 scalar/complex types. * config/rs6000/_divkc3.c (toplevel): Include soft-fp.h and quad-float128.h for the definitions. (COPYSIGN): Use the f128 version instead of the q version. (INFINITY): Likewise. (FABS): Likewise. (__divkc3): Use TFmode/TCmode for float128 scalar/complex types. * config/rs6000/extendkftf2-sw.c (__extendkftf2_sw): Likewise. * config/rs6000/trunctfkf2-sw.c (__trunctfkf2_sw): Likewise. From-SVN: r256353
Michael Meissner committed -
2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org> * expr.c (gfc_check_pointer_assign): Fix typo in comment. From-SVN: r256352
Steven G. Kargl committed -
2018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New function. (do_ifelse): New function. (do_isel): New function. (do_sub3): New function. (do_add3): New function. (do_load_mask_compare): New function. (do_overlap_load_compare): New function. (expand_compare_loop): New function. (expand_block_compare): Call expand_compare_loop() when appropriate. * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change option description. (-mblock-compare-inline-loop-limit): New option. From-SVN: r256351
Aaron Sawdey committed -
PR rtl-optimizatin/81308 * tree-switch-conversion.c (cfg_altered): New file scoped static. (process_switch): If group_case_labels makes a change, then set cfg_altered. (pass_convert_switch::execute): If a switch is converted, then set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. PR rtl-optimizatin/81308 * g++.dg/pr81308-1.C: New test. * g++.dg/pr81308-2.C: New test. From-SVN: r256349
Jeff Law committed -
PR rtl-optimization/81308 * recog.c (split_all_insns): Conditionally cleanup the CFG after splitting insns. From-SVN: r256348
Jeff Law committed -
rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the branch decrement patterns... * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the branch decrement patterns, and added the names of the branch decrement conditional patterns. From-SVN: r256347
Aaron Sawdey committed -
gcc/ 2018-01-08 Vidya Praveen <vidyapraveen@arm.com> PR target/83663 - Revert r255946 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code generation for cases where splatting a value is not useful. * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge across a vec_duplicate and a paradoxical subreg forming a vector mode to a vec_concat. gcc/testsuite/ 2018-01-08 Vidya Praveen <vidyapraveen@arm.com> PR target/83663 - Revert r255946 * gcc.target/aarch64/vect-slp-dup.c: New. From-SVN: r256346
Vidya Praveen committed -
We don't have the t-aprofile, t-multilib and t-arm-elf mapping rules for multilibs when using the variants of -march=armv8.3-a and the dotproduct extension. This patch adds them. -march=armv8.3-a behaves in the same way as -march=armv8.2-a in this regard. Bootstrapped and tested with the aprofile multilib list. Checked that --print-multi-directory gives sensible results with armv8.3-a options and extensions. I've also added some armv8.3-a, fp16 and dotprod combination tests to multilib.exp * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for -march=armv8.3-a variants. * config/arm/t-multilib: Likewise. * config/arm/t-arm-elf: Likewise. Handle dotprod extension. * gcc.target/arm/multilib.exp: Add fp16, dotprod and armv8.3-a combination tests. From-SVN: r256345
Kyrylo Tkachov committed -
2018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it to generate rtl. (cceq_ior_compare_complement): Give it a name so I can use it, and change boolean_or_operator predicate to boolean_operator so it can be used to generate a crand. (eqne): New code iterator. (bd/bd_neg): New code_attrs. (<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into a single define_insn. (<bd>tf_<mode>): A new insn pattern for the conditional form branch decrement (bdnzt/bdnzf/bdzt/bdzf). * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated with the new names of the branch decrement patterns, and added the names of the branch decrement conditional patterns. From-SVN: r256344
Aaron Sawdey committed -
2018-01-08 Richard Biener <rguenther@suse.de> PR tree-optimization/83563 * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV cache. * gcc.dg/graphite/pr83563.c: New testcase. From-SVN: r256343
Richard Biener committed -
2018-01-08 Richard Biener <rguenther@suse.de> PR middle-end/83713 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. * g++.dg/torture/pr83713.C: New testcase. From-SVN: r256341
Richard Biener committed
-