================ @@ -0,0 +1,58 @@ +// RUN: cir-opt %s -cir-flatten-cfg -o - | FileCheck %s + +module { + cir.func @foo() { + cir.scope { + %0 = cir.alloca !cir.int<u, 32>, !cir.ptr<!cir.int<u, 32>>, ["a", init] {alignment = 4 : i64} + %1 = cir.const #cir.int<4> : !cir.int<u, 32> + cir.store %1, %0 : !cir.int<u, 32>, !cir.ptr<!cir.int<u, 32>> + } + cir.return + } +// CHECK: cir.func @foo() { +// CHECK: cir.br ^bb1 ---------------- erichkeane wrote:
This here is a touch awkward, right? I know we did a bit of work to remove 'empty' blocks in the pass. I wonder if a future version of this pass should be checking the 'exit' of a block to see if it is a single-out (that is, no decisions being done, just a single `br`, and merge the two. It seems to fit in well with the flatten. That is, this function here seems like it should/could be a single block, right? https://github.com/llvm/llvm-project/pull/130861 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits