mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
suppress unneeded initializations
This commit is contained in:
parent
a830c269ab
commit
a2cec7463f
3 changed files with 26 additions and 23 deletions
|
@ -64,6 +64,12 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
// previously compiled instances of those if present.
|
||||
for ( const auto& func : funcs )
|
||||
{
|
||||
if ( func.ShouldSkip() )
|
||||
{
|
||||
not_fully_compilable.insert(func.Func()->Name());
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( func.Func()->Flavor() != FUNC_FLAVOR_FUNCTION )
|
||||
// Can't be called directly.
|
||||
continue;
|
||||
|
@ -94,7 +100,6 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
{
|
||||
TypePtr tp{NewRef{}, (Type*)(t)};
|
||||
types.AddKey(tp, pfs.HashType(t));
|
||||
(void)RegisterType(tp);
|
||||
}
|
||||
|
||||
// ### This doesn't work for -O add-C++
|
||||
|
@ -102,13 +107,6 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
|
||||
NL();
|
||||
|
||||
#if 0
|
||||
for ( auto gi : all_global_info )
|
||||
Emit(gi->Declare());
|
||||
|
||||
NL();
|
||||
#endif
|
||||
|
||||
for ( auto& g : pfs.AllGlobals() )
|
||||
CreateGlobal(g);
|
||||
|
||||
|
@ -126,7 +124,8 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
// The scaffolding is now in place to go ahead and generate
|
||||
// the functions & lambdas. First declare them ...
|
||||
for ( const auto& func : funcs )
|
||||
DeclareFunc(func);
|
||||
if ( ! func.ShouldSkip() )
|
||||
DeclareFunc(func);
|
||||
|
||||
// We track lambdas by their internal names, because two different
|
||||
// LambdaExpr's can wind up referring to the same underlying lambda
|
||||
|
@ -148,7 +147,8 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
|
||||
// ... and now generate their bodies.
|
||||
for ( const auto& func : funcs )
|
||||
CompileFunc(func);
|
||||
if ( ! func.ShouldSkip() )
|
||||
CompileFunc(func);
|
||||
|
||||
lambda_names.clear();
|
||||
for ( const auto& l : pfs.Lambdas() )
|
||||
|
|
|
@ -240,6 +240,9 @@ void CPPCompile::GenStandaloneActivation()
|
|||
|
||||
for ( const auto& func : funcs )
|
||||
{
|
||||
if ( func.ShouldSkip() )
|
||||
continue;
|
||||
|
||||
auto f = func.Func();
|
||||
auto fname = BodyName(func);
|
||||
auto bname = Canonicalize(fname.c_str()) + "_zf";
|
||||
|
|
|
@ -382,19 +382,6 @@ static void generate_CPP(std::unique_ptr<ProfileFuncs>& pfs)
|
|||
|
||||
auto hm = std::make_unique<CPPHashManager>(hash_name.c_str());
|
||||
|
||||
if ( analysis_options.gen_CPP )
|
||||
{
|
||||
if ( analysis_options.only_func )
|
||||
{ // deactivate all functions except the target one
|
||||
for ( auto& func : funcs )
|
||||
{
|
||||
auto fn = func.Func()->Name();
|
||||
if ( *analysis_options.only_func != fn )
|
||||
func.SetSkip(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const auto gen_name = hash_dir + "CPP-gen.cc";
|
||||
const auto addl_name = hash_dir + "CPP-gen-addl.h";
|
||||
|
||||
|
@ -551,6 +538,19 @@ void analyze_scripts()
|
|||
// No work to do, avoid profiling overhead.
|
||||
return;
|
||||
|
||||
if ( analysis_options.gen_CPP )
|
||||
{
|
||||
if ( analysis_options.only_func )
|
||||
{ // deactivate all functions except the target one
|
||||
for ( auto& func : funcs )
|
||||
{
|
||||
auto fn = func.Func()->Name();
|
||||
if ( *analysis_options.only_func != fn )
|
||||
func.SetSkip(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Now that everything's parsed and BiF's have been initialized,
|
||||
// profile the functions.
|
||||
auto pfs = std::make_unique<ProfileFuncs>(funcs, is_CPP_compilable, false);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue