- 14 Oct, 2019 21 commits
-
-
From-SVN: r276970
Joel Hutton committed -
* config/mips/mips.c (mips_cannot_force_const_mem): Reject vector constants. * gcc.target/mips/constant-spill.c: New test. From-SVN: r276969
Mihailo Stojanovic committed -
The testcase was crashing because lazily_declare_fn was failing to add a defaulted constructor, because the implicit declaration was less constrained than the inherited default constructor. But when we have an inherited constructor, we shouldn't be trying to declare a default constructor in the first place, because it counts as "a user-declared constructor". With that fixed I needed to adjust a couple of inherited constructor testcases that previously had been diagnosing the default constructor as deleted rather than not declared. * name-lookup.c (do_class_using_decl): Set TYPE_HAS_USER_CONSTRUCTOR for inherited constructor. From-SVN: r276968
Jason Merrill committed -
Improve some comments, replace some asserts that have been in the code base for years with checking-asserts. gcc/ChangeLog: 2019-10-14 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.c: Use unsigned ints for the picbase label counters, initialise the vars explicitly. (update_pic_label_number_if_needed): Move a variable declaration to where it's needed. (machopic_output_function_base_name): Use a more strict checking assert, and and unsigned int for the picbase label counter. (machopic_get_function_picbase): Likewise. From-SVN: r276967
Iain Sandoe committed -
Patch from Andreas Krebbel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201038 From-SVN: r276964
Ian Lance Taylor committed -
re PR middle-end/92046 (Command line options (that are per-functions) are affecting --params which are global.) 2019-10-14 Richard Biener <rguenther@suse.de> PR middle-end/92046 * dse.c (scan_insn): Use param max_active_local_stores. (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust based on optimization level. * loop-invariant.c (move_loop_invariants): Adjust LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level. * opts.c (default_options_optimization): Do not adjust PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and LOOP_INVARIANT_MAX_BBS_IN_LOOP here. From-SVN: r276963
Richard Biener committed -
Patch from Andreas Krebbel. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201037 From-SVN: r276962
Ian Lance Taylor committed -
Currently arm_legitimize_address doesn't handle Thumb-2 at all, resulting in inefficient code. Since Thumb-2 supports similar address offsets use the Arm legitimization code for Thumb-2 to get significant codesize and performance gains. SPECINT2006 shows 0.4% gain on Cortex-A57, while SPECFP improves 0.2%. gcc/ * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout. From-SVN: r276961
Wilco Dijkstra committed -
Currently the Arm backend selects the alternative sched pressure algorithm. The issue is that this doesn't take register pressure into account, and so it causes significant additional spilling on Arm where there are only 14 allocatable registers. Building SPEC2006 showed significant codesize gains with the default pressure algorithm, so switch back to that. PR77308 shows ~800 fewer instructions. SPECINT2006 is ~0.6% faster on Cortex-A57 together with the other DImode patches. Overall SPEC codesize is 1.1% smaller. gcc/ * config/arm/arm.c (arm_option_override): Don't override sched pressure algorithm. From-SVN: r276960
Wilco Dijkstra committed -
2019-10-14 Richard Biener <rguenther@suse.de> PR tree-optimization/92069 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested cycles do not set vect_nested_cycle on the latch definition. * gcc.dg/torture/pr92069.c: New testcase. From-SVN: r276959
Richard Biener committed -
/cp 2019-10-14 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (check_tag_decl): Use DECL_SOURCE_LOCATION. /testsuite 2019-10-14 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/constexpr-union5.C: Test location(s) too. * g++.dg/diagnostic/bitfld2.C: Likewise. * g++.dg/ext/anon-struct1.C: Likewise. * g++.dg/ext/anon-struct6.C: Likewise. * g++.dg/ext/flexary19.C: Likewise. * g++.dg/ext/flexary9.C: Likewise. * g++.dg/template/error17.C: Likewise. From-SVN: r276958
Paolo Carlini committed -
PR libgomp/92081 * testsuite/libgomp.fortran/target-simd.f90: Iterate from 1 rather than 0. From-SVN: r276956
Jakub Jelinek committed -
* error.c: Remove debug pragma added in previous commit. From-SVN: r276955
Tobias Burnus committed -
re PR c++/92084 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'compound_expr' in gimplify_scan_omp_clauses, at gimplify.c:9039) PR c++/92084 * semantics.c (handle_omp_array_sections_1): Temporarily disable -fstrong-eval-order also for in_reduction and task_reduction clauses. * g++.dg/gomp/pr92084.C: New test. From-SVN: r276954
Jakub Jelinek committed -
PR fortran/92072 * error.c (error_print, gfc_format_decoder): Fix %C column- offset handling. From-SVN: r276953
Tobias Burnus committed -
This turned out to be useful for the SVE PCS support, and is a natural tree-level analogue of insn_callee_abi. 2019-10-14 Richard Sandiford <richard.sandiford@arm.com> gcc/ * function-abi.h (expr_callee_abi): Declare. * function-abi.cc (expr_callee_abi): New function. From-SVN: r276952
Richard Sandiford committed -
The current aka diagnostics can sometimes leak internal details that seem more likely to be distracting than useful. E.g. on aarch64: void f (va_list *va) { *va = 1; } gives: incompatible types when assigning to type ‘va_list’ {aka ‘__va_list’} from type ‘int’ where __va_list isn't something the user is expected to know about. A similar thing happens for C++ on the arm_neon.h-based: float x; int8x8_t y = x; which gives: cannot convert ‘float’ to ‘int8x8_t’ {aka ‘__Int8x8_t’} in initialization This is accurate -- and __Int8x8_t is defined by the AArch64 PCS -- but it's not going to be meaningful to most users. This patch stops the aka code looking through typedefs if all of the following are true: (1) the typedef is built into the compiler or comes from a system header (2) the target of the typedef is anonymous or has a name in the implementation namespace (3) the target type is a tag type or vector type, which have in common that: (a) we print their type names if they have one (b) what we print for anonymous types isn't all that useful ("struct <anonymous>" etc. for tag types, pseudo-C "__vector(N) T" for vector types) The patch does this by recursively looking for the aka type, like the C++ frontend already does. This in turn makes "aka" work for distinct type copies like __Int8x8_t on aarch64, fixing the ??? in aarch64/diag_aka_1.c. 2019-10-14 Richard Sandiford <richard.sandiford@arm.com> gcc/c-family/ * c-common.h (user_facing_original_type_p): Declare. * c-common.c: Include c-spellcheck.h. (user_facing_original_type_p): New function. gcc/c/ * c-objc-common.c (useful_aka_type_p): Replace with... (get_aka_type): ...this new function. Given the original type, decide which aka type to print (if any). Only look through typedefs if user_facing_original_type_p. (print_type): Update accordingly. gcc/testsuite/ * gcc.dg/diag-aka-5.h: New test. * gcc.dg/diag-aka-5a.c: Likewise. * gcc.dg/diag-aka-5b.c: Likewise. * gcc.target/aarch64/diag_aka_1.c (f): Expect an aka to be printed for myvec. From-SVN: r276951
Richard Sandiford committed -
c/ * c-parser.c (c_parser_omp_all_clauses): Change bool NESTED_P argument into int NESTED, if it is 2, diagnose missing commas in between clauses. (c_parser_omp_context_selector): Pass 2 as last argument to c_parser_omp_all_clauses. cp/ * parser.c (cp_parser_omp_all_clauses): Change bool NESTED_P argument into int NESTED, if it is 2, diagnose missing commas in between clauses. (cp_parser_omp_context_selector): Pass 2 as last argument to cp_parser_omp_all_clauses. testsuite/ * c-c++-common/gomp/declare-variant-7.c: Add tests for clauses not separated by commas in simd selector trait properties. From-SVN: r276950
Jakub Jelinek committed -
From-SVN: r276949
Aldy Hernandez committed -
'}' is missed at the end. gcc/ChangeLog: 2019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com> * tree-sra.c (dump_access): Add missing braces. From-SVN: r276948
Xiong Hu Luo committed -
From-SVN: r276947
GCC Administrator committed
-
- 13 Oct, 2019 11 commits
-
-
We applied a conservative, but fairly large, hammer to fix PR71767. However, ideally, we want minimise the number of symbols visible to ld64 and to match the cases emitted by clang (since that's what ld64 is expecting). Now we've improved the handling of indirections, we can make the indirection symbols local when they are in the regular non-lazy symbol pointers section. We will continue to make any indirections in the data section visible (since right now we have no way to track if a given symbol follows a weak global). This change makes no difference to handling of labels for constants (to be revised in a future patch). There's a mechanical change to a number of tests (allowing 'l' or 'L' as the indirection symbol prefix). gcc/ChangeLog: 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.c (machopic_indirection_name): Rework the function to emit linker-visible symbols only for indirections in the data section. Clean up the code and update comments. gcc/testsuite/ChangeLog: 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> * gcc.target/i386/indirect-thunk-1.c: Allow 'l' or 'L' in indirection label prefix, for Darwin. * gcc.target/i386/indirect-thunk-2.c: Likewise. * gcc.target/i386/indirect-thunk-3.c: Likewise. * gcc.target/i386/indirect-thunk-4.c: Likewise. * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. * gcc.target/i386/pr32219-2.c: Likewise. * gcc.target/i386/pr32219-3.c: Likewise. * gcc.target/i386/pr32219-4.c: Likewise. * gcc.target/i386/pr32219-7.c: Likewise. * gcc.target/i386/pr32219-8.c: Likewise. * gcc.target/i386/ret-thunk-14.c: Likewise. * gcc.target/i386/ret-thunk-15.c: Likewise. * gcc.target/i386/ret-thunk-9.c: Likewise. From-SVN: r276943
Iain Sandoe committed -
This code fragment was imported from the Apple branch (it was never applied to mainline). It is stated to fix up a problem sometimes created by reload (before that had been extended to have greater flexibility in assigning the pic registers). In any event, reload is no longer in use for the port. gcc/ChangeLog: 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.c (machopic_indirect_data_reference): Remove redundant code. From-SVN: r276942
Iain Sandoe committed -
re PR fortran/91513 (Non-standard terminology in error message for pointer component assignment in pure procedure) 2019-10-13 Damian Rouson <damain@sourceryinstitue.org> PR fortran/91513 * resolve.c (resolve_ordinary_assign): Improved error message. 2019-10-13 Damian Rouson <damain@sourceryinstitue.org> PR fortran/91513 * gfortran.dg/impure_assignment_2.f90: Update dg-error regex. From-SVN: r276941
Damian Rouson committed -
2019-10-13 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90297 * resolve.c (resolve_typebound_function): Remove code with no functional effect. From-SVN: r276940
Steven G. Kargl committed -
https://gcc.gnu.org/ml/gcc-patches/2019-10/msg00942.html In constifying some more of line-map I discovered gengtype didn't know mutable. Added thusly. * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'. From-SVN: r276939
Nathan Sidwell committed -
2019-10-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/92017 * expr.c (simplify_parameter_variable): Set the character length of the result expression from the original expression if necessary. 2019-10-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/92017 * gfortran.dg/minmaxloc_14.f90: New test. From-SVN: r276938
Thomas Koenig committed -
gcc: * doc/sourcebuild.texi (Test Directives, Add Options): Remove c99_runtime. gcc/testsuite: * lib/target-supports.exp (add_options_for_c99_runtime): Remove. (check_effective_target_c99_runtime): Remove call to add_options_for_c99_runtime. * gcc.dg/builtins-18.c: Remove dg-add-options c99_runtime. * gcc.dg/builtins-20.c: Likewise. * gcc.dg/builtins-53.c: Likewise. * gcc.dg/builtins-55.c: Likewise. * gcc.dg/builtins-67.c: Likewise. * gcc.dg/c99-tgmath-1.c: Likewise. * gcc.dg/c99-tgmath-2.c: Likewise. * gcc.dg/c99-tgmath-3.c: Likewise. * gcc.dg/c99-tgmath-4.c: Likewise. * gcc.dg/ipa/inline-8.c: Likewise. * gcc.dg/ipa/ipa-icf-5.c: Likewise. * gcc.dg/ipa/ipa-icf-7.c: Likewise. * gcc.dg/nextafter-2.c: Likewise. * gcc.dg/pr42427.c: Likewise. * gcc.dg/pr78965.c: Likewise. * gcc.dg/single-precision-constant.c: Likewise. * gcc.dg/torture/builtin-convert-1.c: Likewise. * gcc.dg/torture/builtin-convert-2.c: Likewise. * gcc.dg/torture/builtin-convert-3.c: Likewise. * gcc.dg/torture/builtin-convert-4.c: Likewise. * gcc.dg/torture/builtin-fp-int-inexact.c: Likewise. * gcc.dg/torture/builtin-fp-int-inexact-c2x.c: Likewise. * gcc.dg/torture/builtin-integral-1.c: Likewise. * gcc.dg/torture/builtin-power-1.c: Likewise. * gcc.dg/tree-ssa/copy-sign-1.c: Likewise. * gcc.dg/tree-ssa/minmax-2.c: Likewise. * gcc.dg/tree-ssa/mult-abs-2.c: Likewise. * gcc.target/i386/387-builtin-fp-int-inexact.c: Likewise. * gcc.target/i386/387-rint-inline-1.c: Likewise. * gcc.target/i386/387-rint-inline-2.c: Likewise. * gcc.target/i386/conversion.c: Likewise. * gcc.target/i386/pr47312.c: Likewise. * gcc.target/i386/sse2-builtin-fp-int-inexact.c: Likewise. * gcc.target/i386/sse2-rint-inline-1.c: Likewise. * gcc.target/i386/sse2-rint-inline-2.c: Likewise. * gcc.target/i386/sse4_1-builtin-fp-int-inexact.c: Likewise. * gcc.target/i386/sse4_1-rint-inline.c: Likewise. From-SVN: r276937
Rainer Orth committed -
* lto-common.c (read_cgraph_and_symbols): Grow ggc memory use after summary streaming. From-SVN: r276936
Jan Hubicka committed -
From-SVN: r276935
Jan Hubicka committed -
lto-streamer-out.c (collect_block_tree_leafs): Renumber statements so non-virutal are before virutals. * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements so non-virutal are before virutals. (output_function): Avoid body modifications. From-SVN: r276934
Jan Hubicka committed -
From-SVN: r276933
GCC Administrator committed
-
- 12 Oct, 2019 8 commits
-
-
* config/pa/pa.c (pa_output_call): Load descriptor address to register %r22. Load function address before global pointer. (pa_attr_length_indirect_call): Adjust length of inline versions of $$dyncall. (pa_output_indirect_call): Remove fast inline version of $$dyncall before normal cases. Update inline $$dyncall sequences to preserve function descriptor address in register %r22. (TRAMPOLINE_CODE_SIZE): Adjust. (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume register %r22 contains trampoline address. (pa_trampoline_init): Adjust offsets. (pa_trampoline_adjust_address): Likewise. * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size. From-SVN: r276928
John David Anglin committed -
When we're using the LLVM-based assembler (the default on modern Darwin) the ordering of stubs and non-lazy symbol pointers is important. Interleaving the output (current GCC behaviour) leads to crashes which prevents us from building code with symbol stubs. To resolve this, we order the output of stubs and symbol indirections: 1. Any indirections in the data section 2. Symbol stubs. 3. Non-lazy symbol pointers. At present, we still emit LTO sections after these. gcc/ChangeLog: 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> PR target/67183 * config/darwin.c (machopic_indirection): New field to flag non-lazy-symbol-pointers in the data section. (machopic_indirection_name): Compute if an indirection should appear in the data section. (machopic_output_data_section_indirection): New callback split from machopic_output_indirection. (machopic_output_stub_indirection): Likewise. (machopic_output_indirection): Retain the code for non-lazy symbol pointers in their regular section. (machopic_finish): Use the new callbacks to order the indirection output. From-SVN: r276926
Iain Sandoe committed -
* config/pa/lib2funcs.S (__gcc_plt_call): Load branch target to %r21. Load PIC register after branch target. Fix white space. * config/pa/milli64.S ($$dyncall): Separate LINUX and non LINUX implementations. Load PIC register after branch target. Don't clobber function pointer when it points to function descriptor. Use nullification instead of branch in LINUX implementation. From-SVN: r276925
John David Anglin committed -
It's only called from darwin.c. gcc/ChangeLog: 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> * config/darwin-protos.h (machopic_finish): Delete. * config/darwin.c (machopic_finish): Make static. From-SVN: r276924
Iain Sandoe committed -
Older versions of GCC emit empty .constructor/.destructor sections whenever building for C++. In fact, these sections are only used for kernel mode code - so don't emit them unless that's what we're building. gcc/ChangeLog: 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR sections when building kernel extension code. From-SVN: r276923
Iain Sandoe committed -
Fixes: 66ce32bb2a8 ("Fix the ChangeLog for my previous commit") From-SVN: r276922
Palmer Dabbelt committed -
The documentation used to indicate that the inline keyword was only supported by c99 and c11, whereas in fact it is supported by c99 and all newer standards. gcc/ChangeLog 2019-10-12 Palmer Dabbelt <palmer@sifive.com> * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a later standard." From-SVN: r276921
Palmer Dabbelt committed -
* gcc/config/pa/pa.c (pa_option_override): Remove trailing comma from warning. From-SVN: r276920
John David Anglin committed
-