This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Builtin expansion versus headers optimization: Reductions
- From: Mikhail Maltsev <maltsevm at gmail dot com>
- To: OndÅej BÃlka <neleai at seznam dot cz>, Andi Kleen <andi at firstfloor dot org>
- Cc: gcc at gcc dot gnu dot org, libc-alpha at sourceware dot org
- Date: Fri, 05 Jun 2015 12:55:04 +0400
- Subject: Re: Builtin expansion versus headers optimization: Reductions
- Authentication-results: sourceware.org; auth=none
- References: <20150604105929 dot GA19141 at domone> <87fv67nonj dot fsf at tassilo dot jf dot intel dot com> <20150605090203 dot GA16032 at domone>
05.06.2015 13:02, OndÅej BÃlka writes:
> Also as I mentioned bugs before gcc now doesn't handle alignment well so
> it doesn't optimize following to zero for aligned code.
>
> align = ((uintptr_t) x) % 16;
>
That is because GCC is conservative and supports some non-ABI-compliant
memory allocators which only guarantee 8-byte alignment, but
char *bar()
{
char *data = __builtin_malloc(64);
return data + ((unsigned long)data) % 8;
}
does get optimized to
bar:
.LFB1:
.cfi_startproc
movl $64, %edi
jmp malloc
.cfi_endproc
--
Regards,
Mikhail Maltsev