1 /* 2 * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #include "precompiled.hpp" 26 27 // -- Define all JVM flags that have been declared in share/c1/c1_globals.hpp 28 29 // Add JVMFlag::C1 to the JVMFlag::attr() for all flags defined in this file 30 #ifdef FLAG_COMMON_ATTRS 31 #undef FLAG_COMMON_ATTRS 32 #endif 33 #define FLAG_COMMON_ATTRS JVMFlag::C1 34 35 #include "c1_globals.hpp" 36 #include "runtime/flags/jvmFlag.inline.hpp" 37 DEFN_NOTPROD_FLAG(PrintC1Statistics); 38 DEFN_DEVELOP_FLAG(PrintInitialBlockList); 39 DEFN_NOTPROD_FLAG(PrintCFG); 40 DEFN_NOTPROD_FLAG(PrintCFG0); 41 DEFN_NOTPROD_FLAG(PrintCFG1); 42 DEFN_NOTPROD_FLAG(PrintCFG2); 43 DEFN_NOTPROD_FLAG(PrintIRDuringConstruction); 44 DEFN_NOTPROD_FLAG(PrintPhiFunctions); 45 DEFN_NOTPROD_FLAG(PrintIR); 46 DEFN_NOTPROD_FLAG(PrintIR0); 47 DEFN_NOTPROD_FLAG(PrintIR1); 48 DEFN_NOTPROD_FLAG(PrintIR2); 49 DEFN_NOTPROD_FLAG(PrintSimpleStubs); 50 DEFN_DEVELOP_FLAG(UseC1Optimizations); 51 DEFN_DEVELOP_FLAG(SelectivePhiFunctions); 52 DEFN_DEVELOP_FLAG(OptimizeIfOps); 53 DEFN_DEVELOP_FLAG(DoCEE); 54 DEFN_DEVELOP_FLAG(PrintCEE); 55 DEFN_DEVELOP_FLAG(UseLocalValueNumbering); 56 DEFN_DEVELOP_FLAG(UseGlobalValueNumbering); 57 DEFN_PRODUCT_FLAG(UseLoopInvariantCodeMotion); 58 DEFN_DEVELOP_FLAG(TracePredicateFailedTraps); 59 DEFN_DEVELOP_FLAG(StressLoopInvariantCodeMotion); 60 DEFN_DEVELOP_FLAG(TraceRangeCheckElimination); 61 DEFN_DEVELOP_FLAG(AssertRangeCheckElimination); 62 DEFN_DEVELOP_FLAG(StressRangeCheckElimination); 63 DEFN_DEVELOP_FLAG(PrintValueNumbering); 64 DEFN_PRODUCT_FLAG(ValueMapInitialSize); DEFN_PRODUCT_RANGE(ValueMapInitialSize); 65 DEFN_PRODUCT_FLAG(ValueMapMaxLoopSize); DEFN_PRODUCT_RANGE(ValueMapMaxLoopSize); 66 DEFN_DEVELOP_FLAG(EliminateBlocks); 67 DEFN_DEVELOP_FLAG(PrintBlockElimination); 68 DEFN_DEVELOP_FLAG(EliminateNullChecks); 69 DEFN_DEVELOP_FLAG(PrintNullCheckElimination); 70 DEFN_DEVELOP_FLAG(EliminateFieldAccess); 71 DEFN_DEVELOP_FLAG(InlineMethodsWithExceptionHandlers); 72 DEFN_PRODUCT_FLAG(InlineSynchronizedMethods); 73 DEFN_PRODUCT_FLAG(InlineNIOCheckIndex); 74 DEFN_DEVELOP_FLAG(CanonicalizeNodes); 75 DEFN_DEVELOP_FLAG(PrintCanonicalization); 76 DEFN_DEVELOP_FLAG(UseTableRanges); 77 DEFN_DEVELOP_FLAG(NestedInliningSizeRatio); DEFN_DEVELOP_RANGE(NestedInliningSizeRatio); 78 DEFN_NOTPROD_FLAG(PrintIRWithLIR); 79 DEFN_NOTPROD_FLAG(PrintLIRWithAssembly); 80 DEFN_DEVELOP_FLAG(CommentedAssembly); 81 DEFN_DEVELOP_FLAG(LIRTracePeephole); 82 DEFN_DEVELOP_FLAG(LIRTraceExecution); 83 DEFN_PRODUCT_FLAG_PD(LIRFillDelaySlots); 84 DEFN_DEVELOP_FLAG_PD(CSEArrayLength); 85 DEFN_DEVELOP_FLAG_PD(TwoOperandLIRForm); 86 DEFN_DEVELOP_FLAG(TraceLinearScanLevel); DEFN_DEVELOP_RANGE(TraceLinearScanLevel); 87 DEFN_DEVELOP_FLAG(StressLinearScan); 88 DEFN_PRODUCT_FLAG(TimeLinearScan); 89 DEFN_DEVELOP_FLAG(TimeEachLinearScan); 90 DEFN_DEVELOP_FLAG(CountLinearScan); 91 DEFN_DEVELOP_FLAG(C1Breakpoint); 92 DEFN_DEVELOP_FLAG(ImplicitDiv0Checks); 93 DEFN_DEVELOP_FLAG(PinAllInstructions); 94 DEFN_DEVELOP_FLAG(UseFastNewInstance); 95 DEFN_DEVELOP_FLAG(UseFastNewTypeArray); 96 DEFN_DEVELOP_FLAG(UseFastNewObjectArray); 97 DEFN_DEVELOP_FLAG(UseFastLocking); 98 DEFN_DEVELOP_FLAG(UseSlowPath); 99 DEFN_DEVELOP_FLAG(GenerateArrayStoreCheck); 100 DEFN_DEVELOP_FLAG(DeoptC1); 101 DEFN_DEVELOP_FLAG(PrintBailouts); 102 DEFN_DEVELOP_FLAG(TracePatching); 103 DEFN_DEVELOP_FLAG(PatchALot); 104 DEFN_DEVELOP_FLAG(PrintNotLoaded); 105 DEFN_DEVELOP_FLAG(PrintLIR); 106 DEFN_DEVELOP_FLAG(BailoutAfterHIR); 107 DEFN_DEVELOP_FLAG(BailoutAfterLIR); 108 DEFN_DEVELOP_FLAG(BailoutOnExceptionHandlers); 109 DEFN_DEVELOP_FLAG(InstallMethods); 110 DEFN_DEVELOP_FLAG(NMethodSizeLimit); DEFN_DEVELOP_RANGE(NMethodSizeLimit); 111 DEFN_DEVELOP_FLAG(TraceFPUStack); 112 DEFN_DEVELOP_FLAG(TraceFPURegisterUsage); 113 DEFN_DEVELOP_FLAG(OptimizeUnsafes); 114 DEFN_DEVELOP_FLAG(PrintUnsafeOptimization); 115 DEFN_DEVELOP_FLAG(InstructionCountCutoff); DEFN_DEVELOP_RANGE(InstructionCountCutoff); 116 DEFN_DEVELOP_FLAG(ComputeExactFPURegisterUsage); 117 DEFN_PRODUCT_FLAG(C1ProfileCalls); 118 DEFN_PRODUCT_FLAG(C1ProfileVirtualCalls); 119 DEFN_PRODUCT_FLAG(C1ProfileInlinedCalls); 120 DEFN_PRODUCT_FLAG(C1ProfileBranches); 121 DEFN_PRODUCT_FLAG(C1ProfileCheckcasts); 122 DEFN_PRODUCT_FLAG(C1OptimizeVirtualCallProfiling); 123 DEFN_PRODUCT_FLAG(C1UpdateMethodData); 124 DEFN_DEVELOP_FLAG(PrintCFGToFile);