Re: [PATCH 3/n] ipa: Simplify interface of ipa_call_context::estimate_size_and_time
> Hi, > > this patch changes ipa_call_context::estimate_size_and_time to store > its results into member fields of the ipa_call_context class instead > into pointers it receives as parameters so that it can compute ore > stuff without cluttering the interface even further. > > Bootstrapped and tested on x86_64-linux. OK for master on top of the > previous two patches? ipa_call_context is intended to be structure holding all parameters that are needed to produce the estimates (size/time/hints). Adding the actual estimates there would duplicate it with cache. What about keeping them separate and inventing ipa_call_estimates structure to hold the reults? Honza > > Thanks, > > Martin > > > gcc/ChangeLog: > > 2020-08-28 Martin Jambor > > * ipa-fnsummary.h (class ipa_call_context): Changed declaration of > estimate_size_and_time to accept two booleans. Added an overload > of the method without any parameters. New fields m_size, > m_min_size, m_time, m_nonspecialized_time and m_hints. > * ipa-cp.c (hint_time_bonus): Changed the second parameter from > just hints to a const reference to ipa_call_context. > (perform_estimation_of_a_value): Adjusted to the new interface of > ipa_call_context::estimate_size_and_time. > * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): > Modified to store results into member fields of the class. > * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to the > new interface of ipa_call_context::estimate_size_and_time. > (do_estimate_edge_size): Likewise. > (do_estimate_edge_hints): Likewise. > --- > gcc/ipa-cp.c | 41 - > gcc/ipa-fnsummary.c | 48 +++ > gcc/ipa-fnsummary.h | 33 +++ > gcc/ipa-inline-analysis.c | 45 ++-- > 4 files changed, 94 insertions(+), 73 deletions(-) > > diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c > index e37e71bd24f..010ecfc6b43 100644 > --- a/gcc/ipa-cp.c > +++ b/gcc/ipa-cp.c > @@ -3182,12 +3182,13 @@ devirtualization_time_bonus (struct cgraph_node *node, >return res; > } > > -/* Return time bonus incurred because of HINTS. */ > +/* Return time bonus incurred because of hints stored in CTX. */ > > static int > -hint_time_bonus (cgraph_node *node, ipa_hints hints) > +hint_time_bonus (cgraph_node *node, const ipa_call_context &ctx) > { >int result = 0; > + ipa_hints hints = ctx.m_hints; >if (hints & (INLINE_HINT_loop_iterations | INLINE_HINT_loop_stride)) > result += opt_for_fn (node->decl, param_ipa_cp_loop_hint_bonus); >return result; > @@ -3387,16 +3388,14 @@ perform_estimation_of_a_value (cgraph_node *node, > ipa_call_arg_values *avals, > int removable_params_cost, int est_move_cost, > ipcp_value_base *val) > { > - int size, time_benefit; > - sreal time, base_time; > - ipa_hints hints; > + int time_benefit; > >ipa_call_context ctx = ipa_call_context::for_cloned_node (node, avals); > - ctx.estimate_size_and_time (&size, NULL, &time, &base_time, &hints); > + ctx.estimate_size_and_time (); > > - base_time -= time; > - if (base_time > 65535) > -base_time = 65535; > + sreal time_delta = ctx.m_nonspecialized_time - ctx.m_time; > + if (time_delta > 65535) > +time_delta = 65535; > >/* Extern inline functions have no cloning local time benefits because they > will be inlined anyway. The only reason to clone them is if it enables > @@ -3404,11 +3403,12 @@ perform_estimation_of_a_value (cgraph_node *node, > ipa_call_arg_values *avals, >if (DECL_EXTERNAL (node->decl) && DECL_DECLARED_INLINE_P (node->decl)) > time_benefit = 0; >else > -time_benefit = base_time.to_int () > +time_benefit = time_delta.to_int () >+ devirtualization_time_bonus (node, avals) > - + hint_time_bonus (node, hints) > + + hint_time_bonus (node, ctx) >+ removable_params_cost + est_move_cost; > > + int size = ctx.m_size; >gcc_checking_assert (size >=0); >/* The inliner-heuristics based estimates may think that in certain > contexts some functions do not have any size at all but we want > @@ -3463,24 +3463,22 @@ estimate_local_effects (struct cgraph_node *node) >|| (removable_params_cost && node->can_change_signature)) > { >struct caller_statistics stats; > - ipa_hints hints; > - sreal time, base_time; > - int size; > >init_caller_stats (&stats); >node->call_for_symbol_thunks_and_aliases (gather_caller_stats, &stats, > false); >ipa_call_context ctx = ipa_call_context::for_cloned_node (node, > &avals); > - ctx.estimate_size_and_time (&size, NULL, &time, &base_time, &hints); > + ctx.estimate_size_and_time (); > > - time -= devirt_bo
Re: [PATCH] ipa: Merge vectors describing argument values into one type
> Hi, > > this large patch is a semi-mechanical change which aims to replace > uses of separate vectors about known scalar values (usually called > known_vals or known_csts), known aggregate values (known_aggs), known > virtual call contexts (known_contexts) and known value > ranges (known_value_ranges) with uses of one type called > ipa_call_arg_values. The main benefit is bringing down the number of > arguments that various call context evaluating functions have. > Because the new type uses auto_vecs deallocation is simpler and it > also takes advantage of storage within the auto_vecs themselves, > eliminating the need for allocating memory when analyzing most > functions. > > The one place where this patch is not mechanical is the > node_context_cache_entry RCU cache. Before the elements contained > directly ipa_call_context instances which however owned their vectors, > they did not share them with their users like non-cache contexts. Now > the vectors are behind the pointer which means ipa_call_arg_values > would have to be allocated, for many functions at once, and so it > could not make use of auto_vecs with generous internal storage. > > I avoided both by reworking the cache to contain copies of all fields > o interest of ipa_call_context, including the interesting vectors. > This makes the type a bit more verbose but the main functionality, > storing to the cache and comparing a context with a cache entry, > remained very similar. Can you pleae benchmark this on building Firfox or something similar? I was running into two problems here. First was overhead of malloc allocations and that is reason why I am trying to not allocate the vector when not necessary and also place them on stack rather then heap for those having short lifetime (not being in cache). Second problem is memory use - we may end up with quite many contextes since calls are very numerous. Honza > > This patch does not unify information about scalar values, aggregate > values, virtual contexts and value ranges that IPA-CP stores for > clones it creates. The main reason is not to make this patch even > bigger. Another one is that such change would not be as mechanical, > the aggregate values for clones are stored in a different format. I > am considering doing something similar for them too however, even > though using ipa_call_arg_values directly would also mean not using > big auto_vecs in it. > > I have bootstrapped and tested what I believe to be an identical patch > (before I fixed some comments) on x86_64-linux, I am running LTO > bootstrap on exactly this patch now. OK for master if it passes? > > Thanks, > > Martin > > > > gcc/ChangeLog: > > 2020-08-27 Martin Jambor > > * ipa-prop.h (ipa_call_arg_values): New type. > (ipa_get_indirect_edge_target): Replaced vector arguments > with ipa_call_arg_values in declaration. > * ipa-fnsummary.h (ipa_node_context_cache_entry): New forward > declaration. > (class ipa_call_context): Removed members m_known_vals, > m_known_contexts, m_known_aggs, duplicate_from, release and > equal_to, new members m_avals, store_to_cache and equivalent_to_p. > Adjusted construcotr arguments. > (estimate_ipcp_clone_size_and_time): Replaced vector arguments > with ipa_call_arg_values in declaration. > (evaluate_properties_for_edge): Likewise. > * ipa-cp.c (ipa_get_indirect_edge_target): Adjust to work on > ipa_call_arg_values rather than on separate vectors. > (devirtualization_time_bonus): Likewise. > (gather_context_independent_values): Likewise. > (perform_estimation_of_a_value): Likewise. > (estimate_local_effects): Likewise. > (modify_known_vectors_with_val): Adjust both variants to work on > ipa_call_arg_values and rename them to copy_known_vectors_add_val. > (decide_about_value): Adjust to work on ipa_call_arg_values rather > than on separate vectors. > (decide_whether_version_node): Likewise. > * ipa-fnsummary.c (evaluate_conditions_for_known_args): Adjust to > work on ipa_call_arg_values rather than on separate vectors. > (evaluate_properties_for_edge): Likewise. > (ipa_fn_summary_t::duplicate): Likewise. > (estimate_edge_devirt_benefit): Likewise. > (estimate_edge_size_and_time): Likewise. > (estimate_calls_size_and_time_1): Likewise. > (summarize_calls_size_and_time): Adjust calls to > estimate_edge_size_and_time. > (estimate_calls_size_and_time): Adjust to work on > ipa_call_arg_values rather than on separate vectors. > (ipa_call_context::ipa_call_context): Likewise. > (ipa_call_context::duplicate_from): Removed. > (ipa_call_context::release): Likewise. > (ipa_call_context::equal_to): Likewise. > (ipa_call_context::estimate_size_and_time): Adjust to work on > ipa_call_arg_values rather than on separate vectors. > (estimate_ipcp_c
[PATCH v2] doc: add 'cd' command before 'make check-gcc' command in install.texi
This patch add 'cd' command before 'make check-gcc' command when run the testsuite on selected tests. Richard and I agree it would be good for clarity and emphasis to have the cd in the example as well, although the text above the example was trying to restrict that to objdir/gcc. Tested on x86_64. OK for master? Regards! Hujp --- gcc/doc/install.texi | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 5330bf3bb29..1560615bf3c 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -2963,8 +2963,9 @@ on a simulator as described at @uref{http://gcc.gnu.org/simtest-howto.html}. @section How can you run the testsuite on selected tests? In order to run sets of tests selectively, there are targets -@samp{make check-gcc} and language specific @samp{make check-c}, -@samp{make check-c++}, @samp{make check-d} @samp{make check-fortran}, +@samp{make check-gcc}, @samp{make check-g++} and language specific +@samp{make check-c}, +@samp{make check-c++}, @samp{make check-d}, @samp{make check-fortran}, @samp{make check-ada}, @samp{make check-objc}, @samp{make check-obj-c++}, @samp{make check-lto} in the @file{gcc} subdirectory of the object directory. You can also @@ -2975,14 +2976,14 @@ A more selective way to just run all @command{gcc} execute tests in the testsuite is to use @smallexample -make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}" +cd @var{objdir}/gcc; make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}" @end smallexample Likewise, in order to run only the @command{g++} ``old-deja'' tests in the testsuite with filenames matching @samp{9805*}, you would use @smallexample -make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}" +cd @var{objdir}/gcc; make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}" @end smallexample The file-matching expression following @var{filename}@command{.exp=} is treated @@ -2991,8 +2992,8 @@ may be passed, although any whitespace must either be escaped or surrounded by single quotes if multiple expressions are desired. For example, @smallexample -make check-g++ RUNTESTFLAGS="old-deja.exp=9805*\ virtual2.c @var{other-options}" -make check-g++ RUNTESTFLAGS="'old-deja.exp=9805* virtual2.c' @var{other-options}" +@dots{}"old-deja.exp=9805*\ virtual2.c @var{other-options}" +@dots{}"'old-deja.exp=9805* virtual2.c' @var{other-options}" @end smallexample The @file{*.exp} files are located in the testsuite directories of the GCC @@ -3010,7 +3011,7 @@ You can pass multiple options to the testsuite using the work outside the makefiles. For example, @smallexample -make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants" +cd @var{objdir}/gcc; make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants" @end smallexample will run the standard @command{g++} testsuites (``unix'' is the target name @@ -3063,7 +3064,7 @@ make -j@var{N} check-@var{testsuite}//@var{test-target}/@var{option1}/@var{optio For example, @smallexample -make -j3 check-gcc//sh-hms-sim/@{-m1,-m2,-m3,-m3e,-m4@}/@{,-nofpu@} +cd @var{objdir}/gcc; make -j3 check-gcc//sh-hms-sim/@{-m1,-m2,-m3,-m3e,-m4@}/@{,-nofpu@} @end smallexample will run three concurrent ``make-gcc'' testsuites, eventually testing all -- 2.17.1
Re: [PATCH 0/6] Parallelize Intra-Procedural Optimizations using the LTO Engine.
> > It not only creates hidden symbols, but it also changes the original > symbol name to avoid clashses with other object files. It could be > very nice to avoid doing this at all. > > There was once an idea (I don't remember if from Richi or Honza) to > avoid using partial linking, but instead concatenate the generated > assembler files into a single assembler file and assemble it. This > would remove the requirement of symbol promotion, as they would be > in the same assembler file, but I am not sure if this would work out > of the box (i.e. if GCC generates assembler that could be concatenated > together). Not out of the box, because we number labels which will clash but we also do smarter tihngs like producing constant pools based on whole unit knowledge. But it should not be technically that hard: simply initialize asm output before fork to one file, in each fork arrange separate file and avoid priting the end of file stuff and then concatenate in the main compiler and work out the places where this breaks... Honza > > > > > > Bootstrapped and Regtested on Linux x86_64. > > > > > > Giuliano Belinassi (6): > > > Modify gcc driver for parallel compilation > > > Implement a new partitioner for parallel compilation > > > Implement fork-based parallelism engine > > > Add `+' for Jobserver Integration > > > Add invoke documentation > > > New tests for parallel compilation feature > > > > > > gcc/Makefile.in |6 +- > > > gcc/cgraph.c | 16 + > > > gcc/cgraph.h | 13 + > > > gcc/cgraphunit.c | 198 ++- > > > gcc/common.opt|4 + > > > gcc/doc/invoke.texi | 32 +- > > > gcc/gcc.c | 1219 + > > > gcc/ipa-fnsummary.c |2 +- > > > gcc/ipa-icf.c |3 +- > > > gcc/ipa-visibility.c |3 +- > > > gcc/ipa.c |4 +- > > > gcc/jobserver.cc | 168 +++ > > > gcc/jobserver.h | 33 + > > > gcc/lto-cgraph.c | 172 +++ > > > gcc/{lto => }/lto-partition.c | 463 ++- > > > gcc/{lto => }/lto-partition.h |4 +- > > > gcc/lto-streamer.h|4 + > > > gcc/lto/Make-lang.in |4 +- > > > gcc/lto/lto.c |2 +- > > > gcc/params.opt|8 + > > > gcc/symtab.c | 46 +- > > > gcc/testsuite/driver/a.c |6 + > > > gcc/testsuite/driver/b.c |6 + > > > gcc/testsuite/driver/driver.exp | 80 ++ > > > gcc/testsuite/driver/empty.c |0 > > > gcc/testsuite/driver/foo.c|7 + > > > .../gcc.dg/parallel-early-constant.c | 22 + > > > gcc/testsuite/gcc.dg/parallel-static-1.c | 21 + > > > gcc/testsuite/gcc.dg/parallel-static-2.c | 21 + > > > .../gcc.dg/parallel-static-clash-1.c | 23 + > > > .../gcc.dg/parallel-static-clash-aux.c| 14 + > > > gcc/toplev.c | 58 +- > > > gcc/toplev.h |3 + > > > gcc/tree.c| 23 +- > > > gcc/varasm.c | 26 +- > > > intl/Makefile.in |2 +- > > > libbacktrace/Makefile.in |2 +- > > > libcpp/Makefile.in|2 +- > > > libdecnumber/Makefile.in |2 +- > > > libiberty/Makefile.in | 212 +-- > > > zlib/Makefile.in | 64 +- > > > 41 files changed, 2539 insertions(+), 459 deletions(-) > > > create mode 100644 gcc/jobserver.cc > > > create mode 100644 gcc/jobserver.h > > > rename gcc/{lto => }/lto-partition.c (78%) > > > rename gcc/{lto => }/lto-partition.h (89%) > > > create mode 100644 gcc/testsuite/driver/a.c > > > create mode 100644 gcc/testsuite/driver/b.c > > > create mode 100644 gcc/testsuite/driver/driver.exp > > > create mode 100644 gcc/testsuite/driver/empty.c > > > create mode 100644 gcc/testsuite/driver/foo.c > > > create mode 100644 gcc/testsuite/gcc.dg/parallel-early-constant.c > > > create mode 100644 gcc/testsuite/gcc.dg/parallel-static-1.c > > > create mode 100644 gcc/testsuite/gcc.dg/parallel-static-2.c > > > create mode 100644 gcc/testsuite/gcc.dg/parallel-static-clash-1.c > > > create mode 100644 gcc/testsuite/gcc.dg/parallel-static-clash-aux.c > > > > > > -- > > > 2.28.0 > > >
Re: [PATCH 3/6] Implement fork-based parallelism engine
> Hi, Honza. > > Thank you for your detailed review! > > On 08/27, Jan Hubicka wrote: > > > diff --git a/gcc/cgraph.c b/gcc/cgraph.c > > > index c0b45795059..22405098dc5 100644 > > > --- a/gcc/cgraph.c > > > +++ b/gcc/cgraph.c > > > @@ -226,6 +226,22 @@ cgraph_node::delete_function_version_by_decl (tree > > > decl) > > >decl_node->remove (); > > > } > > > > > > +/* Release function dominator info if present. */ > > > + > > > +void > > > +cgraph_node::maybe_release_dominators (void) > > > +{ > > > + struct function *fun = DECL_STRUCT_FUNCTION (decl); > > > + > > > + if (fun && fun->cfg) > > > +{ > > > + if (dom_info_available_p (fun, CDI_DOMINATORS)) > > > + free_dominance_info (fun, CDI_DOMINATORS); > > > + if (dom_info_available_p (fun, CDI_POST_DOMINATORS)) > > > + free_dominance_info (fun, CDI_POST_DOMINATORS); > > > +} > > > +} > > > > I am not sure if that needs to be member function, but if so we want to > > merge it with other places in cgraph.c and cgraphunit.c where dominators > > are freed. I do not think you need to check avalability. > > This is necessary to remove some nodes from the callgraph. For some > reason, if I node->remove () and it still have the dominance info > available, it will fail some assertions on the compiler. > > However, with regard to code layout, this can be moved to lto-cgraph.c, > as it is only used there. node->remove () is supposed to work here. I relalize that we remove random nodes currently only via the unreachable code removal that also does node->remove_body () so there may be some bug. > > > + /* Get symtab node by order. */ > > > + static symtab_node *find_by_order (int order); > > > > This is quadratic and moreover seems unused. Why do you add it? > > I added this for debugging, since I used this a lot inside GDB. > Sure, I can remove this without any problems, or print a warning > for the developer to avoid calling this in production code. We could keep this as separate patch, since it is independent of rest of changes. Having more debug_* functions is fine with me, but I would like to having nondebug members since sooner or later someone will use them in non-debug code. > > > + /* FIXME: Find out why body-removed nodes are marked for output. */ > > > + if (body_removed) > > > +return; > > > > Indeed, we should know :) > > Looks like this was due an early problem. I removed this and bootstrap > is working OK. Cool, random changes like this looks suspicious :) > > > > This looks odd, we have other places where we parse number from command > > line :) > > isdigit () is poisoned in GCC. But I guess I should look how -flto= > does this. Seems we simply do atoi and compare with 0 that is invalid. > > > > Messing with WPA/ltrans flags is not good idea. You already have > > split_output for parallel build. I sort of see why you set ltrans, but > > why WPA? > > Some assertions expected flag_wpa to be present. Sure, I can add > split_outputs in these assertions. Yep, that would be cleaner. > > > > There is boundary computation in lto-cgraph.c so we should merge the > > logic... > > Agree. > > > If you keep the lto-partition datastructures it will compute boundary > > for you and you can just remove the rest (I got that working at one > > point). > > This is interesting, because I could not get that working out of the > box. The lto_promote_cross_statics did not provide a fully working > boundary that I could simple remove everything else. If you take a > closer look, you will see that I am using the already computed boundary > as a base, and incrementing that with the extra stuff required > (mainly inline clones body). What problems exactly you run into when you remove the extra code? > > > > Aha, that is what it does :) > > I wonder if creating the file conditionally (and late) can not lead to > > race condition where we will use same tmp file name for other build > > executed in parallel by make. > > Hummm. True. Added to my TODO list :) > Well, I never had any sort of issues with race condition here, even > after stressing it, but this certainly is not proof that it is free of > race conditition :) I really do not know how this works, since we create other files with delay too. I suppose we get a tmp filename that is tested to be unique and then we simply assume that we can derive names from it. Honza
RE: [PATCH] testsuite: add -fno-tree-fre in gcc.dg/guality
Hi, Jakub Thank you for your detailed explanation. I will try to compare the results of rtl expand as Richard have suggested, to see if I can find anything. May be I can make another patch. Thanks again. Regards! Hujp > On Thu, Aug 27, 2020 at 11:13:50AM +, Hu, Jiangping wrote: > > I'm not sure about if the case should fail. > > So, I add Jakub who committed this testcase. > > > > I thought the case should success, but for changes of gcc of > > years, now it failed. So I think that may be some optimization > > are unnecessary for this testcase, and I found the FRE. > > The intent of the guality testsuite is to track regressions in debug info > quality. Because the testing matrix is huge > (different targets x different -O* options x different gdb versions), > it isn't really feasible to keep xfails for them accurately, so all we > care > about is whether we don't regress compared to older gcc releases for the > same target, same -O* options and same gdb version. > If we do regress e.g. because of some added optimization, the intent is > that it is analyzed why it regressed and if possible some improvements > in the debug info generation are added to deal with the optimization if > possible. > So adding -fno-tree-* is not the right solution, the majority of people > will > not use such options in their codes and so they will observe the debug > info > quality degradation there. > > Jakub > >
[Patch, fortran] PR96495 - [gfortran] Composition of user-defined operators does not copy ALLOCATABLE property of derived type
This patch detects a scalar function result that has allocatable components and is being used inside a scalarization loop. Before this patch, the components would be deallocated and nullified within the scalarization loop and so would cause a segfault on the second cycle of the loop. The stored result has to be found by identifying the expression in the loop ss chain. This is then used for the deallocation of the allocatable components in the loop post block, which keeps gimple happy and prevents the segfault. Regtests on FC31/x86_64 - OK for master? Paul This patch fixes PR96495 - frees result components outside loop. 2020-29-08 Paul Thomas gcc/fortran PR fortran/96495 * trans-expr.c (gfc_conv_procedure_call): Take the deallocation of allocatable result components of a scalar result outside the scalarization loop. Find and use the stored result. gcc/testsuite/ PR fortran/96495 * gfortran.dg/alloc_comp_result_2.f90 : New test. diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 36ff9b5cbc6..a690839f591 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -6421,6 +6421,26 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym, if (!finalized && !e->must_finalize) { + bool scalar_res_outside_loop; + scalar_res_outside_loop = e->expr_type == EXPR_FUNCTION + && parm_rank == 0 + && parmse.loop; + + if (scalar_res_outside_loop) + { + /* Go through the ss chain to find the argument and use + the stored value. */ + gfc_ss *tmp_ss = parmse.loop->ss; + for (; tmp_ss; tmp_ss = tmp_ss->next) + if (tmp_ss->info + && tmp_ss->info->expr == e + && tmp_ss->info->data.scalar.value != NULL_TREE) + { + tmp = tmp_ss->info->data.scalar.value; + break; + } + } + if ((e->ts.type == BT_CLASS && GFC_CLASS_TYPE_P (TREE_TYPE (tmp))) || e->ts.type == BT_DERIVED) @@ -6429,7 +6449,11 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym, else if (e->ts.type == BT_CLASS) tmp = gfc_deallocate_alloc_comp (CLASS_DATA (e)->ts.u.derived, tmp, parm_rank); - gfc_prepend_expr_to_block (&post, tmp); + + if (scalar_res_outside_loop) + gfc_add_expr_to_block (&parmse.loop->post, tmp); + else + gfc_prepend_expr_to_block (&post, tmp); } } ! { dg-do run } ! ! Test the fix for PR96495 - segfaults at runtime at locations below. ! ! Contributed by Paul Luckner ! module foo_m implicit none type foo integer, allocatable :: j(:) end type interface operator(.unary.) module procedure neg_foo end interface interface operator(.binary.) module procedure foo_sub_foo end interface interface operator(.binaryElemental.) module procedure foo_add_foo end interface contains elemental function foo_add_foo(f, g) result(h) !! an example for an elemental binary operator type(foo), intent(in) :: f, g type(foo) :: h allocate (h%j(size(f%j)), source = f%j+g%j) end function elemental function foo_sub_foo(f, g) result(h) !! an example for an elemental binary operator type(foo), intent(in) :: f, g type(foo) :: h allocate (h%j(size(f%j)), source = f%j-3*g%j) end function pure function neg_foo(f) result(g) !! an example for a unary operator type(foo), intent(in) :: f type(foo) :: g allocate (g%j(size(f%j)), source = -f%j) end function end module program main_tmp use foo_m implicit none type(foo) f, g(2) allocate (f%j(3)) f%j = [2, 3, 4] g = f if (any (g(2)%j .ne. [2, 3, 4])) stop 1 g = g .binaryElemental. (f .binary. f) ! threw "Segmentation fault" if (any (g(2)%j .ne. [-2,-3,-4])) stop 2 g = g .binaryElemental. ( .unary. f) ! threw "Segmentation fault" if (any (g(2)%j .ne. [-4,-6,-8])) stop 3 end program
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
Hi, On Wed, Aug 26, 2020 at 04:38:21PM -0700, H.J. Lu wrote: > On Wed, Aug 26, 2020 at 2:38 PM Mark Wielaard wrote: > > Would it be possible to have something like the following in gas, so > > that it doesn't try generating a .debug_line section if there already > > is one, even when -gdwarf-N is given (unless the assembly also > > contains .loc directives because that shows the user is really > > confused)? > > > > diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c > > index e4ba56d82ba..c0c09f4e9d0 100644 > > --- a/gas/dwarf2dbg.c > > +++ b/gas/dwarf2dbg.c > > @@ -2626,7 +2626,7 @@ dwarf2_init (void) > > > > > > /* Finish the dwarf2 debug sections. We emit .debug.line if there > > - were any .file/.loc directives, or --gdwarf2 was given, or if the > > + were any .file/.loc directives, or --gdwarf2 was given, and if the > > file has a non-empty .debug_info section and an empty .debug_line > > section. If we emit .debug_line, and the .debug_info section is > > empty, we also emit .debug_info, .debug_aranges and .debug_abbrev. > > @@ -2650,9 +2650,16 @@ dwarf2_finish (void) > >empty_debug_line = line_seg == NULL || !seg_not_empty_p (line_seg); > > > >/* We can't construct a new debug_line section if we already have one. > > - Give an error. */ > > + Give an error if we have seen any .loc, otherwise trust the user > > + knows what they are doing and want to generate the .debug_line > > + (and all other debug sections) themselves. */ > >if (all_segs && !empty_debug_line) > > -as_fatal ("duplicate .debug_line sections"); > > +{ > > + if (dwarf2_loc_directive_seen) > > + as_fatal ("duplicate .debug_line sections"); > > + else > > + return; > > +} > > > >if ((!all_segs && emit_other_sections) > >|| (!emit_other_sections && !empty_debug_line)) > > > > I have run into this issue before. "as -g" shouldn't silently > generate incorrect debug info when input assembly codes already > contain debug directives. AS should either issue an error or > ignore -g. Right, that is what this patch does for .debug_line. gas already doesn't generate .debug_info, .debug_aranges and .debug_abbrev if .debug_info is non-empty, even if -g is given. > In either case, we need a testcase to verify it. Right, and the documentation needs to be update. But first we have to know whether the gas maintainers think this is the right approach. Cheers, Mark
[PATCH] RISC-V/libgcc: Use `-fasynchronous-unwind-tables' for LIB2_DIVMOD_FUNCS
Use `-fasynchronous-unwind-tables' rather than `-fexceptions -fnon-call-exceptions' in LIB2_DIVMOD_FUNCS compilation flags so as to provide unwind tables for the affected functions while not pulling the unwinder proper, which is not required here. Beyond saving program space it fixes a RISC-V glibc build error due to unsatisfied `malloc' and `free' references from the unwinder causing link errors with `ld.so' where libgcc has been built at -O0. libgcc/ * config/riscv/t-elf (LIB2_DIVMOD_EXCEPTION_FLAGS): New variable. --- Hi, As Mon, Aug 31st (a bank holiday in England) will be my last day at Western Digital and I won't be able to submit patches on behalf of the company afterwards here is a replacement change for RISC-V only in case the generic one discussed here:
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
On Sat, Aug 29, 2020 at 5:24 AM Mark Wielaard wrote: > > Hi, > > On Wed, Aug 26, 2020 at 04:38:21PM -0700, H.J. Lu wrote: > > On Wed, Aug 26, 2020 at 2:38 PM Mark Wielaard wrote: > > > Would it be possible to have something like the following in gas, so > > > that it doesn't try generating a .debug_line section if there already > > > is one, even when -gdwarf-N is given (unless the assembly also > > > contains .loc directives because that shows the user is really > > > confused)? > > > > > > diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c > > > index e4ba56d82ba..c0c09f4e9d0 100644 > > > --- a/gas/dwarf2dbg.c > > > +++ b/gas/dwarf2dbg.c > > > @@ -2626,7 +2626,7 @@ dwarf2_init (void) > > > > > > > > > /* Finish the dwarf2 debug sections. We emit .debug.line if there > > > - were any .file/.loc directives, or --gdwarf2 was given, or if the > > > + were any .file/.loc directives, or --gdwarf2 was given, and if the > > > file has a non-empty .debug_info section and an empty .debug_line > > > section. If we emit .debug_line, and the .debug_info section is > > > empty, we also emit .debug_info, .debug_aranges and .debug_abbrev. > > > @@ -2650,9 +2650,16 @@ dwarf2_finish (void) > > >empty_debug_line = line_seg == NULL || !seg_not_empty_p (line_seg); > > > > > >/* We can't construct a new debug_line section if we already have one. > > > - Give an error. */ > > > + Give an error if we have seen any .loc, otherwise trust the user > > > + knows what they are doing and want to generate the .debug_line > > > + (and all other debug sections) themselves. */ > > >if (all_segs && !empty_debug_line) > > > -as_fatal ("duplicate .debug_line sections"); > > > +{ > > > + if (dwarf2_loc_directive_seen) > > > + as_fatal ("duplicate .debug_line sections"); > > > + else > > > + return; > > > +} > > > > > >if ((!all_segs && emit_other_sections) > > >|| (!emit_other_sections && !empty_debug_line)) > > > > > > > I have run into this issue before. "as -g" shouldn't silently > > generate incorrect debug info when input assembly codes already > > contain debug directives. AS should either issue an error or > > ignore -g. > > Right, that is what this patch does for .debug_line. gas already > doesn't generate .debug_info, .debug_aranges and .debug_abbrev if > .debug_info is non-empty, even if -g is given. > > > In either case, we need a testcase to verify it. > > Right, and the documentation needs to be update. But first we have to > know whether the gas maintainers think this is the right approach. > -g should be ignored in this case. -- H.J.
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
Hi, On Sat, Aug 29, 2020 at 07:34:35AM -0700, H.J. Lu wrote: > On Sat, Aug 29, 2020 at 5:24 AM Mark Wielaard wrote: > > On Wed, Aug 26, 2020 at 04:38:21PM -0700, H.J. Lu wrote: > > > On Wed, Aug 26, 2020 at 2:38 PM Mark Wielaard wrote: > > > > Would it be possible to have something like the following in gas, so > > > > that it doesn't try generating a .debug_line section if there already > > > > is one, even when -gdwarf-N is given (unless the assembly also > > > > contains .loc directives because that shows the user is really > > > > confused)? > > > > > > > > diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c > > > > index e4ba56d82ba..c0c09f4e9d0 100644 > > > > --- a/gas/dwarf2dbg.c > > > > +++ b/gas/dwarf2dbg.c > > > > @@ -2626,7 +2626,7 @@ dwarf2_init (void) > > > > > > > > > > > > /* Finish the dwarf2 debug sections. We emit .debug.line if there > > > > - were any .file/.loc directives, or --gdwarf2 was given, or if the > > > > + were any .file/.loc directives, or --gdwarf2 was given, and if the > > > > file has a non-empty .debug_info section and an empty .debug_line > > > > section. If we emit .debug_line, and the .debug_info section is > > > > empty, we also emit .debug_info, .debug_aranges and .debug_abbrev. > > > > @@ -2650,9 +2650,16 @@ dwarf2_finish (void) > > > >empty_debug_line = line_seg == NULL || !seg_not_empty_p (line_seg); > > > > > > > >/* We can't construct a new debug_line section if we already have > > > > one. > > > > - Give an error. */ > > > > + Give an error if we have seen any .loc, otherwise trust the user > > > > + knows what they are doing and want to generate the .debug_line > > > > + (and all other debug sections) themselves. */ > > > >if (all_segs && !empty_debug_line) > > > > -as_fatal ("duplicate .debug_line sections"); > > > > +{ > > > > + if (dwarf2_loc_directive_seen) > > > > + as_fatal ("duplicate .debug_line sections"); > > > > + else > > > > + return; > > > > +} > > > > > > > >if ((!all_segs && emit_other_sections) > > > >|| (!emit_other_sections && !empty_debug_line)) > > > > > > I have run into this issue before. "as -g" shouldn't silently > > > generate incorrect debug info when input assembly codes already > > > contain debug directives. AS should either issue an error or > > > ignore -g. > > > > Right, that is what this patch does for .debug_line. gas already > > doesn't generate .debug_info, .debug_aranges and .debug_abbrev if > > .debug_info is non-empty, even if -g is given. > > > > > In either case, we need a testcase to verify it. > > > > Right, and the documentation needs to be update. But first we have to > > know whether the gas maintainers think this is the right approach. > > -g should be ignored in this case. I am not sure what you mean by "in this case", or what precisely it means to "ignore -g". My proposal, and what my strawman patch implements, is that gas will generate a .debug_line section when -g is given and the debug types is DWARF (just as it does now). Unless there is a non-empty .debug_line section already created by the input assembly and the input assembly does not contain any .loc directive then gas will not try to generate a .debug_line section itself but leaves the non-empty .debug_line as is (currently gas will generate an error in this case). But if the input assembly does contain both .loc directives and creates a non-empty .debug line section gas will still generate an error (as it does now, whether or not the input assembly contains any .loc directives). Does this sound sane? Thanks, Mark
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
On Sat, Aug 29, 2020 at 8:23 AM Mark Wielaard wrote: > > Hi, > > On Sat, Aug 29, 2020 at 07:34:35AM -0700, H.J. Lu wrote: > > On Sat, Aug 29, 2020 at 5:24 AM Mark Wielaard wrote: > > > On Wed, Aug 26, 2020 at 04:38:21PM -0700, H.J. Lu wrote: > > > > On Wed, Aug 26, 2020 at 2:38 PM Mark Wielaard wrote: > > > > > Would it be possible to have something like the following in gas, so > > > > > that it doesn't try generating a .debug_line section if there already > > > > > is one, even when -gdwarf-N is given (unless the assembly also > > > > > contains .loc directives because that shows the user is really > > > > > confused)? > > > > > > > > > > diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c > > > > > index e4ba56d82ba..c0c09f4e9d0 100644 > > > > > --- a/gas/dwarf2dbg.c > > > > > +++ b/gas/dwarf2dbg.c > > > > > @@ -2626,7 +2626,7 @@ dwarf2_init (void) > > > > > > > > > > > > > > > /* Finish the dwarf2 debug sections. We emit .debug.line if there > > > > > - were any .file/.loc directives, or --gdwarf2 was given, or if the > > > > > + were any .file/.loc directives, or --gdwarf2 was given, and if the > > > > > file has a non-empty .debug_info section and an empty .debug_line > > > > > section. If we emit .debug_line, and the .debug_info section is > > > > > empty, we also emit .debug_info, .debug_aranges and .debug_abbrev. > > > > > @@ -2650,9 +2650,16 @@ dwarf2_finish (void) > > > > >empty_debug_line = line_seg == NULL || !seg_not_empty_p (line_seg); > > > > > > > > > >/* We can't construct a new debug_line section if we already have > > > > > one. > > > > > - Give an error. */ > > > > > + Give an error if we have seen any .loc, otherwise trust the user > > > > > + knows what they are doing and want to generate the .debug_line > > > > > + (and all other debug sections) themselves. */ > > > > >if (all_segs && !empty_debug_line) > > > > > -as_fatal ("duplicate .debug_line sections"); > > > > > +{ > > > > > + if (dwarf2_loc_directive_seen) > > > > > + as_fatal ("duplicate .debug_line sections"); > > > > > + else > > > > > + return; > > > > > +} > > > > > > > > > >if ((!all_segs && emit_other_sections) > > > > >|| (!emit_other_sections && !empty_debug_line)) > > > > > > > > I have run into this issue before. "as -g" shouldn't silently > > > > generate incorrect debug info when input assembly codes already > > > > contain debug directives. AS should either issue an error or > > > > ignore -g. > > > > > > Right, that is what this patch does for .debug_line. gas already > > > doesn't generate .debug_info, .debug_aranges and .debug_abbrev if > > > .debug_info is non-empty, even if -g is given. > > > > > > > In either case, we need a testcase to verify it. > > > > > > Right, and the documentation needs to be update. But first we have to > > > know whether the gas maintainers think this is the right approach. > > > > -g should be ignored in this case. > > I am not sure what you mean by "in this case", or what precisely it > means to "ignore -g". > > My proposal, and what my strawman patch implements, is that gas will > generate a .debug_line section when -g is given and the debug types is > DWARF (just as it does now). Unless there is a non-empty .debug_line > section already created by the input assembly and the input assembly > does not contain any .loc directive then gas will not try to generate > a .debug_line section itself but leaves the non-empty .debug_line as > is (currently gas will generate an error in this case). But if the > input assembly does contain both .loc directives and creates a > non-empty .debug line section gas will still generate an error (as it > does now, whether or not the input assembly contains any .loc > directives). > > Does this sound sane? What if there is a .file directive, but without .loc directive, like $ gcc -c x.c -Wa,-g -- H.J.
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
Hi, On Sat, Aug 29, 2020 at 08:43:30AM -0700, H.J. Lu wrote: > On Sat, Aug 29, 2020 at 8:23 AM Mark Wielaard wrote: > > My proposal, and what my strawman patch implements, is that gas will > > generate a .debug_line section when -g is given and the debug types is > > DWARF (just as it does now). Unless there is a non-empty .debug_line > > section already created by the input assembly and the input assembly > > does not contain any .loc directive then gas will not try to generate > > a .debug_line section itself but leaves the non-empty .debug_line as > > is (currently gas will generate an error in this case). But if the > > input assembly does contain both .loc directives and creates a > > non-empty .debug line section gas will still generate an error (as it > > does now, whether or not the input assembly contains any .loc > > directives). > > > > Does this sound sane? > > What if there is a .file directive, but without .loc directive, like > > $ gcc -c x.c -Wa,-g That situation does not change, since in that case no .debug_* sections are generated in the assembly file, so gas will generate everything it currently generates. Cheers, Mark
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
On Sat, Aug 29, 2020 at 9:33 AM Mark Wielaard wrote: > > Hi, > > On Sat, Aug 29, 2020 at 08:43:30AM -0700, H.J. Lu wrote: > > On Sat, Aug 29, 2020 at 8:23 AM Mark Wielaard wrote: > > > My proposal, and what my strawman patch implements, is that gas will > > > generate a .debug_line section when -g is given and the debug types is > > > DWARF (just as it does now). Unless there is a non-empty .debug_line > > > section already created by the input assembly and the input assembly > > > does not contain any .loc directive then gas will not try to generate > > > a .debug_line section itself but leaves the non-empty .debug_line as > > > is (currently gas will generate an error in this case). But if the > > > input assembly does contain both .loc directives and creates a > > > non-empty .debug line section gas will still generate an error (as it > > > does now, whether or not the input assembly contains any .loc > > > directives). > > > > > > Does this sound sane? > > > > What if there is a .file directive, but without .loc directive, like > > > > $ gcc -c x.c -Wa,-g > > That situation does not change, since in that case no .debug_* > sections are generated in the assembly file, so gas will generate > everything it currently generates. > Will line info be correct in this case? -- H.J.
Re: [committed] libstdc++: Fix std::gcd and std::lcm for unsigned integers [PR 92978]
On 28/08/20 23:53 +0100, Jonathan Wakely wrote: On 29/08/20 00:20 +0200, Daniel Krügler wrote: Am Sa., 29. Aug. 2020 um 00:12 Uhr schrieb Jonathan Wakely via Libstdc++ : This fixes a bug with mixed signed and unsigned types, where converting a negative value to the unsigned result type alters the value. The solution is to obtain the absolute values of the arguments immediately and to perform the actual GCD or LCM algorithm on two arguments of the same type. In order to operate on the most negative number without overflow when taking its absolute, use an unsigned type for the result of the abs operation. For example, -INT_MIN will overflow, but -(unsigned)INT_MIN is (unsigned)INT_MAX+1U which is the correct value. libstdc++-v3/ChangeLog: PR libstdc++/92978 * include/std/numeric (__abs_integral): Replace with ... (__detail::__absu): New function template that returns an unsigned type, guaranteeing it can represent the most negative signed value. (__detail::__gcd, __detail::__lcm): Require arguments to be unsigned and therefore already non-negative. (gcd, lcm): Convert arguments to absolute value as unsigned type before calling __detail::__gcd or __detail::__lcm. * include/experimental/numeric (gcd, lcm): Likewise. * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected errors. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. * testsuite/26_numerics/gcd/92978.cc: New test. * testsuite/26_numerics/lcm/92978.cc: New test. * testsuite/experimental/numeric/92978.cc: New test. Tested powerpc64le-linux. Committed to trunk. Shouldn't the overload of __absu void __absu(bool) = delete; still also be a template or is just the diff presentation confusing me? Good point! It's called as __absu(v) so it needs to be a function template for the deleted one to be a candidate. I'm not sure we really need it, since all the callers have a static_assert ensuring it's not a bool. But if we have it, it should be correct. I've just pushed this fix, after testing on powerpc64le-linux. Thanks for the review, Daniel. commit 0789600c597ff1f8ac06e84ffb584c853d1675d1 Author: Jonathan Wakely Date: Sat Aug 29 18:24:08 2020 libstdc++: Fix deleted overload of __absu(bool) libstdc++-v3/ChangeLog: * include/std/numeric (__detail::__absu(bool)): Make deleted function a function template, so it will be chosen for calls with an explicit template argument list. * testsuite/26_numerics/gcd/gcd_neg.cc: Add dg-prune-output. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 8f2ed5c6a5e..bd70a52019b 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -95,7 +95,7 @@ namespace __detail return __val < 0 ? -(_Up)__val : (_Up)__val; } - void __absu(bool) = delete; + template void __absu(bool) = delete; // GCD implementation template diff --git a/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc b/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc index 707148a2670..2e56bc650a7 100644 --- a/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc +++ b/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc @@ -50,4 +50,5 @@ test01() // { dg-error "must be integers" "" { target *-*-* } 135 } // { dg-error "must not be bool" "" { target *-*-* } 136 } // { dg-error "must not be bool" "" { target *-*-* } 137 } +// { dg-prune-output "deleted function" } // { dg-prune-output "incomplete type .*make_unsigned" } diff --git a/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc b/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc index d4aa6b59da8..9e83fdcae0b 100644 --- a/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc +++ b/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc @@ -50,4 +50,5 @@ test01() // { dg-error "must be integers" "" { target *-*-* } 149 } // { dg-error "must not be bool" "" { target *-*-* } 150 } // { dg-error "must not be bool" "" { target *-*-* } 151 } +// { dg-prune-output "deleted function" } // { dg-prune-output "incomplete type .*make_unsigned" }
Re: Duplicate .debug_lines (Was: [PATCH 5/5] Add --gdwarf-5 to ASM_SPEC)
H.J. Lu wrote: > On Sat, Aug 29, 2020 at 9:33 AM Mark Wielaard wrote: >> Hi, >> >> On Sat, Aug 29, 2020 at 08:43:30AM -0700, H.J. Lu wrote: >>> On Sat, Aug 29, 2020 at 8:23 AM Mark Wielaard wrote: My proposal, and what my strawman patch implements, is that gas will generate a .debug_line section when -g is given and the debug types is DWARF (just as it does now). Unless there is a non-empty .debug_line section already created by the input assembly and the input assembly does not contain any .loc directive then gas will not try to generate a .debug_line section itself but leaves the non-empty .debug_line as is (currently gas will generate an error in this case). But if the input assembly does contain both .loc directives and creates a non-empty .debug line section gas will still generate an error (as it does now, whether or not the input assembly contains any .loc directives). Does this sound sane? >>> >>> What if there is a .file directive, but without .loc directive, like >>> >>> $ gcc -c x.c -Wa,-g >> >> That situation does not change, since in that case no .debug_* >> sections are generated in the assembly file, so gas will generate >> everything it currently generates. > > Will line info be correct in this case? Nothing about how gas generates the line table will change with the above proposal. It only changes the behaviour when the assembly already contains a line table.
Re: [PATCH] ipa: Merge vectors describing argument values into one type
Hi, On Sat, Aug 29 2020, Jan Hubicka wrote: >> Hi, >> >> this large patch is a semi-mechanical change which aims to replace >> uses of separate vectors about known scalar values (usually called >> known_vals or known_csts), known aggregate values (known_aggs), known >> virtual call contexts (known_contexts) and known value >> ranges (known_value_ranges) with uses of one type called >> ipa_call_arg_values. The main benefit is bringing down the number of >> arguments that various call context evaluating functions have. >> Because the new type uses auto_vecs deallocation is simpler and it >> also takes advantage of storage within the auto_vecs themselves, >> eliminating the need for allocating memory when analyzing most >> functions. >> >> The one place where this patch is not mechanical is the >> node_context_cache_entry RCU cache. Before the elements contained >> directly ipa_call_context instances which however owned their vectors, >> they did not share them with their users like non-cache contexts. Now >> the vectors are behind the pointer which means ipa_call_arg_values >> would have to be allocated, for many functions at once, and so it >> could not make use of auto_vecs with generous internal storage. >> >> I avoided both by reworking the cache to contain copies of all fields >> o interest of ipa_call_context, including the interesting vectors. >> This makes the type a bit more verbose but the main functionality, >> storing to the cache and comparing a context with a cache entry, >> remained very similar. > > Can you pleae benchmark this on building Firfox or something similar? > I was running into two problems here. First was overhead of malloc > allocations and that is reason why I am trying to not allocate the > vector when not necessary and also place them on stack rather then heap > for those having short lifetime (not being in cache). > > Second problem is memory use - we may end up with quite many contextes > since calls are very numerous. > I can but the patch does not change where the vectors are allocated and does not store more stuff to cache than the current code. In fact, because the new cache does not store m_node, it saves one pointer. When I wrote the patch "copies of all fields of interest of ipa_call_context" I meant in the source code of GCC, from one class into another, not when the cache operates. The storing mechanism was created by modifying the current duplicate_from so that it operates on two types instead of one, it still meticulously makes sure it copies only useful data and all that. But sure, I will double check the series does not increase memory use. Martin
Re: [PATCH 3/n] ipa: Simplify interface of ipa_call_context::estimate_size_and_time
Hi, On Sat, Aug 29 2020, Jan Hubicka wrote: >> Hi, >> >> this patch changes ipa_call_context::estimate_size_and_time to store >> its results into member fields of the ipa_call_context class instead >> into pointers it receives as parameters so that it can compute ore >> stuff without cluttering the interface even further. >> >> Bootstrapped and tested on x86_64-linux. OK for master on top of the >> previous two patches? > > ipa_call_context is intended to be structure holding all parameters that > are needed to produce the estimates (size/time/hints). even today it only "holds" the data when it resides in the RCU cache, otherwise it points to data "owned" by the caller. Admittedly, my first patch makes the cache data structure separate, making ipa_class_context only a utility for calculating the estimates - but given how all the code is structured, it does not really work as the grand encapsulator of all context data when passing it from a function to function. > Adding the actual estimates there would duplicate it with cache. The first patch in the series makes the cache items not contain ipa_call_context directly, so in my patch series at least, the estimates are not duplicated. > What > about keeping them separate and inventing ipa_call_estimates structure > to hold the reults? I can but unless you do not like the first patch and want me to re-write it or just not do anything like it, I don't think it matters because the structures will almost always lie next to each other on the user's stack. Martin >> >> >> gcc/ChangeLog: >> >> 2020-08-28 Martin Jambor >> >> * ipa-fnsummary.h (class ipa_call_context): Changed declaration of >> estimate_size_and_time to accept two booleans. Added an overload >> of the method without any parameters. New fields m_size, >> m_min_size, m_time, m_nonspecialized_time and m_hints. >> * ipa-cp.c (hint_time_bonus): Changed the second parameter from >> just hints to a const reference to ipa_call_context. >> (perform_estimation_of_a_value): Adjusted to the new interface of >> ipa_call_context::estimate_size_and_time. >> * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): >> Modified to store results into member fields of the class. >> * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to the >> new interface of ipa_call_context::estimate_size_and_time. >> (do_estimate_edge_size): Likewise. >> (do_estimate_edge_hints): Likewise.
Re: [PATCH 3/n] ipa: Simplify interface of ipa_call_context::estimate_size_and_time
> Hi, > > On Sat, Aug 29 2020, Jan Hubicka wrote: > >> Hi, > >> > >> this patch changes ipa_call_context::estimate_size_and_time to store > >> its results into member fields of the ipa_call_context class instead > >> into pointers it receives as parameters so that it can compute ore > >> stuff without cluttering the interface even further. > >> > >> Bootstrapped and tested on x86_64-linux. OK for master on top of the > >> previous two patches? > > > > ipa_call_context is intended to be structure holding all parameters that > > are needed to produce the estimates (size/time/hints). > > even today it only "holds" the data when it resides in the RCU cache, > otherwise it points to data "owned" by the caller. Admittedly, my first > patch makes the cache data structure separate, making ipa_class_context > only a utility for calculating the estimates - but given how all the > code is structured, it does not really work as the grand encapsulator of > all context data when passing it from a function to function. > > > Adding the actual estimates there would duplicate it with cache. > > The first patch in the series makes the cache items not contain > ipa_call_context directly, so in my patch series at least, the estimates > are not duplicated. ipa_call_context defines the context estimates depends on. This puts all the info to one place and makes the cache well defined - it assigns contexts to estimates. From this point of view I do not quite like duplicating this logic (copying things into different datastructure) and making contxt to also contain the esitmates since these are, well, not context of the call. I am happy with merging the analysis results into something like class function_body_estimate holding all the values. Games with the ownerhip you mention above was not original plan. While perfing inliner I noticed that we spend measurable time in malloc and that mostly goes to alocaitng the vectors (which we did for long time). Perhaps cleaner solution is to have ipa_context_base which is derived by ipa_context and ipa_cached_context where first preallocats on stack while second allocates on heap? Honza > > > What > > about keeping them separate and inventing ipa_call_estimates structure > > to hold the reults? > > I can but unless you do not like the first patch and want me to re-write > it or just not do anything like it, I don't think it matters because the > structures will almost always lie next to each other on the user's > stack. > > Martin > > >> > >> > >> gcc/ChangeLog: > >> > >> 2020-08-28 Martin Jambor > >> > >>* ipa-fnsummary.h (class ipa_call_context): Changed declaration of > >>estimate_size_and_time to accept two booleans. Added an overload > >>of the method without any parameters. New fields m_size, > >>m_min_size, m_time, m_nonspecialized_time and m_hints. > >>* ipa-cp.c (hint_time_bonus): Changed the second parameter from > >>just hints to a const reference to ipa_call_context. > >>(perform_estimation_of_a_value): Adjusted to the new interface of > >>ipa_call_context::estimate_size_and_time. > >>* ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): > >>Modified to store results into member fields of the class. > >>* ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to the > >>new interface of ipa_call_context::estimate_size_and_time. > >>(do_estimate_edge_size): Likewise. > >>(do_estimate_edge_hints): Likewise.
Re: [PATCH] gcov-profile: clarify profile-exclude-files documentation [PR96285]
Jeff Law: > On Fri, 2020-07-24 at 15:42 +0200, Martin Liška wrote: > > Please install the patch. > I'm pretty sure Goran doesn't have write access. So I committed the patch for > him. Thanks! (As I don't have write access, I didn't understand the instruction was directed at me; I thought it was aimed to the list in general.)
[r11-349 Regression] FAIL: gfortran.dg/gomp/target1.f90 -O (test for excess errors) on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, f884bef2105d748fd7869cd641cbb4f6b6bb is the first bad commit commit f884bef2105d748fd7869cd641cbb4f6b6bb Author: Tobias Burnus Date: Wed May 13 10:06:45 2020 +0200 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) caused FAIL: gfortran.dg/gomp/target1.f90 -O (internal compiler error) FAIL: gfortran.dg/gomp/target1.f90 -O (test for excess errors) with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-349/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="gomp.exp=gfortran.dg/gomp/target1.f90 --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2623 Regression] FAIL: gcc.target/i386/vectorize8.c (test for excess errors) on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, 99e4891ed552aca4ca147671701edd0b31015f66 is the first bad commit commit 99e4891ed552aca4ca147671701edd0b31015f66 Author: liuhongt Date: Mon Jul 20 10:13:58 2020 +0800 Using UNSPEC for vector compare to mask register. caused FAIL: gcc.target/i386/vectorize8.c (internal compiler error) FAIL: gcc.target/i386/vectorize8.c (test for excess errors) with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2623/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/vectorize8.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-571 Regression] FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqw 1 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, e740f3d73144abbca1ad98a04825c6bd63314a0b is the first bad commit commit e740f3d73144abbca1ad98a04825c6bd63314a0b Author: liuhongt Date: Wed May 20 15:53:14 2020 +0800 Add missing vector truncmn2 expanders [PR92658] caused FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdw 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqd 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqw 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-571/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/pr92658-avx512f.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-894 Regression] FAIL: gcc.target/i386/pr92658-avx512bw-trunc.c scan-assembler-times vpmovwb 3 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0b99f67639956eaadfc8da6a704e0e1edbafc18 is the first bad commit commit c0b99f67639956eaadfc8da6a704e0e1edbafc18 Author: liuhongt Date: Thu Jun 4 13:22:09 2020 +0800 Fix uppercase in trunc2. caused FAIL: gcc.target/i386/pr92658-avx512bw-trunc.c scan-assembler-times vpmovwb 3 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-894/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/pr92658-avx512bw-trunc.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-571 Regression] FAIL: gcc.target/i386/pr92645-4.c scan-tree-dump-times optimized "VEC_PACK_TRUNC" 1 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, e740f3d73144abbca1ad98a04825c6bd63314a0b is the first bad commit commit e740f3d73144abbca1ad98a04825c6bd63314a0b Author: liuhongt Date: Wed May 20 15:53:14 2020 +0800 Add missing vector truncmn2 expanders [PR92658] caused FAIL: gcc.target/i386/pr92645-4.c scan-tree-dump-times optimized "BIT_FIELD_REF" 2 FAIL: gcc.target/i386/pr92645-4.c scan-tree-dump-times optimized "VEC_PACK_TRUNC" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-571/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/pr92645-4.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-1518 Regression] FAIL: gcc.target/i386/pr78904-4a.c scan-assembler [ \t]movb[\t ]+%.h, t on Linux/x86_64 (-m32 -march=cascadelake)
On Linux/x86_64, e95395926a84a2406faefe0995295d199d595440 is the first bad commit commit e95395926a84a2406faefe0995295d199d595440 Author: Uros Bizjak Date: Thu Jun 18 20:12:48 2020 +0200 i386: Fix mode of ZERO_EXTRACT RTXes, remove ext_register_operand predicate. caused FAIL: gcc.target/i386/pr78904-4a.c scan-assembler [ \t]movb[\t ]+%.h, t with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-1518/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/pr78904-4a.c --target_board='unix{-m32\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2588 Regression] FAIL: gcc.target/i386/minmax-9.c scan-assembler-times test 3 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c072fd236dc08f990bfcffd98b27f211a39bb404 is the first bad commit commit c072fd236dc08f990bfcffd98b27f211a39bb404 Author: Roger Sayle Date: Thu Aug 6 09:15:25 2020 +0100 x86_64: Integer min/max improvements. caused FAIL: gcc.target/i386/minmax-9.c scan-assembler-times test 3 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2588/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/minmax-9.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2588 Regression] FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c072fd236dc08f990bfcffd98b27f211a39bb404 is the first bad commit commit c072fd236dc08f990bfcffd98b27f211a39bb404 Author: Roger Sayle Date: Thu Aug 6 09:15:25 2020 +0100 x86_64: Integer min/max improvements. caused FAIL: gcc.target/i386/minmax-10.c scan-assembler-not cmp FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2588/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/minmax-10.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_float_6.c scan-assembler-times vfnmsub[123]+ss 32 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_float_6.c scan-assembler-times vfmadd[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_6.c scan-assembler-times vfmsub[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_6.c scan-assembler-times vfnmadd[123]+ss 32 FAIL: gcc.target/i386/l_fma_float_6.c scan-assembler-times vfnmsub[123]+ss 32 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_float_6.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_float_5.c scan-assembler-times vfnmsub[123]+ss 32 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_float_5.c scan-assembler-times vfmadd[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_5.c scan-assembler-times vfmsub[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_5.c scan-assembler-times vfnmadd[123]+ss 32 FAIL: gcc.target/i386/l_fma_float_5.c scan-assembler-times vfnmsub[123]+ss 32 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_float_5.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_float_4.c scan-assembler-times vfnmsub[123]+ss 32 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_float_4.c scan-assembler-times vfmadd[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_4.c scan-assembler-times vfmsub[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_4.c scan-assembler-times vfnmadd[123]+ss 32 FAIL: gcc.target/i386/l_fma_float_4.c scan-assembler-times vfnmsub[123]+ss 32 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_float_4.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_float_3.c scan-assembler-times vfnmsub[123]+ss 32 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_float_3.c scan-assembler-times vfmadd[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_3.c scan-assembler-times vfmsub[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_3.c scan-assembler-times vfnmadd[123]+ss 32 FAIL: gcc.target/i386/l_fma_float_3.c scan-assembler-times vfnmsub[123]+ss 32 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_float_3.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_float_2.c scan-assembler-times vfnmsub[123]+ss 32 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_float_2.c scan-assembler-times vfmadd[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_2.c scan-assembler-times vfmsub[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_2.c scan-assembler-times vfnmadd[123]+ss 32 FAIL: gcc.target/i386/l_fma_float_2.c scan-assembler-times vfnmsub[123]+ss 32 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_float_2.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_float_1.c scan-assembler-times vfnmsub[123]+ss 32 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_float_1.c scan-assembler-times vfmadd[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_1.c scan-assembler-times vfmsub[123]+ss 96 FAIL: gcc.target/i386/l_fma_float_1.c scan-assembler-times vfnmadd[123]+ss 32 FAIL: gcc.target/i386/l_fma_float_1.c scan-assembler-times vfnmsub[123]+ss 32 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_float_1.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_double_6.c scan-assembler-times vfnmsub[123]+sd 16 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_double_6.c scan-assembler-times vfmadd[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_6.c scan-assembler-times vfmsub[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_6.c scan-assembler-times vfnmadd[123]+sd 16 FAIL: gcc.target/i386/l_fma_double_6.c scan-assembler-times vfnmsub[123]+sd 16 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_double_6.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_double_5.c scan-assembler-times vfnmsub[123]+sd 16 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_double_5.c scan-assembler-times vfmadd[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_5.c scan-assembler-times vfmsub[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_5.c scan-assembler-times vfnmadd[123]+sd 16 FAIL: gcc.target/i386/l_fma_double_5.c scan-assembler-times vfnmsub[123]+sd 16 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_double_5.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_double_4.c scan-assembler-times vfnmsub[123]+sd 16 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_double_4.c scan-assembler-times vfmadd[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_4.c scan-assembler-times vfmsub[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_4.c scan-assembler-times vfnmadd[123]+sd 16 FAIL: gcc.target/i386/l_fma_double_4.c scan-assembler-times vfnmsub[123]+sd 16 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_double_4.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_double_3.c scan-assembler-times vfnmsub[123]+sd 16 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_double_3.c scan-assembler-times vfmadd[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_3.c scan-assembler-times vfmsub[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_3.c scan-assembler-times vfnmadd[123]+sd 16 FAIL: gcc.target/i386/l_fma_double_3.c scan-assembler-times vfnmsub[123]+sd 16 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_double_3.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_double_2.c scan-assembler-times vfnmsub[123]+sd 16 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_double_2.c scan-assembler-times vfmadd[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_2.c scan-assembler-times vfmsub[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_2.c scan-assembler-times vfnmadd[123]+sd 16 FAIL: gcc.target/i386/l_fma_double_2.c scan-assembler-times vfnmsub[123]+sd 16 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_double_2.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-350 Regression] FAIL: gcc.target/i386/l_fma_double_1.c scan-assembler-times vfnmsub[123]+sd 16 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, c0c39a765b0714aed36fced6fbba452a6619acb0 is the first bad commit commit c0c39a765b0714aed36fced6fbba452a6619acb0 Author: Jakub Jelinek Date: Wed May 13 11:21:02 2020 +0200 Fold single imm use of a FMA if it is a negation [PR95060] caused FAIL: gcc.target/i386/l_fma_double_1.c scan-assembler-times vfmadd[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_1.c scan-assembler-times vfmsub[123]+sd 48 FAIL: gcc.target/i386/l_fma_double_1.c scan-assembler-times vfnmadd[123]+sd 16 FAIL: gcc.target/i386/l_fma_double_1.c scan-assembler-times vfnmsub[123]+sd 16 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-350/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/l_fma_double_1.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-1301 Regression] FAIL: gcc.target/i386/avx512bw-pr95488-1.c scan-assembler-times vpmullw[^\n]*zmm 2 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, 54cdb2f5a5b01a482d7cbce30e7b738558eecf59 is the first bad commit commit 54cdb2f5a5b01a482d7cbce30e7b738558eecf59 Author: liuhongt Date: Wed Jun 3 17:25:47 2020 +0800 Optimize multiplication for V8QI,V16QI,V32QI under TARGET_AVX512BW. caused FAIL: gcc.target/i386/avx512bw-pr95488-1.c scan-assembler-times vpmovwb 2 FAIL: gcc.target/i386/avx512bw-pr95488-1.c scan-assembler-times vpmovzxbw 4 FAIL: gcc.target/i386/avx512bw-pr95488-1.c scan-assembler-times vpmullw[^\n]*zmm 2 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-1301/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="i386.exp=gcc.target/i386/avx512bw-pr95488-1.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2928 Regression] FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 84) on Linux/x86_64 (-m32 -march=cascadelake)
On Linux/x86_64, d14c547abd484d3540b692bb8048c4a6efe92c8b is the first bad commit commit d14c547abd484d3540b692bb8048c4a6efe92c8b Author: Martin Sebor Date: Fri Aug 28 13:13:28 2020 -0600 Add -Wstringop-overread for reading past the end by string functions. caused FAIL: gcc.dg/Wstringop-overread.c (test for excess errors) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 100) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 110) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 167) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 177) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 279) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 289) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 338) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 372) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 374) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 532) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 566) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 568) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 74) FAIL: gcc.dg/Wstringop-overread.c (test for warnings, line 84) with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2928/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="dg.exp=gcc.dg/Wstringop-overread.c --target_board='unix{-m32\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-1851 Regression] FAIL: gcc.dg/vect/slp-46.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 on Linux/x86_64 (-m64 -march=cascadelake)
On Linux/x86_64, dccbf1e2a6e544f71b4a5795f0c79015db019fc3 is the first bad commit commit dccbf1e2a6e544f71b4a5795f0c79015db019fc3 Author: Richard Biener Date: Mon Jul 6 16:26:50 2020 +0200 tree-optimization/96075 - fix bogus misalignment calculation caused FAIL: gcc.dg/vect/slp-46.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 2 FAIL: gcc.dg/vect/slp-46.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-1851/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="vect.exp=gcc.dg/vect/slp-46.c --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2904 Regression] FAIL: gcc.dg/tree-ssa/scev-5.c scan-tree-dump-times ivopts "&a" 1 on Linux/x86_64 (-m32 -march=cascadelake)
On Linux/x86_64, 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 is the first bad commit commit 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 Author: Richard Biener Date: Thu Aug 27 13:04:19 2020 +0200 streamline TARGET_MEM_REF dumping caused FAIL: gcc.dg/tree-ssa/scev-5.c scan-tree-dump-times ivopts "&a" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2904/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/scev-5.c --target_board='unix{-m32\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2904 Regression] FAIL: gcc.dg/tree-ssa/scev-4.c scan-tree-dump-times ivopts "&a" 1 on Linux/x86_64 (-m32 -march=cascadelake)
On Linux/x86_64, 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 is the first bad commit commit 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 Author: Richard Biener Date: Thu Aug 27 13:04:19 2020 +0200 streamline TARGET_MEM_REF dumping caused FAIL: gcc.dg/tree-ssa/scev-4.c scan-tree-dump-times ivopts "&a" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2904/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/scev-4.c --target_board='unix{-m32\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2904 Regression] FAIL: gcc.dg/tree-ssa/scev-3.c scan-tree-dump-times ivopts "&a" 1 on Linux/x86_64 (-m32 -march=cascadelake)
On Linux/x86_64, 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 is the first bad commit commit 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 Author: Richard Biener Date: Thu Aug 27 13:04:19 2020 +0200 streamline TARGET_MEM_REF dumping caused FAIL: gcc.dg/tree-ssa/scev-3.c scan-tree-dump-times ivopts "&a" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2904/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/scev-3.c --target_board='unix{-m32\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2928 Regression] FAIL: c-c++-common/Warray-bounds-6.c -Wc++-compat (test for excess errors) on Linux/x86_64 (-m32 -march=cascadelake)
On Linux/x86_64, d14c547abd484d3540b692bb8048c4a6efe92c8b is the first bad commit commit d14c547abd484d3540b692bb8048c4a6efe92c8b Author: Martin Sebor Date: Fri Aug 28 13:13:28 2020 -0600 Add -Wstringop-overread for reading past the end by string functions. caused FAIL: c-c++-common/Warray-bounds-6.c -Wc++-compat (test for excess errors) with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2928/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="dg.exp=c-c++-common/Warray-bounds-6.c --target_board='unix{-m32\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-349 Regression] FAIL: gfortran.dg/gomp/target1.f90 -O (test for excess errors) on Linux/x86_64 (-m64)
On Linux/x86_64, f884bef2105d748fd7869cd641cbb4f6b6bb is the first bad commit commit f884bef2105d748fd7869cd641cbb4f6b6bb Author: Tobias Burnus Date: Wed May 13 10:06:45 2020 +0200 [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690) caused FAIL: gfortran.dg/gomp/target1.f90 -O (internal compiler error) FAIL: gfortran.dg/gomp/target1.f90 -O (test for excess errors) with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-349/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="gomp.exp=gfortran.dg/gomp/target1.f90 --target_board='unix{-m64}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2904 Regression] FAIL: gcc.dg/tree-ssa/scev-5.c scan-tree-dump-times ivopts "&a" 1 on Linux/x86_64 (-m32)
On Linux/x86_64, 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 is the first bad commit commit 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 Author: Richard Biener Date: Thu Aug 27 13:04:19 2020 +0200 streamline TARGET_MEM_REF dumping caused FAIL: gcc.dg/tree-ssa/scev-5.c scan-tree-dump-times ivopts "&a" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2904/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/scev-5.c --target_board='unix{-m32}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2904 Regression] FAIL: gcc.dg/tree-ssa/scev-4.c scan-tree-dump-times ivopts "&a" 1 on Linux/x86_64 (-m32)
On Linux/x86_64, 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 is the first bad commit commit 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 Author: Richard Biener Date: Thu Aug 27 13:04:19 2020 +0200 streamline TARGET_MEM_REF dumping caused FAIL: gcc.dg/tree-ssa/scev-4.c scan-tree-dump-times ivopts "&a" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2904/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/scev-4.c --target_board='unix{-m32}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)
[r11-2904 Regression] FAIL: gcc.dg/tree-ssa/scev-3.c scan-tree-dump-times ivopts "&a" 1 on Linux/x86_64 (-m32)
On Linux/x86_64, 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 is the first bad commit commit 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 Author: Richard Biener Date: Thu Aug 27 13:04:19 2020 +0200 streamline TARGET_MEM_REF dumping caused FAIL: gcc.dg/tree-ssa/scev-3.c scan-tree-dump-times ivopts "&a" 1 with GCC configured with ../../gcc/configure --prefix=/local/skpandey/gccwork/toolwork/gcc-bisect-master/master/r11-2904/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="tree-ssa.exp=gcc.dg/tree-ssa/scev-3.c --target_board='unix{-m32}'" (Please do not reply to this email, for question about this report, contact me at skpgkp2 at gmail dot com)