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 1515#include " llvm/IR/Verifier.h"
1616#include " llvm/InitializePasses.h"
1717#include " llvm/Pass.h"
18+ #include " llvm/Transforms/Yk/ControlPoint.h"
1819#include " llvm/Transforms/Yk/LivenessAnalysis.h"
19-
2020#include < map>
2121
2222#define DEBUG_TYPE " yk-stackmaps"
@@ -60,8 +60,15 @@ class YkStackmaps : public ModulePass {
6060 // We don't need to insert stackmaps after intrinsics. But since we
6161 // can't tell if an indirect call is an intrinsic at compile time,
6262 // 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))))
6470 continue ;
71+
6572 SMCalls.insert ({&I, LA.getLiveVarsBefore (&I)});
6673 } else if ((isa<BranchInst>(I) &&
6774 cast<BranchInst>(I).isConditional ()) ||
You can’t perform that action at this time.
0 commit comments