| # REQUIRES: x86 |
| |
| ## Test that DTLTO options are passed correctly to the distributor and |
| ## remote compiler. |
| |
| RUN: rm -rf %t && split-file %s %t && cd %t |
| |
| RUN: opt -thinlto-bc foo.ll -o foo.o |
| |
| ## Note: validate.py does not perform any compilation. Instead, it validates the |
| ## received JSON, pretty-prints the JSON and the supplied arguments, and then |
| ## exits with an error. This allows FileCheck directives to verify the |
| ## distributor inputs. |
| RUN: not ld.lld foo.o \ |
| RUN: -o my.elf \ |
| RUN: --thinlto-distributor=%python \ |
| RUN: --thinlto-distributor-arg=%llvm_src_root/utils/dtlto/validate.py \ |
| RUN: --thinlto-distributor-arg=darg1=10 \ |
| RUN: --thinlto-distributor-arg=darg2=20 \ |
| RUN: --thinlto-remote-compiler=my_clang.exe \ |
| RUN: --thinlto-remote-compiler-arg=carg1=20 \ |
| RUN: --thinlto-remote-compiler-arg=carg2=30 2>&1 | FileCheck %s |
| |
| CHECK: distributor_args=['darg1=10', 'darg2=20'] |
| |
| CHECK: "linker_output": "my.elf" |
| |
| CHECK: "my_clang.exe" |
| CHECK: "carg1=20" |
| CHECK: "carg2=30" |
| |
| CHECK: error: DTLTO backend compilation: cannot open native object file: |
| |
| #--- foo.ll |
| target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" |
| target triple = "x86_64-unknown-linux-gnu" |
| |
| define void @foo() { |
| ret void |
| } |