[llvm-dev] Can LLVM emit machine code faster with no optimization passes?

Renato Golin via llvm-dev
Wed, 12 Oct 2016 18:44:40 -0000

On 12 October 2016 at 19:32, Matthias Braun via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I don't think this can be discussed in this generality. Without knowing
how
> llvm is invoked, what sort of optimisations msvc was running. So this would
> be best investigated with a concrete .ll file (llvm is a nice
infrastructure
> in that it makes it easy to share .bc/.ll files to capture intermediate
> states of the compiler) which you can try to push through clang, opt, or
llc
> to see whether it matches the speed of msvc. But just as food for though:
> What if msvc did some minimal optimisations, found out that half the
> sourcecode is unreachable and removes it, while llvm with no optimisations
> just compiles everything?

Right, that's a possibility. It also depends if the (code) workload is
prone to heavy DCE, which could be the case here, but it is not
necessarily true for all cases.

Still, invoking a separate project on Windows, which has costly forks
and all the parsing and building internal representations should
pretty much even the odds.

What I took from this video is that LLVM JIT is still too slow for
some usages || we're not good at communicating how to make the JIT
faster.

It also goes back to the discussion that O1 destroys too much of the
debug information to be useful but O0 is too dumb to have a smart
debugging experience.

Maybe that's why people use LLVM's JIT at O0?

But I'm certainly not a JIT expert, so these are just vague ramblings
not backed by any facts... :)

cheers,
--renato