X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fcompiler.cpp;h=35977cb42be534077bca6c9f3427fbbcc158d443;hb=ff8a0248f1a3c0c1f48f670867bc9106c898c55b;hp=347e16ad301dba1881b604713a68476095ccf0f2;hpb=05597fbb3671dfed4776bc5223958c85e780345e;p=libs%2Fgl.git diff --git a/source/glsl/compiler.cpp b/source/glsl/compiler.cpp index 347e16ad..35977cb4 100644 --- a/source/glsl/compiler.cpp +++ b/source/glsl/compiler.cpp @@ -114,7 +114,7 @@ void Compiler::append_module(Module &mod, DataFile::Collection *res) vector imports = NodeGatherer().apply(mod.shared); for(vector::iterator i=imports.begin(); i!=imports.end(); ++i) import(res, (*i)->module); - NodeRemover(set(imports.begin(), imports.end())).apply(mod.shared); + NodeRemover().apply(mod.shared, set(imports.begin(), imports.end())); append_stage(mod.shared); for(list::iterator i=mod.stages.begin(); i!=mod.stages.end(); ++i) @@ -184,15 +184,12 @@ bool Compiler::optimize(Stage &stage) { ConstantConditionEliminator().apply(stage); - set inlineable = InlineableFunctionLocator().apply(stage); - FunctionInliner(inlineable).apply(stage); + FunctionInliner().apply(stage); - set unused = UnusedVariableLocator().apply(stage); - set unused2 = UnusedFunctionLocator().apply(stage); - unused.insert(unused2.begin(), unused2.end()); - NodeRemover(unused).apply(stage); + bool result = UnusedVariableRemover().apply(stage); + result |= UnusedFunctionRemover().apply(stage); - return !unused.empty(); + return result; } void Compiler::finalize(Stage &stage)