[PATCH] D12923: Add support for function attribute "notail"
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 6 08:28:23 PST 2015
spatel added inline comments.
================
Comment at: lib/Bitcode/Writer/BitcodeWriter.cpp:2132-2134
@@ -2131,4 +2131,5 @@
Vals.push_back(VE.getAttributeID(CI.getAttributes()));
Vals.push_back((CI.getCallingConv() << 1) | unsigned(CI.isTailCall()) |
- unsigned(CI.isMustTailCall()) << 14 | 1 << 15);
+ unsigned(CI.isMustTailCall()) << 14 | 1 << 15 |
+ unsigned(CI.isNoTailCall()) << 16);
Vals.push_back(VE.getTypeID(FTy));
----------------
ahatanak wrote:
> spatel wrote:
> > Hi Akira -
> >
> > Can you give these bitfields proper names in a struct or enum in LLVMBitCodes.h? It took me a while to understand why we have this encoding (no code comments...).
> >
> > The other reason I ask is because I was about to swipe bit 16 myself. :)
> >
> > I think that's the only backwards-compatible way to add fast-math-flags to a call ( PR21290 ). We can't use the usual method of tacking an optional field to the end of the record because the record length is unknown for a call with varargs.
> Hi Sanjay.
>
> I've made the changes you suggested in my local branch, but I think they should be in a follow-up patch to separate the changes related to notail from the changes related to the bitfield names.
>
> These are the enums I defined in LLVMBitCodes.h:
>
> enum CallMarkersFlags {
> CALL_TAIL = 0,
> CALL_CCONV = 1,
> CALL_MUSTTAIL = 14,
> CALL_EXPLICIT_TYPE = 15,
> CALL_NOTAIL = 16
> };
Yes, a follow-up NFC patch sounds right. Thanks!
http://reviews.llvm.org/D12923
More information about the llvm-commits
mailing list