Sirui Mu
Sirui Mu
> Great idea. Opened a thread here: https://discourse.llvm.org/t/why-llvm-invariant-end-intrinsic-would-prevent-optimizations/82984 nikic has responded: > In practice, LLVM only supports open-ended invariant.start. We should really remove the invariant.end intrinsic to not confuse people....
#1159 started emitting `!invariant.group` metadata for loads and stores to function-level allocas, as shown in Approach 3. This left us with local constants in an inner scope of the function-level...
Here's a short draft about how I'm planning to deal with nested constant allocas. Let's re-consider the C++ code listed in the top message: ```c++ void test(std::vector vec) { for...
> Btw, does the problem of while goes away with fixes for https://github.com/llvm/clangir/issues/1218? No. #1218 moves variables in loop bodies into a scope in the loop body, but this is...
> I think you could solve in a simpler way this problem by involving the current "idiom recognition" and play with abstract interpretation to figure out the semantics of the...
Rebased onto the latest `main`.
Rebased onto the latest `main`.
Hi @OfekShilon could you please have a look at this PR? Thanks!
> what is -fclangir-mem2reg It is a clang option that enables the mem2reg pass in clangir optimization pipeline. > Isn't this covered by the new opt-pipeline view? Yep indeed, I...
@OfekShilon I reconsidered this for a while and I believe a more appropriate design would be 1) removing the `-fclangir-mem2reg` and 2) adding flat. The `fclangir-mem2reg` is basically an optimization...