Zhang via llvm-dev
2021-Nov-09 03:59 UTC
[llvm-dev] Where does doInitialization() fit into the new PassManager model?
Hi: In my legacy pass, I usually use doInitialization() to call Module::createRNG() to create a RandomNumberGenerator, which my FunctionPass later uses. How does this model fit into the new PassManager interface? Creating my new pass as run(Function&F ....) and re-create my RNG each time doesn't preserve its internal state, but using run(Module& M) seems a bit overkill to me? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211109/86a810b5/attachment.html>
Arthur Eubanks via llvm-dev
2021-Nov-09 18:10 UTC
[llvm-dev] Where does doInitialization() fit into the new PassManager model?
Yeah there's currently no equivalent of doInitialization() in the new pass manager. Creating a per-module RNG to work on functions seems a bit weird to me. Module::createRNG() attempts to be consistent based on the module name + a per-call site salt, but that makes so changes in one function affect functions visited after. It would make more sense to me to use a per-function RNG salted with the module name and function name. Or if you really want a per-module RNG you could just lazily initialize it in the run(Function &). (Also Module::createRNG() isn't used in tree AFAICT) On Mon, Nov 8, 2021 at 7:59 PM Zhang via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hi: > In my legacy pass, I usually use doInitialization() to call > Module::createRNG() to create a RandomNumberGenerator, which my > FunctionPass later uses. > How does this model fit into the new PassManager interface? Creating my > new pass as run(Function&F ....) and re-create my RNG each time doesn't > preserve its internal state, but using run(Module& M) seems a bit overkill > to me? > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211109/3cef0708/attachment.html>