On Tue, Mar 26, 2024 at 2:24 AM Jerry D <jvdelis...@gmail.com> wrote: > > On 3/25/24 3:30 PM, Harald Anlauf wrote: > >> On 3/25/24 12:53 PM, Harald Anlauf wrote: > >>>>>>> I noticed by chance that we have quite a lot of improperly specified > >>>>>>> do-do > >>>>>>> directives in the testsuite. > >>>>>>> > >>>>>>> % grep "dg-do run" gcc/testsuite/gfortran.dg/ -rl|wc -l > >>>>>>> 83 > >>>>>>> > >>>>> > >>>>> I think this is on purpose. > >>>>> The idea to use a "feature" in dejagnu to only iterate once and not > >>>>> over all possible options. So execution time can be lowered a bit. > >>>>> > >>>>> But I don't know if this hack still works, it definitely did work some > >>>>> years ago. > >>>>> > >>>>> Cheers, > >>>>> Manfred > >>> > >>> Is this "feature" documented somewhere? I don't see it on > >>> > >>> https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gccint/Directives.html > >>> > >>> Given that the dg-directives are important and possibly fragile, > >>> and since we had issues in the past, can we check that a test > >>> that was added works the way intended? > >>> > >>>>>>> Note that with two blanks instead of just one a testcase does not get > >>>>>>> executed. > >>>>>>> > >>>>>>> Does anybody want to earn the honors to change the directives and > >>>>>>> check for "fallout" in the testsuite? > >>>>>>> > >>>>>>> Cheers, > >>>>>>> Harald > >>>>>>> > >>>>>> > >>>>>> One failure after fixing all the spaces ( sed is our friend ). > >>>>>> > >>>>>> FAIL: gfortran.dg/inline_matmul_1.f90 -O0 scan-tree-dump-times > >>>>>> optimized "_gfortran_matmul" 0 > >>> > >>> This does actually point to an issue with the testcase: > >>> it only works properly with optimization enabled. > >>> > >>> Manual inspection of this test and the expected dump suggests > >>> that e.g. -O1 could have been added to the dg-options directive. > >>> > >>> Shouldn't we fix at least the dg-options of that testcase? > >>> > >>> Cheers, > >>> Harald > >>> > >> > >> I restored the one test that appeared to fail so that it had the two > >> spaces 'trick'. When run in the test suite, it is compiled with -O > >> which does invoke the optimization. I manually checked the tree dump > >> with this option and it indeed has all the _gfortran_matmul calls removed. > >> > >> I am inclined to leave these all untouched with the two spaces in place. > >> > >> From the test log: > >> > >> PASS: gfortran.dg/inline_matmul_1.f90 -O execution test > >> PASS: gfortran.dg/inline_matmul_1.f90 -O scan-tree-dump-times > >> optimized "_gfortran_matmul" 0 > > > > Alright, then leave it that way. > > > > I find it somewhat unsatisfactory though, to have a behavior of the > > testsuite harness that is so intranparent. > > > > If it is a simple oversight that the behavior of double space was > > never documented, it could simply be fixed, for the sake of everybody. > > > > The take-home message for me is - whenever I write a testcase that > > relies on this behavior - to add a comment in the header that this > > is intended behavior, and set all compiler flags appropriately... > > > > Cheers, > > Harald > > > > > > With two spaces there are 9 tests run at -O, with one space there are 54 > variations executed. Specifying the optimization option in the > dg-options also runs 54 variations. It appears that the "feature" was > done on purpose, but it is frustrating that this is not documented anywhere.
It would be nice to document it in sourcebuild.texi and to put a comment before the dg-do with two spaces indicating that two spaces are on purpose. I also don't remember this being implemented ... Richard. > I do remember discussions way back about some tests taking a long time > to run and needing a way to speed up the overall testing. I will look > over the documentation and see if we can get this addressed. > > For my own test cases, I have always specified the options I want and > for front-end work, optimizations don't usually matter except in this > case. I don't have time to go through all 83 tests. > > From my system here: > > Testing of trunk complete..... one space > > real 4m56.294s > user 35m51.082s > sys 12m51.283s > > > Testing of trunk complete..... two spaces > > real 4m44.421s > user 34m3.215s > sys 12m38.778s > > Not a huge difference. > > Jerry > >