As discussed in https://reviews.llvm.org/D74447, this patch disables integrated-cc1 behavior if there's more than one job to be executed. This is meant to limit memory bloating, given that currently jobs don't clean up after execution (-disable-free is always active in cc1 mode). I see this behavior as temporary until release 10.0 ships (to ease merging of this patch), then we'll reevaluate the situation, see if D74447 makes more sense on the long term. Differential Revision: https://reviews.llvm.org/D74490
38 lines
1.6 KiB
C
38 lines
1.6 KiB
C
// RUN: %clang -fintegrated-cc1 -c -### %s 2>&1 | FileCheck %s --check-prefix=YES
|
|
// RUN: %clang -fno-integrated-cc1 -c -### %s 2>&1 | FileCheck %s --check-prefix=NO
|
|
|
|
// RUN: %clang -fintegrated-cc1 -fno-integrated-cc1 -c -### %s 2>&1 \
|
|
// RUN: | FileCheck %s --check-prefix=NO
|
|
// RUN: %clang -fno-integrated-cc1 -fintegrated-cc1 -c -### %s 2>&1 \
|
|
// RUN: | FileCheck %s --check-prefix=YES
|
|
|
|
// RUN: %clang_cl -fintegrated-cc1 -c -### -- %s 2>&1 \
|
|
// RUN: | FileCheck %s --check-prefix=YES
|
|
// RUN: %clang_cl -fno-integrated-cc1 -c -### -- %s 2>&1 \
|
|
// RUN: | FileCheck %s --check-prefix=NO
|
|
|
|
// RUN: env CCC_OVERRIDE_OPTIONS=+-fintegrated-cc1 \
|
|
// RUN: %clang -fintegrated-cc1 -c -### %s 2>&1 \
|
|
// RUN: | FileCheck %s --check-prefix=YES
|
|
// RUN: env CCC_OVERRIDE_OPTIONS=+-fno-integrated-cc1 \
|
|
// RUN: %clang -fintegrated-cc1 -c -### %s 2>&1 \
|
|
// RUN: | FileCheck %s --check-prefix=NO
|
|
|
|
// YES: (in-process)
|
|
// NO-NOT: (in-process)
|
|
|
|
// The following tests ensure that only one integrated-cc1 is executed.
|
|
|
|
// Only one TU, one job, thus integrated-cc1 is enabled.
|
|
// RUN: %clang -fintegrated-cc1 -c %s -### 2>&1 | FileCheck %s --check-prefix=YES
|
|
|
|
// Only one TU, but we're linking, two jobs, thus integrated-cc1 is disabled.
|
|
// RUN: %clang -fintegrated-cc1 %s -### 2>&1 | FileCheck %s --check-prefix=NO
|
|
|
|
// RUN: echo 'int main() { return f() + g(); }' > %t1.cpp
|
|
// RUN: echo 'int f() { return 1; }' > %t2.cpp
|
|
// RUN: echo 'int g() { return 2; }' > %t3.cpp
|
|
|
|
// Three jobs, thus integrated-cc1 is disabled.
|
|
// RUN: %clang -fintegrated-cc1 -c %t1.cpp %t2.cpp %t3.cpp -### 2>&1 | FileCheck %s --check-prefix=NO
|