aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-07-28Daily bump.GCC Administrator10-1/+360
2020-07-27compiler,runtime: pass only ptr and len to some runtime callsIan Lance Taylor8-98/+108
This ports https://golang.org/cl/227163 to the Go frontend. This is a step toward moving up to the go1.15rc1 release. Original CL description: cmd/compile,runtime: pass only ptr and len to some runtime calls Some runtime calls accept a slice, but only use ptr and len. This change modifies most such routines to accept only ptr and len. After this change, the only runtime calls that accept an unnecessary cap arg are concatstrings and slicerunetostring. Neither is particularly common, and both are complicated to modify. Negligible compiler performance impact. Shrinks binaries a little. There are only a few regressions; the one I investigated was due to register allocation fluctuation. Passes 'go test -race std cmd', modulo golang/go#38265 and golang/go#38266. Wow, does that take a long time to run. file before after Δ % compile 19655024 19655152 +128 +0.001% cover 5244840 5236648 -8192 -0.156% dist 3662376 3658280 -4096 -0.112% link 6680056 6675960 -4096 -0.061% pprof 14789844 14777556 -12288 -0.083% test2json 2824744 2820648 -4096 -0.145% trace 11647876 11639684 -8192 -0.070% vet 8260472 8256376 -4096 -0.050% total 115163736 115118808 -44928 -0.039% For golang/go#36890 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245099
2020-07-27compiler: for package-scope "a = b; b = x" just set "a = x"Ian Lance Taylor2-8/+31
This avoids requiring an init function to initialize the variable. This can only be done if x is a static initializer. The go1.15rc1 runtime package relies on this optimization. The package has a variable "var maxSearchAddr = maxOffAddr". The maxSearchAddr variable is used by code that runs before package initialization is complete. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245098
2020-07-28gcc.dg/torture/pr39074-2.c, pr39074.c, pta-callused-1.c: Adjust for mmix.Hans-Peter Nilsson3-5/+5
These FAILs for mmix showed up as regressions for me due to a flaw in the btest-gcc.sh test-results-accounting: a bug was recently fixed regarding the naming of dump-files so the names are again correct. To wit, parts of the tests that were UNRESOLVED, due to missing dump-files, and ignored in the presence of other parts (execution, excess errors) PASSing, became FAIL, trumping the PASSing parts of the tests. As in a recent patch, the variables are "privatized" using ASM_PN_FORMAT for MMIX and the lines to match look like: y::0_1 = { i } y::0_1, points-to NULL, points-to vars: { D.1465 } (nonlocal, escaped) instead of e.g. for cris-elf: y.0_1 = { i } y.0_1, points-to NULL, points-to vars: { D.1433 } (nonlocal, escaped) Also checked that the general pattern still matches for cris-elf. gcc/testsuite: * gcc.dg/torture/pr39074-2.c: Adjust for mmix. * gcc.dg/torture/pr39074.c, gcc.dg/torture/pta-callused-1.c: Ditto.
2020-07-27Update gcc .po files.Joseph Myers19-91473/+92935
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update.
2020-07-27common: Use strcmp to compare location file namesNathan Sidwell4-4/+94
The logic to figure out where a missing #include should be inserted uses pointer equality to check filenames -- the routine even says so. But cpplib makes no such guarantee. It happens to be true for input that it preprocesses[* see line zero below], but is not true for source that has already been preprocessed -- all those '# ...' line directives produce disctinct filename strings. That renders using -fdirectives-only as a prescanning stage (as I understand some people do), broken. This patch changes to string comparisons, and explicitly rejects any line-zero location map that occurs at the beginning of a file. The very first map of a file has a different string to the remaining maps, and we never tripped on that because of the pointer comparison. The second testcase deploys -save-temps to cause an intermediate preprocessed output that is read back. gcc/c-family/ * c-common.c (try_to_locate_new_include_insertion_point): Use strcmp, not pointer equality. gcc/testsuite/ * g++.dg/lookup/missing-std-include-10.h: New. * g++.dg/lookup/missing-std-include-10.C: New. * g++.dg/lookup/missing-std-include-11.C: New.
2020-07-27c++: Name as_base typeNathan Sidwell3-2/+10
The as-base type never got a name. For modules I needed to give it a name to serialize properly, and it's useful when debugging the compiler, so we may as well have it on trunk. There's also a bug where its fields can have NSDMIs from the main class. This happens to be silent on trunk, but can be a GC leak where we retain a deferred parse node there. (On modules it blows up, because we're not prepared to serialize deferred parse nodes, as they should never survive parsing. gcc/cp/ * cp-tree.h (enum cp_tree_index): Add CPTI_AS_BASE_IDENTIFIER. (as_base_identifier): Define. * decl.c (initialize_predifined_identifiers): Initialize as_base identifier. * class.c (layout_class_type): Name the as-base type. Zap NSDMI its fields may have.
2020-07-27Diagnose just-past-the-end references for minor array bounds.Martin Sebor2-2/+139
Resolves: PR tree-optimization/84079 - missing -Warray-bounds taking the address of past-the-end element of a multidimensional array gcc/ChangeLog: PR tree-optimization/84079 * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr): Only allow just-past-the-end references for the most significant array bound. gcc/testsuite/ChangeLog: PR tree-optimization/84079 * gcc.dg/Warray-bounds-62.c: New test.
2020-07-27libstdc++: Review _Hashtable count, equal_range _M_erase(false_type,) codeFrançois Dumont2-102/+118
Simplify operator[] implementation using find method. Review several _Hashtable method implementations to limit the computation of bucket index. Introduce _M_update_bbegin to simplify code. libstdc++-v3/ChangeLog: * include/bits/hashtable_policy.h (_Map_base<>::at): Use _Hashtable<>::find. (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals):New. (_Hashtable_base<>::_M_node_equals): New, use latter. (_Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, false>::_M_equal): Adapt to use latter. * include/bits/hashtable.h (_Hashtable<>::_M_update_bbegin): New. (_Hashtable<>::_M_assign): Use latter. (_Hashtable<>::_M_move_assign): Likewise. (_Hashtable<>(_Hashtable<>&&)): Likewise. (_Hashtable<>(_Hashtable<>&&, const allocator_type&)): Likewise. (_Hashtable<>::swap): Likewise. (_Hashtable<>::find): Build iterator directly from _M_find_node result. (_Hashtable<>::count): Use _Hashtable<>::find. (_Hashtable<>::equal_range): Likewise. (_Hashtable<>::_M_erase(false_type, const key_type&)): Use _M_node_equals.
2020-07-27driver: fix a problem with implementation of -falign-foo=0 [PR96247]Hu Jiangping1-6/+22
This patch makes the -falign-foo=0 work as described in the documentation. Thanks for all the suggestions. Changelog: 2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com> PR driver/96247 * opts.c (check_alignment_argument): Set the -falign-Name on/off flag on and set the -falign-Name string value null, when the command-line specified argument is zero.
2020-07-27compiler: scan all function literals for escape analysisIan Lance Taylor2-12/+19
We were scanning only function literals with closures, but not all function literals have closures. Discovered because compiler failed building 1.15rc1, as there is a function literal in the runtime package (p1 in hexdumpWords) that has no closure and, without escape analysis, was forcing a variable to the heap which is not permitted in the runtime. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/244802
2020-07-27openacc: Deep copy attach/detach should not affect reference countsJulian Brown8-26/+324
Attach and detach operations are not supposed to affect structural or dynamic reference counts for OpenACC. Previously they did so, which led to subtle problems in some circumstances. We can avoid reference-counting attach/detach operations by extending and slightly repurposing the do_detach field in target_var_desc. It is now called is_attach to better reflect its new role. 2020-07-27 Julian Brown <julian@codesourcery.com> Thomas Schwinge <thomas@codesourcery.com> libgomp/ * libgomp.h (struct target_var_desc): Rename do_detach field to is_attach. * oacc-mem.c (goacc_exit_datum_1): Add assert. Don't set finalize for GOMP_MAP_FORCE_DETACH. Update checking to use is_attach field. (goacc_enter_data_internal): Don't affect reference counts for attach mappings. (goacc_exit_data_internal): Don't affect reference counts for detach mappings. * target.c (gomp_map_vars_existing): Don't affect reference counts for attach mappings. (gomp_map_vars_internal): Set renamed is_attach flag unconditionally to mark attach mappings. (gomp_unmap_vars_internal): Use is_attach flag to prevent affecting reference count for attach mappings. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-2.c: New test. * testsuite/libgomp.oacc-fortran/deep-copy-6-no_finalize.F90: Mark test as shouldfail. * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: Adjust to fail gracefully in no-finalize mode. Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
2020-07-27libstdc++: Make std::from_chars always round to nearestJonathan Wakely4-2/+74
Also fix the tests that fail on targets without uselocale. libstdc++-v3/ChangeLog: * src/c++17/floating_from_chars.cc (from_chars_impl): Ensure that FE_NEAREST is used. * testsuite/20_util/from_chars/4.cc: Do not use if constexpr in a { target c++14 } test. [!_GLIBCXX_HAVE_USELOCALE]: Disable all tests. * testsuite/20_util/from_chars/5.cc [!_GLIBCXX_HAVE_USELOCALE]: Likewise. * testsuite/20_util/from_chars/6.cc: New test.
2020-07-27expr: build string_constant only for a char typeMartin Liska1-9/+14
gcc/ChangeLog: PR tree-optimization/96058 * expr.c (string_constant): Build string_constant only for a type that has same precision as char_type_node and is an integral type.
2020-07-27Remove useless backedge markingRichard Biener1-1/+0
I didn't find anything using EDGE_DFS_BACK in RTL infrastructure used by var-tracking or var-tracking itself, the following removes this computation. 2020-07-24 Richard Biener <rguenther@suse.de> * var-tracking.c (variable_tracking_main_1): Remove call to mark_dfs_back_edges.
2020-07-27Do not expand vector comparison with VEC_COND_EXPR.Martin Liska2-2/+36
gcc/ChangeLog: PR tree-optimization/96128 * tree-vect-generic.c (expand_vector_comparison): Do not expand vector comparison with VEC_COND_EXPR. gcc/testsuite/ChangeLog: PR tree-optimization/96128 * gcc.target/s390/vector/pr96128.c: New test.
2020-07-27LTO: Add -fcf-protection=checkH.J. Lu6-11/+74
Mixing -fcf-protection and -fcf-protection=none objects are allowed. Linker just merges -fcf-protection values from all input objects. Add -fcf-protection=check for the final link with LTO. An error is issued if LTO object files are compiled with different -fcf-protection values. Otherwise, -fcf-protection=check is ignored at the compile time. Without explicit -fcf-protection at link time, -fcf-protection values from LTO object files are merged at the final link. gcc/ PR bootstrap/96203 * common.opt: Add -fcf-protection=check. * flag-types.h (cf_protection_level): Add CF_CHECK. * lto-wrapper.c (merge_and_complain): Issue an error for mismatching -fcf-protection values with -fcf-protection=check. Otherwise, merge -fcf-protection values. * doc/invoke.texi: Document -fcf-protection=check. gcc/testsuite/ PR bootstrap/96203 * gcc.target/i386/pr96203-1.c: New test. * gcc.target/i386/pr96203-2.c: Likewise.
2020-07-27[Ada] Revert "Revamp dump and aux output names"Alexandre Oliva1-4/+1
gcc/ada/ * switch.adb (Is_Internal_GCC_Switch): Revert accidental reintroduction of auxbase and auxbase-strip.
2020-07-27[Ada] Ada2020: AI12-0027 Access values and unaliased componentJavier Miranda3-10/+63
gcc/ada/ * sem_res.adb (Resolve_Actuals): Restrict the check on matching aliased components to view conversions of array types that are not placed in an instance. In such case at runtime an object is created. * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion): New subprograms. * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion): New subprograms.
2020-07-27[Ada] Assert failure on incorrect codeArnaud Charlet2-3/+10
gcc/ada/ * lib-xref.adb (Generate_Reference): Protect against malformed tree in case of severe errors. * sem_ch8.adb (Add_Implicit_Operator): Ditto.
2020-07-27[Ada] Switch Ada_Version_Runtime to Ada 2020Arnaud Charlet33-55/+11
gcc/ada/ * opt.ads (Ada_Version_Runtime): Set to Ada_2020. * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate Is_Independent flag to subtypes. * libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning. * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads, libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb, libgnat/a-stobbu.ads, libgnat/a-stobfi.adb, libgnat/a-stobfi.ads, libgnat/a-stoubu.adb, libgnat/a-stoubu.ads, libgnat/a-stoufi.adb, libgnat/a-stoufi.ads, libgnat/a-stoufo.adb, libgnat/a-stoufo.ads, libgnat/a-stouut.adb, libgnat/a-stouut.ads, libgnat/a-strsto.ads, libgnat/a-ststbo.adb, libgnat/a-ststbo.ads, libgnat/a-ststun.adb, libgnat/a-ststun.ads, libgnat/a-stteou.ads, libgnat/s-aoinar.ads, libgnat/s-aomoar.ads, libgnat/s-atopex.ads, libgnat/s-putaim.adb, libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma Ada_2020, now redundant.
2020-07-27[Ada] Wrong accessibility on 'Access of formal in callJustin Squirek1-46/+16
gcc/ada/ * exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra accessibility parameter to take into account the extra accessibility of formals within the calling subprogram.
2020-07-27[Ada] Bug in Enum_Subtype'Image in Ada 2020 modeBob Duff1-1/+1
gcc/ada/ * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so constrained subtypes work.
2020-07-27[Ada] Refactor pragma argument gettersGhjuvan Lacambre1-81/+33
gcc/ada/ * exp_prag.adb (Arg1, Arg2, Arg3): Removed. (Arg_N): New function.
2020-07-27[Ada] AI12-0383 Renaming valuesArnaud Charlet1-4/+23
gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada 2020 mode.
2020-07-27[Ada] AI12-0377 View conversions and out parameters revisitedArnaud Charlet1-15/+22
gcc/ada/ * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per AI12-0377.
2020-07-27[Ada] Ada2020: wording of 'Image messagesBob Duff3-17/+33
gcc/ada/ * errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New procedure analogous to Error_Msg_Ada_2012_Feature. * sem_attr.adb (Analyze_Image_Attribute): Use Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to indicate that Object'Image is allowed in Ada 2012, and that 'Image is allowed for any type in Ada 2020.
2020-07-27[Ada] Unbounded string overriding controlDmitriy Anisimkov2-38/+150
gcc/ada/ * libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul): New routines. Use them when resulting string size more that length of the strings in parameters. (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side of condition to avoid overflow. * libgnat/a-strunb__shared.adb (Sum, Mul): New routines. (Allocate): New routine with 2 parameters. Use routine above when resulting string size more that length of the strings in parameters. (Aligned_Max_Length): Do not try to align to more than Natural'Last. (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side of condition to avoid overflow.
2020-07-27[Ada] Remove disabled codeArnaud Charlet1-13/+0
gcc/ada/ * sem_attr.adb (Resolve_Attribute): Remove dead code.
2020-07-27[Ada] Use membership tests in front-endArnaud Charlet89-4713/+2950
gcc/ada/ * aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb, einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb, inline.adb, lib-writ.adb, lib-xref-spark_specific.adb, lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-prag.adb, par-util.adb, par_sco.adb, pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb, treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by membership tests.
2020-07-27[Ada] AI12-0194: Language-defined aspects and entry bodiesGary Dismukes1-1/+2
gcc/ada/ * sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length): Refine error message to indicate that the pragma must apply to an entry declaration, not just an entry.
2020-07-27[Ada] Spurious error in generic dispatching constructorJavier Miranda1-3/+7
gcc/ada/ * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator): Revert previous patch, and add a missing type conversion to displace the pointer to the allocated object to reference the target dispatch table.
2020-07-27[Ada] Ada2020: AI12-0027 Access values and unaliased componentJavier Miranda1-1/+17
gcc/ada/ * sem_res.adb (Resolve_Actuals): Restore restrictive check on view conversions which required matching value of Has_Aliased_Components of formals and actuals. Required to avoid the regression of ACATS b460005.
2020-07-27[Ada] Remove obsolete special case in Switch_ViewEric Botcazou1-13/+16
gcc/ada/ * sem_ch12.adb (Instantiate_Package_Body): Add commentary for a nesting issue with parent handling and private view switching. (Switch_View): Do not skip specific private-dependent subtypes.
2020-07-27[Ada] x86-lynx178elf: use a-numaux.ads instead of a-numaux__libc-x86.adsPatrick Bernardi1-1/+0
gcc/ada/ * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
2020-07-27[Ada] Warnings on overloays involving generic In_ParametersEd Schonberg1-0/+4
gcc/ada/ * sem_ch13.adb (Analyze_Address_Specification_Clause): Do not emit a warning when a constant declaration in a generic unit overlays a generic In_Parameter.
2020-07-27[Ada] AI12-0382: Loosen type-invariant overriding requirement of AI12-0042Gary Dismukes1-9/+6
gcc/ada/ * sem_ch3.adb (Check_Abstract_Overriding): Remove Scope comparison test from test related to initial implementation of AI12-0042, plus remove the related ??? comment. (Derive_Subprogram): Add test requiring that the type extension appear in the visible part of its enclosing package when checking the overriding requirement of 7.3.2(6.1/4), as clarified by AI12-0382.
2020-07-27[Ada] Add range check for GNATprove on 'Pos to Long_Integer conversionPiotr Trojanek1-3/+9
gcc/ada/ * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend existing workaround to 'Pos.
2020-07-27[Ada] Ada2020: AI12-0304 Put_Image attrs of lang-def typesBob Duff7-8/+57
gcc/ada/ * libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image. This will be inherited by the language-defined packages Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random. * libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image. * libgnat/s-putima.ads: Add pragma Preelaborate, so this can be imported into containers packages. * libgnat/s-putima.adb: Move Digit to private part; otherwise reference to Base is illegal in Preelaborate generic. * exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the base type.
2020-07-27Use vec::reserve before vec_safe_grow_cleared is calledMartin Liska2-3/+21
gcc/ChangeLog: PR lto/45375 * symbol-summary.h: Call vec_safe_reserve before grow is called in order to grow to a reasonable size. * vec.h (vec_safe_reserve): Add missing function for vl_ptr type.
2020-07-27fortran/openmp.c - silence static analyzer warningTobias Burnus1-2/+1
gcc/fortran/ChangeLog: * openmp.c (gfc_resolve_omp_directive): Remove NULL check for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
2020-07-27gcc.dg/tree-ssa/vector-4.c: Adjust for mmix.Hans-Peter Nilsson1-1/+2
Again, the variables are "privatized" using ASM_PN_FORMAT for MMIX (but apparently not for other targets) and the line to match looks like: D.1427 = VEC_PERM_EXPR <a::0, b::1, { 0, 4, 1, 5 }>; gcc/testsuite: * gcc.dg/tree-ssa/vector-4.c: Adjust for mmix.
2020-07-27gcc.dg/tree-ssa/ssa-dse-26.c: Adjust for mmix.Hans-Peter Nilsson1-3/+5
The variables are "localized" using ASM_PN_FORMAT for MMIX and the lines to match look like: Deleted dead store: y::4 = y; Deleted dead store: x::3 = x; gcc/testsuite: * gcc.dg/tree-ssa/ssa-dse-26.c: Adjust for mmix.
2020-07-27gcc.dg/tree-ssa/ssa-dom-cse-2.c: xfail scan for mmix.Hans-Peter Nilsson1-1/+1
Looking at the dump and the test, I guess all "64-bit targets" fail the test for the reasons seen in the comment just above the dg-final, whose last two lines make it to the patch context. Maybe the xfail target list can be shortened by removing most targets and use just "lp64". That doesn't cover it passing on x86_64 and s390x-zarch though. gcc/testsuite: * gcc.dg/tree-ssa/ssa-dom-cse-2.c: xfail scan for mmix.
2020-07-27Daily bump.GCC Administrator4-1/+45
2020-07-27gcc.dg/tree-ssa/reassoc-20.c: Adjust for mmix.Hans-Peter Nilsson1-1/+1
The expression of interest looks like "e_5 = a::0_1 + b::1_2;" for mmix-knuth-mmixware, while other targets have a "." instead of the "::". ISTM the most useful change here is not to disable the test, but to add an optional character in the matched expression to match the "extra" ":". Also checked cris-elf to assert that the expression still passes for an "ordinary" ELF target. gcc/testsuite: * gcc.dg/tree-ssa/reassoc-20.c: Adjust for mmix.
2020-07-27mmix: Don't turn off .hidden support.Hans-Peter Nilsson2-12/+0
In 2012 e2769e908a915ebbc/r192344, I added the following lines, that I now delete. I've changed my mind: ELF-related targets based on gas, that support only static linking, have .hidden "for free", regardless of the visibility of the hidden object in the linked executable. No regressions for mmix-knuth-mmixware and "fixes": FAIL: gcc.dg/torture/pr94947-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) Excess errors: lto1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes] ...a warning which is emitted for "all" LTO tests (of which most have warnings filtered out); LTO "thinks" all supported targets have .hidden support. gcc: * configure.ac (out-of-tree linker .hidden support): Don't turn off for mmix-knuth-mmixware. * configure: Regenerate.
2020-07-26c++: Add testcase for [PR79504]Patrick Palka1-0/+19
We successfully compile this testcase ever since r8-5270. gcc/testsuite/ChangeLog: PR c++/79504 * g++.dg/cpp0x/decltype79.C: New test.
2020-07-26rs6000: add option -mblock-ops-unaligned-vsxAaron Sawdey3-0/+22
This option is mostly being added to provide -mno-block-ops-unaligned-vsx. The default is set the same as -mefficient-unaligned-vsx. This option will control the use of unaligned VSX loads/stores in the inline expansion of memcpy() and memmove(). The use case for this would be if you're compiling code that is doing a memcpy to memory mapped device memory that is cache-inhibited. On some powerpc processors this requires the unaligned vsx ops to be emulated by the kernel which is very slow. gcc/ChangeLog: * config/rs6000/rs6000.c (rs6000_option_override_internal): Set the default value for -mblock-ops-unaligned-vsx. * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx. * doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
2020-07-26libgfortran: Skip integer-kind=16 check for amdgcnTobias Burnus7-20/+67
libgfortran/ChangeLog: PR target/96306 * configure.ac: Add LIBGOMP_CHECKED_INT_KINDS and LIBGOMP_CHECKED_REAL_KINDS and use it for to skip integer kind=16 checks for amdgcn. * Makefile.am (kinds.h, selected_int_kind.inc, selected_real_kind.inc): Pass them on. * mk-kinds-h.sh: Takes to-be-check kinds as argument. * mk-sik-inc.sh: Likewise. * mk-srk-inc.sh: Likewise. * Makefile.in: Regenerate. * configure: Regenerate.