[PATCH] D59918: [Attributor] Pass infrastructure and fixpoint framework

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 15 14:16:32 PDT 2019


fhahn added a comment.

I haven't been through the details yet, but I have a few high-level thoughts.

This is a lot of code and I think a high-level description of the framework would be very helpful, like what are the abstract states/lattice values, how do we transition between them, what is the strategy for iterating over functions, how are we applying & materializing updates, how expensive is this analysis?

As this seems to be a generic framework it would be helpful to describe how to hook up a new attribute for inference.

And finally, what can we do to check correctness? As the current attribute definitions are a bit fuzzy, it seems this could lead to problems down the road, in case we infer invalid attributes, which only get used (and cause problems) a bit later. Assuming we have a clear definition of a set of attributes, how hard would it be to verify the attributes in a module (maybe we are doing it already)?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59918/new/

https://reviews.llvm.org/D59918





More information about the llvm-commits mailing list