• 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> pie;
28 extern maplecl::Option<bool> fpic;
29 extern maplecl::Option<bool> verboseAsm;
30 extern maplecl::Option<bool> verboseCg;
31 extern maplecl::Option<bool> maplelinker;
32 extern maplecl::Option<bool> quiet;
33 extern maplecl::Option<bool> cg;
34 extern maplecl::Option<bool> replaceAsm;
35 extern maplecl::Option<bool> generalRegOnly;
36 extern maplecl::Option<bool> lazyBinding;
37 extern maplecl::Option<bool> hotFix;
38 extern maplecl::Option<bool> ebo;
39 extern maplecl::Option<bool> cfgo;
40 extern maplecl::Option<bool> ico;
41 extern maplecl::Option<bool> storeloadopt;
42 extern maplecl::Option<bool> globalopt;
43 extern maplecl::Option<bool> hotcoldsplit;
44 extern maplecl::Option<bool> prelsra;
45 extern maplecl::Option<bool> calleeregsPlacement;
46 extern maplecl::Option<bool> ssapreSave;
47 extern maplecl::Option<bool> ssupreRestore;
48 extern maplecl::Option<bool> prepeep;
49 extern maplecl::Option<bool> peep;
50 extern maplecl::Option<bool> preschedule;
51 extern maplecl::Option<bool> schedule;
52 extern maplecl::Option<bool> retMerge;
53 extern maplecl::Option<bool> vregRename;
54 extern maplecl::Option<bool> fullcolor;
55 extern maplecl::Option<bool> writefieldopt;
56 extern maplecl::Option<bool> dumpOlog;
57 extern maplecl::Option<bool> nativeopt;
58 extern maplecl::Option<bool> objmap;
59 extern maplecl::Option<bool> yieldpoint;
60 extern maplecl::Option<bool> proepilogue;
61 extern maplecl::Option<bool> localRc;
62 extern maplecl::Option<std::string> insertCall;
63 extern maplecl::Option<bool> addDebugTrace;
64 extern maplecl::Option<bool> addFuncProfile;
65 extern maplecl::Option<std::string> classListFile;
66 extern maplecl::Option<bool> genCMacroDef;
67 extern maplecl::Option<bool> genGctibFile;
68 extern maplecl::Option<bool> stackProtectorStrong;
69 extern maplecl::Option<bool> stackProtectorAll;
70 extern maplecl::Option<bool> debug;
71 extern maplecl::Option<bool> gdwarf;
72 extern maplecl::Option<bool> gsrc;
73 extern maplecl::Option<bool> gmixedsrc;
74 extern maplecl::Option<bool> gmixedasm;
75 extern maplecl::Option<bool> profile;
76 extern maplecl::Option<bool> withRaLinearScan;
77 extern maplecl::Option<bool> withRaGraphColor;
78 extern maplecl::Option<bool> patchLongBranch;
79 extern maplecl::Option<bool> constFold;
80 extern maplecl::Option<std::string> ehExclusiveList;
81 extern maplecl::Option<bool> o0;
82 extern maplecl::Option<bool> o1;
83 extern maplecl::Option<bool> o2;
84 extern maplecl::Option<bool> os;
85 extern maplecl::Option<bool> olitecg;
86 extern maplecl::Option<uint64_t> lsraBb;
87 extern maplecl::Option<uint64_t> lsraInsn;
88 extern maplecl::Option<uint64_t> lsraOverlap;
89 extern maplecl::Option<uint8_t> remat;
90 extern maplecl::Option<bool> suppressFileinfo;
91 extern maplecl::Option<bool> dumpCfg;
92 extern maplecl::Option<std::string> target;
93 extern maplecl::Option<std::string> dumpPhases;
94 extern maplecl::Option<std::string> skipPhases;
95 extern maplecl::Option<std::string> skipFrom;
96 extern maplecl::Option<std::string> skipAfter;
97 extern maplecl::Option<std::string> dumpFunc;
98 extern maplecl::Option<bool> timePhases;
99 extern maplecl::Option<bool> useBarriersForVolatile;
100 extern maplecl::Option<std::string> range;
101 extern maplecl::Option<uint8_t> fastAlloc;
102 extern maplecl::Option<std::string> spillRange;
103 extern maplecl::Option<bool> dupBb;
104 extern maplecl::Option<bool> calleeCfi;
105 extern maplecl::Option<bool> printFunc;
106 extern maplecl::Option<std::string> cyclePatternList;
107 extern maplecl::Option<std::string> duplicateAsmList;
108 extern maplecl::Option<std::string> duplicateAsmList2;
109 extern maplecl::Option<std::string> blockMarker;
110 extern maplecl::Option<bool> soeCheck;
111 extern maplecl::Option<bool> checkArraystore;
112 extern maplecl::Option<bool> debugSchedule;
113 extern maplecl::Option<bool> bruteforceSchedule;
114 extern maplecl::Option<bool> simulateSchedule;
115 extern maplecl::Option<bool> crossLoc;
116 extern maplecl::Option<std::string> floatAbi;
117 extern maplecl::Option<std::string> archType;
118 extern maplecl::Option<std::string> filetype;
119 extern maplecl::Option<bool> longCalls;
120 extern maplecl::Option<bool> functionSections;
121 extern maplecl::Option<bool> omitFramePointer;
122 extern maplecl::Option<bool> fastMath;
123 extern maplecl::Option<bool> tailcall;
124 extern maplecl::Option<bool> alignAnalysis;
125 extern maplecl::Option<bool> cgSsa;
126 extern maplecl::Option<bool> common;
127 extern maplecl::Option<bool> condbrAlign;
128 extern maplecl::Option<uint32_t> alignMinBbSize;
129 extern maplecl::Option<uint32_t> alignMaxBbSize;
130 extern maplecl::Option<uint32_t> loopAlignPow;
131 extern maplecl::Option<uint32_t> jumpAlignPow;
132 extern maplecl::Option<uint32_t> funcAlignPow;
133 extern maplecl::Option<bool> optimizedFrameLayout;
134 extern maplecl::Option<bool> supportFuncSymbol;
135 
136 }  // namespace opts::cg
137 
138 #endif /* MAPLE_BE_INCLUDE_CG_OPTIONS_H */
139