[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