1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef MAPLE_IR_INCLUDE_MPL2MPL_OPTION_H 17 #define MAPLE_IR_INCLUDE_MPL2MPL_OPTION_H 18 19 #include "cl_option.h" 20 #include "cl_parser.h" 21 22 #include <stdint.h> 23 #include <string> 24 25 namespace opts::mpl2mpl { 26 27 extern maplecl::Option<std::string> dumpPhase; 28 extern maplecl::Option<std::string> skipPhase; 29 extern maplecl::Option<std::string> skipFrom; 30 extern maplecl::Option<std::string> skipAfter; 31 extern maplecl::Option<std::string> dumpFunc; 32 extern maplecl::Option<bool> quiet; 33 extern maplecl::Option<bool> maplelinker; 34 extern maplecl::Option<bool> regnativefunc; 35 extern maplecl::Option<bool> inlineWithProfile; 36 extern maplecl::Option<bool> inlineOpt; 37 extern maplecl::Option<bool> ipaClone; 38 extern maplecl::Option<std::string> noInlineFunc; 39 extern maplecl::Option<std::string> importFileList; 40 extern maplecl::Option<bool> crossModuleInline; 41 extern maplecl::Option<uint32_t> inlineSmallFunctionThreshold; 42 extern maplecl::Option<uint32_t> inlineHotFunctionThreshold; 43 extern maplecl::Option<uint32_t> inlineRecursiveFunctionThreshold; 44 extern maplecl::Option<uint32_t> inlineDepth; 45 extern maplecl::Option<uint32_t> inlineModuleGrow; 46 extern maplecl::Option<uint32_t> inlineColdFuncThresh; 47 extern maplecl::Option<uint32_t> profileHotCount; 48 extern maplecl::Option<uint32_t> profileColdCount; 49 extern maplecl::Option<uint32_t> profileHotRate; 50 extern maplecl::Option<uint32_t> profileColdRate; 51 extern maplecl::Option<bool> nativewrapper; 52 extern maplecl::Option<bool> regnativeDynamicOnly; 53 extern maplecl::Option<std::string> staticBindingList; 54 extern maplecl::Option<bool> dumpBefore; 55 extern maplecl::Option<bool> dumpAfter; 56 extern maplecl::Option<bool> dumpMuid; 57 extern maplecl::Option<bool> emitVtableImpl; 58 extern maplecl::Option<bool> userc; 59 extern maplecl::Option<bool> strictNaiveRc; 60 extern maplecl::Option<bool> rcOpt1; 61 extern maplecl::Option<bool> nativeopt; 62 extern maplecl::Option<bool> o0; 63 extern maplecl::Option<bool> o2; 64 extern maplecl::Option<bool> os; 65 extern maplecl::Option<std::string> criticalNative; 66 extern maplecl::Option<std::string> fastNative; 67 extern maplecl::Option<bool> nodot; 68 extern maplecl::Option<bool> genIrProfile; 69 extern maplecl::Option<bool> profileTest; 70 extern maplecl::Option<bool> barrier; 71 extern maplecl::Option<std::string> nativeFuncPropertyFile; 72 extern maplecl::Option<bool> maplelinkerNolocal; 73 extern maplecl::Option<uint32_t> buildApp; 74 extern maplecl::Option<bool> partialAot; 75 extern maplecl::Option<uint32_t> decoupleInit; 76 extern maplecl::Option<std::string> sourceMuid; 77 extern maplecl::Option<bool> deferredVisit; 78 extern maplecl::Option<bool> deferredVisit2; 79 extern maplecl::Option<bool> decoupleSuper; 80 extern maplecl::Option<bool> genDecoupleVtab; 81 extern maplecl::Option<bool> profileFunc; 82 extern maplecl::Option<std::string> dumpDevirtual; 83 extern maplecl::Option<std::string> readDevirtual; 84 extern maplecl::Option<bool> usewhiteclass; 85 extern maplecl::Option<std::string> appPackageName; 86 extern maplecl::Option<std::string> checkClInvocation; 87 extern maplecl::Option<bool> dumpClInvocation; 88 extern maplecl::Option<uint32_t> warning; 89 extern maplecl::Option<bool> lazyBinding; 90 extern maplecl::Option<bool> hotFix; 91 extern maplecl::Option<bool> compactMeta; 92 extern maplecl::Option<bool> genPGOReport; 93 extern maplecl::Option<uint32_t> inlineCache; 94 extern maplecl::Option<bool> noComment; 95 extern maplecl::Option<bool> rmnousefunc; 96 extern maplecl::Option<bool> sideeffect; 97 extern maplecl::Option<bool> dumpIPA; 98 extern maplecl::Option<bool> wpaa; 99 extern maplecl::Option<uint32_t> numOfCloneVersions; 100 extern maplecl::Option<uint32_t> numOfImpExprLowBound; 101 extern maplecl::Option<uint32_t> numOfImpExprHighBound; 102 extern maplecl::Option<uint32_t> numOfCallSiteLowBound; 103 extern maplecl::Option<uint32_t> numOfCallSiteUpBound; 104 extern maplecl::Option<uint32_t> numOfConstpropValue; 105 106 } // namespace opts::mpl2mpl 107 108 #endif /* MAPLE_IR_INCLUDE_MPL2MPL_OPTION_H */ 109