17ce1e7abSRiver Riddle //===- CallInterfaces.cpp - ControlFlow Interfaces ------------------------===// 27ce1e7abSRiver Riddle // 37ce1e7abSRiver Riddle // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 47ce1e7abSRiver Riddle // See https://llvm.org/LICENSE.txt for license information. 57ce1e7abSRiver Riddle // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 67ce1e7abSRiver Riddle // 77ce1e7abSRiver Riddle //===----------------------------------------------------------------------===// 87ce1e7abSRiver Riddle 97ce1e7abSRiver Riddle #include "mlir/Interfaces/CallInterfaces.h" 107ce1e7abSRiver Riddle 117ce1e7abSRiver Riddle using namespace mlir; 127ce1e7abSRiver Riddle 137ce1e7abSRiver Riddle //===----------------------------------------------------------------------===// 14a5ea6045SRiver Riddle // CallOpInterface 15a5ea6045SRiver Riddle //===----------------------------------------------------------------------===// 16a5ea6045SRiver Riddle 17a5ea6045SRiver Riddle Operation * 18d1cad229SHenrich Lauko call_interface_impl::resolveCallable(CallOpInterface call, 19d1cad229SHenrich Lauko SymbolTableCollection *symbolTable) { 20d1cad229SHenrich Lauko CallInterfaceCallable callable = call.getCallableForCallee(); 21e750c41eSNick Kreeger if (auto symbolVal = dyn_cast<Value>(callable)) 22a5ea6045SRiver Riddle return symbolVal.getDefiningOp(); 23a5ea6045SRiver Riddle 24a5ea6045SRiver Riddle // If the callable isn't a value, lookup the symbol reference. 25*9192367aSKazu Hirata auto symbolRef = cast<SymbolRefAttr>(callable); 26a5ea6045SRiver Riddle if (symbolTable) 27d1cad229SHenrich Lauko return symbolTable->lookupNearestSymbolFrom(call.getOperation(), symbolRef); 28d1cad229SHenrich Lauko return SymbolTable::lookupNearestSymbolFrom(call.getOperation(), symbolRef); 29a5ea6045SRiver Riddle } 30a5ea6045SRiver Riddle 31a5ea6045SRiver Riddle //===----------------------------------------------------------------------===// 327ce1e7abSRiver Riddle // CallInterfaces 337ce1e7abSRiver Riddle //===----------------------------------------------------------------------===// 347ce1e7abSRiver Riddle 357ce1e7abSRiver Riddle #include "mlir/Interfaces/CallInterfaces.cpp.inc" 36