[PATCH] D50729: [WebAssembly] Don't compress LEBs by default

Phabricator via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 17 12:43:36 PDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL340073: [WebAssembly] Don't compress LEBs by default (authored by sbc, committed by ).

Repository:
  rL LLVM

https://reviews.llvm.org/D50729

Files:
  lld/trunk/test/wasm/compress-relocs.ll
  lld/trunk/wasm/Driver.cpp
  lld/trunk/wasm/Options.td


Index: lld/trunk/test/wasm/compress-relocs.ll
===================================================================
--- lld/trunk/test/wasm/compress-relocs.ll
+++ lld/trunk/test/wasm/compress-relocs.ll
@@ -2,8 +2,10 @@
 ; RUN: llc -filetype=obj %s -o %t.o
 ; RUN: wasm-ld -o %t.wasm %t2.o %t.o
 ; RUN: obj2yaml %t.wasm | FileCheck %s
-
-; RUN: wasm-ld -O2 -o %t-compressed.wasm %t2.o %t.o
+; RUN: wasm-ld -O2 -o %t-opt.wasm %t2.o %t.o
+; RUN: obj2yaml %t-opt.wasm | FileCheck %s
+; RUN: not wasm-ld --compress-relocations -o %t-compressed.wasm %t2.o %t.o 2>&1 | FileCheck %s -check-prefix=ERROR
+; RUN: wasm-ld --strip-debug --compress-relocations -o %t-compressed.wasm %t2.o %t.o
 ; RUN: obj2yaml %t-compressed.wasm | FileCheck %s -check-prefix=COMPRESS
 
 target triple = "wasm32-unknown-unknown-wasm"
@@ -18,5 +20,7 @@
   ret void
 }
 
+; ERROR: wasm-ld: error: --compress-relocations is incompatible with output debug information. Please pass --strip-debug or --strip-all
+
 ; CHECK:    Body:            4100280284888080002100410028028088808000118080808000001A2000118180808000001A0B
 ; COMPRESS: Body:            41002802840821004100280280081100001A20001101001A0B
Index: lld/trunk/wasm/Driver.cpp
===================================================================
--- lld/trunk/wasm/Driver.cpp
+++ lld/trunk/wasm/Driver.cpp
@@ -395,6 +395,7 @@
   Config->SearchPaths = args::getStrings(Args, OPT_L);
   Config->StripAll = Args.hasArg(OPT_strip_all);
   Config->StripDebug = Args.hasArg(OPT_strip_debug);
+  Config->CompressRelocTargets = Args.hasArg(OPT_compress_relocations);
   Config->StackFirst = Args.hasArg(OPT_stack_first);
   Config->ThinLTOCacheDir = Args.getLastArgValue(OPT_thinlto_cache_dir);
   Config->ThinLTOCachePolicy = CHECK(
@@ -410,7 +411,9 @@
   Config->ZStackSize =
       args::getZOptionValue(Args, OPT_z, "stack-size", WasmPageSize);
 
-  Config->CompressRelocTargets = Config->Optimize > 0 && !Config->Relocatable;
+  if (!Config->StripDebug && !Config->StripAll && Config->CompressRelocTargets)
+    error("--compress-relocations is incompatible with output debug"
+          " information. Please pass --strip-debug or --strip-all");
 
   if (Config->LTOO > 3)
     error("invalid optimization level for LTO: " + Twine(Config->LTOO));
@@ -438,6 +441,8 @@
       error("entry point specified for relocatable output file");
     if (Config->GcSections)
       error("-r and --gc-sections may not be used together");
+    if (Config->CompressRelocTargets)
+      error("-r -and --compress-relocations may not be used together");
     if (Args.hasArg(OPT_undefined))
       error("-r -and --undefined may not be used together");
   }
Index: lld/trunk/wasm/Options.td
===================================================================
--- lld/trunk/wasm/Options.td
+++ lld/trunk/wasm/Options.td
@@ -23,6 +23,9 @@
 def color_diagnostics_eq: J<"color-diagnostics=">,
   HelpText<"Use colors in diagnostics; one of 'always', 'never', 'auto'">;
 
+def compress_relocations: F<"compress-relocations">,
+  HelpText<"Compress the relocation targets in the code section.">;
+
 defm demangle: B<"demangle",
     "Demangle symbol names",
     "Do not demangle symbol names">;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50729.161300.patch
Type: text/x-patch
Size: 3193 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180817/286324e0/attachment.bin>


More information about the llvm-commits mailing list