This is one of the blockers for the release. Testcase will follow. I'm running 'check-llvm' now.
Details
Diff Detail
Event Timeline
Hi Davide,
Thanks for fixing this.
To give a bit of context here for other reviewers, the bug is that TLSADDR are lowered into calls in MC. As a result, we need to put the “call markers” around those instructions, otherwise shrink-wrapping may push the prologue and epilogue pass them.
This mostly looks good to me see my inline comment. It misses a test case of course, but I know you’re working on it.
Cheers,
-Quentin
lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
22665 | Add a comment saying that we want to replace TLSADDR into | |
22675 | "after the instruction", instead of “at the end of the basic block”. |
Hi Davide,
LGTM with a few nitpicks on the test case.
Thanks for fixing it!
Cheers,
-Quentin
lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
22680 | two spaces after CALLSEQ_END. | |
test/CodeGen/X86/tls-shrink-wrapping.ll | ||
9 ↗ | (On Diff #48449) | Add a comment on what this is testing. |
11 ↗ | (On Diff #48449) | Please use opt -instnamer on the test case to have temporary variable names (easier to update than %[0-9]+). |
11 ↗ | (On Diff #48449) | Please get rid of the metadata (!…) unless they are required to reproduce the problem. |
55 ↗ | (On Diff #48449) | You should be able to remove all the !… stuff after removing the !… from the function. |
Add a comment saying that we want to replace TLSADDR into
adjust_stackdown
TLSADDR
adjust_stackup
and why. (You may use what I said to explain the problem.)