/llvm-project/mlir/lib/IR/ |
H A D | SymbolTable.cpp | 1 //===- SymbolTable.cpp - MLIR Symbol Table Class --------------------------===// 9 #include "mlir/IR/SymbolTable.h" 29 return op->getAttrOfType<StringAttr>(SymbolTable::getSymbolAttrName()); in getNameIfSymbol() 57 StringAttr::get(ctx, SymbolTable::getSymbolAttrName()); in collectValidReferencesFor() 60 if (!symbolTableOp->hasTrait<OpTrait::SymbolTable>()) in collectValidReferencesFor() 92 if (!op.hasTrait<OpTrait::SymbolTable>()) { in walkSymbolTable() 108 if (result != WalkResult::advance() || op->hasTrait<OpTrait::SymbolTable>()) in walkSymbolTable() 114 // SymbolTable 118 SymbolTable::SymbolTable(Operatio function in SymbolTable 512 SymbolTableCollection symbolTable; verifySymbolTable() local 1041 auto symbolTable = std::make_unique<SymbolTable>(symbolTableOp); getSymbolTable() local 1053 SymbolUserMap(SymbolTableCollection & symbolTable,Operation * symbolTableOp) SymbolUserMap() argument [all...] |
/llvm-project/mlir/include/mlir/IR/ |
H A D | SymbolInterfaces.td | 26 operation resides immediately within a region that defines a `SymbolTable`. 37 return mlir::SymbolTable::getSymbolName($_op); 39 return mlir::SymbolTable::getSymbolName(this->getOperation()); 46 mlir::SymbolTable::getSymbolAttrName(), name); 50 "mlir::SymbolTable::Visibility", "getVisibility", (ins), [{}], 52 return mlir::SymbolTable::getSymbolVisibility(this->getOperation()); 58 return getVisibility() == mlir::SymbolTable::Visibility::Nested; 64 return getVisibility() == mlir::SymbolTable::Visibility::Private; 70 return getVisibility() == mlir::SymbolTable::Visibility::Public; 74 "void", "setVisibility", (ins "mlir::SymbolTable::Visibility":$vis), [{}], [all …]
|
H A D | SymbolTable.h | 1 //===- SymbolTable.h - MLIR Symbol Table Class ------------------*- C++ -*-===// 21 /// operations with the 'SymbolTable' trait. Inserting into and erasing from 22 /// this SymbolTable will also insert and erase from the Operation given to it 24 class SymbolTable { 27 SymbolTable(Operation *symbolTableOp); 71 ArrayRef<SymbolTable *> others); 73 ArrayRef<SymbolTable *> others); 154 /// with the 'OpTrait::SymbolTable' trait. 168 /// 'OpTrait::SymbolTable' trait. Returns nullptr if no valid symbol was 267 DenseMap<Attribute, Operation *> symbolTable; variable [all …]
|
/llvm-project/mlir/unittests/IR/ |
H A D | SymbolTableTest.cpp | 1 //===- SymbolTableTest.cpp - SymbolTable unit tests -----------------------===// 8 #include "mlir/IR/SymbolTable.h" 26 SymbolTable, ModuleOp, Operation *, Operation *)>; 37 SymbolTable symbolTable(module.get()); in testReplaceAllSymbolUses() local 45 LogicalResult res = replaceFn(symbolTable, module.get(), fooOp, barOp); in testReplaceAllSymbolUses() 81 testReplaceAllSymbolUses([&](auto symbolTable, auto module, auto fooOp, in TEST_F() 83 return symbolTable.replaceAllSymbolUses( in TEST_F() 90 testReplaceAllSymbolUses([&](auto symbolTable, auto module, auto fooOp, in TEST_F() argument 92 return symbolTable.replaceAllSymbolUses( in TEST_F() 100 testReplaceAllSymbolUses([&](auto symbolTable, auto module, auto fooOp, in TEST_F() argument [all …]
|
/llvm-project/flang/lib/Optimizer/Transforms/ |
H A D | AssumedRankOpConversion.cpp | 62 mlir::SymbolTable *symbolTable, fir::KindMapping kindMap) in ReboxAssumedRankConv() argument 64 symbolTable{symbolTable}, kindMap{kindMap} {}; in ReboxAssumedRankConv() 69 fir::FirOpBuilder builder{rewriter, kindMap, symbolTable}; in matchAndRewrite() 113 mlir::SymbolTable *symbolTable = nullptr; member in __anon8dc19e030111::ReboxAssumedRankConv 121 IsAssumedSizeConv(mlir::MLIRContext *context, mlir::SymbolTable *symbolTable, in IsAssumedSizeConv() argument 124 symbolTable{symbolTabl in IsAssumedSizeConv() 138 mlir::SymbolTable *symbolTable = nullptr; global() member in __anon8dc19e030111::IsAssumedSizeConv 149 mlir::SymbolTable symbolTable(mod); runOnOperation() local [all...] |
/llvm-project/mlir/test/lib/IR/ |
H A D | TestSymbolUses.cpp | 28 // Test computing uses on a non symboltable op. in operateOnSymbol() 29 std::optional<SymbolTable::UseRange> symbolUses = in operateOnSymbol() 30 SymbolTable::getSymbolUses(symbol); in operateOnSymbol() 44 if (SymbolTable::symbolKnownUseEmpty(symbol, &module.getBodyRegion())) { in operateOnSymbol() 54 symbolUses = SymbolTable::getSymbolUses(symbol, &module.getBodyRegion()); in operateOnSymbol() 56 for (SymbolTable::SymbolUse symbolUse : *symbolUses) { in operateOnSymbol() 58 if (SymbolTable::lookupNearestSymbolFrom( in operateOnSymbol() 62 << *symbol->getInherentAttr(SymbolTable::getSymbolAttrName()); in operateOnSymbol() 80 SymbolTable table(module); in runOnOperation() 82 // In order to test the SymbolTable::erase method, also erase completely in runOnOperation() [all …]
|
/llvm-project/mlir/lib/Dialect/LLVMIR/Transforms/ |
H A D | AddComdats.cpp | 23 SymbolTable &symbolTable, ModuleOp &module) { in addComdat() argument 26 symbolTable.lookup<mlir::LLVM::ComdatOp>(comdatName); in addComdat() 32 symbolTable.insert(comdatOp); in addComdat() 50 std::unique_ptr<SymbolTable> symbolTable; in runOnOperation() local 51 auto getSymTab = [&]() -> SymbolTable & { in runOnOperation() 52 if (!symbolTable) in runOnOperation() 53 symbolTable = std::make_unique<SymbolTable>(mod); in runOnOperation() 54 return *symbolTable; in runOnOperation()
|
/llvm-project/mlir/test/python/ir/ |
H A D | symbol_table.py | 34 symbol_table = SymbolTable(m1.operation) 111 SymbolTable.set_symbol_name(bar, "bam") 112 SymbolTable.replace_all_symbol_uses("bar", "bam", foo) 118 print(f"Foo symbol: {repr(SymbolTable.get_symbol_name(foo))}") 119 print(f"Bar symbol: {repr(SymbolTable.get_symbol_name(bar))}") 122 SymbolTable.set_symbol_name(bar, "baz") 123 SymbolTable.replace_all_symbol_uses("bam", "baz", m.operation) 129 print(f"Foo symbol: {repr(SymbolTable.get_symbol_name(foo))}") 130 print(f"Bar symbol: {repr(SymbolTable.get_symbol_name(bar))}") 146 print(f"Existing visibility: {repr(SymbolTable [all...] |
/llvm-project/flang/lib/Optimizer/Support/ |
H A D | Utils.cpp | 20 const mlir::SymbolTable *symbolTable) { in lookupTypeInfoOp() argument 28 return fir::lookupTypeInfoOp(originalMangledTypeName, module, symbolTable); in lookupTypeInfoOp() 33 const mlir::SymbolTable *symbolTable) { in lookupTypeInfoOp() argument 34 if (symbolTable) in lookupTypeInfoOp() 35 if (auto typeInfo = symbolTable->lookup<fir::TypeInfoOp>(name)) in lookupTypeInfoOp() 42 mlir::ModuleOp module, const mlir::SymbolTable *symbolTable) { in getComponentLowerBoundsIfNonDefault() argument 44 fir::lookupTypeInfoOp(recordType, module, symbolTable); in getComponentLowerBoundsIfNonDefault()
|
/llvm-project/mlir/lib/Transforms/ |
H A D | SymbolDCE.cpp | 16 #include "mlir/IR/SymbolTable.h" 33 SymbolTableCollection &symbolTable, 43 if (!symbolTableOp->hasTrait<OpTrait::SymbolTable>()) { in runOnOperation() 59 SymbolTableCollection symbolTable; in runOnOperation() local 60 if (failed(computeLiveness(symbolTableOp, symbolTable, symbolTableIsHidden, in runOnOperation() 67 if (!nestedSymbolTable->hasTrait<OpTrait::SymbolTable>()) in runOnOperation() 84 SymbolTableCollection &symbolTable, in computeLiveness() argument 113 if (op->hasTrait<OpTrait::SymbolTable>()) { in computeLiveness() 118 if (failed(computeLiveness(op, symbolTable, symIsHidden, liveSymbols))) in computeLiveness() 123 std::optional<SymbolTable::UseRange> uses = SymbolTable::getSymbolUses(op); in computeLiveness() [all …]
|
/llvm-project/mlir/lib/Dialect/Transform/IR/ |
H A D | Utils.cpp | 81 assert(target->hasTrait<OpTrait::SymbolTable>() && in mergeSymbolsInto() 82 "requires target to implement the 'SymbolTable' trait"); in mergeSymbolsInto() 83 assert(other->hasTrait<OpTrait::SymbolTable>() && in mergeSymbolsInto() 84 "requires target to implement the 'SymbolTable' trait"); in mergeSymbolsInto() 86 SymbolTable targetSymbolTable(target); in mergeSymbolsInto() 87 SymbolTable otherSymbolTable(*other); in mergeSymbolsInto() 95 for (auto &&[symbolTable, otherSymbolTable] : llvm::zip( in mergeSymbolsInto() 96 SmallVector<SymbolTable *, 2>{&targetSymbolTable, &otherSymbolTable}, in mergeSymbolsInto() 97 SmallVector<SymbolTable *, 2>{&otherSymbolTable, in mergeSymbolsInto() 99 Operation *symbolTableOp = symbolTable->getOp(); in mergeSymbolsInto() [all …]
|
/llvm-project/mlir/docs/ |
H A D | SymbolsAndSymbolTables.md | 30 defines a [`SymbolTable`](#symbol-table). The name of a symbol *must* be unique 31 within the parent `SymbolTable`. This name is semantically similar to an SSA 46 'SymbolTable::getSymbolAttrName()'(`sym_name`). 49 'SymbolTable::getVisibilityAttrName()'(`sym_visibility`) 62 defining a `SymbolTable`. A `SymbolTable` operation provides the container for 65 Operations defining a `SymbolTable` must use the `OpTrait::SymbolTable` trait. 157 The following are a few of the utilities provided by the `SymbolTable`: 159 * `SymbolTable [all...] |
/llvm-project/lld/wasm/ |
H A D | SymbolTable.cpp | 1 //===- SymbolTable.cpp ----------------------------------------------------===// 9 #include "SymbolTable.h" 24 SymbolTable *symtab; 26 void SymbolTable::addFile(InputFile *file, StringRef symName) { in addFile() 81 void SymbolTable::compileBitcodeFiles() { in compileBitcodeFiles() 97 Symbol *SymbolTable::find(StringRef name) { in find() 104 void SymbolTable::replace(StringRef name, Symbol* sym) { in replace() 109 std::pair<Symbol *, bool> SymbolTable::insertName(StringRef name) { in insertName() 133 std::pair<Symbol *, bool> SymbolTable::insert(StringRef name, in insert() 221 DefinedFunction *SymbolTable in addSyntheticFunction() [all...] |
H A D | SymbolTable.h | 1 //===- SymbolTable.h --------------------------------------------*- C++ -*-===// 25 // SymbolTable is a bucket of all known symbols, including defined, 29 // We put all symbols of all files to a SymbolTable, and the 30 // SymbolTable selects the "best" symbols if there are name 37 class SymbolTable { 140 extern SymbolTable *symtab;
|
/llvm-project/mlir/lib/Dialect/MLProgram/IR/ |
H A D | MLProgramOps.cpp | 180 GlobalOp GlobalLoadOp::getGlobalOp(SymbolTableCollection &symbolTable) { in getGlobalOp() argument 183 if (auto nearest = symbolTable.lookupNearestSymbolFrom<GlobalOp>( in getGlobalOp() 192 GlobalLoadOp::verifySymbolUses(SymbolTableCollection &symbolTable) { in verifySymbolUses() argument 193 GlobalOp referrent = getGlobalOp(symbolTable); in verifySymbolUses() 210 GlobalOp GlobalLoadConstOp::getGlobalOp(SymbolTableCollection &symbolTable) { in getGlobalOp() argument 211 return symbolTable.lookupNearestSymbolFrom<GlobalOp>( in getGlobalOp() 216 GlobalLoadConstOp::verifySymbolUses(SymbolTableCollection &symbolTable) { in verifySymbolUses() argument 217 GlobalOp referrent = getGlobalOp(symbolTable); in verifySymbolUses() 237 GlobalOp GlobalLoadGraphOp::getGlobalOp(SymbolTableCollection &symbolTable) { in getGlobalOp() argument 238 return symbolTable.lookupNearestSymbolFrom<GlobalOp>( in getGlobalOp() [all …]
|
/llvm-project/lld/COFF/ |
H A D | SymbolTable.cpp | 1 //===- SymbolTable.cpp ----------------------------------------------------===// 9 #include "SymbolTable.h" 237 void SymbolTable::loadMinGWSymbols() { in getSymbolLocations() 297 Defined *SymbolTable::impSymbol(StringRef name) { in loadMinGWSymbols() 303 bool SymbolTable::handleMinGWAutomaticImport(Symbol *sym, StringRef name) { in loadMinGWSymbols() 356 void SymbolTable::reportProblemSymbols( in handleMinGWAutomaticImport() 408 void SymbolTable::reportUnresolvable() { in reportProblemSymbols() 435 bool SymbolTable::resolveRemainingUndefines() { in reportProblemSymbols() 519 std::pair<Symbol *, bool> SymbolTable::insert(StringRef name) { in resolveRemainingUndefines() 535 std::pair<Symbol *, bool> SymbolTable in resolveRemainingUndefines() [all...] |
/llvm-project/lld/ELF/ |
H A D | SymbolTable.cpp | 1 //===- SymbolTable.cpp ----------------------------------------------------===// 16 #include "SymbolTable.h" 32 void SymbolTable::wrap(Symbol *sym, Symbol *real, Symbol *wrap) { 64 Symbol *SymbolTable::insert(StringRef name) { 101 Symbol *SymbolTable::addAndCheckDuplicate(Ctx &ctx, const Defined &newSym) { 110 Symbol *SymbolTable::find(StringRef name) { in addAndCheckDuplicate() 137 StringMap<SmallVector<Symbol *, 0>> &SymbolTable::getDemangledSyms() { 161 SmallVector<Symbol *, 0> SymbolTable::findByVersion(SymbolVersion ver) { in getDemangledSyms() 170 SmallVector<Symbol *, 0> SymbolTable::findAllByVersion(SymbolVersion ver, in findByVersion() 197 void SymbolTable in findAllByVersion() [all...] |
H A D | SymbolTable.h | 1 //===- SymbolTable.h --------------------------------------------*- C++ -*-===// 27 // SymbolTable is a bucket of all known symbols, including defined, 31 // We put all symbols of all files to a SymbolTable, and the 32 // SymbolTable selects the "best" symbols if there are name 39 class SymbolTable { 41 SymbolTable(Ctx &ctx) : ctx(ctx) {} in getSymbols()
|
/llvm-project/mlir/lib/Dialect/GPU/Transforms/ |
H A D | KernelOutlining.cpp | 27 #include "mlir/IR/SymbolTable.h" 360 SymbolTable symbolTable(getOperation()); in runOnOperation() local 383 auto kernelModule = createKernelModule(op, outlinedFunc, symbolTable); in runOnOperation() 384 symbolTable.insert(kernelModule, insertPt); in runOnOperation() 406 const SymbolTable &parentSymbolTable) { in createKernelModule() 408 // a SymbolTable by the caller. SymbolTable needs to be refactored to in createKernelModule() 436 SymbolTable symbolTable(kernelModul in createKernelModule() 414 SymbolTable symbolTable(kernelModule); createKernelModule() local [all...] |
/llvm-project/mlir/lib/Transforms/Utils/ |
H A D | Inliner.cpp | 40 Operation *op, CallGraph &cg, SymbolTableCollection &symbolTable, in walkReferencedSymbolNodes() argument 43 auto symbolUses = SymbolTable::getSymbolUses(op); in walkReferencedSymbolNodes() 47 for (const SymbolTable::SymbolUse &use : *symbolUses) { in walkReferencedSymbolNodes() 54 auto *symbolOp = symbolTable.lookupNearestSymbolFrom(symbolTableOp, in walkReferencedSymbolNodes() 87 CGUseList(Operation *op, CallGraph &cg, SymbolTableCollection &symbolTable); 123 SymbolTableCollection &symbolTable; member 128 SymbolTableCollection &symbolTable) in CGUseList() argument 129 : symbolTable(symbolTable) { in CGUseList() 148 walkReferencedSymbolNodes(&op, cg, symbolTable, alwaysLiveNode in CGUseList() 306 collectCallOps(iterator_range<Region::iterator> blocks,CallGraphNode * sourceNode,CallGraph & cg,SymbolTableCollection & symbolTable,SmallVectorImpl<ResolvedCall> & calls,bool traverseNestedCGNodes) collectCallOps() argument 419 SymbolTableCollection &symbolTable; global() member 755 SymbolTableCollection symbolTable; doInlining() local [all...] |
/llvm-project/mlir/lib/Dialect/Mesh/IR/ |
H A D | MeshOps.cpp | 129 SymbolTableCollection &symbolTable) { in verifyMeshAxes() 130 mesh::MeshOp mesh = getMeshOrNull(op, meshSymbol, symbolTable); in verifyMeshAxes() 179 getMeshAndVerifyAxes(Op op, SymbolTableCollection &symbolTable) { in shardType() 181 ::getMeshAndVerify(op.getOperation(), op.getMeshAttr(), symbolTable); 381 MeshShapeOp::verifySymbolUses(SymbolTableCollection &symbolTable) { in operator ==() 382 auto mesh = ::getMeshAndVerify(getOperation(), getMeshAttr(), symbolTable); in operator ==() 538 LogicalResult ShardingOp::verifySymbolUses(SymbolTableCollection &symbolTable) { in getMeshAndVerifyAxes() 539 auto mesh = ::getMeshAndVerify(getOperation(), getMeshAttr(), symbolTable); in getMeshAndVerifyAxes() 779 ProcessMultiIndexOp::verifySymbolUses(SymbolTableCollection &symbolTable) { in build() 780 auto mesh = ::getMeshAndVerify(getOperation(), getMeshAttr(), symbolTable); 102 getMeshAndVerify(Operation * op,FlatSymbolRefAttr meshSymbol,SymbolTableCollection & symbolTable) getMeshAndVerify() argument 288 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 419 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 462 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 535 getMeshAndVerifyAxes(Op op,SymbolTableCollection & symbolTable) getMeshAndVerifyAxes() argument 707 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 733 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 758 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 797 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 823 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 851 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 882 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 909 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 938 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 963 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 994 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument 1020 verifySymbolUses(SymbolTableCollection & symbolTable) verifySymbolUses() argument [all...] |
/llvm-project/mlir/lib/Interfaces/ |
H A D | CallInterfaces.cpp | 19 SymbolTableCollection *symbolTable) { 26 if (symbolTable) in resolveCallable() 27 return symbolTable->lookupNearestSymbolFrom(call.getOperation(), symbolRef); in resolveCallable() 28 return SymbolTable::lookupNearestSymbolFrom(call.getOperation(), symbolRef); in resolveCallable() 22 resolveCallable(SymbolTableCollection * symbolTable) resolveCallable() argument
|
/llvm-project/mlir/lib/Conversion/SCFToOpenMP/ |
H A D | SCFToOpenMP.cpp | 24 #include "mlir/IR/SymbolTable.h" 187 createDecl(PatternRewriter &builder, SymbolTable &symbolTable, in createDecl() argument 193 symbolTable.insert(decl); in createDecl() 247 Operation *container = SymbolTable::getNearestSymbolTable(reduce); in declareReduction() 248 SymbolTable symbolTable(container); in declareReduction() local 266 createDecl(builder, symbolTable, reduce, reductionIndex, in declareReduction() 273 createDecl(builder, symbolTable, reduce, reductionIndex, in declareReduction() 280 createDecl(builder, symbolTable, reduc in declareReduction() [all...] |
/llvm-project/mlir/lib/Analysis/ |
H A D | CallGraph.cpp | 15 #include "mlir/IR/SymbolTable.h" 75 SymbolTableCollection &symbolTable, in computeCallGraph() argument 82 parentNode->addCallEdge(cg.resolveCallable(call, symbolTable)); in computeCallGraph() 96 computeCallGraph(&nested, cg, symbolTable, parentNode, resolveCalls); in computeCallGraph() 105 SymbolTableCollection symbolTable; in CallGraph() local 106 computeCallGraph(op, *this, symbolTable, /*parentNode=*/nullptr, in CallGraph() 108 computeCallGraph(op, *this, symbolTable, /*parentNode=*/nullptr, in CallGraph() 148 SymbolTableCollection &symbolTable) const { in resolveCallable() 149 Operation *callable = call.resolveCallableInTable(&symbolTable); in resolveCallable()
|
/llvm-project/flang/include/flang/Optimizer/Builder/ |
H A D | FIRBuilder.h | 33 class SymbolTable; 58 mlir::SymbolTable *symbolTable = nullptr) 60 symbolTable{symbolTable} {} in FirOpBuilder() 62 mlir::SymbolTable *symbolTable = nullptr) 64 symbolTable{symbolTable} { in FirOpBuilder() 90 symbolTable{othe 32 class SymbolTable; global() variable 536 mlir::SymbolTable *symbolTable = nullptr; global() variable [all...] |