I am trying to enable globalsmodref-aa by default. globalmodref-aa is a ModulePass and therefore can be invalidated and need to be rerun.
I see globalsmodref-aa is enabled in LTO passmanager by adding the analysis pass explicitly. I wonder whether globalsmodref-aa can be enabled/run based on pass dependencies, i.e. those indicated in getAnalysisUsage().
Hah. No. =/
So, globalsmodref-aa is very very broken. I’m working on emails to explain this, but I really don’t want this to be enabled in the primary pass pipeline in its current form, if ever. It currently relies on bugs in the pass manager to even begin to work, and is wrong in many cases as a consequence.
so what are my options at the moment ? should i insert PM.add(createGlobalsModRefPass()); before transformations i know globalmodref-aa might improve ?