mirror of
https://github.com/YosysHQ/yosys.git
synced 2026-08-22 14:17:27 +02:00
internal_stats: astnode (sizeof)
This commit is contained in:
@@ -41,6 +41,8 @@ namespace AST {
|
||||
std::string current_filename;
|
||||
void (*set_line_num)(int) = NULL;
|
||||
int (*get_line_num)() = NULL;
|
||||
unsigned long long astnodes = 0;
|
||||
unsigned long long astnode_count() { return astnodes; }
|
||||
}
|
||||
|
||||
// instantiate global variables (private API)
|
||||
@@ -204,6 +206,7 @@ AstNode::AstNode(AstNodeType type, AstNode *child1, AstNode *child2, AstNode *ch
|
||||
static unsigned int hashidx_count = 123456789;
|
||||
hashidx_count = mkhash_xorshift(hashidx_count);
|
||||
hashidx_ = hashidx_count;
|
||||
astnodes++;
|
||||
|
||||
this->type = type;
|
||||
filename = current_filename;
|
||||
@@ -292,6 +295,7 @@ void AstNode::delete_children()
|
||||
// AstNode destructor
|
||||
AstNode::~AstNode()
|
||||
{
|
||||
astnodes--;
|
||||
delete_children();
|
||||
}
|
||||
|
||||
|
||||
@@ -410,6 +410,9 @@ namespace AST
|
||||
extern void (*set_line_num)(int);
|
||||
extern int (*get_line_num)();
|
||||
|
||||
// for stats
|
||||
unsigned long long astnode_count();
|
||||
|
||||
// set set_line_num and get_line_num to internal dummy functions (done by simplify() and AstModule::derive
|
||||
// to control the filename and linenum properties of new nodes not generated by a frontend parser)
|
||||
void use_internal_line_num();
|
||||
|
||||
Reference in New Issue
Block a user