Enable long calls on WoA. While this may not be the most efficient approach,
the MSVC compiler also generates long calls for most scenarios. Ideally, all
local symbols would be relaxed during CG to normal calls. However, in the
scenario of external symbols, you do not know the required range for the jump,
and thus require long calls.
Details
Details
- Reviewers
grosbach t.p.northover
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Perhaps a new predicate function like ARMTargetLowering::useLongCalls() that contains the compound check rather than putting it inline here?
Comment Actions
Introduce usesLongCalls and use that in place of Windows specifically in the ISelLowering.
Comment Actions
As Jim mentioned at the beginning, that there is some overhead to this, and enabling this unconditionally seems a bit heavy handed. By improving the driver to be a bit more similar to gcc (adding support for -mlong-calls/-mno-long-calls), we can enable this as and when it is needed as the linker should indicate that the jump target is out of range.