Author: phosek Date: Mon May 6 16:24:17 2019 New Revision: 360100 URL: http://llvm.org/viewvc/llvm-project?rev=360100&view=rev Log: [Clang][NewPM] Don't bail out if the target machine is empty
This matches the behavior of the old pass manager. There are some targets that don't have target machine at all (e.g. le32, spir) which whose tests would never run with new pass manager. Similarly, we would need to disable tests for targets that are disabled. Differential Revision: https://reviews.llvm.org/D58374 Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp cfe/trunk/test/CodeGen/spir-half-type.cpp cfe/trunk/test/Driver/le32-unknown-nacl.cpp Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/BackendUtil.cpp?rev=360100&r1=360099&r2=360100&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/BackendUtil.cpp (original) +++ cfe/trunk/lib/CodeGen/BackendUtil.cpp Mon May 6 16:24:17 2019 @@ -965,13 +965,15 @@ void EmitAssemblyHelper::EmitAssemblyWit TimeRegion Region(FrontendTimesIsEnabled ? &CodeGenerationTime : nullptr); setCommandLineOpts(CodeGenOpts); - // The new pass manager always makes a target machine available to passes - // during construction. - CreateTargetMachine(/*MustCreateTM*/ true); - if (!TM) - // This will already be diagnosed, just bail. + bool RequiresCodeGen = (Action != Backend_EmitNothing && + Action != Backend_EmitBC && + Action != Backend_EmitLL); + CreateTargetMachine(RequiresCodeGen); + + if (RequiresCodeGen && !TM) return; - TheModule->setDataLayout(TM->createDataLayout()); + if (TM) + TheModule->setDataLayout(TM->createDataLayout()); Optional<PGOOptions> PGOOpt; Modified: cfe/trunk/test/CodeGen/spir-half-type.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/spir-half-type.cpp?rev=360100&r1=360099&r2=360100&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/spir-half-type.cpp (original) +++ cfe/trunk/test/CodeGen/spir-half-type.cpp Mon May 6 16:24:17 2019 @@ -1,5 +1,7 @@ // RUN: %clang_cc1 -O0 -triple spir -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -O0 -triple spir64 -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir -fexperimental-new-pass-manager -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir64 -fexperimental-new-pass-manager -emit-llvm %s -o - | FileCheck %s // This file tests that using the _Float16 type with the spir target will not // use the llvm intrinsics but instead will use the half arithmetic Modified: cfe/trunk/test/Driver/le32-unknown-nacl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/le32-unknown-nacl.cpp?rev=360100&r1=360099&r2=360100&view=diff ============================================================================== --- cfe/trunk/test/Driver/le32-unknown-nacl.cpp (original) +++ cfe/trunk/test/Driver/le32-unknown-nacl.cpp Mon May 6 16:24:17 2019 @@ -1,5 +1,6 @@ // RUN: %clang -target le32-unknown-nacl -### %s -emit-llvm-only -c 2>&1 | FileCheck %s -check-prefix=ECHO // RUN: %clang -target le32-unknown-nacl %s -emit-llvm -S -c -o - | FileCheck %s +// RUN: %clang -target le32-unknown-nacl -fexperimental-new-pass-manager %s -emit-llvm -S -c -o - | FileCheck %s // RUN: %clang -target le32-unknown-nacl %s -emit-llvm -S -c -pthread -o - | FileCheck %s -check-prefix=THREADS // ECHO: {{.*}} "-cc1" {{.*}}le32-unknown-nacl.c _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits