[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Tinycc-devel] Revert "Optimize vswap()"
From: |
Roy Tam |
Subject: |
Re: [Tinycc-devel] Revert "Optimize vswap()" |
Date: |
Tue, 15 Jan 2013 13:51:19 +0800 |
2013/1/15 Kirill Smelkov <address@hidden>:
> On Sun, Jan 06, 2013 at 05:03:28PM +0100, grischka wrote:
> [...]
>
>> Compilation on Windows with MSC fails in tccgen.c:vswap():
>> ../tccgen.c(476) : error C2143: syntax error : missing ';' before 'type'
>> [more ...]
>>
>> After moving declarations before statements, it fails like this:
>> ../tccgen.c(490) : warning C4308: negative integral constant converted to
>> unsigned type
>> ../tccgen.c(490) : warning C4307: '*' : integral constant overflow
>> ../tccgen.c(490) : warning C4307: '+' : integral constant overflow
>> ../tccgen.c:481: error: incompatible types for redefinition of
>> '__static_assert_t'
>> [more ...]
>
> grischka! Could you please Cc relevant people when talking about
> reverting their patches? I was unaware of this issue until recently.
> Some of us read lists in batches through gmane...
>
>> I'd suggest to move that optimization into its own function
>> void memswap(void *p1, void *p2, size_t n);
>
> For it to work effectively that memswap should be static inline and
> contains test for n to be builtin constant and be more "ugly" in your
> speak, and also that __builtin_constant() tests might not work out of
> the box in tcc...
>
>> or otherwise to revert it.
>
> Maybe let's just do it step by step and fix _STATIC_ASSERT for win32?
> Especially there is already one in
>
> win32/include/malloc.h:#define _STATIC_ASSERT(expr) extern void
> __static_assert_t(int [(expr)?1:-1])
>
> #ifndef _MSVC
> # define _STATIC_ASSERT // from ccan
> #else
> # define _STATIC_ASSERT // for msvc
> #endif
>
> ?
Maybe we can just fully port _STATIC_ASSERT changes from mingw-w64
changeset 4293?
http://sourceforge.net/apps/trac/mingw-w64/changeset/4293
>
>
> Optimizing vswap() was an easy win and given tinycc goal is to be fast
> compiler I suggest not to revert it.
>
> On the other hand I have no microsoft compilers installation nor any
> windows on my machines, and thus can't test how the code works/breaks there.
> That _STATIC_ASSERT was taken from CCAN[1] which is valuable and quality
> library for C.
>
> No offences, but ruling out speedups on msvc non-standartness is not
> wise imho.
>
> I'm open to fixing it, just please cc me, and please provide advices
> with msvc.
>
>
> Thanks,
> Kirill
>
> [1] http://ccodearchive.net/
>
> _______________________________________________
> Tinycc-devel mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
- Re: [Tinycc-devel] Call for testing, (continued)
- Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/13
- Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/14
- Re: [Tinycc-devel] Call for testing, Akim Demaille, 2013/01/14
- Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/14
- Re: [Tinycc-devel] Call for testing, Akim Demaille, 2013/01/14
- Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/14
- Re: [Tinycc-devel] Call for testing, grischka, 2013/01/14
- Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/14
- Re: [Tinycc-devel] Call for testing, grischka, 2013/01/14
- Re: [Tinycc-devel] Revert "Optimize vswap()", Kirill Smelkov, 2013/01/15
- Re: [Tinycc-devel] Revert "Optimize vswap()",
Roy Tam <=
- Re: [Tinycc-devel] Revert "Optimize vswap()", grischka, 2013/01/15
- Re: [Tinycc-devel] Revert "Optimize vswap()", grischka, 2013/01/15
Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/16
- Re: [Tinycc-devel] Call for testing, Michael Matz, 2013/01/16
- Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/17
- Re: [Tinycc-devel] Call for testing, Domingo Alvarez Duarte, 2013/01/17
- Re: [Tinycc-devel] Call for testing, grischka, 2013/01/18
- Re: [Tinycc-devel] Call for testing, Domingo Alvarez Duarte, 2013/01/18
Re: [Tinycc-devel] Call for testing, Thomas Preud'homme, 2013/01/24