This saves 16.5 KB on a Clang bootstrap. I'm hoping for more on Chromium, but haven't measured yet.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
(In a Chrome official build, this saves 124 KB over chrome.exe, chrome.dll and chrome_child.dll.)
Comment Actions
Can we generalize this logic to all conventions that are isCalleePop? Then it will cover stdcall, fastcall, and vectorcall.
Comment Actions
Thanks for landing r251137!
Updated the patch to support the other calling conventions too.
Comment Actions
lgtm
lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
3741 ↗ | (On Diff #38274) | This doesn't need an extra blank line |
3806–3808 ↗ | (On Diff #38274) | I think factoring out the negation will make this more readable: bool CalleePopMatches = CalleeWillPop && BytesToPop == StackArgSize; if (!CalleePopMatches) return false; |
test/CodeGen/X86/tailcall-msvc-conventions.ll | ||
146 ↗ | (On Diff #38274) | s/aruments/arguments/ |