File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change 15
15
#include " llvm/IR/Verifier.h"
16
16
#include " llvm/InitializePasses.h"
17
17
#include " llvm/Pass.h"
18
+ #include " llvm/Transforms/Yk/ControlPoint.h"
18
19
#include " llvm/Transforms/Yk/LivenessAnalysis.h"
19
-
20
20
#include < map>
21
21
22
22
#define DEBUG_TYPE " yk-stackmaps"
@@ -60,8 +60,15 @@ class YkStackmaps : public ModulePass {
60
60
// We don't need to insert stackmaps after intrinsics. But since we
61
61
// can't tell if an indirect call is an intrinsic at compile time,
62
62
// emit a stackmap in those cases too.
63
- if (!CI.isIndirectCall () && CI.getCalledFunction ()->isIntrinsic ())
63
+
64
+ if (!CI.isIndirectCall () &&
65
+ (CI.getCalledFunction ()->isIntrinsic () ||
66
+ (CI.getCalledFunction ()->isDeclaration () &&
67
+ (!CI.getCalledFunction ()->getName ().startswith (
68
+ " __yk_promote" ) &&
69
+ CI.getCalledFunction ()->getName () != YK_NEW_CONTROL_POINT))))
64
70
continue ;
71
+
65
72
SMCalls.insert ({&I, LA.getLiveVarsBefore (&I)});
66
73
} else if ((isa<BranchInst>(I) &&
67
74
cast<BranchInst>(I).isConditional ()) ||
You can’t perform that action at this time.
0 commit comments