It sounds as if you are drawing a distinction I'm not. What do you call
the difference between x86_64 and AMD64?
There's no difference AFAIK - AMD64 and x86_64 are really just two names
for the same thing. To answer your questions:
- As far as LLVM is concerned, there's no difference between x86_64 and
- You can already compile and run LLVM as a 64-bit executable on x86_64
machines but you will only be able to create 32-bit x86 code (or PPC,
or IA64, or whatever..)
- LLVM has a C backend, and you could in principle use this to use LLVM
in conjunction with GCC to create 64-bit code. However, I don't know if
this works - I suspect it may not, since I don't think it's covered by
anything in the test suite.
- There is no current work I'm aware of to extend the x86 backend to
supporting x86_64 yet, however:
* People working on LLVM (especially the x86 backend) have had x86_64
support in the back of their minds for some time now, and so have
been working towards a framework where x86_64 is easy to describe
(for some value of easy)
* It could be as little as one month's work to get x86_64 support
going but unfortunately, this is one month nobody has had to spare,
An x86_64 backend has been "a while away" for some time now, but if you
can wait a while longer, you should find one some day. If you just can't
wait, however, I'm sure patches would be most welcome. Have a look in
lib/Target/X86/X86InstrInfo.td and see what you can see.