[LLVMdev] Preferring to use GCC instead of LLVM

Owen Anderson resistor at mac.com
Sun May 11 09:42:10 PDT 2008


On May 11, 2008, at 9:36 AM, Óscar Fuentes wrote:

>
> Not that I sympathize with the OP's manners but...
>
> Bill Wendling <isanbard at gmail.com> writes:
>>
>> That's only a convenience. GCC generates assembly code too and calls
>> the assembler and linker as part of it's execution. You are perfectly
>> able to call the assembler & linker yourself.
>
> This means that LLVM requires an assembler and linker. Call it GCC or
> binutils, it is irrelevant. The OP point is that LLVM is not a
> self-sufficient tool on this aspect.
>

Actually, I think Bill's right on target.  The OP was implying that  
LLVM is incomplete because it depends on GCC in the backend, which is  
incorrect.  It depends on binutils, _which GCC also depends on_.  Thus  
LLVM is certainly no less complete than GCC in that sense.

I think the point is that implementing our own linker is definitely  
beyond the purview of LLVM, and implementing our own object file  
writer/assembler is honestly pretty low on the priority queue.  GCC,  
the primary alternative, also depends on these things, so having them  
would be a competitive advantage, not a requirement for parity.

>
>>> Bill Wendling wrote:
>>>> I don't know about your computer, by mine comes with an
>>>> assembler.
>>>
>>> MS Windows does not come with an assembler, AFAIK.
>>>
>> You should really learn how to use Google. Got this as the top hit  
>> for
>> "Microsoft Assembler":
>>
>> http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64&displaylang=en
>
> This does not *comes* with MS Windows. It is a separate download,  
> which
> depends on more downloads (Visual C++ Express Edition) and is for
> non-commercial use only. Furthermore, you can't re-distribute it.
>

 From what I read, it's included with copies of Visual Studio.  I  
assume that a paid copy of Visual Studio (as opposed to the free  
Express edition) includes a version that's licensed for commercial use.

Additionally, LLVM's support for Win32 outside of MinGW/Cygwin is ...  
spotty at best.  And in those environments, the competition is, once  
again, GCC, which still depends on gas and ld.

The fundamental problem is that both executable formats and linking  
problems are EXTREMELY platform specific, so it's typically best to  
leave it up to the system tools.  Assembly/object file generation is a  
_possibility_ for us only because there is some commonality between  
platforms (i.e. ELF is used on many platforms).  But it's still low on  
the queue because there already system-provided tools that do it  
better on every platform we care about (*nix + MinGW/Cygwin).

--Owen

P.S.  I do agree that, if he has a desperate need to run LLVM outside  
of MinGW/Cygwin, JIT is his best bet.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080511/87c1ff42/attachment.bin>


More information about the llvm-dev mailing list