public CompiledPipeline.CompiledExecution buildExecution() {
        return buildExecution(false);
    }
@Test
    @SuppressWarnings({"unchecked", "rawtypes"})
    public void compilerBenchmark() throws Exception {
        final PipelineIR baselinePipelineIR = createPipelineIR(200);
        final PipelineIR testPipelineIR = createPipelineIR(400);
        final JrubyEventExtLibrary.RubyEvent testEvent =
                JrubyEventExtLibrary.RubyEvent.newRubyEvent(RubyUtil.RUBY, new Event());

        final FixedPluginFactory pluginFactory = new FixedPluginFactory(
                () -> null,
                () -> IDENTITY_FILTER,
                mockOutputSupplier()
        );
        final CompiledPipeline baselineCompiledPipeline = new CompiledPipeline(baselinePipelineIR, pluginFactory);

        final CompiledPipeline testCompiledPipeline = new CompiledPipeline(testPipelineIR, pluginFactory);

        final long compilationBaseline = time(ChronoUnit.MILLIS, () -> {
            final CompiledPipeline.CompiledExecution compiledExecution = baselineCompiledPipeline.buildExecution();
            compiledExecution.compute(RubyUtil.RUBY.newArray(testEvent), false, false);
        });

        final long compilationTest = time(ChronoUnit.MILLIS, () -> {
            final CompiledPipeline.CompiledExecution compiledExecution = testCompiledPipeline.buildExecution();
            compiledExecution.compute(RubyUtil.RUBY.newArray(testEvent), false, false);
        });

        // sanity checks
        final Collection<JrubyEventExtLibrary.RubyEvent> outputEvents = EVENT_SINKS.get(runId);
        MatcherAssert.assertThat(outputEvents.size(), CoreMatchers.is(2));
        MatcherAssert.assertThat(outputEvents.contains(testEvent), CoreMatchers.is(true));

        // regression check
        final String testMessage = "regression in pipeline compilation, doubling the filters require more than 5 " +
                "time, baseline: " + compilationBaseline + " secs, test: " + compilationTest + " secs";
        assertTrue(testMessage, compilationTest/compilationBaseline <= 5);
    }