FLANG
fir::DerivedTypeCache Class Reference

#include <Optimizer/Transforms/DebugTypeGenerator.h>

Public Types

using ActiveLevels = llvm::SmallVector<int32_t, 1>

Public Member Functions

mlir::LLVM::DITypeAttr lookup (mlir::Type)
ActiveLevels startTranslating (mlir::Type, mlir::LLVM::DITypeAttr placeHolder=nullptr)
void finalize (mlir::Type, mlir::LLVM::DITypeAttr, ActiveLevels &&)
void preComponentVisitUpdate ()
void postComponentVisitUpdate (ActiveLevels &)

Detailed Description

Special cache to deal with the fact that mlir::LLVM::DITypeAttr for derived types may only be valid in specific nesting contexts in presence of derived type recursion and cannot be cached for the whole compilation. It is however still desirable to cache such mlir::LLVM::DITypeAttr as long as possible to avoid catastrophic compilation slow downs in very complex derived types where an intermediate type in a derived type cycle may indirectly appear hundreds of times under the top type of the derived type cycle. More details in the comment below.


The documentation for this class was generated from the following files: