Re: Clang now builds world and kernel, on i386 and amd64

From: Olivier Smedts <olivier_at_gid0.org>
Date: Mon, 27 Sep 2010 16:56:49 +0200
2010/9/27 Olivier Smedts <olivier_at_gid0.org>:
> 2010/9/27 Dimitry Andric <dim_at_freebsd.org>:
>> On 2010-09-27 09:32, Olivier Smedts wrote:
>>>
>>> 2010/9/23 Bartosz Stec<admin_at_kkip.pl>:
>>
>> ...
>>>>
>>>> Assertion failed: (false&&  "Ran out of registers during register
>>>> allocation!"), function assignRegOrStackSlotAtInterval, file
>>>>
>>>> /usr/src/lib/clang/libllvmcodegen/../../../contrib/llvm/lib/CodeGen/RegAllocLinearScan.cpp,
>>>> line 1196.
>>
>> ...
>>>
>>> Same error here with yesterday's -CURRENT, but not at the same time
>>> (the running system was compiled using gcc) :
>>
>> As with Bartosz, could you please remove the CPU-specific flags from
>> make.conf, and try again?
>
> Ok, I'll post the results later (it was the same with -DNDEBUG).

Was not OK with :
CPUTYPE=athlon-xp
CFLAGS=-O2 -pipe -march=native -fomit-frame-pointer
NO_CPU_CFLAGS=yes
COPTFLAGS=-O2 -pipe -march=native -fomit-frame-pointer
NO_CPU_COPTFLAGS=yes

Is OK with :
CPUTYPE=athlon-xp
CFLAGS=-O2 -pipe -fomit-frame-pointer
NO_CPU_CFLAGS=yes
COPTFLAGS=-O2 -pipe -fomit-frame-pointer
NO_CPU_COPTFLAGS=yes

I'll try with other -march (i686 and athlon) and post results.

>> I guess there is something borked in LLVM's Athlon optimization, so it
>> is probably better to not try to tickly those bugs for now.
>>
>>
>>
>>> # grep -vE '^#|^$' /etc/make.conf
>>> KERNCONF=XPC
>>> CPUTYPE=athlon-xp
>>> CFLAGS=-O2 -pipe -march=native -fomit-frame-pointer
>>
>> Using CPUTYPE= and -march= seems a bit redundant. :)
>
> Not with NO_CPU_CFLAGS=yes and NO_CPU_COPTFLAGS=yes (if you want to
> use -march=native, that's the best thing to do).
>
>>
>>> clang -c -O2 -pipe -march=native -fomit-frame-pointer -DIN_GCC
>>> -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -DHAVE_GTHR_DEFAULT
>>> -I/usr/src/gnu/lib/libgcc/../../../contrib/gcclibs/include
>>> -I/usr/src/gnu/lib/libgcc/../../../contrib/gcc/config
>>> -I/usr/src/gnu/lib/libgcc/../../../contrib/gcc -I.
>>> -I/usr/src/gnu/lib/libgcc/../../usr.bin/cc/cc_tools -std=gnu99
>>> -fvisibility=hidden -DHIDE_EXPORTS -fPIC -fexceptions -D__GLIBC__=3
>>> -DElfW=__ElfN -o unwind-dw2.o
>>> /usr/src/gnu/lib/libgcc/../../../contrib/gcc/unwind-dw2.c
>>> Assertion failed: (!spillIs.empty()&&  "No spill intervals?"),
>>> function assignRegOrStackSlotAtInterval, file
>>>
>>> /usr/src/lib/clang/libllvmcodegen/../../../contrib/llvm/lib/CodeGen/RegAllocLinearScan.cpp,
>>> line 1287.
>>
>> I haven't yet seen this one before.  If I can reproduce it, I will
>> report it upstream, and see if they can come up with a fix.

Anything I can provide to help with that ?

>
> Thanks !
>
> --
> Olivier Smedts                                                 _
>                                         ASCII ribbon campaign ( )
> e-mail: olivier_at_gid0.org        - against HTML email & vCards  X
> www: http://www.gid0.org    - against proprietary attachments / \
>
>   "Il y a seulement 10 sortes de gens dans le monde :
>   ceux qui comprennent le binaire,
>   et ceux qui ne le comprennent pas."
>



-- 
Olivier Smedts                                                 _
                                        ASCII ribbon campaign ( )
e-mail: olivier_at_gid0.org        - against HTML email & vCards  X
www: http://www.gid0.org    - against proprietary attachments / \

  "Il y a seulement 10 sortes de gens dans le monde :
  ceux qui comprennent le binaire,
  et ceux qui ne le comprennent pas."
Received on Mon Sep 27 2010 - 12:56:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:07 UTC