diff --git a/clang/lib/CIR/CodeGen/LowerToLLVM.cpp b/clang/lib/CIR/CodeGen/LowerToLLVM.cpp index e276417fd8de7c8..b89d82019d03af2 100644 --- a/clang/lib/CIR/CodeGen/LowerToLLVM.cpp +++ b/clang/lib/CIR/CodeGen/LowerToLLVM.cpp @@ -12,6 +12,7 @@ #include "mlir/Conversion/AffineToStandard/AffineToStandard.h" #include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h" +#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h" #include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h" #include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h" #include "mlir/Conversion/LLVMCommon/ConversionTarget.h" @@ -492,6 +493,8 @@ void ConvertCIRToLLVMPass::runOnOperation() { populateAffineToStdConversionPatterns(patterns); mlir::arith::populateArithToLLVMConversionPatterns(typeConverter, patterns); populateSCFToControlFlowConversionPatterns(patterns); + mlir::cf::populateControlFlowToLLVMConversionPatterns(typeConverter, + patterns); populateFinalizeMemRefToLLVMConversionPatterns(typeConverter, patterns); populateFuncToLLVMConversionPatterns(typeConverter, patterns); diff --git a/clang/test/CIR/CIRToLLVM/goto.cir b/clang/test/CIR/CIRToLLVM/goto.cir index b82303d202b3259..a70f65b2bf888b6 100644 --- a/clang/test/CIR/CIRToLLVM/goto.cir +++ b/clang/test/CIR/CIRToLLVM/goto.cir @@ -1,8 +1,5 @@ // RUN: cir-tool %s -canonicalize -cir-to-func -cir-to-memref -o - | FileCheck %s -check-prefix=MLIR // RUN: cir-tool %s -canonicalize -cir-to-func -cir-to-memref -cir-to-llvm -o - | mlir-translate -mlir-to-llvmir | FileCheck %s -check-prefix=LLVM - -// FIXME: after rebasing against July's 2022 mlir, we get "failed to legalize -// operation 'cf.br'" from -cir-to-llvm // XFAIL: * module {