Hi,
Thanks for looking at this!
On 2018-07-13 10:20:42 +0200, Pierre Ducroquet wrote:
> 2) improve the LLVM IR code
>
> The code generator in llvmjit-deform.c currently rely on the LLVM optimizer to
> do the right thing. For instance, it can generate a lot of empty blocks with
> only a jump. If we don't want to enable the LLVM optimizer for every code, we
> have to get rid of this kind of pattern. The attached patch does that. When
> the optimizer is not used, this gets a few cycles boost, nothing impressive.
> I have tried to go closer to the optimized bitcode, but it requires building
> phi nodes manually instead of using alloca, and this isn't enough to bring us
> to the performance level of -O1.
Building phi blocks manually is too painful imo. But there's plenty
blocks we could easily skip entirely, even without creating phi nodes.
> From 4da278ee49b91d34120747c6763c248ad52da7b7 Mon Sep 17 00:00:00 2001
> From: Pierre Ducroquet <p.psql@pinaraf.info>
> Date: Mon, 2 Jul 2018 13:44:10 +0200
> Subject: [PATCH] Introduce opt1 in LLVM/JIT, and force it with deforming
I think I'd rather go for more explicit pipelines than defaulting to OX
pipelines. This is too late for v11, and I suspect quite strongly that
we'll end up not relying on any of the default pipelines going forward -
they're just not targeted at our usecase. I just didn't go there for
v11, because I was running out of steam / time.
Greetings,
Andres Freund