1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef ART_COMPILER_DEX_DEX_FLAGS_H_
18 #define ART_COMPILER_DEX_DEX_FLAGS_H_
19 
20 namespace art {
21 
22 // Suppress optimization if corresponding bit set.
23 enum OptControlVector {
24   kLoadStoreElimination = 0,
25   kLoadHoisting,
26   kSuppressLoads,
27   kNullCheckElimination,
28   kClassInitCheckElimination,
29   kGlobalValueNumbering,
30   kGvnDeadCodeElimination,
31   kLocalValueNumbering,
32   kPromoteRegs,
33   kTrackLiveTemps,
34   kSafeOptimizations,
35   kBBOpt,
36   kSuspendCheckElimination,
37   kMatch,
38   kPromoteCompilerTemps,
39   kBranchFusing,
40   kSuppressExceptionEdges,
41   kSuppressMethodInlining,
42 };
43 
44 // Force code generation paths for testing.
45 enum DebugControlVector {
46   kDebugVerbose,
47   kDebugDumpCFG,
48   kDebugSlowFieldPath,
49   kDebugSlowInvokePath,
50   kDebugSlowStringPath,
51   kDebugSlowTypePath,
52   kDebugSlowestFieldPath,
53   kDebugSlowestStringPath,
54   kDebugExerciseResolveMethod,
55   kDebugVerifyDataflow,
56   kDebugShowMemoryUsage,
57   kDebugShowNops,
58   kDebugCountOpcodes,
59   kDebugDumpCheckStats,
60   kDebugShowSummaryMemoryUsage,
61   kDebugShowFilterStats,
62   kDebugTimings,
63   kDebugCodegenDump
64 };
65 
66 }  // namespace art
67 
68 #endif  // ART_COMPILER_DEX_DEX_FLAGS_H_
69