[PATCH] D111288: [fir] Add data flow optimization pass
Mehdi AMINI via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 22 10:49:37 PDT 2021
mehdi_amini added inline comments.
================
Comment at: flang/test/Fir/memref-data-flow.fir:65-66
+// CHECK-NOT: fir.store %{{.*}} to %{{.*}} : !fir.ref<i32>
+// CHECK-NOT: %{{.*}} = fir.load %{{.*}} : !fir.ref<i32>
+// CHECK: %{{.*}} = fir.load %{{.*}} : !fir.ref<i32>
+// CHECK: fir.store %{{.*}} to %{{.*}} : !fir.ref<i32>
----------------
clementval wrote:
> mehdi_amini wrote:
> > awarzynski wrote:
> > > mehdi_amini wrote:
> > > > I really don't understand this sequence: we have a CHECK-NOT followed by the identical CHECK.
> > > IIUC, the first `CHECK-NOT` can safely be removed without affecting the test. From https://llvm.org/docs/CommandGuide/FileCheck.html#the-check-not-directive :
> > > > The “CHECK-NOT:” directive is used to verify that a string doesn’t occur between two matches (or before the first match, or after the last match).
> > > I also find it confusing, but I believe that it's valid and that it does check that there's no `store-load` chain here.
> > If I had to document your check right now it would be (as I understand them):
> >
> > ```
> > // Check that there is at least one fir.load followed by at least one fir.store,
> > // both on i32. The load/store don't have to be related to each other.
> > ```
> >
> > And I could write the exact same test with:
> > ```
> > // CHECK-LABEL: ^bb2:
> > // CHECK: fir.load{{.*}} !fir.ref<i32>
> > // CHECK: fir.store{{.*} }!fir.ref<i32>
> > ```
> >
> > Do you see an input to FileCheck that would be handled differently by the code you have right now and the above?
> >
> > Also please provide the kind of plain text english documentation I wrote above on what you're checking in each section.
> >
> In the initial code we have two sequences of load/store. We want to make sure only one stays. Maybe using
> ```
> // Verify that all store-load pairs have been eliminated. Other stores and loads are preserved.
> CHECK-COUNT-1: fir.store
> CHECK-COUNT-1: fir.load
> ```
>
>
That would make more sense to me.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111288/new/
https://reviews.llvm.org/D111288
More information about the llvm-commits
mailing list