Feat - #[inline(always)] + #[target_feature(enable = "....")] #2 - #162460
Feat - #[inline(always)] + #[target_feature(enable = "....")] #2#162460Jamesbarford wants to merge 4 commits into
#[inline(always)] + #[target_feature(enable = "....")] #2#162460Conversation
|
|
|
I am not available for reviews at the moment, sorry. |
Which code are you referring to here? |
I was referring to previous attempts at this such as; #155426 Where I made Rust-side error messages. |
|
But you're not removing any checks that currently exist in the compiler, right? (Except for the ban on inline(always) + target_features of course.) |
dd6d37d to
bedba2e
Compare
Yes 👍, I've made those removals another commit along with removing the tests bedba2e |
I was asking about the original PR description. You now have changed the PR in response to my other comment, right? That's fine but very confusing the way you are talking about it. I see no reason to have this as an unstable feature. This was only ever working around LLVM bugs anyway (or, LLVM choices we weren't happy with, depending on how you want to put it). Now that LLVM is fixed we can rip off the bandaid. Let's nominate for t-lang then since this allows more code to compile -- are you happy with allowing @rustbot label +I-lang-nominated |
I never got around to investigating this, but I did confirm that codegen changes somewhere if you remove the call site attributes. So yes it's goofy but I think someone needs to understand what our call site attributes are doing before we make the change. |
I originally changed it to remove the tracking issue. However I can see it's somewhat nebulous as to what I'm referring to so I have changed it again so I'm only mentioning this PR. |
There was a problem hiding this comment.
Removed features never get removed from this file. Please undo the change here.
There was a problem hiding this comment.
Removed lints never get removed from this file. Please undo the change here. You may want to update the justification string, but you have to keep the register_removed.
This is broadly a resurrection of
#[inline(always)] + #[target_feature(enable = "...")].alwaysinlineon the function definition and the callsite. (though I point out below that I'm not sure why we are applying inlining attributes to both function definitions and callsites).version < LLVM23downgrades to aninlinehint.This should now be sound thanks to
Therefore, it should be okay to just allow this combination. But we can also have a period of unstable experimentation if t-lang prefers.
r? @RalfJung