[LLVMdev] Can't bootstrap llvm-gcc-4.0 for x84_64
Evan Cheng
evan.cheng at apple.com
Mon Oct 8 23:57:27 PDT 2007
On Oct 8, 2007, at 4:26 PM, Chris Lattner wrote:
> On Mon, 8 Oct 2007, Evan Cheng wrote:
>>> [x86_64-mod-dbg]: /tmp/ccxekXCc.s: Assembler messages:
>>> [x86_64-mod-dbg]: /tmp/ccxekXCc.s:36: Error: `(%esi,%edi)' is not a
>>> valid 64
>>> bit base/index expression
>>
>> Looks like llvm is generating invalid x86-64 assembly. Can you add
>> a -
>> emit-llvm to the xgcc line and generate a reproducible test case?
>> Please file a bugzilla report.
>
> Evan, are you "3 addrifying" 32-bit adds into a 32-bit LEA on x86-64?
> Could this be the problem? (iirc, it wants you to use eax = LEA
> rsi, rdi)
I am turning 32-bit add into 32-bit LEA on x86-64 but that's
perfectly legal. Both
leal (%esi,%edi), %eax
leal (%rsi,%rdi), %eax
are legal assembly. It's just the former requires a 67H prefix due to
the 32-bit address size.
This does point to a performance problem in the 3 address conversion
code (which I will fix), but it should not cause the assembler to
complain.
Evan
>
> -Chris
>
>>> I also see warnings like this:
>>>
>>> [x86_64-mod-dbg]: ./xgcc -B./
>>> -B/install.modified.debug/x86_64-unknown-linux-gnu/x86_64-unknown-
>>> linux-gnu/bin/
>>> -isystem /install.modified.debug/x86_64-unknown-linux-gnu/x86_64-
>>> unknown-linux-gnu/include
>>> -isystem /install.modified.debug/x86_64-unknown-linux-gnu/x86_64-
>>> unknown-linux-gnu/sys-include
>>> -L/tmp/ptmp/dag/build.llvm-gcc-4.0.modified.debug/x86_64-unknown-
>>> linux-gnu/gcc/../ld
>>> -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes
>>> -Wmissing-prototypes -Wold-style-definition -isystem ./include -
>>> fPIC -g
>>> -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I.
>>> -I/llvm-project.modified/llvm-gcc-4.0/trunk/gcc
>>> -I/llvm-project.modified/llvm-gcc-4.0/trunk/gcc/.
>>> -I/llvm-project.modified/llvm-gcc-4.0/trunk/gcc/../include
>>> -I/llvm-project.modified/llvm-gcc-4.0/trunk/gcc/../libcpp/include
>>> -I/llvm-project.modified/llvm/trunk/include
>>> -I/ptmp/dag/build.llvm.modified.debug/x86_64-unknown-linux-gnu/
>>> include
>>> -DL_absvdi2 -c /llvm-project.modified/llvm-gcc-4.0/trunk/gcc/
>>> libgcc2.c -o
>>> libgcc/./_absvdi2.o
>>> [x86_64-mod-dbg]: WARNING: 128-bit integers not supported!
>>>
>>> This is from the latest trunk. Is anyone else seeing this problem?
>>>
>>> -Dave
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
> -Chris
>
> --
> http://nondot.org/sabre/
> http://llvm.org/
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list