Re: [PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
echristo added a comment. OK, that works for me. :) Repository: rL LLVM http://reviews.llvm.org/D21542 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: [PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
pcc added a comment. This is testing a clang feature that reads IR and runs the ThinLTO backend. This feature is part of ThinLTO's distributed build support (search for "Distributed Build Support" in http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html). In a future change I want to replace the clang-side code here with a client of a new LTO interface that takes IR and produces object files (see http://reviews.llvm.org/D21545). So I think testing the object file is the right approach here. Repository: rL LLVM http://reviews.llvm.org/D21542 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: [PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
echristo added a subscriber: echristo. echristo added a comment. Why is this in clang rather than in llvm? Repository: rL LLVM http://reviews.llvm.org/D21542 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: [PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
This revision was automatically updated to reflect the committed changes. Closed by commit rL273347: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test. (authored by pcc). Changed prior to commit: http://reviews.llvm.org/D21542?vs=61328=61479#toc Repository: rL LLVM http://reviews.llvm.org/D21542 Files: cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll cfe/trunk/test/CodeGen/thinlto_backend.c cfe/trunk/test/CodeGen/thinlto_backend.ll Index: cfe/trunk/test/CodeGen/thinlto_backend.ll === --- cfe/trunk/test/CodeGen/thinlto_backend.ll +++ cfe/trunk/test/CodeGen/thinlto_backend.ll @@ -0,0 +1,27 @@ +; RUN: opt -module-summary -o %t1.o %s +; RUN: opt -module-summary -o %t2.o %S/Inputs/thinlto_backend.ll +; RUN: llvm-lto -thinlto -o %t %t1.o %t2.o + +; Ensure clang -cc1 give expected error for incorrect input type +; RUN: not %clang_cc1 -O2 -o %t1.o -x c %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING +; CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' + +; Ensure we get expected error for missing index file +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=bad.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR +; CHECK-ERROR: Error loading index file 'bad.thinlto.bc' + +; Ensure f2 was imported +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=%t.thinlto.bc +; RUN: llvm-nm %t3.o | FileCheck --check-prefix=CHECK-OBJ %s +; CHECK-OBJ: T f1 +; CHECK-OBJ-NOT: U f2 + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +declare void @f2() + +define void @f1() { + call void @f2() + ret void +} Index: cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll === --- cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll +++ cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll @@ -0,0 +1,6 @@ +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define void @f2() { + ret void +} Index: cfe/trunk/test/CodeGen/thinlto_backend.c === --- cfe/trunk/test/CodeGen/thinlto_backend.c +++ cfe/trunk/test/CodeGen/thinlto_backend.c @@ -1,14 +0,0 @@ -// RUN: %clang -O2 %s -flto=thin -c -o %t.o -// RUN: llvm-lto -thinlto -o %t %t.o - -// Ensure clang -cc1 give expected error for incorrect input type -// RUN: not %clang_cc1 -O2 -o %t1.o %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING -// CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' - -// Ensure we get expected error for missing index file -// RUN: %clang -O2 -o %t1.o -x ir %t.o -c -fthinlto-index=bad.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR -// CHECK-ERROR: Error loading index file 'bad.thinlto.bc' - -// Ensure Function Importing pass added -// RUN: %clang -O2 -o %t1.o -x ir %t.o -c -fthinlto-index=%t.thinlto.bc -mllvm -debug-pass=Structure 2>&1 | FileCheck %s -check-prefix=CHECK-PASS -// CHECK-PASS: Function Importing Index: cfe/trunk/test/CodeGen/thinlto_backend.ll === --- cfe/trunk/test/CodeGen/thinlto_backend.ll +++ cfe/trunk/test/CodeGen/thinlto_backend.ll @@ -0,0 +1,27 @@ +; RUN: opt -module-summary -o %t1.o %s +; RUN: opt -module-summary -o %t2.o %S/Inputs/thinlto_backend.ll +; RUN: llvm-lto -thinlto -o %t %t1.o %t2.o + +; Ensure clang -cc1 give expected error for incorrect input type +; RUN: not %clang_cc1 -O2 -o %t1.o -x c %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING +; CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' + +; Ensure we get expected error for missing index file +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=bad.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR +; CHECK-ERROR: Error loading index file 'bad.thinlto.bc' + +; Ensure f2 was imported +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=%t.thinlto.bc +; RUN: llvm-nm %t3.o | FileCheck --check-prefix=CHECK-OBJ %s +; CHECK-OBJ: T f1 +; CHECK-OBJ-NOT: U f2 + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +declare void @f2() + +define void @f1() { + call void @f2() + ret void +} Index: cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll === --- cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll +++ cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll @@ -0,0 +1,6 @@ +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define void @f2() { + ret void +} Index: cfe/trunk/test/CodeGen/thinlto_backend.c
Re: [PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
pcc added a comment. Should be fine. This is testing an unusual feature of clang that takes IR as input, so IR is the appropriate input type here. http://reviews.llvm.org/D21542 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: [PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
tejohnson accepted this revision. tejohnson added a comment. This revision is now accepted and ready to land. LGTM but with one question: Any issue with IR tests in clang tests? I noticed that there are very few (although there is already one existing .ll in test/CodeGen). http://reviews.llvm.org/D21542 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D21542: CodeGen: Replace test/CodeGen/thinlto_backend.c with a functional test.
pcc created this revision. pcc added a reviewer: tejohnson. pcc added a subscriber: cfe-commits. Herald added a subscriber: mehdi_amini. This new test tests that functions are capable of being imported, rather than that the import pass is run. This new test is compatible with the approach being developed in D20268 which runs the importer on its own rather than in a pass. http://reviews.llvm.org/D21542 Files: test/CodeGen/Inputs/thinlto_backend.ll test/CodeGen/thinlto_backend.c test/CodeGen/thinlto_backend.ll Index: test/CodeGen/thinlto_backend.ll === --- /dev/null +++ test/CodeGen/thinlto_backend.ll @@ -0,0 +1,27 @@ +; RUN: opt -module-summary -o %t1.o %s +; RUN: opt -module-summary -o %t2.o %S/Inputs/thinlto_backend.ll +; RUN: llvm-lto -thinlto -o %t %t1.o %t2.o + +; Ensure clang -cc1 give expected error for incorrect input type +; RUN: not %clang_cc1 -O2 -o %t1.o -x c %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING +; CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' + +; Ensure we get expected error for missing index file +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=bad.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR +; CHECK-ERROR: Error loading index file 'bad.thinlto.bc' + +; Ensure f2 was imported +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=%t.thinlto.bc +; RUN: llvm-nm %t3.o | FileCheck --check-prefix=CHECK-OBJ %s +; CHECK-OBJ: T f1 +; CHECK-OBJ-NOT: U f2 + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +declare void @f2() + +define void @f1() { + call void @f2() + ret void +} Index: test/CodeGen/thinlto_backend.c === --- test/CodeGen/thinlto_backend.c +++ /dev/null @@ -1,14 +0,0 @@ -// RUN: %clang -O2 %s -flto=thin -c -o %t.o -// RUN: llvm-lto -thinlto -o %t %t.o - -// Ensure clang -cc1 give expected error for incorrect input type -// RUN: not %clang_cc1 -O2 -o %t1.o %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING -// CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' - -// Ensure we get expected error for missing index file -// RUN: %clang -O2 -o %t1.o -x ir %t.o -c -fthinlto-index=bad.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR -// CHECK-ERROR: Error loading index file 'bad.thinlto.bc' - -// Ensure Function Importing pass added -// RUN: %clang -O2 -o %t1.o -x ir %t.o -c -fthinlto-index=%t.thinlto.bc -mllvm -debug-pass=Structure 2>&1 | FileCheck %s -check-prefix=CHECK-PASS -// CHECK-PASS: Function Importing Index: test/CodeGen/Inputs/thinlto_backend.ll === --- /dev/null +++ test/CodeGen/Inputs/thinlto_backend.ll @@ -0,0 +1,6 @@ +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define void @f2() { + ret void +} Index: test/CodeGen/thinlto_backend.ll === --- /dev/null +++ test/CodeGen/thinlto_backend.ll @@ -0,0 +1,27 @@ +; RUN: opt -module-summary -o %t1.o %s +; RUN: opt -module-summary -o %t2.o %S/Inputs/thinlto_backend.ll +; RUN: llvm-lto -thinlto -o %t %t1.o %t2.o + +; Ensure clang -cc1 give expected error for incorrect input type +; RUN: not %clang_cc1 -O2 -o %t1.o -x c %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING +; CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' + +; Ensure we get expected error for missing index file +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=bad.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR +; CHECK-ERROR: Error loading index file 'bad.thinlto.bc' + +; Ensure f2 was imported +; RUN: %clang -O2 -o %t3.o -x ir %t1.o -c -fthinlto-index=%t.thinlto.bc +; RUN: llvm-nm %t3.o | FileCheck --check-prefix=CHECK-OBJ %s +; CHECK-OBJ: T f1 +; CHECK-OBJ-NOT: U f2 + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +declare void @f2() + +define void @f1() { + call void @f2() + ret void +} Index: test/CodeGen/thinlto_backend.c === --- test/CodeGen/thinlto_backend.c +++ /dev/null @@ -1,14 +0,0 @@ -// RUN: %clang -O2 %s -flto=thin -c -o %t.o -// RUN: llvm-lto -thinlto -o %t %t.o - -// Ensure clang -cc1 give expected error for incorrect input type -// RUN: not %clang_cc1 -O2 -o %t1.o %s -c -fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-WARNING -// CHECK-WARNING: error: invalid argument '-fthinlto-index={{.*}}' only allowed with '-x ir' - -// Ensure we get expected error for missing index file -// RUN: %clang -O2 -o %t1.o -x ir %t.o -c