[PATCH] D22766: Handle -mlong-calls on Hexagon

Krzysztof Parzyszek via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 23 05:33:18 PDT 2016


kparzysz marked an inline comment as done.

================
Comment at: include/clang/Driver/Options.td:1380
@@ +1379,3 @@
+def mlong_calls : Flag<["-"], "mlong-calls">, Group<m_Group>,
+  HelpText<"ARM: Generate an indirect jump to enable jumps further than 64M, Hexagon: Generate constant-extended branches.">;
+def mno_long_calls : Flag<["-"], "mno-long-calls">, Group<m_Group>,
----------------
compnerd wrote:
> It seems a bit weird to have target specific descriptions.  AFAIK, the behavior is the same on all the targets: it generates branches which have full addressability (ARC, ARM, BlackFin, Epiphany, MIPS, PPC all support this option, probably amongst other architectures).  This would easily grow unwieldily if we try to have target specific descriptions.  We support at least ARM, MIPS, PPC, and now Hexagon.  Why not make the description generic, something like:
> 
>     Generate branches with extended addressability, usually via indirect jumps.
The generic description sounds good to me.

At the same time, I tried -mlong-calls and -mno-long-calls on a trivial C procedure and for both MIPS and PPC/PPC64 I got a warning: "argument unused during compilation: '-mlong-calls'".  The generated code for both does not change with -mlong-calls or with -mno-long-calls. What kind of support are you talking about?

Here's the code I tried:

```
void bar();

void foo() {
  bar();
}
```


```
$ clang -target powerpc64 -mno-long-calls -S call.c -O2
clang-4.0: warning: argument unused during compilation: '-mno-long-calls'
```


Repository:
  rL LLVM

https://reviews.llvm.org/D22766





More information about the cfe-commits mailing list