diff options
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)) |