arsenm added a comment. As far as optimization inhibition is concerned, noconvergent will be inferred for all functions that don't call convergent intrinsics (i.e. the state of the world for all functions on all CPU targets). The frontend needing to do something for optimization comes up in relation to calling external declarations which won't be inferred in non-LTO contexts (plus inline asm and indirect calls, the other opaque call types). IMO the mild inconvenience of needing to add another attribute to optimize external call declarations is not unreasonable. This is already the situation for nounwind with languages that don't have exceptions. I don't see what real benefit there is to inventing some new inconsistent, target-specific IR construct to avoid frontends needing to add an attribute that behaves nearly identically to nounwind
CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69498/new/ https://reviews.llvm.org/D69498 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits