Hi,
I see there is an inconsistency in LLVM libc calls.
For a modulo (reminder) operation,
clang -target arm-none-linux-gnueabi generates "__modsi3".
clang -target arm-none-eabi generates "__aeabi_idivmod"
clang -target arm-linux-androideabi generates "__modsi3"
Android bionic libc doesn't provide a __modsi3, instead it provides
"__aeabi_idivmod".
I wonder why no one has seen this issue so far. Is this a known bug ?
If so, can I move head and push a custom lowering for SREM and UREM when
targeted for Android?
--Sumanth G
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20150728/ede031fb/attachment.html>
On 28 July 2015 at 17:52, Sumanth Gundapaneni <sgundapa at codeaurora.org> wrote:> Android bionic libc doesn’t provide a __modsi3, instead it provides > “__aeabi_idivmod”.Hi Sumanth, Have a look at ARMSubtarget.h, functions: bool isTargetAEABI() They control the lowering of DIV/MOD calls in ARMISelLowering.cpp. Maybe Android needs to be in? cheers, --renato
Hi Renato,
I have pushed a patch here to fix the issue.
http://reviews.llvm.org/D11661
--Sumanth G
-----Original Message-----
From: Renato Golin [mailto:renato.golin at linaro.org]
Sent: Tuesday, July 28, 2015 10:19 AM
To: Sumanth Gundapaneni
Cc: LLVM Dev
Subject: Re: [ARM]__modsi3 call in android
On 28 July 2015 at 17:52, Sumanth Gundapaneni <sgundapa at codeaurora.org>
wrote:> Android bionic libc doesn’t provide a __modsi3, instead it provides
> “__aeabi_idivmod”.
Hi Sumanth,
Have a look at ARMSubtarget.h, functions:
bool isTargetAEABI()
They control the lowering of DIV/MOD calls in ARMISelLowering.cpp.
Maybe Android needs to be in?
cheers,
--renato
Possibly Parallel Threads
- [LLVMdev] [ARM]__modsi3 call in android
- LLVMTargetMachine with optimization level passed from clang.
- LLVMTargetMachine with optimization level passed from clang.
- [LLVMdev] CMake: Gold linker detection
- LLVMTargetMachine with optimization level passed from clang.