|
2 | 2 | // |
3 | 3 | // This source code is licensed under the MIT license found in the |
4 | 4 | // LICENSE file in the root directory of this source tree. |
5 | | -#include "compiler_gym/envs/llvm/service/BenchmarkFactory.h" |
| 5 | +#include "compiler_gym/envs/llvm/service/LlvmServiceContext.h" |
6 | 6 | #include "compiler_gym/envs/llvm/service/LlvmSession.h" |
7 | 7 | #include "compiler_gym/service/runtime/Runtime.h" |
8 | | -#include "llvm/InitializePasses.h" |
9 | | -#include "llvm/Support/TargetSelect.h" |
10 | 8 |
|
11 | 9 | const char* usage = R"(LLVM CompilerGym service)"; |
12 | 10 |
|
13 | 11 | using namespace compiler_gym::runtime; |
14 | 12 | using namespace compiler_gym::llvm_service; |
15 | 13 |
|
16 | | -namespace { |
17 | | - |
18 | | -void initLlvm() { |
19 | | - llvm::InitializeAllTargets(); |
20 | | - llvm::InitializeAllTargetMCs(); |
21 | | - llvm::InitializeAllAsmPrinters(); |
22 | | - llvm::InitializeAllAsmParsers(); |
23 | | - |
24 | | - // Initialize passes. |
25 | | - llvm::PassRegistry& Registry = *llvm::PassRegistry::getPassRegistry(); |
26 | | - llvm::initializeCore(Registry); |
27 | | - llvm::initializeCoroutines(Registry); |
28 | | - llvm::initializeScalarOpts(Registry); |
29 | | - llvm::initializeObjCARCOpts(Registry); |
30 | | - llvm::initializeVectorization(Registry); |
31 | | - llvm::initializeIPO(Registry); |
32 | | - llvm::initializeAnalysis(Registry); |
33 | | - llvm::initializeTransformUtils(Registry); |
34 | | - llvm::initializeInstCombine(Registry); |
35 | | - llvm::initializeAggressiveInstCombine(Registry); |
36 | | - llvm::initializeInstrumentation(Registry); |
37 | | - llvm::initializeTarget(Registry); |
38 | | - llvm::initializeExpandMemCmpPassPass(Registry); |
39 | | - llvm::initializeScalarizeMaskedMemIntrinPass(Registry); |
40 | | - llvm::initializeCodeGenPreparePass(Registry); |
41 | | - llvm::initializeAtomicExpandPass(Registry); |
42 | | - llvm::initializeRewriteSymbolsLegacyPassPass(Registry); |
43 | | - llvm::initializeWinEHPreparePass(Registry); |
44 | | - llvm::initializeDwarfEHPreparePass(Registry); |
45 | | - llvm::initializeSafeStackLegacyPassPass(Registry); |
46 | | - llvm::initializeSjLjEHPreparePass(Registry); |
47 | | - llvm::initializePreISelIntrinsicLoweringLegacyPassPass(Registry); |
48 | | - llvm::initializeGlobalMergePass(Registry); |
49 | | - llvm::initializeIndirectBrExpandPassPass(Registry); |
50 | | - llvm::initializeInterleavedAccessPass(Registry); |
51 | | - llvm::initializeEntryExitInstrumenterPass(Registry); |
52 | | - llvm::initializePostInlineEntryExitInstrumenterPass(Registry); |
53 | | - llvm::initializeUnreachableBlockElimLegacyPassPass(Registry); |
54 | | - llvm::initializeExpandReductionsPass(Registry); |
55 | | - llvm::initializeWasmEHPreparePass(Registry); |
56 | | - llvm::initializeWriteBitcodePassPass(Registry); |
57 | | -} |
58 | | - |
59 | | -} // anonymous namespace |
60 | | - |
61 | 14 | int main(int argc, char** argv) { |
62 | | - initLlvm(); |
63 | | - const auto ret = createAndRunCompilerGymService<LlvmSession>(argc, argv, usage); |
64 | | - |
65 | | - // NOTE(github.com/facebookresearch/CompilerGym/issues/582): We need to make |
66 | | - // sure that BenchmarkFactory::close() is called on the global singleton |
67 | | - // instance, so that the temporary scratch directories are tidied up. |
68 | | - // |
69 | | - // TODO(github.com/facebookresearch/CompilerGym/issues/591): Once the runtime |
70 | | - // has been refactored to support intra-session mutable state, this singleton |
71 | | - // can be replaced by a member variable that is closed on |
72 | | - // CompilerGymServiceContext::shutdown(). |
73 | | - BenchmarkFactory::getSingleton(FLAGS_working_dir).close(); |
74 | | - |
75 | | - return ret; |
| 15 | + return createAndRunCompilerGymService<LlvmSession, LlvmServiceContext>(argc, argv, usage); |
76 | 16 | } |
0 commit comments