Driver: add -m{,no-}long-calls support
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 7 Jun 2014 19:32:38 +0000 (19:32 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 7 Jun 2014 19:32:38 +0000 (19:32 +0000)
commitaea65e9b130c059ab8aad04029324249287487f0
tree081bd1cd091421cf201315ebdebc4dde5995c73d
parentc86b54c86dcbdc69e7e2450b619ce5f1eaf052a0
Driver: add -m{,no-}long-calls support

This mirrors the GCC option for the ARM backend.  This option enables the
backend option "-enable-arm-long-calls".  The default behaviour is that this is
disabled due to the slight overhead of the generated calls.

If the target of jumps are greater than 64M range of offset-based jumps, then
the target address must be loaded into a register to make an indirect jump.  The
backend support for this has been present, but was not previously controllable
by the proper flag.

llvm-svn: 210398
clang/include/clang/Driver/Options.td
clang/lib/Driver/Tools.cpp
clang/test/Driver/arm-long-calls.c [new file with mode: 0644]