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 59 #if MIR_JAVA 60 extern maplecl::Option<bool> skipvirtual; 61 #endif 62 63 extern maplecl::Option<bool> userc; 64 extern maplecl::Option<bool> strictNaiveRc; 65 extern maplecl::Option<bool> rcOpt1; 66 extern maplecl::Option<bool> nativeopt; 67 extern maplecl::Option<bool> o0; 68 extern maplecl::Option<bool> o2; 69 extern maplecl::Option<bool> os; 70 extern maplecl::Option<std::string> criticalNative; 71 extern maplecl::Option<std::string> fastNative; 72 extern maplecl::Option<bool> nodot; 73 extern maplecl::Option<bool> genIrProfile; 74 extern maplecl::Option<bool> profileTest; 75 extern maplecl::Option<bool> barrier; 76 extern maplecl::Option<std::string> nativeFuncPropertyFile; 77 extern maplecl::Option<bool> maplelinkerNolocal; 78 extern maplecl::Option<uint32_t> buildApp; 79 extern maplecl::Option<bool> partialAot; 80 extern maplecl::Option<uint32_t> decoupleInit; 81 extern maplecl::Option<std::string> sourceMuid; 82 extern maplecl::Option<bool> deferredVisit; 83 extern maplecl::Option<bool> deferredVisit2; 84 extern maplecl::Option<bool> decoupleSuper; 85 extern maplecl::Option<bool> genDecoupleVtab; 86 extern maplecl::Option<bool> profileFunc; 87 extern maplecl::Option<std::string> dumpDevirtual; 88 extern maplecl::Option<std::string> readDevirtual; 89 extern maplecl::Option<bool> usewhiteclass; 90 extern maplecl::Option<std::string> appPackageName; 91 extern maplecl::Option<std::string> checkClInvocation; 92 extern maplecl::Option<bool> dumpClInvocation; 93 extern maplecl::Option<uint32_t> warning; 94 extern maplecl::Option<bool> lazyBinding; 95 extern maplecl::Option<bool> hotFix; 96 extern maplecl::Option<bool> compactMeta; 97 extern maplecl::Option<bool> genPGOReport; 98 extern maplecl::Option<uint32_t> inlineCache; 99 extern maplecl::Option<bool> noComment; 100 extern maplecl::Option<bool> rmnousefunc; 101 extern maplecl::Option<bool> sideeffect; 102 extern maplecl::Option<bool> dumpIPA; 103 extern maplecl::Option<bool> wpaa; 104 extern maplecl::Option<uint32_t> numOfCloneVersions; 105 extern maplecl::Option<uint32_t> numOfImpExprLowBound; 106 extern maplecl::Option<uint32_t> numOfImpExprHighBound; 107 extern maplecl::Option<uint32_t> numOfCallSiteLowBound; 108 extern maplecl::Option<uint32_t> numOfCallSiteUpBound; 109 extern maplecl::Option<uint32_t> numOfConstpropValue; 110 111 } // namespace opts::mpl2mpl 112 113 #endif /* MAPLE_IR_INCLUDE_MPL2MPL_OPTION_H */ 114