With introduction of nosync function attribute, we should annotate intrinsics where nosync applies. Only few are annotated right now, any suggestins are welcome.
I annotated some missing no-syncs when I realized you need to rebase to get the willreturn changes. Almost everything that is willreturn should be nosync too (except the mem* stuff).
Mh, I'm not opposing that idea but also not convinced. Doing it for all makes it easier to introduce errors I guess. Do we have precedence?
If we want to do this, maybe we should make a list of attributes that need to be explicitly removed for intrinsics.
I expect not only nosync to be on it but also others like willreturn, nofree, nounwind, etc.
I agree. FWIW, I'd be more comfortable with some TableGen way of defining common groups of properties, giving these groups a single name, and then use that property-group name on most of the intrinscs.
So, the Attributor does not use any special handling for intrinsics when it comes to nounwind.
I don't think we should. Actually, the more I think out it, I believe an "opt-out" list if attributes would be the right thing.
We just need some consensus on that.