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_BE_INCLUDE_CG_OPTIONS_H 17 #define MAPLE_BE_INCLUDE_CG_OPTIONS_H 18 19 #include "cl_option.h" 20 #include "cl_parser.h" 21 22 #include <stdint.h> 23 #include <string> 24 25 namespace opts::cg { 26 27 extern maplecl::Option<bool> verboseAsm; 28 extern maplecl::Option<bool> verboseCg; 29 extern maplecl::Option<bool> cg; 30 extern maplecl::Option<bool> generalRegOnly; 31 extern maplecl::Option<bool> lazyBinding; 32 extern maplecl::Option<bool> hotFix; 33 extern maplecl::Option<bool> yieldpoint; 34 extern maplecl::Option<bool> localRc; 35 extern maplecl::Option<bool> debug; 36 extern maplecl::Option<bool> gdwarf; 37 extern maplecl::Option<bool> gsrc; 38 extern maplecl::Option<bool> gmixedsrc; 39 extern maplecl::Option<bool> gmixedasm; 40 extern maplecl::Option<bool> withRaLinearScan; 41 extern maplecl::Option<uint64_t> lsraBb; 42 extern maplecl::Option<uint64_t> lsraInsn; 43 extern maplecl::Option<uint64_t> lsraOverlap; 44 extern maplecl::Option<bool> suppressFileinfo; 45 extern maplecl::Option<bool> dumpCfg; 46 extern maplecl::Option<std::string> target; 47 extern maplecl::Option<std::string> dumpPhases; 48 extern maplecl::Option<std::string> skipPhases; 49 extern maplecl::Option<std::string> skipFrom; 50 extern maplecl::Option<std::string> skipAfter; 51 extern maplecl::Option<std::string> dumpFunc; 52 extern maplecl::Option<bool> timePhases; 53 extern maplecl::Option<std::string> range; 54 extern maplecl::Option<std::string> spillRange; 55 extern maplecl::Option<bool> dupBb; 56 extern maplecl::Option<bool> calleeCfi; 57 extern maplecl::Option<std::string> blockMarker; 58 extern maplecl::Option<bool> crossLoc; 59 extern maplecl::Option<std::string> archType; 60 extern maplecl::Option<bool> omitFramePointer; 61 extern maplecl::Option<bool> tailcall; 62 extern maplecl::Option<bool> cgSsa; 63 extern maplecl::Option<uint32_t> funcAlignPow; 64 extern maplecl::Option<bool> supportFuncSymbol; 65 66 } // namespace opts::cg 67 68 #endif /* MAPLE_BE_INCLUDE_CG_OPTIONS_H */ 69