Index: tools/pnacl-llc/pnacl-llc.cpp |
diff --git a/tools/pnacl-llc/pnacl-llc.cpp b/tools/pnacl-llc/pnacl-llc.cpp |
index 1138fe2ab5cdb71d84bcfd0eefebcf63a466612f..17fbb86a9c3e0dd03cda8106cbe02c9a46c4319e 100644 |
--- a/tools/pnacl-llc/pnacl-llc.cpp |
+++ b/tools/pnacl-llc/pnacl-llc.cpp |
@@ -752,6 +752,13 @@ static int compileModule(StringRef ProgramName) { |
TargetOptions Options = InitTargetOptionsFromCodeGenFlags(); |
Options.DisableIntegratedAS = NoIntegratedAssembler; |
Options.MCOptions.AsmVerbose = true; |
+#if defined(__native_client__) |
+ // This enables LLVM MC to write instruction padding directly into fragments |
+ // reducing memory usage of the translator. However, this could result in |
+ // suboptimal machine code since we cannot use short jumps where possible |
+ // which is why we enable this for sandboxed translator case. |
+ Options.MCOptions.MCRelaxAll = true; |
+#endif |
if (GenerateSoftFloatCalls) |
FloatABIForCalls = FloatABI::Soft; |