diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2025-04-14 16:08:49 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-14 16:08:49 -0700 |
commit | 76db259080fa134579f31d76fe9ab462f47eca87 (patch) | |
tree | 657e89d9a7cc3c022c59e3d1f89cd9a8e4397273 /mlir/lib/Target/LLVMIR/ModuleImport.cpp | |
parent | a9f73ae4494437c606c2b2e869358b75d8e2d45c (diff) | |
download | llvm-76db259080fa134579f31d76fe9ab462f47eca87.zip llvm-76db259080fa134579f31d76fe9ab462f47eca87.tar.gz llvm-76db259080fa134579f31d76fe9ab462f47eca87.tar.bz2 |
Revert "[MLIR][LLVM] Support for indirectbr" (#135695)
Reverts llvm/llvm-project#135092, broke
https://lab.llvm.org/buildbot/#/builders/169/builds/10469
Diffstat (limited to 'mlir/lib/Target/LLVMIR/ModuleImport.cpp')
-rw-r--r-- | mlir/lib/Target/LLVMIR/ModuleImport.cpp | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/mlir/lib/Target/LLVMIR/ModuleImport.cpp b/mlir/lib/Target/LLVMIR/ModuleImport.cpp index 346a0ed..8e7a7ab 100644 --- a/mlir/lib/Target/LLVMIR/ModuleImport.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleImport.cpp @@ -1988,35 +1988,6 @@ LogicalResult ModuleImport::convertInstruction(llvm::Instruction *inst) { return success(); } - if (inst->getOpcode() == llvm::Instruction::IndirectBr) { - auto *indBrInst = cast<llvm::IndirectBrInst>(inst); - - FailureOr<Value> basePtr = convertValue(indBrInst->getAddress()); - if (failed(basePtr)) - return failure(); - - SmallVector<Block *> succBlocks; - // `succBlockArgs` is storage for the block arguments ranges used in - // `succBlockArgsRange`, so the later references live data. - SmallVector<SmallVector<Value>> succBlockArgs; - SmallVector<ValueRange> succBlockArgsRange; - for (auto i : llvm::seq<unsigned>(0, indBrInst->getNumSuccessors())) { - llvm::BasicBlock *succ = indBrInst->getSuccessor(i); - SmallVector<Value> blockArgs; - if (failed(convertBranchArgs(indBrInst, succ, blockArgs))) - return failure(); - succBlocks.push_back(lookupBlock(succ)); - succBlockArgs.push_back(blockArgs); - succBlockArgsRange.push_back(succBlockArgs.back()); - } - Location loc = translateLoc(inst->getDebugLoc()); - auto indBrOp = builder.create<LLVM::IndirectBrOp>( - loc, *basePtr, succBlockArgsRange, succBlocks); - - mapNoResultOp(inst, indBrOp); - return success(); - } - // Convert all instructions that have an mlirBuilder. if (succeeded(convertInstructionImpl(builder, inst, *this, iface))) return success(); @@ -2027,8 +1998,8 @@ LogicalResult ModuleImport::convertInstruction(llvm::Instruction *inst) { LogicalResult ModuleImport::processInstruction(llvm::Instruction *inst) { // FIXME: Support uses of SubtargetData. // FIXME: Add support for call / operand attributes. - // FIXME: Add support for the cleanupret, catchret, catchswitch, callbr, - // vaarg, catchpad, cleanuppad instructions. + // FIXME: Add support for the indirectbr, cleanupret, catchret, catchswitch, + // callbr, vaarg, catchpad, cleanuppad instructions. // Convert LLVM intrinsics calls to MLIR intrinsics. if (auto *intrinsic = dyn_cast<llvm::IntrinsicInst>(inst)) |