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,
so far.

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/ and see what you can see.