[PATCH] D27450: [ARM] Implement execute-only support in CodeGen

Prakhar Bahuguna via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 13 04:02:18 PST 2016

prakhar marked 2 inline comments as done.
prakhar added inline comments.

Comment at: lib/Driver/Tools.cpp:1145
+    if (A->getOption().matches(options::OPT_mexecute_only)) {
+        if (getARMSubArchVersionNumber(Triple) < 7)
+            D.Diag(diag::err_target_unsupported_execute_only) << Triple.getArchName();
rengolin wrote:
> In theory, ARMv6T2+ supports it. I just want to make sure we're blocking it for a reason.
Yes, there's no real reason to arbitrarily block ARMv6T2 here, so I'll explicitly allow it here.

Comment at: test/Driver/arm-execute-only.c:63
+// CHECK-EXECUTE-ONLY: "-target-feature" "+execute-only"
+// CHECK-NO-EXECUTE-ONLY-NOT: "-target-feature" "+long-calls"
+// CHECK-EXECUTE-ONLY-NOT-SUPPORTED: error: execute only is not supported for the thumbv6m sub-architecture
rengolin wrote:
> Why not long-calls? Where is this being disabled / guaranteed?
Long calls generates constant pool entries in several cases, and the work required to make long calls play nicely with execute-only has not yet been done. I'll add in a diagnostic to prevent the two being used together for now.


More information about the llvm-commits mailing list