[LLVMdev] VEX prefixes for JIT in llvm 3.5
Matt Godbolt
matt at godbolt.org
Wed Sep 17 11:44:36 PDT 2014
Hi guys,
I just upgraded our JIT system to use llvm 3.5 and noticed one big
change in our generated code: we don't see any non-destructive VEX
prefix instructions being emitted any more (vmulsd xmm0, xmm1, blah)
etc.
It's long been on my list of things to investigate anyway as I noticed
llvm didn't emit VZEROUPPER calls either, so I supposed it might not
be a bad thing to disable vex.
That being said, try as I might I can't force avx on
(builder.setMCPU("core-avx-i") and/or
builder.setMAttrs(vector<string>{"+avx"});). We're still using the old
JIT but I just spiked out a move to MCJIT and I still don't see the
VEX instructions.
Was there a deliberate change on the llvm-side to discourage VEX
instructions unless they make a big enough difference (and/or is
VZEROUPPER now emitted?).
If not, how might I go about digging further into this?
Many thanks in advance, Matt
--
Matt
More information about the llvm-dev
mailing list