From b15ecb1717f695cccbce3f2faece665fdb1074a1 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 15 May 2020 10:11:56 +1000 Subject: [PATCH] gallivm: skip operations if we have a cached object. If the object is loaded from the cache, a bunch of gallivm/llvm interactions can be skipped. Reviewed-by: Roland Scheidegger Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_init.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c index 06214014290..43d02083287 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c @@ -573,6 +573,10 @@ gallivm_compile_module(struct gallivm_state *gallivm) gallivm->builder = NULL; } + if (gallivm->cache && gallivm->cache->data_size) { + goto skip_cached; + } + /* Dump bitcode to a file */ if (gallivm_debug & GALLIVM_DEBUG_DUMP_BC) { char filename[256]; @@ -640,6 +644,7 @@ gallivm_compile_module(struct gallivm_state *gallivm) * implicitly created by the EngineBuilder in * lp_build_create_jit_compiler_for_module() */ + skip_cached: LLVMSetDataLayout(gallivm->module, ""); assert(!gallivm->engine); if (!init_gallivm_engine(gallivm)) { -- 2.30.2