{"push_id":915790682,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"81df2a639b1545f3030f48ad5eb604ad1313d0ac","before":"4dbf994a2819fd28f4bcbf8725aeef540fa4a693","commits":[{"sha":"81df2a639b1545f3030f48ad5eb604ad1313d0ac","author":{"email":"420c9fb3407b8e11ac322a0e7703f7b1f526df04@gmail.com","name":"Chandler Carruth"},"message":"[attrs] Extract the pure inference of function attributes into\na standalone pass.\n\nThere is no call graph or even interesting analysis for this part of\nfunction attributes -- it is literally inferring attributes based on the\ntarget library identification. As such, we can do it using a much\nsimpler module pass that just walks the declarations. This can also\nhappen much earlier in the pass pipeline which has benefits for any\nnumber of other passes.\n\nIn the process, I've cleaned up one particular aspect of the logic which\nwas necessary in order to separate the two passes cleanly. It now counts\ninferred attributes independently rather than just counting all the\ninferred attributes as one, and the counts are more clearly explained.\n\nThe two test cases we had for this code path are both ... woefully\ninadequate and copies of each other. I've kept the superset test and\nupdated it. We need more testing here, but I had to pick somewhere to\nstop fixing everything broken I saw here.\n\nDifferential Revision: http://reviews.llvm.org/D15676","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project/commits/81df2a639b1545f3030f48ad5eb604ad1313d0ac"}]}