Przeglądaj źródła

Add "--xip" option for wamrc (#2336)

Add shorthand "--xip" option for wamrc, which is equal to
"--enalbe-indirect-mode --disable-llvm-intrinsics"
Huang Qi 2 lat temu
rodzic
commit
df98d9fb4a
2 zmienionych plików z 9 dodań i 0 usunięć
  1. 4 0
      doc/xip.md
  2. 5 0
      wamr-compiler/main.c

+ 4 - 0
doc/xip.md

@@ -7,8 +7,12 @@ Some IoT devices may require to run the AOT file from flash or ROM which is read
 The XIP file is an AOT file without (or with few) relocations to patch the AOT code (or text section). Developer can use the option `--enable-indirect-mode --disable-llvm-intrinsics` for wamrc to generate the AOT file, e.g.:
 ```bash
 wamrc --enable-indirect-mode --disable-llvm-intrinsics -o <aot_file> <wasm_file>
+or
+wamrc --xip -o <aot_file> <wasm_file>
 ```
 
+Note: --xip is a short option for --enable-indirect-mode --disable-llvm-intrinsics
+
 ## Known issues
 
 There may be some relocations to the ".rodata" like sections which require to patch the AOT code. More work will be done to resolve it in the future.

+ 5 - 0
wamr-compiler/main.c

@@ -65,6 +65,7 @@ print_help()
     printf("  --enable-dump-call-stack  Enable stack trace feature\n");
     printf("  --enable-perf-profiling   Enable function performance profiling\n");
     printf("  --enable-memory-profiling Enable memory usage profiling\n");
+    printf("  --xip                     A shorthand of --enalbe-indirect-mode --disable-llvm-intrinsics\n");
     printf("  --enable-indirect-mode    Enalbe call function through symbol table but not direct call\n");
     printf("  --disable-llvm-intrinsics Disable the LLVM built-in intrinsics\n");
     printf("  --disable-llvm-lto        Disable the LLVM link time optimization\n");
@@ -325,6 +326,10 @@ main(int argc, char *argv[])
         else if (!strcmp(argv[0], "--enable-memory-profiling")) {
             option.enable_stack_estimation = true;
         }
+        else if (!strcmp(argv[0], "--xip")) {
+            option.is_indirect_mode = true;
+            option.disable_llvm_intrinsics = true;
+        }
         else if (!strcmp(argv[0], "--enable-indirect-mode")) {
             option.is_indirect_mode = true;
         }