[Openmp-commits] [mlir] [openmp] [llvm] [OpenMP][OMPIRBuilder] Handle replace uses of ConstantExpr's inside of Target regions (PR #71891)

Sergio Afonso via Openmp-commits openmp-commits at lists.llvm.org
Fri Nov 10 04:47:49 PST 2023


================
@@ -4817,11 +4817,39 @@ static Function *createOutlinedFunction(
     Builder.restoreIP(
         ArgAccessorFuncCB(Arg, Input, InputCopy, AllocaIP, Builder.saveIP()));
 
-    // Collect all the instructions
+    // Things like GEP's can come in the form of Constants, constants and
+    // ConstantExpr's do not have access to the knowledge of what they're
+    // contained in, so we must dig a little to find an instruction so we can
+    // tell if they're used inside of the function we're outlining. We also
+    // replace the original constant expression with a new instruction
+    // equivelant; an instruction as it allows easy modification in the
+    // following loop, as we can now know the constant (instruction) is owned by
+    // our target function and replaceUsesOfWith can now be invoked on it
+    // (cannot do this with constants it seems), a brand new one also allows us
----------------
skatrak wrote:

Same as before. I think it improves readability, but feel free to ignore.
```suggestion
    // (cannot do this with constants it seems). A brand new one also allows us
```

https://github.com/llvm/llvm-project/pull/71891


More information about the Openmp-commits mailing list