On Fri, Oct 27, 2023 at 2:12 PM David Malcolm <dmalc...@redhat.com> wrote: > > On Fri, 2023-10-27 at 12:48 -0700, Andrew Pinski wrote: > > Hi David and others, > > I am in the process of improving phi-opt and moving what was > > handled > > in value_replacement to match-and-simplify and ran into a few > > failures > > in the analyzer testsuite. > > For an example c-c++-common/analyzer/inlining-3-multiline.c (and > > c-c++-common/analyzer/inlining-3.c) now fails due to optimizing away > > the if statement in get_input_file_name so it just returns its > > argument and we don't get a comparison against NULL any more. > > > > > Should we change the testcase to avoid this transformation or should > > we avoid this transformation early on during optimization phases? Or > > something else like move analyzer earlier before phiopt? > > The analyzer runs relatively late, and moving it would be a major task. > > The intent of those testcases is to verify that the analyzer can > provide the user with a sufficiently readable execution path (the path > of execution events that triggers a problem) i.e. that we can > reconstruct things in the face of inlining. > > Those conditionals are intended as examples of control-flow logic that > we'd want to display to the user. > > Hence it's probably best to disable your new optimization on these > testcases (presumably by adding "-fdisable-tree-phiopt1"), so that we > keep that control flow logic. > > Does that make sense?
Yes this makes perfect sense; I was just double checking to make sure we were not losing some diagnostic that would be useful to the user with respect to this change. Thanks, Andrew > > Dave >