• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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