File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
compiler/rustc_llvm/llvm-wrapper Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 5151//
5252// ===----------------------------------------------------------------------===
5353
54+ // Define TailCallKind enum values to match LLVM's
55+ enum LLVMRustTailCallKind {
56+ LLVMRustTailCallKindNone = 0 ,
57+ LLVMRustTailCallKindTail = 1 ,
58+ LLVMRustTailCallKindMustTail = 2 ,
59+ LLVMRustTailCallKindNoTail = 3
60+ };
61+
5462using namespace llvm ;
5563using namespace llvm ::sys;
5664using namespace llvm ::object;
@@ -1949,3 +1957,21 @@ extern "C" void LLVMRustSetNoSanitizeHWAddress(LLVMValueRef Global) {
19491957 MD.NoHWAddress = true ;
19501958 GV.setSanitizerMetadata (MD);
19511959}
1960+
1961+ extern " C" void LLVMRustSetTailCallKind (LLVMValueRef Call, LLVMRustTailCallKind Kind) {
1962+ CallInst *CI = unwrap<CallInst>(Call);
1963+ switch (Kind) {
1964+ case LLVMRustTailCallKindNone:
1965+ CI->setTailCallKind (CallInst::TCK_None);
1966+ break ;
1967+ case LLVMRustTailCallKindTail:
1968+ CI->setTailCallKind (CallInst::TCK_Tail);
1969+ break ;
1970+ case LLVMRustTailCallKindMustTail:
1971+ CI->setTailCallKind (CallInst::TCK_MustTail);
1972+ break ;
1973+ case LLVMRustTailCallKindNoTail:
1974+ CI->setTailCallKind (CallInst::TCK_NoTail);
1975+ break ;
1976+ }
1977+ }
You can’t perform that action at this time.
0 commit comments