{"push_id":728896158,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"3ce4826b6786b5241906a04a434c12d820c88925","before":"2374415352f5ba743ab3e22656889f6e026acec8","commits":[{"sha":"3ce4826b6786b5241906a04a434c12d820c88925","author":{"email":"420c9fb3407b8e11ac322a0e7703f7b1f526df04@gmail.com","name":"Chandler Carruth"},"message":"[PM/AA] Disable the core unsafe aspect of GlobalsModRef in the face of\nbasic changes to the IR such as folding pointers through PHIs, Selects,\ninteger casts, store/load pairs, or outlining.\n\nThis leaves the feature available behind a flag. This flag's default\ncould be flipped if necessary, but the real-world performance impact of\nthis particular feature of GMR may not be sufficiently significant for\nmany folks to want to run the risk.\n\nCurrently, the risk here is somewhat mitigated by half-hearted attempts\nto update GlobalsModRef when the rest of the optimizer changes\nsomething. However, I am currently trying to remove that update\nmechanism as it makes migrating the AA infrastructure to a form that can\nbe readily shared between new and old pass managers very challenging.\nWithout this update mechanism, it is possible that this still unlikely\nfailure mode will start to trip people, and so I wanted to try to\nproactively avoid that.\n\nThere is a lengthy discussion on the mailing list about why the core\napproach here is flawed, and likely would need to look totally different\nto be both reasonably effective and resilient to basic IR changes\noccuring. This patch is essentially the first of two which will enact\nthe result of that discussion. The next patch will remove the current\nupdate mechanism.\n\nThanks to lots of folks that helped look at this from different angles.\nEspecial thanks to Michael Zolotukhin for doing some very prelimanary\nbenchmarking of LTO without GlobalsModRef to get a rough idea of the\nimpact we could be facing here. So far, it looks very small, but there\nare some concerns lingering from other benchmarking. The default here\nmay get flipped if performance results end up pointing at this as a more\nsignificant issue.\n\nAlso thanks to Pete and Gerolf for reviewing!\n\nDifferential Revision: http://reviews.llvm.org/D11213","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project-submodule/commits/3ce4826b6786b5241906a04a434c12d820c88925"}]}