Is the Win64 codegen issue fixed?

Hello guys,

I have a project in mind that involves using the JIT for a few targets (x86 and x86_64 processors on Mac OS, Linux and Windows). However, there is an open bug that says LLVM generates incorrect code for Win64.

Eli’s last comment on the bug, however, says that it appears to be fixed.

I don’t have a Win64 box to test it. Can someone confirm that it now works (or still doesn’t)?

Félix

Hello Felix

I have a project in mind that involves using the JIT for a few targets (x86
and x86_64 processors on Mac OS, Linux and Windows). However, there is an
open bug that says LLVM generates incorrect code for Win64.
Eli's last comment on the bug, however, says that it appears to be fixed.
I don't have a Win64 box to test it. Can someone confirm that it now works
(or still doesn't)?

Yes, this particular issue was workarounded, so stuff works fine on ToT.

Great! Are there other issues I should be aware of?

Félix

Felix,

Great! Are there other issues I should be aware of?

There might be some issues wrt tailcalls, but I'd not expect anything
else to be major broken.

Tailcall and fastcc might be broken on Win64.
for example, test/CodeGen/X86/tailcallbyval64 should not be converted
with Win64 CC.

Bug 8743 - Register allocation is invalid with Win64 tailcall jump
http://llvm.org/bugs/show_bug.cgi?id=8743

IMHO, Win64 CC should be separated and "fastcc" should be guaranteed
to convert tailjmp.

FYI, I am trying to build x64 clang/llvm toolchain with clang.
(I don't use mingw64-gcc as compiler)
It seems a few issues might be there (on llvm).
When I built *fine* clang, I could tweak Win64 tests on.

...Takumi