Displaying 2 results from an estimated 2 matches for "expanddivremlibcall".
2013 Jun 21
3
[LLVMdev] ExpandDivRemLibCall vs. AEABI
...ters.
I've changed ARMISelLowering::ARMTargetLowering::ARMTargetLowering() to
associate __aeabi_idivmod variants to RTLIB::{U,S}DIVREM_* library calls,
but now I need to teach the expansion that on AEABI case, the remainder is
not on the stack, but on registers.
However, SelectionDAGLegalize::ExpandDivRemLibCall() assumes the remainder
is *always* on the stack, as is the case for GNU:
// Remainder is loaded back from the stack frame.
SDValue Rem = DAG.getLoad(RetVT, dl, CallInfo.second, FIPtr,
MachinePointerInfo(), false, false, false, 0);
Since I don't want to add a t...
2013 Jun 21
0
[LLVMdev] ExpandDivRemLibCall vs. AEABI
Hi Renato,
> * Have some call-back mechanism, possibly upon a flag
> (HasSpecialDivRemLowering), and update the remainder result
If you setOperationAction on SDIVREM and UDIVREM to Custom you can
expand the rtlib call appropriately yourself. There's precedent for
sincos on Darwin systems (both ARM and x86) and in AArch64 for
basically every operation on fp128.
Cheers.
Tim.