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