aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2020-10-15[Ada] Ada2020: AI12-0180 Using subprograms and entries in invariantsBob Duff2-10/+19
gcc/ada/ * sem_ch13.adb (Visible_Component): Enable this code for task and protected types, as well as record and private types. * sem_ch13.ads (Replace_Type_References_Generic): Update comment. Move the efficiency comment into the body, because it's about the implementation.
2020-10-15[Ada] Warn on unknown aspectArnaud Charlet2-6/+8
gcc/ada/ * par-ch13.adb (Get_Aspect_Specifications): Generate a warning rather than an error on unknown aspects unless -gnatd2 is used. (Aspect_Specifications_Present): Improve detection of unknown aspects. * debug.adb (Debug_Flag_2): Update document.
2020-10-15[Ada] Complete support for static intrinsic functionsArnaud Charlet1-0/+1
gcc/ada/ * sem_res.adb (Resolve_Call): Do not try to inline intrinsic calls.
2020-10-15[Ada] Ada_2020: Add aspect Aggregate to standard container unitsEd Schonberg24-26/+200
gcc/ada/ * exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires a non-private type. * sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to Resolve_Aspect_Aggregate, to handle the case when the corresponding name appearing in the aspect specification for an indexed aggregate is an overloaded operation. * libgnat/a-convec.ads, libgnat/a-convec.adb, libgnat/a-coinve.ads, libgnat/a-coinve.adb, libgnat/a-cobove.ads, libgnat/a-cobove.adb, libgnat/a-cdlili.ads, libgnat/a-cdlili.adb, libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb, libgnat/a-cohama.ads, libgnat/a-cihama.ads, libgnat/a-cbhama.ads, libgnat/a-cborma.ads, libgnat/a-ciorma.ads, libgnat/a-coorma.ads, libgnat/a-cihase.ads, libgnat/a-cohase.ads, libgnat/a-cbhase.ads, libgnat/a-cborse.ads, libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect Aggregate to types declared in standard containers, as well as new subprograms where required.
2020-10-15[Ada] Add iterators over GNAT.Array_Split.Slice_SetArnaud Charlet2-11/+51
gcc/ada/ * libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create, First_Cursor, Advance, Has_Element): New.
2020-10-15[Ada] AI12-0385 Predefined shifts and rotates should be staticArnaud Charlet4-4/+212
gcc/ada/ * Makefile.rtl: Add target pair for interfac.ads. * libgnat/interfac.ads: Add a comment. * libgnat/interfac__2020.ads: New, used for bootstrap purposes. * sem_util.adb (Is_Static_Function): Always return False for pre Ada 2020 to e.g. ignore the Static aspect in Interfaces for Ada < 2020.
2020-10-15[Ada] Do not remove side effects from any object declarations in SPARKPiotr Trojanek1-10/+9
gcc/ada/ * exp_util.adb (Remove_Side_Effects): Move special-casing for GNATprove to be applied to all object declarations.
2020-10-15tree-optimization/97482 - fix split_constant_offset of nop-conversionsRichard Biener3-1/+48
split_constant_offset is confused about a nop-conversion from unsigned long to sizetype and tries to prove non-overflowing of the inner operation. Obviously the conversion could have been elided so make sure split_constant_offset handles this properly. It also makes sure that convert_to_ptrofftype does not introduce conversions not necessary which in this case is the source for the unnecessary conversion. 2020-10-15 Richard Biener <rguenther@suse.de> PR tree-optimization/97482 * tree-data-ref.c (split_constant_offset_1): Handle trivial conversions better. * fold-const.c (convert_to_ptrofftype_loc): Elide conversion if the offset is already ptrofftype_p. * gcc.dg/vect/pr97428.c: New testcase.
2020-10-15[nvptx, testsuite] Remove xfail for PR84958Tom de Vries1-1/+1
The xfail in gcc.dg/tree-ssa/pr84512.c for PR84958 has started to xpass, presumably because of commit 744fd446c32 "tree-ssa-sccvn.c (class pass_fre): Add may_iterate pass parameter". Remove the xfail. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * gcc.dg/tree-ssa/pr84512.c: Remove xfail for nvptx.
2020-10-15[nvptx, testsuite] Fix xpass with ident-0b.cTom de Vries1-0/+1
For nvptx, I see: ... XPASS: c-c++-common/ident-0b.c -Wc++-compat scan-assembler-not GCC: ... Fix this by requiring effective target ident_directive. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * c-c++-common/ident-0b.c: Require effective target ident_directive.
2020-10-15[nvptx, testsuite] Remove dg-skip-if for ptxas oomTom de Vries1-1/+0
There's a dg-skip-if for nvptx that is related to ptxas oom. If I remove it, the test-case passes for me (with ptxas from cuda 9.1). I've tested it on a range of cudas, from 5.0 to 11.1 and did not manage to reproduce the fail. Remove the dg-skip-if. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * gcc.c-torture/compile/limits-externdecl.c: Remove dg-skip-if for nvptx.
2020-10-15[nvptx, testsuite] Disable default xfailsTom de Vries2-3/+3
For nvptx, I run into a couple of XPASSes due to nvptx not being listed in: ... { xfail { ! { long list of targets } } } ... Add nvptx to the list to get a PASS. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * gcc.dg/attr-alloc_size-11.c: Don't xfail for nvptx. * gcc.dg/tree-ssa/20040204-1.c: Same.
2020-10-15[nvptx, testsuite] Remove dg-skip-if for ptxas crash fixed in cuda 8.0Tom de Vries1-1/+0
The test-case gcc.c-torture/execute/pr68185.c has a dg-skip-if for nvptx due to "ptxas crashes or executes incorrectly". I've managed to reproduce the problem using cuda 7.5: ... FAIL: gcc.c-torture/execute/pr68185.c -O0 (test for excess errors) Excess errors: nvptx-as: ptxas terminated with signal 11 [Segmentation fault], core dumped ... but it's fixed starting cuda 8.0. Remove the dg-skip-if. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * gcc.c-torture/execute/pr68185.c: Remove dg-skip-if for nvptx.
2020-10-15[nvptx, testsuite] Remove dg-skip-if for ptxas crashesTom de Vries1-2/+0
There's a dg-skip-if for nvptx that is related to a ptxas crash. If I remove it, the test-case passes for me (with ptxas from cuda 9.1). I've tested this on a range of cudas, from 5.0 to 11.1 and did not manage to reproduce the fail. Remove the dg-skip-if. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * gcc.c-torture/execute/981019-1.c: Remove dg-skip-if for nvptx.
2020-10-15[nvptx, testsuite] Remove xpassing xfails for ptxas crashesTom de Vries6-6/+0
There's a couple of nvptx xfails that are related to ptxas crashes, which are xpassing for me (with ptxas from cuda 9.1). I've tested these on a range of cudas, from 5.0 to 11.1 and did not manage to reproduce the fails. Remove the xfails. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-15 Tom de Vries <tdevries@suse.de> * gcc.c-torture/compile/pr42717.c: Remove nvptx xfail. * gcc.c-torture/compile/pr61684.c: Same. * gcc.c-torture/execute/pr20601-1.c: Same. * gcc.c-torture/execute/pr52129.c: Same. * gcc.c-torture/execute/pr59221.c: Same. * gcc.dg/pr68671.c: Same.
2020-10-15testsuite: Partially fix up modref-*.c testsJakub Jelinek2-11/+13
This ia a partial attempt to fix: FAIL: gcc.dg/ipa/modref-1.c (test for excess errors) FAIL: gcc.dg/ipa/modref-1.c scan-ipa-dump modref "param offset: 1" FAIL: gcc.dg/ipa/modref-1.c scan-ipa-dump modref "param offset: 2" FAIL: gcc.dg/tree-ssa/modref-4.c (test for excess errors) FAIL: gcc.dg/tree-ssa/modref-4.c scan-tree-dump modref1 "param offset: 1" UNRESOLVED: gcc.dg/tree-ssa/modref-4.c scan-tree-dump modref2 "param offset: 2" UNRESOLVED: gcc.dg/tree-ssa/modref-4.c scan-tree-dump modref2 "return 0" The return 0 scan still FAILs. 2020-10-15 Jakub Jelinek <jakub@redhat.com> * gcc.dg/ipa/modref-1.c: Remove space between param offset: and number in scan-ipa-dump. (b): Declare return type to void. (main): Declare return type to int. Change c to array of 3 chars. * gcc.dg/tree-ssa/modref-4.c: Remove space between param offset: and number in scan-ipa-dump. Use modref1 instead of modref2. (b): Declare return type to void. (main): Declare return type to int. Change c to array of 3 chars.
2020-10-15IPA: fix profile handling in IRAMartin Liska2-3/+4
gcc/ChangeLog: PR ipa/97295 * profile-count.c (profile_count::to_frequency): Move part of gcc_assert to STATIC_ASSERT. * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for a function that does not have count_max initialized.
2020-10-15params: Fix up help.exp testingJakub Jelinek1-1/+1
This patch fixes: Running /usr/src/gcc/gcc/testsuite/gcc.misc-tests/help.exp ... FAIL: compiler driver --help=params option(s): "[^.]$" absent from output: "y" FAIL: compiler driver --help=param option(s): "^ +-.*[^:.]$" absent from output: " --param-ipa-jump-function-lookups= Maximum number of statements visited during jump function offset discovery" 2020-10-15 Jakub Jelinek <jakub@redhat.com> * params.opt (-param-ipa-jump-function-lookups=): Add full stop at the end of the parameter description.
2020-10-15RISC-V: Add support for -mcpu option.Kito Cheng15-61/+356
- The behavior of -mcpu basically equal to -march plus -mtune, but it has lower priority than -march and -mtune. - The behavior and available options has sync with clang except we don't add few LLVM specific value, and add more sifive processor to the list. - -mtune also accept all available options of -mcpu, and use it setting. gcc/ChangeLog: * common/config/riscv/riscv-common.c (riscv_cpu_tables): New. (riscv_arch_str): Return empty string if current_subset_list is NULL. (riscv_find_cpu): New. (riscv_handle_option): Verify option value of -mcpu. (riscv_expand_arch): Using std::string. (riscv_default_mtune): New. (riscv_expand_arch_from_cpu): Ditto. * config/riscv/riscv-cores.def: New. * config/riscv/riscv-protos.h (riscv_find_cpu): New. (riscv_cpu_info): New. * config/riscv/riscv.c (riscv_tune_info): Rename ... (riscv_tune_param): ... to this. (riscv_cpu_info): Rename ... (riscv_tune_info): ... to this. (tune_info): Rename ... (tune_param): ... to this. (rocket_tune_info): Update data type name. (sifive_7_tune_info): Ditto. (optimize_size_tune_info): Ditto. (riscv_cpu_info_table): Rename ... (riscv_tune_info_table): ... to this. (riscv_parse_cpu): Rename ... (riscv_parse_tune): ... to this, and translate valid -mcpu option to -mtune option. (riscv_rtx_costs): Rename tune_info to tune_param. (riscv_class_max_nregs): Ditto. (riscv_memory_move_cost): Ditto. (riscv_init_machine_status): Use value of -mcpu if -mtune is not given, and rename tune_info to tune_param. * config/riscv/riscv.h (riscv_expand_arch_from_cpu): New. (riscv_default_mtune): Ditto. (EXTRA_SPEC_FUNCTIONS): Add riscv_expand_arch_from_cpu and riscv_default_mtune. (OPTION_DEFAULT_SPECS): Handle default value of -march/-mabi. (DRIVER_SELF_SPECS): Expand -march from -mcpu if -march is not given. * config/riscv/riscv.opt (-mcpu): New option. * config/riscv/t-riscv ($(common_out_file)): Add riscv-cores.def to dependency. * doc/invoke.texi (RISC-V Option): Add -mcpu, and update the description of default value for -mtune and -march. gcc/testsuite/ChangeLog: * gcc.target/riscv/mcpu-1.c: New. * gcc.target/riscv/mcpu-2.c: Ditto. * gcc.target/riscv/mcpu-3.c: Ditto. * gcc.target/riscv/mcpu-4.c: Ditto. * gcc.target/riscv/mcpu-5.c: Ditto. * gcc.target/riscv/mcpu-6.c: Ditto. * gcc.target/riscv/mcpu-7.c: Ditto.
2020-10-15Enable Intel HRESET InstructionHongyu Wang24-14/+140
gcc/ * common/config/i386/cpuinfo.h (get_available_features): Detect HRESET. * common/config/i386/i386-common.c (OPTION_MASK_ISA2_HRESET_SET, OPTION_MASK_ISA2_HRESET_UNSET): New macros. (ix86_handle_option): Handle -mhreset. * common/config/i386/i386-cpuinfo.h (enum processor_features): Add FEATURE_HRESET. * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY for hreset. * config.gcc: Add hresetintrin.h * config/i386/hresetintrin.h: New header file. * config/i386/x86gprintrin.h: Include hresetintrin.h. * config/i386/cpuid.h (bit_HRESET): New. * config/i386/i386-builtin.def: Add new builtin. * config/i386/i386-expand.c (ix86_expand_builtin): Handle new builtin. * config/i386/i386-c.c (ix86_target_macros_internal): Define __HRESET__. * config/i386/i386-options.c (isa2_opts): Add -mhreset. (ix86_valid_target_attribute_inner_p): Handle hreset. * config/i386/i386.h (TARGET_HRESET, TARGET_HRESET_P, PTA_HRESET): New. (PTA_ALDERLAKE): Add PTA_HRESET. * config/i386/i386.opt: Add option -mhreset. * config/i386/i386.md (UNSPECV_HRESET): New unspec. (hreset): New define_insn. * doc/invoke.texi: Document -mhreset. * doc/extend.texi: Document hreset. gcc/testsuite/ * gcc.target/i386/hreset-1.c: New test. * gcc.target/i386/funcspec-56.inc: Add new target attribute. * gcc.target/i386/x86gprintrin-1.c: Add -mhreset. * gcc.target/i386/x86gprintrin-2.c: Ditto. * gcc.target/i386/x86gprintrin-3.c: Ditto. * gcc.target/i386/x86gprintrin-4.c: Add mhreset. * gcc.target/i386/x86gprintrin-5.c: Ditto.
2020-10-15Enable gcc support for UINTRliuhongt31-8/+278
2020-05-20 Hongtao Liu <hongtao.liu@intel.com> gcc/ * common/config/i386/cpuinfo.h (get_available_features): Detect UINTR. * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET OPTION_MASK_ISA2_UINTR_UNSET): New. (ix86_handle_option): Handle -muintr. * common/config/i386/i386-cpuinfo.h (enum processor_features): Add FEATURE_UINTR. * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY for uintr. * config.gcc: Add uintrintrin.h to extra_headers. * config/i386/uintrintrin.h: New. * config/i386/cpuid.h (bit_UINTR): New. * config/i386/i386-builtin-types.def: Add new types. * config/i386/i386-builtin.def: Add new builtins. * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add __builtin_ia32_testui. * config/i386/i386-builtins.h (ix86_builtins): Add IX86_BUILTIN_TESTUI. * config/i386/i386-c.c (ix86_target_macros_internal): Define __UINTR__. * config/i386/i386-expand.c (ix86_expand_special_args_builtin): Handle UINT8_FTYPE_VOID. (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI. * config/i386/i386-options.c (isa2_opts): Add -muintr. (ix86_valid_target_attribute_inner_p): Handle UINTR. (ix86_option_override_internal): Add TARGET_64BIT check for UINTR. * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New. (PTA_SAPPHIRRAPIDS): Add PTA_UINTR. * config/i386/i386.opt: Add -muintr. * config/i386/i386.md (define_int_iterator UINTR_UNSPECV): New. (define_int_attr uintr_unspecv): New. (uintr_<uintr_unspecv>, uintr_senduipi, testui): New define_insn patterns. * config/i386/x86gprintrin.h: Include uintrintrin.h * doc/invoke.texi: Document -muintr. * doc/extend.texi: Document uintr. gcc/testsuite/ * gcc.target/i386/funcspec-56.inc: Add new target attribute. * gcc.target/i386/uintr-1.c: New test. * gcc.target/i386/uintr-2.c: Ditto. * gcc.target/i386/uintr-3.c: Ditto. * gcc.target/i386/uintr-4.c: Ditto. * gcc.target/i386/uintr-5.c: Ditto. * gcc.target/i386/x86gprintrin-1.c: Add -muintr for 64bit target. * gcc.target/i386/x86gprintrin-2.c: Ditto. * gcc.target/i386/x86gprintrin-3.c: Ditto. * gcc.target/i386/x86gprintrin-4.c: Add muintr for 64bit target. * gcc.target/i386/x86gprintrin-5.c: Ditto.
2020-10-15Daily bump.GCC Administrator7-1/+448
2020-10-14libgo: print reason code if throwing unwind exception failsNikhil Benesch1-1/+1
Calls to _Unwind_RaiseException and friends *can* return due to bugs in libgo or memory corruption. When this occurs, print a message to stderr with the reason code before aborting to aid debugging. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261257
2020-10-14PR middle-end/97391 - bogus -Warray-bounds accessing a multidimensional ↵Martin Sebor2-5/+120
array parameter gcc/ChangeLog: PR middle-end/97391 * builtins.c (gimple_parm_array_size): Peel off one less layer of array types. gcc/testsuite/ChangeLog: PR middle-end/97391 * gcc.dg/Warray-bounds-68.c: New test.
2020-10-14PR c/97413 - bogus error on function declaration with many VLA argumentsMartin Sebor3-4/+97
gcc/ChangeLog: PR c/97413 * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer. gcc/c-family/ChangeLog: PR c/97413 * c-attribs.c (build_attr_access_from_parms): Wrap chain of VLA bounds in an extra list. gcc/testsuite/ChangeLog: PR c/97413 * gcc.dg/Wvla-parameter-8.c: New test.
2020-10-14[testsuite] Don't overwrite compiler_flags in check_compileTom de Vries1-0/+3
Consider the test-case gcc.c-torture/compile/pr42717.c, which has: ... /* { dg-xfail-if "ptxas crashes" { nvptx-*-* } { "-O0" } { "" } } */ ... When running make check-gcc, I get: ... XPASS: gcc.c-torture/compile/pr42717.c -O0 (test for excess errors) ... but when forcing to run only that test-case using RUNTESTFLAGS=compile.exp=pr42717.c I get instead: ... PASS: gcc.c-torture/compile/pr42717.c -O0 (test for excess errors) ... Using RUNTESTFLAGS="-v -v -v" we can see what happens: ... check_cached_effective_target exceptions_enabled: \ returning 1 for nvptx-none-run Limited to targets: *-*-* Will search for options "-O0" Will exclude for options "" Compiler flags are: exceptions_enabled9848.cc -fdiagnostics-plain-output \ --sysroot=/home/vries/nvptx/trunk/install/nvptx-none -S -isystem \ /home/vries/nvptx/trunk/build-gcc/nvptx-none/./newlib/targ-include \ -isystem /home/vries/nvptx/trunk/source-gcc/newlib/libc/include \ -o exceptions_enabled9848.s Checking "*-*-*" against "nvptx-unknown-none" Looking for -O0 to include in the compiler flags Looking for to exclude in the compiler flags This is not a conditional match PASS: gcc.c-torture/compile/pr42717.c -O0 (test for excess errors) ... The effective target exceptions_enabled is tested from gcc-dg-prune, but the calculation overwrites $compiler_flags, which is subsequently tested for -O0. Fix this by saving and restoring $compiler_flags when calling ${tool}_target_compile in check_compile. Tested on nvptx. gcc/testsuite/ChangeLog: 2020-10-14 Tom de Vries <tdevries@suse.de> * lib/target-supports.exp (check_compile): Save and restore $compiler_flags when calling ${tool}_target_compile.
2020-10-14libgo: export NetBSD-specific types in mksysinfo.shNikhil Benesch1-1/+1
The syscall package depends on many NetBSD-specific types on NetBSD. Teach mksysinfo.sh to export these types. This alone is not sufficient to get the syscall package to compile on NetBSD, but it's a start. Note that the IfMsgHdr type is recapitalized to IfMsghdr, which requires changes in the AIX port. The new capitalization is what's used by upstream in existing NetBSD-specific code and is more consistent with the capitalization of other C structs with the "hdr" suffix. Updates golang/go#38538. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261739
2020-10-14runtime: correct semaphore implementation on netbsdNikhil Benesch1-1/+1
NetBSD's semaphores use the underlying lighweight process mechanism (LWP) on NetBSD, rather than pthreads. This means the m.prodcid needs to be set to the LWP ID rather than the pthread ID in order for unpark notifications to get sent to the right place. Introduce a new getProcID() method that selects the correct ID for the platform. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261742
2020-10-14analyzer: fix ICE on globals with unknown size [PR93388]David Malcolm3-21/+40
This patch fixes an ICE seen when attempting to build various existing tests in our testsuite with -fanalyzer, including gcc.c-torture/compile/980816-1.c. gcc/analyzer/ChangeLog: PR analyzer/93388 * region-model.cc (region_model::get_initial_value_for_global): Fall back to returning an initial_svalue if decl_region::get_svalue_for_initializer fails. * region.cc (decl_region::get_svalue_for_initializer): Don't attempt to create a compound_svalue if the region has an unknown size. gcc/testsuite/ChangeLog: PR analyzer/93388 * gcc.dg/analyzer/data-model-21.c: New test.
2020-10-14analyzer: fix build with ada [PR93723]David Malcolm1-1/+0
gcc/analyzer/ChangeLog: PR analyzer/93723 * store.cc (binding_map::apply_ctor_to_region): Remove redundant assertion.
2020-10-14analyzer: don't use <setjmp.h> in tests [PR97394]David Malcolm4-6/+15
PR analyzer/97394 reports issues with analyzer setjmp results when testing against MUSL. This patch fixes up gcc.dg/analyzer so that it doesn't use <setjmp.h>. gcc/testsuite/ChangeLog: PR analyzer/97394 * gcc.dg/analyzer/setjmp-pr93378.c: Use test-setjmp.h rather than <setjmp.h>. * gcc.dg/analyzer/sigsetjmp-5.c: Likewise. * gcc.dg/analyzer/sigsetjmp-6.c: Likewise. * gcc.dg/analyzer/test-setjmp.h: Don't include <setjmp.h>. Provide decls of jmp_buf, sigjmp_buf, setjmp, sigsetjmp, longjmp, and siglongjmp.
2020-10-14c++: Diagnose bogus variadic lambda. [PR97358]Jason Merrill2-5/+32
If the lambda has a capture pack, it cannot be used unexpanded within the body of the lambda. If you want to expand the pack across multiple lambdas, don't capture the whole pack. gcc/cp/ChangeLog: PR c++/97358 * pt.c (check_for_bare_parameter_packs): Diagnose use of capture pack. gcc/testsuite/ChangeLog: PR c++/97358 * g++.dg/cpp0x/lambda/lambda-variadic11.C: New test.
2020-10-14x86: Add missing intrinsics [PR95483]Sunil K Pandey64-57/+1429
Tested on x86-64. gcc/ChangeLog: PR target/95483 * config/i386/avx2intrin.h (_mm_broadcastsi128_si256): New intrinsics. (_mm_broadcastsd_pd): Ditto. * config/i386/avx512bwintrin.h (_mm512_loadu_epi16): New intrinsics. (_mm512_storeu_epi16): Ditto. (_mm512_loadu_epi8): Ditto. (_mm512_storeu_epi8): Ditto. * config/i386/avx512dqintrin.h (_mm_reduce_round_sd): New intrinsics. (_mm_mask_reduce_round_sd): Ditto. (_mm_maskz_reduce_round_sd): Ditto. (_mm_reduce_round_ss): Ditto. (_mm_mask_reduce_round_ss): Ditto. (_mm_maskz_reduce_round_ss): Ditto. (_mm512_reduce_round_pd): Ditto. (_mm512_mask_reduce_round_pd): Ditto. (_mm512_maskz_reduce_round_pd): Ditto. (_mm512_reduce_round_ps): Ditto. (_mm512_mask_reduce_round_ps): Ditto. (_mm512_maskz_reduce_round_ps): Ditto. * config/i386/avx512erintrin.h (_mm_mask_rcp28_round_sd): New intrinsics. (_mm_maskz_rcp28_round_sd): Ditto. (_mm_mask_rcp28_round_ss): Ditto. (_mm_maskz_rcp28_round_ss): Ditto. (_mm_mask_rsqrt28_round_sd): Ditto. (_mm_maskz_rsqrt28_round_sd): Ditto. (_mm_mask_rsqrt28_round_ss): Ditto. (_mm_maskz_rsqrt28_round_ss): Ditto. (_mm_mask_rcp28_sd): Ditto. (_mm_maskz_rcp28_sd): Ditto. (_mm_mask_rcp28_ss): Ditto. (_mm_maskz_rcp28_ss): Ditto. (_mm_mask_rsqrt28_sd): Ditto. (_mm_maskz_rsqrt28_sd): Ditto. (_mm_mask_rsqrt28_ss): Ditto. (_mm_maskz_rsqrt28_ss): Ditto. * config/i386/avx512fintrin.h (_mm_mask_sqrt_sd): New intrinsics. (_mm_maskz_sqrt_sd): Ditto. (_mm_mask_sqrt_ss): Ditto. (_mm_maskz_sqrt_ss): Ditto. (_mm_mask_scalef_sd): Ditto. (_mm_maskz_scalef_sd): Ditto. (_mm_mask_scalef_ss): Ditto. (_mm_maskz_scalef_ss): Ditto. (_mm_mask_cvt_roundsd_ss): Ditto. (_mm_maskz_cvt_roundsd_ss): Ditto. (_mm_mask_cvt_roundss_sd): Ditto. (_mm_maskz_cvt_roundss_sd): Ditto. (_mm_mask_cvtss_sd): Ditto. (_mm_maskz_cvtss_sd): Ditto. (_mm_mask_cvtsd_ss): Ditto. (_mm_maskz_cvtsd_ss): Ditto. (_mm512_cvtsi512_si32): Ditto. (_mm_cvtsd_i32): Ditto. (_mm_cvtss_i32): Ditto. (_mm_cvti32_sd): Ditto. (_mm_cvti32_ss): Ditto. (_mm_cvtsd_i64): Ditto. (_mm_cvtss_i64): Ditto. (_mm_cvti64_sd): Ditto. (_mm_cvti64_ss): Ditto. * config/i386/avx512vlbwintrin.h (_mm256_storeu_epi8): New intrinsics. (_mm_storeu_epi8): Ditto. (_mm256_loadu_epi16): Ditto. (_mm_loadu_epi16): Ditto. (_mm256_loadu_epi8): Ditto. (_mm_loadu_epi8): Ditto. (_mm256_storeu_epi16): Ditto. (_mm_storeu_epi16): Ditto. * config/i386/avx512vlintrin.h (_mm256_load_epi64): New intrinsics. (_mm_load_epi64): Ditto. (_mm256_load_epi32): Ditto. (_mm_load_epi32): Ditto. (_mm256_store_epi32): Ditto. (_mm_store_epi32): Ditto. (_mm256_loadu_epi64): Ditto. (_mm_loadu_epi64): Ditto. (_mm256_loadu_epi32): Ditto. (_mm_loadu_epi32): Ditto. (_mm256_mask_cvt_roundps_ph): Ditto. (_mm256_maskz_cvt_roundps_ph): Ditto. (_mm_mask_cvt_roundps_ph): Ditto. (_mm_maskz_cvt_roundps_ph): Ditto. * config/i386/avxintrin.h (_mm256_cvtsi256_si32): New intrinsics. * config/i386/emmintrin.h (_mm_loadu_si32): New intrinsics. (_mm_loadu_si16): Ditto. (_mm_storeu_si32): Ditto. (_mm_storeu_si16): Ditto. * config/i386/i386-builtin-types.def (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT): Add new type. (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT): Ditto. (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT): Ditto. (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT): Ditto. * config/i386/i386-builtin.def (__builtin_ia32_cvtsd2ss_mask_round): New builtin. (__builtin_ia32_cvtss2sd_mask_round): Ditto. (__builtin_ia32_rcp28sd_mask_round): Ditto. (__builtin_ia32_rcp28ss_mask_round): Ditto. (__builtin_ia32_rsqrt28sd_mask_round): Ditto. (__builtin_ia32_rsqrt28ss_mask_round): Ditto. (__builtin_ia32_reducepd512_mask_round): Ditto. (__builtin_ia32_reduceps512_mask_round): Ditto. (__builtin_ia32_reducesd_mask_round): Ditto. (__builtin_ia32_reducess_mask_round): Ditto. * config/i386/i386-expand.c (ix86_expand_round_builtin): Expand round builtin for new type. (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT) (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT) (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT) (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT) * config/i386/mmintrin.h () Define datatype __m32 and __m16. Define datatype __m32_u and __m16_u. * config/i386/sse.md: Adjust pattern. (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Adjust. (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto. (sse2_cvtsd2ss<mask_name><round_name>): Ditto. (sse2_cvtss2sd<mask_name><round_saeonly_name>): Ditto. (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto. (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto. gcc/testsuite/ChangeLog: PR target/95483 * gcc.target/i386/avx-1.c: Add test. * gcc.target/i386/avx2-vbroadcastsi128-1.c: Ditto. * gcc.target/i386/avx2-vbroadcastsi128-2.c: Ditto. * gcc.target/i386/avx512bw-vmovdqu16-1.c: Ditto. * gcc.target/i386/avx512bw-vmovdqu8-1.c: Ditto. * gcc.target/i386/avx512dq-vreducesd-1.c: Ditto. * gcc.target/i386/avx512dq-vreducesd-2.c: Ditto. * gcc.target/i386/avx512dq-vreducess-1.c: Ditto. * gcc.target/i386/avx512dq-vreducess-2.c: Ditto. * gcc.target/i386/avx512er-vrcp28sd-1.c: Ditto. * gcc.target/i386/avx512er-vrcp28sd-2.c: Ditto. * gcc.target/i386/avx512er-vrcp28ss-1.c: Ditto. * gcc.target/i386/avx512er-vrcp28ss-2.c: Ditto. * gcc.target/i386/avx512er-vrsqrt28sd-1.c: Ditto. * gcc.target/i386/avx512er-vrsqrt28sd-2.c: Ditto. * gcc.target/i386/avx512er-vrsqrt28ss-1.c: Ditto. * gcc.target/i386/avx512er-vrsqrt28ss-2.c: Ditto. * gcc.target/i386/avx512f-vcvtsd2si-1.c: Ditto. * gcc.target/i386/avx512f-vcvtsd2si64-1.c: Ditto. * gcc.target/i386/avx512f-vcvtsd2ss-1.c: Ditto. * gcc.target/i386/avx512f-vcvtsi2sd64-1.c: Ditto. * gcc.target/i386/avx512f-vcvtsi2ss-1.c: Ditto. * gcc.target/i386/avx512f-vcvtsi2ss64-1.c: Ditto. * gcc.target/i386/avx512f-vcvtss2sd-1.c: Ditto. * gcc.target/i386/avx512f-vcvtss2si-1.c: Ditto. * gcc.target/i386/avx512f-vcvtss2si64-1.c: Ditto. * gcc.target/i386/avx512f-vscalefsd-1.c: Ditto. * gcc.target/i386/avx512f-vscalefsd-2.c: Ditto. * gcc.target/i386/avx512f-vscalefss-1.c: Ditto. * gcc.target/i386/avx512f-vscalefss-2.c: Ditto. * gcc.target/i386/avx512f-vsqrtsd-1.c: Ditto. * gcc.target/i386/avx512f-vsqrtsd-2.c: Ditto. * gcc.target/i386/avx512f-vsqrtss-1.c: Ditto. * gcc.target/i386/avx512f-vsqrtss-2.c: Ditto. * gcc.target/i386/avx512vl-vmovdqa32-1.c: Ditto. * gcc.target/i386/avx512vl-vmovdqa64-1.c: Ditto. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * gcc.target/i386/avx512dq-vreducepd-3.c: New test. * gcc.target/i386/avx512dq-vreducepd-4.c: New test. * gcc.target/i386/avx512dq-vreduceps-3.c: New test. * gcc.target/i386/avx512dq-vreduceps-4.c: New test. * gcc.target/i386/avx512f-vcvtsi2sd-1.c: New test. * gcc.target/i386/pr95483-1.c: New test. * gcc.target/i386/pr95483-2.c: New test. * gcc.target/i386/pr95483-3.c: New test. * gcc.target/i386/pr95483-4.c: New test. * gcc.target/i386/pr95483-5.c: New test. * gcc.target/i386/pr95483-6.c: New test. * gcc.target/i386/pr95483-7.c: New test.
2020-10-14Fix the VX_CPU selection for -mcpu=xscale on arm-vxworksOlivier Hainque1-1/+1
This fixlet makes sure -mcpu=xscale selects the correct VX_CPU. 2020-10-14 Olivier Hainque <hainque@adacore.com> gcc/ * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix the VX_CPU selection for -mcpu=xscale on arm-vxworks.
2020-10-14Rework CPP_BUILTINS_SPEC for powerpc-vxworksOlivier Hainque1-7/+50
This change reworks CPP_BUILTINS_SPEC for powerpc-vxworks to prepare for the upcoming addition of 32 and 64 bit ports for VxWorks 7r2. 2020-10-14 Olivier Hainque <hainque@adacore.com> gcc/ * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate expectations from different versions of VxWorks, for 32 or 64bit configurations.
2020-10-14Fallback to default CPP spec for C++ on VxWorksOlivier Hainque1-0/+6
Arrange to inhibit the effects of CPLUSPLUS_CPP_SPEC in gnu-user.h, which #defines _GNU_SOURCE, which is invalid for VxWorks (possibly not providing ::mkstemp, for example). 2020-10-14 Olivier Hainque <hainque@adacore.com> gcc/ * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC.
2020-10-14Adjust the VxWorks alternative LIMITS_H guard for glimits.hOlivier Hainque1-1/+1
This is a minor adjustment to the vxworks specific macro name used to guard the header file contents, to make it closer to the original one and easier to search for. 2020-10-14 Olivier Hainque <hainque@adacore.com> gcc/ * config/t-vxworks: Adjust the VxWorks alternative LIMITS_H guard for glimits.h, make it both closer to the previous one and easier to search for.
2020-10-14c++: DECL_FRIEND_P cleanupNathan Sidwell8-176/+98
DECL_FRIEND_P's meaning has changed over time. It now (almost) means the the friend function decl has not been met via an explicit decl. This completes that transition, renaming it to DECL_UNIQUE_FRIEND_P, so one doesn't think it is the sole indicator of friendliness (plenty of friends do not have the flag set). This allows reduction in the complexity of managing the field -- all in duplicate_decls now. gcc/cp/ * cp-tree.h (struct lang_decl_fn): Adjust context comment. (DECL_FRIEND_P): Replace with ... (DECL_UNIQUE_FRIEND_P): ... this. Only for FUNCTION_DECLs. (DECL_FRIEND_CONTEXT): Adjust. * class.c (add_implicitly_declared_members): Detect friendly spaceship from context. * constraint.cc (remove_constraints): Use a checking assert. (maybe_substitute_reqs_for): Use DECL_UNIQUE_FRIEND_P. * decl.c (check_no_redeclaration_friend_default_args): DECL_UNIQUE_FRIEND_P is signficant, not hiddenness. (duplicate_decls): Adjust DECL_UNIQUE_FRIEND_P clearing. (redeclaration_error_message): Use DECL_UNIQUE_FRIEND_P. (start_preparsed_function): Correct in-class friend processing. Refactor some initializers. (grokmethod): Directly check friend decl-spec. * decl2.c (grokfield): Check DECL_UNIQUE_FRIEND_P. * friend.c (do_friend): Set DECL_UNIQUE_FRIEND_P first, remove extraneous conditions. Don't re set it afterwards. * name-lookup.c (lookup_elaborated_type_1): Simplify revealing code. (do_pushtag): Likewise. * pt.c (optimize_specialization_lookup_p): Check DECL_UNIQUE_FRIEND_P. (push_template_decl): Likewise. Drop unneeded friend setting. (type_dependent_expression_p): Check DECL_UNIQUE_FRIEND_P. libcc1/ * libcp1plugin.cc (plugin_add_friend): Set DECL_UNIQUE_FRIEND_P.
2020-10-14i386: Improve chaining of _{addcarry,subborrow}_u{32,64} [PR97387]Jakub Jelinek4-12/+132
These builtins have two known issues and this patch fixes one of them. One issue is that the builtins effectively return two results and they make the destination addressable until expansion, which means a stack slot is allocated for them and e.g. with -fstack-protector* DSE isn't able to optimize that away. I think for that we want to use the technique of returning complex value; the patch doesn't handle that though. See PR93990 for that. The other problem is optimization of successive uses of the builtin e.g. for arbitrary precision arithmetic additions/subtractions. As shown PR93990, combine is able to optimize the case when the first argument to these builtins is 0 (the first instance when several are used together), and also the last one if the last one ignores its result (i.e. the carry/borrow is dead and thrown away in that case). As shown in this PR, combiner refuses to optimize the rest, where it sees: (insn 10 9 11 2 (set (reg:QI 88 [ _31 ]) (ltu:QI (reg:CCC 17 flags) (const_int 0 [0]))) "include/adxintrin.h":69:10 785 {*setcc_qi} (expr_list:REG_DEAD (reg:CCC 17 flags) (nil))) - set pseudo 88 to CF from flags, then some uninteresting insns that don't modify flags, and finally: (insn 17 15 18 2 (parallel [ (set (reg:CCC 17 flags) (compare:CCC (plus:QI (reg:QI 88 [ _31 ]) (const_int -1 [0xffffffffffffffff])) (reg:QI 88 [ _31 ]))) (clobber (scratch:QI)) ]) "include/adxintrin.h":69:10 350 {*addqi3_cconly_overflow_1} (expr_list:REG_DEAD (reg:QI 88 [ _31 ]) (nil))) to set CF in flags back to what we saved earlier. The combiner just punts trying to combine the 10, 17 and following addcarrydi (etc.) instruction, because if (i1 && !can_combine_p (i1, i3, i0, NULL, i2, NULL, &i1dest, &i1src)) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "Can't combine i1 into i3\n"); undo_all (); return 0; } fails - the 3 insns aren't all adjacent and || (! all_adjacent && (((!MEM_P (src) || ! find_reg_note (insn, REG_EQUIV, src)) && modified_between_p (src, insn, i3)) src (flags hard register) is modified between the first and third insn - in the second insn. The following patch optimizes this by optimizing just the two insns, 10 and 17 above, i.e. save CF into pseudo, set CF from that pseudo, into a nop. The new define_insn_and_split matches how combine simplifies those two together (except without the ix86_cc_mode change it was choosing CCmode for the destination instead of CCCmode, so had to change that function too, and also adjust costs so that combiner understand it is beneficial). With this, all the testcases are optimized, so that the: setc %dl ... addb $-1, %dl insns in between the ad[dc][lq] or s[ub]b[lq] instructions are all optimized away (sure, if something would clobber flags in between they wouldn't, but there is nothing that can be done about that). 2020-10-14 Jakub Jelinek <jakub@redhat.com> PR target/97387 * config/i386/i386.md (CC_CCC): New mode iterator. (*setcc_qi_addqi3_cconly_overflow_1_<mode>): New define_insn_and_split. * config/i386/i386.c (ix86_cc_mode): Return CCCmode for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern operands. (ix86_rtx_costs): Return true and *total = 0; for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern. Use op0 and op1 temporaries to simplify COMPARE checks. * gcc.target/i386/pr97387-1.c: New test. * gcc.target/i386/pr97387-2.c: New test.
2020-10-14Do not call range_of_ssa_name_with_loop_info with the loop tree root.Aldy Hernandez2-1/+24
gcc/ChangeLog: PR tree-optimization/97396 * gimple-range.cc (gimple_ranger::range_of_phi): Do not call range_of_ssa_name_with_loop_info with the loop tree root. gcc/testsuite/ChangeLog: * gcc.dg/pr97396.c: New test.
2020-10-14More vect_get_and_check_slp_defs refactoringRichard Biener1-1/+8
This is another tiny piece in some bigger refactoring of vect_get_and_check_slp_defs. Split out a test that has nothing to do with def types or commutation. 2020-10-14 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out test for compatible operand types.
2020-10-14Tigthen flag_pic processing in vxworks_override_optionsOlivier Hainque1-2/+4
This fixes spurious complaints about PIC mode not supported from "gcc --help=...", on VxWorks without -mrtp. The spurious message is emitted by vxworks_override_options, called with flag_pic == -1 when we're running for --help. The change simply adjusts the check testing for "we're generating pic code" to "flag_pic > 0" instead of just "flag_pic". We're not generating code at all when reaching here with -1. gcc/ChangeLog: 2020-10-14 Olivier Hainque <hainque@adacore.com> * config/vxworks.c (vxworks_override_options): Guard pic checks with flag_pic > 0 instead of just flag_pic.
2020-10-14Turn offset_map to HOST_WIDE_INTJan Hubicka3-5/+6
gcc/ChangeLog: 2020-10-14 Jan Hubicka <hubicka@ucw.cz> * ipa-fnsummary.c (remap_edge_summaries): Make offset_map HOST_WIDE_INT. (remap_freqcounting_predicate): Likewise. (ipa_merge_fn_summary_after_inlining): Likewise. * ipa-predicate.c (predicate::remap_after_inlining): Likewise * ipa-predicate.h (remap_after_inlining): Update.
2020-10-14Handle POINTER_PLUS_EXPR in jump functions in ipa-modref.Jan Hubicka3-3/+60
gcc/ChangeLog: * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in PASSTHROUGH. gcc/testsuite/ChangeLog: * gcc.dg/ipa/modref-1.c: New test. * gcc.dg/tree-ssa/modref-4.c: New test.
2020-10-14Fortran: Fix line-truncation warning for !$acc and !gcc$Tobias Burnus2-2/+13
gcc/fortran/ChangeLog: PR fortran/97390 * scanner.c (load_line): Fix line-truncation warning for !$acc and !gcc$ in free-form source code. gcc/testsuite/ChangeLog: PR fortran/97390 * gfortran.dg/goacc/warn_truncated.f90: New test.
2020-10-14adjust BB SLP build from scalars heuristicsRichard Biener1-20/+31
We can end up with { _1, 1.0 } * { 3.0, _2 } which isn't really profitable. The following adjusts things so we reject more than one possibly expensive (non-constant and not uniform) vector CTOR and instead build a CTOR for the scalar operation results. This also moves a check in vect_get_and_check_slp_defs to a better place. 2020-10-14 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_get_and_check_slp_defs): Move check for duplicate/interleave of variable size constants to a place done once and early. (vect_build_slp_tree_2): Adjust heuristics when to build a BB SLP node from scalars.
2020-10-14[gimple] Move can_duplicate_bb_p to gimple_can_duplicate_bb_pTom de Vries2-64/+40
The function gimple_can_duplicate_bb_p currently always returns true. The presence of can_duplicate_bb_p in tracer.c however suggests that there are cases when bb's indeed cannot be duplicated. Move the implementation of can_duplicate_bb_p to gimple_can_duplicate_bb_p. Bootstrapped and reg-tested on x86_64-linux. Build x86_64-linux with nvptx accelerator and tested libgomp. No issues found. As corner-case check, bootstrapped and reg-tested a patch that makes gimple_can_duplicate_bb_p always return false, resulting in PR97333 - "[gimple_can_duplicate_bb_p == false, tree-ssa-threadupdate] ICE in duplicate_block, at cfghooks.c:1093". gcc/ChangeLog: 2020-10-09 Tom de Vries <tdevries@suse.de> * tracer.c (cached_can_duplicate_bb_p, analyze_bb): Use can_duplicate_block_p. (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p) (can_duplicate_bb_p): Move and merge ... * tree-cfg.c (gimple_can_duplicate_bb_p): ... here.
2020-10-14c++: Instantiation with local extern [PR97395]Nathan Sidwell2-7/+33
It turns out that pushdecl_with_scope has somewhat strange behaviour, which probably made more sense way back. Unfortunately making it somewhat saner turned into a rathole. Instead use a push_nested_namespace around pushing the alias -- this is similar to some of the friend handling we already have. gcc/cp/ * name-lookup.c (push_local_extern_decl_alias): Push into alias's namespace and use pushdecl. (do_pushdecl_with_scope): Clarify behaviour. gcc/testsuite/ * g++.dg/lookup/extern-redecl2.C: New.
2020-10-14Fortran : ICE in build_field PR95614Mark Eggleston8-8/+44
Local identifiers can not be the same as a module name. Original patch by Steve Kargl resulted in name clashes between common block names and local identifiers. A local identifier can be the same as a global identier if that identifier is not a module or a program. The original patch was modified to reject global identifiers that represent a module or a program. 2020-10-14 Steven G. Kargl <kargl@gcc.gnu.org> Mark Eggleston <markeggleston@gcc.gnu.org> gcc/fortran/ChangeLog: PR fortran/95614 * decl.c (gfc_get_common): Use gfc_match_common_name instead of match_common_name. * decl.c (gfc_bind_idents): Use gfc_match_common_name instead of match_common_name. * match.c : Rename match_common_name to gfc_match_common_name. * match.c (gfc_match_common): Use gfc_match_common_name instead of match_common_name. * match.h : Rename match_common_name to gfc_match_common_name. * resolve.c (resolve_common_vars): Check each symbol in a common block has a global symbol. If there is a global symbol issue an error if the symbol type is a module or a program. 2020-10-14 Mark Eggleston <markeggleston@gcc.gnu.org> gcc/testsuite/ChangeLog: PR fortran/95614 * gfortran.dg/pr95614_1.f90: New test. * gfortran.dg/pr95614_2.f90: New test. * gfortran.dg/pr95614_3.f90: New test. * gfortran.dg/pr95614_4.f90: New test.
2020-10-14Support ofsetted parameters in local modrefJan Hubicka5-3/+92
2020-10-14 Jan Hubicka <hubicka@ucw.cz> * doc/invoke.texi: (ipa-jump-function-lookups): Document param. * ipa-modref.c (merge_call_side_effects): Use unadjusted_ptr_and_unit_offset. * ipa-prop.c (unadjusted_ptr_and_unit_offset): New function. * ipa-prop.h (unadjusted_ptr_and_unit_offset): Declare. * params.opt: (-param-ipa-jump-function-lookups): New.