[llvm] [SandboxIR] Implement CmpInst, FCmpInst, and ICmpInst (PR #106301)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 27 18:35:27 PDT 2024
================
@@ -2637,6 +2647,58 @@ PHINode *Context::createPHINode(llvm::PHINode *I) {
auto NewPtr = std::unique_ptr<PHINode>(new PHINode(I, *this));
return cast<PHINode>(registerValue(std::move(NewPtr)));
}
+CmpInst *Context::createCmpInst(llvm::CmpInst *I) {
+ auto NewPtr = std::unique_ptr<CmpInst>(new CmpInst(I, *this));
+ return cast<CmpInst>(registerValue(std::move(NewPtr)));
+}
+ICmpInst *Context::createICmpInst(llvm::ICmpInst *I) {
+ auto NewPtr = std::unique_ptr<ICmpInst>(new ICmpInst(I, *this));
+ return cast<ICmpInst>(registerValue(std::move(NewPtr)));
+}
+FCmpInst *Context::createFCmpInst(llvm::FCmpInst *I) {
+ auto NewPtr = std::unique_ptr<FCmpInst>(new FCmpInst(I, *this));
+ return cast<FCmpInst>(registerValue(std::move(NewPtr)));
+}
+
+void CmpInst::setPredicate(Predicate P) {
+ auto &Tracker = Ctx.getTracker();
----------------
vporpo wrote:
Now that we have the `GenericSetter` tracking class this should look like:
```
Ctx.getTracker().emplaceIfTracking<&CmpInst::getPredicate, &CmpInst::setPredicate>(this);
```
https://github.com/llvm/llvm-project/pull/106301
More information about the llvm-commits
mailing list