//===----------- CoreAPIsTest.cpp - Unit tests for Core ORC APIs ----------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h" #include "OrcTestCommon.h" using namespace llvm; using namespace llvm::orc; namespace { TEST(ExecutionUtilsTest, JITTargetMachineBuilder) { // Tests basic API usage. // Bails out on error, as it is valid to run this test without any targets // built. // Make sure LLVM has been initialized. OrcNativeTarget::initialize(); auto JTMB = cantFail(JITTargetMachineBuilder::detectHost()); // Test API by performing a bunch of no-ops. JTMB.setCPU(""); JTMB.setRelocationModel(None); JTMB.setCodeModel(None); JTMB.setCodeGenOptLevel(CodeGenOpt::None); JTMB.addFeatures(std::vector()); SubtargetFeatures &STF = JTMB.getFeatures(); (void)STF; TargetOptions &TO = JTMB.getOptions(); (void)TO; Triple &TT = JTMB.getTargetTriple(); (void)TT; auto TM = JTMB.createTargetMachine(); if (!TM) consumeError(TM.takeError()); else { EXPECT_NE(TM.get(), nullptr) << "JITTargetMachineBuilder should return a non-null TargetMachine " "on success"; } } } // namespace