--- /dev/null 2019-11-19 22:05:02.069813242 -0800 +++ new/src/hotspot/share/opto/c2_globals.cpp 2020-04-05 21:36:00.428548146 -0700 @@ -0,0 +1,244 @@ +/* + * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" +#include "runtime/flags/jvmFlagConstraintsCompiler.hpp" + +// -- Define all JVM flags that have been declared in share/opto/c2_globals.hpp + +// Add JVMFlag::C2 to the JVMFlag::attr() for all flags defined in this file +#ifdef FLAG_COMMON_ATTRS +#undef FLAG_COMMON_ATTRS +#endif +#define FLAG_COMMON_ATTRS JVMFlag::C2 + +#include "c2_globals.hpp" +#include "runtime/flags/jvmFlag.inline.hpp" +DEFN_PRODUCT_FLAG(StressLCM); +DEFN_PRODUCT_FLAG(StressGCM); +DEFN_DEVELOP_FLAG(StressMethodHandleLinkerInlining); +DEFN_DEVELOP_FLAG(OptoPrologueNops); DEFN_DEVELOP_RANGE(OptoPrologueNops); +DEFN_PRODUCT_FLAG_PD(InteriorEntryAlignment); DEFN_PRODUCT_CONSTRAINT(InteriorEntryAlignment); +DEFN_PRODUCT_FLAG(MaxLoopPad); DEFN_PRODUCT_RANGE(MaxLoopPad); +DEFN_PRODUCT_FLAG(MaxVectorSize); DEFN_PRODUCT_RANGE(MaxVectorSize); +DEFN_PRODUCT_FLAG(AlignVector); +DEFN_PRODUCT_FLAG(NumberOfLoopInstrToAlign); DEFN_PRODUCT_RANGE(NumberOfLoopInstrToAlign); +DEFN_NOTPROD_FLAG(IndexSetWatch); DEFN_NOTPROD_RANGE(IndexSetWatch); +DEFN_DEVELOP_FLAG(OptoNodeListSize); DEFN_DEVELOP_RANGE(OptoNodeListSize); +DEFN_DEVELOP_FLAG(OptoBlockListSize); DEFN_DEVELOP_RANGE(OptoBlockListSize); +DEFN_DEVELOP_FLAG(OptoPeepholeAt); +DEFN_NOTPROD_FLAG(PrintIdeal); +DEFN_DEVELOP_FLAG(PrintOpto); +DEFN_DEVELOP_FLAG(PrintOptoInlining); +DEFN_NOTPROD_FLAG(VerifyIdealNodeCount); +DEFN_NOTPROD_FLAG(PrintIdealNodeCount); +DEFN_NOTPROD_FLAG(VerifyOptoOopOffsets); +DEFN_DEVELOP_FLAG(IdealizedNumerics); +DEFN_PRODUCT_FLAG_PD(IdealizeClearArrayNode); +DEFN_DEVELOP_FLAG(OptoBreakpoint); +DEFN_DEVELOP_FLAG(OptoBreakpointOSR); +DEFN_NOTPROD_FLAG(BreakAtNode); +DEFN_DEVELOP_FLAG(OptoBreakpointC2R); +DEFN_NOTPROD_FLAG(OptoNoExecute); +DEFN_NOTPROD_FLAG(PrintOptoStatistics); +DEFN_PRODUCT_FLAG(PrintOptoAssembly); +DEFN_DEVELOP_FLAG_PD(OptoPeephole); +DEFN_DEVELOP_FLAG(OptoRemoveUseless); +DEFN_NOTPROD_FLAG(PrintFrameConverterAssembly); +DEFN_NOTPROD_FLAG(PrintParseStatistics); +DEFN_NOTPROD_FLAG(PrintOptoPeephole); +DEFN_DEVELOP_FLAG(PrintCFGBlockFreq); +DEFN_DEVELOP_FLAG(TraceOptoParse); +DEFN_PRODUCT_FLAG_PD(LoopUnrollLimit); DEFN_PRODUCT_RANGE(LoopUnrollLimit); +DEFN_PRODUCT_FLAG_PD(LoopPercentProfileLimit); DEFN_PRODUCT_RANGE(LoopPercentProfileLimit); +DEFN_PRODUCT_FLAG(LoopMaxUnroll); DEFN_PRODUCT_RANGE(LoopMaxUnroll); +DEFN_PRODUCT_FLAG_PD(SuperWordLoopUnrollAnalysis); +DEFN_PRODUCT_FLAG(PostLoopMultiversioning); +DEFN_DEVELOP_FLAG(TraceSuperWordLoopUnrollAnalysis); +DEFN_PRODUCT_FLAG(UseVectorMacroLogic); +DEFN_PRODUCT_FLAG(LoopUnrollMin); DEFN_PRODUCT_RANGE(LoopUnrollMin); +DEFN_PRODUCT_FLAG(UseSubwordForMaxVector); +DEFN_PRODUCT_FLAG(UseVectorCmov); +DEFN_DEVELOP_FLAG(UnrollLimitForProfileCheck); DEFN_DEVELOP_RANGE(UnrollLimitForProfileCheck); +DEFN_PRODUCT_FLAG(MultiArrayExpandLimit); DEFN_PRODUCT_RANGE(MultiArrayExpandLimit); +DEFN_NOTPROD_FLAG(TraceProfileTripCount); +DEFN_PRODUCT_FLAG(UseCountedLoopSafepoints); +DEFN_PRODUCT_FLAG(UseLoopPredicate); +DEFN_DEVELOP_FLAG(TraceLoopPredicate); +DEFN_DEVELOP_FLAG(TraceLoopOpts); +DEFN_DEVELOP_FLAG(TraceLoopLimitCheck); +DEFN_DEVELOP_FLAG(TraceRangeLimitCheck); +DEFN_PRODUCT_FLAG(OptimizeFill); +DEFN_DEVELOP_FLAG(TraceOptimizeFill); +DEFN_DEVELOP_FLAG(OptoCoalesce); +DEFN_DEVELOP_FLAG(UseUniqueSubclasses); +DEFN_DEVELOP_FLAG(UseExactTypes); +DEFN_PRODUCT_FLAG(TrackedInitializationLimit); DEFN_PRODUCT_RANGE(TrackedInitializationLimit); +DEFN_PRODUCT_FLAG(ReduceFieldZeroing); +DEFN_PRODUCT_FLAG(ReduceInitialCardMarks); +DEFN_PRODUCT_FLAG(ReduceBulkZeroing); +DEFN_PRODUCT_FLAG(UseFPUForSpilling); +DEFN_DEVELOP_FLAG_PD(RegisterCostAreaRatio); +DEFN_DEVELOP_FLAG_PD(UseCISCSpill); +DEFN_NOTPROD_FLAG(VerifyGraphEdges); +DEFN_NOTPROD_FLAG(VerifyDUIterators); +DEFN_NOTPROD_FLAG(VerifyHashTableKeys); +DEFN_NOTPROD_FLAG(VerifyRegisterAllocator); +DEFN_DEVELOP_FLAG_PD(FLOATPRESSURE); DEFN_DEVELOP_RANGE(FLOATPRESSURE); +DEFN_DEVELOP_FLAG_PD(INTPRESSURE); DEFN_DEVELOP_RANGE(INTPRESSURE); +DEFN_NOTPROD_FLAG(TraceOptoPipelining); +DEFN_NOTPROD_FLAG(TraceOptoOutput); +DEFN_PRODUCT_FLAG_PD(OptoScheduling); +DEFN_PRODUCT_FLAG_PD(OptoRegScheduling); +DEFN_PRODUCT_FLAG(PartialPeelLoop); +DEFN_PRODUCT_FLAG(PartialPeelNewPhiDelta); DEFN_PRODUCT_RANGE(PartialPeelNewPhiDelta); +DEFN_NOTPROD_FLAG(TracePartialPeeling); +DEFN_PRODUCT_FLAG(PartialPeelAtUnsignedTests); +DEFN_PRODUCT_FLAG(ReassociateInvariants); +DEFN_PRODUCT_FLAG(LoopUnswitching); +DEFN_NOTPROD_FLAG(TraceLoopUnswitching); +DEFN_PRODUCT_FLAG(AllowVectorizeOnDemand); +DEFN_PRODUCT_FLAG(UseSuperWord); +DEFN_DEVELOP_FLAG(SuperWordRTDepCheck); +DEFN_PRODUCT_FLAG(SuperWordReductions); +DEFN_PRODUCT_FLAG(UseCMoveUnconditionally); +DEFN_PRODUCT_FLAG(DoReserveCopyInSuperWord); +DEFN_DEVELOP_FLAG(TraceSuperWord); +DEFN_NOTPROD_FLAG(TraceNewVectors); +DEFN_PRODUCT_FLAG_PD(OptoBundling); +DEFN_PRODUCT_FLAG_PD(ConditionalMoveLimit); DEFN_PRODUCT_RANGE(ConditionalMoveLimit); +DEFN_PRODUCT_FLAG(BranchOnRegister); +DEFN_DEVELOP_FLAG(SparcV9RegsHiBitsZero); +DEFN_PRODUCT_FLAG(UseRDPCForConstantTableBase); +DEFN_NOTPROD_FLAG(PrintIdealGraph); +DEFN_NOTPROD_FLAG(PrintIdealGraphLevel); DEFN_NOTPROD_RANGE(PrintIdealGraphLevel); +DEFN_NOTPROD_FLAG(PrintIdealGraphPort); DEFN_NOTPROD_RANGE(PrintIdealGraphPort); +DEFN_NOTPROD_FLAG(PrintIdealGraphAddress); +DEFN_NOTPROD_FLAG(PrintIdealGraphFile); +DEFN_PRODUCT_FLAG(UseBimorphicInlining); +DEFN_PRODUCT_FLAG(UseOnlyInlinedBimorphic); +DEFN_PRODUCT_FLAG(InsertMemBarAfterArraycopy); +DEFN_DEVELOP_FLAG(SubsumeLoads); +DEFN_DEVELOP_FLAG(StressRecompilation); +DEFN_DEVELOP_FLAG(ImplicitNullCheckThreshold); DEFN_DEVELOP_RANGE(ImplicitNullCheckThreshold); +DEFN_PRODUCT_FLAG(LoopOptsCount); DEFN_PRODUCT_RANGE(LoopOptsCount); +DEFN_DEVELOP_FLAG(NodeCountInliningCutoff); DEFN_DEVELOP_RANGE(NodeCountInliningCutoff); +DEFN_DEVELOP_FLAG(NodeCountInliningStep); DEFN_DEVELOP_RANGE(NodeCountInliningStep); +DEFN_DEVELOP_FLAG(InlineWarmCalls); +DEFN_DEVELOP_FLAG(HotCallCountThreshold); DEFN_DEVELOP_RANGE(HotCallCountThreshold); +DEFN_DEVELOP_FLAG(HotCallProfitThreshold); DEFN_DEVELOP_RANGE(HotCallProfitThreshold); +DEFN_DEVELOP_FLAG(HotCallTrivialWork); DEFN_DEVELOP_RANGE(HotCallTrivialWork); +DEFN_DEVELOP_FLAG(HotCallTrivialSize); DEFN_DEVELOP_RANGE(HotCallTrivialSize); +DEFN_DEVELOP_FLAG(WarmCallMinCount); DEFN_DEVELOP_RANGE(WarmCallMinCount); +DEFN_DEVELOP_FLAG(WarmCallMinProfit); DEFN_DEVELOP_RANGE(WarmCallMinProfit); +DEFN_DEVELOP_FLAG(WarmCallMaxWork); DEFN_DEVELOP_RANGE(WarmCallMaxWork); +DEFN_DEVELOP_FLAG(WarmCallMaxSize); DEFN_DEVELOP_RANGE(WarmCallMaxSize); +DEFN_PRODUCT_FLAG(MaxNodeLimit); DEFN_PRODUCT_RANGE(MaxNodeLimit); +DEFN_PRODUCT_FLAG(NodeLimitFudgeFactor); DEFN_PRODUCT_CONSTRAINT(NodeLimitFudgeFactor); +DEFN_PRODUCT_FLAG(UseJumpTables); +DEFN_PRODUCT_FLAG(UseDivMod); +DEFN_PRODUCT_FLAG_PD(MinJumpTableSize); DEFN_PRODUCT_RANGE(MinJumpTableSize); +DEFN_PRODUCT_FLAG(MaxJumpTableSize); DEFN_PRODUCT_RANGE(MaxJumpTableSize); +DEFN_PRODUCT_FLAG(MaxJumpTableSparseness); DEFN_PRODUCT_RANGE(MaxJumpTableSparseness); +DEFN_PRODUCT_FLAG(EliminateLocks); +DEFN_PRODUCT_FLAG(EliminateNestedLocks); +DEFN_NOTPROD_FLAG(PrintLockStatistics); +DEFN_PRODUCT_FLAG(PrintPreciseBiasedLockingStatistics); +DEFN_PRODUCT_FLAG(PrintPreciseRTMLockingStatistics); +DEFN_NOTPROD_FLAG(PrintEliminateLocks); +DEFN_PRODUCT_FLAG(EliminateAutoBox); +DEFN_PRODUCT_FLAG(AutoBoxCacheMax); DEFN_PRODUCT_RANGE(AutoBoxCacheMax); +DEFN_PRODUCT_FLAG(AggressiveUnboxing); +DEFN_DEVELOP_FLAG(TracePostallocExpand); +DEFN_PRODUCT_FLAG(DoEscapeAnalysis); +DEFN_PRODUCT_FLAG(EscapeAnalysisTimeout); DEFN_PRODUCT_RANGE(EscapeAnalysisTimeout); +DEFN_DEVELOP_FLAG(ExitEscapeAnalysisOnTimeout); +DEFN_NOTPROD_FLAG(PrintEscapeAnalysis); +DEFN_PRODUCT_FLAG(EliminateAllocations); +DEFN_NOTPROD_FLAG(PrintEliminateAllocations); +DEFN_PRODUCT_FLAG(EliminateAllocationArraySizeLimit); DEFN_PRODUCT_RANGE(EliminateAllocationArraySizeLimit); +DEFN_PRODUCT_FLAG(OptimizePtrCompare); +DEFN_NOTPROD_FLAG(PrintOptimizePtrCompare); +DEFN_NOTPROD_FLAG(VerifyConnectionGraph); +DEFN_PRODUCT_FLAG(UseOptoBiasInlining); +DEFN_PRODUCT_FLAG(OptimizeStringConcat); +DEFN_NOTPROD_FLAG(PrintOptimizeStringConcat); +DEFN_PRODUCT_FLAG(ValueSearchLimit); DEFN_PRODUCT_RANGE(ValueSearchLimit); +DEFN_PRODUCT_FLAG(MaxLabelRootDepth); DEFN_PRODUCT_RANGE(MaxLabelRootDepth); +DEFN_PRODUCT_FLAG(DominatorSearchLimit); DEFN_PRODUCT_RANGE(DominatorSearchLimit); +DEFN_PRODUCT_FLAG(BlockLayoutByFrequency); +DEFN_PRODUCT_FLAG(BlockLayoutMinDiamondPercentage); DEFN_PRODUCT_RANGE(BlockLayoutMinDiamondPercentage); +DEFN_PRODUCT_FLAG(BlockLayoutRotateLoops); +DEFN_PRODUCT_FLAG(InlineReflectionGetCallerClass); +DEFN_PRODUCT_FLAG(InlineObjectCopy); +DEFN_PRODUCT_FLAG(SpecialStringCompareTo); +DEFN_PRODUCT_FLAG(SpecialStringIndexOf); +DEFN_PRODUCT_FLAG(SpecialStringEquals); +DEFN_PRODUCT_FLAG(SpecialArraysEquals); +DEFN_PRODUCT_FLAG(SpecialEncodeISOArray); +DEFN_DEVELOP_FLAG(BailoutToInterpreterForThrows); +DEFN_DEVELOP_FLAG(ConvertCmpD2CmpF); +DEFN_DEVELOP_FLAG(ConvertFloat2IntClipping); +DEFN_DEVELOP_FLAG(MonomorphicArrayCheck); +DEFN_NOTPROD_FLAG(TracePhaseCCP); +DEFN_DEVELOP_FLAG(PrintDominators); +DEFN_PRODUCT_FLAG(TraceSpilling); +DEFN_PRODUCT_FLAG(TraceTypeProfile); +DEFN_DEVELOP_FLAG(PoisonOSREntry); +DEFN_DEVELOP_FLAG(SoftMatchFailure); +DEFN_DEVELOP_FLAG(InlineAccessors); +DEFN_PRODUCT_FLAG(TypeProfileMajorReceiverPercent); DEFN_PRODUCT_RANGE(TypeProfileMajorReceiverPercent); +DEFN_PRODUCT_FLAG(PrintIntrinsics); +DEFN_DEVELOP_FLAG(StressReflectiveCode); +DEFN_PRODUCT_FLAG(DebugInlinedCalls); +DEFN_DEVELOP_FLAG(VerifyLoopOptimizations); +DEFN_PRODUCT_FLAG(ProfileDynamicTypes); +DEFN_DEVELOP_FLAG(TraceIterativeGVN); +DEFN_DEVELOP_FLAG(VerifyIterativeGVN); +DEFN_NOTPROD_FLAG(TraceCISCSpill); +DEFN_PRODUCT_FLAG(SplitIfBlocks); +DEFN_DEVELOP_FLAG(FreqCountInvocations); DEFN_DEVELOP_RANGE(FreqCountInvocations); +DEFN_PRODUCT_FLAG(AliasLevel); DEFN_PRODUCT_RANGE(AliasLevel); DEFN_PRODUCT_CONSTRAINT(AliasLevel); +DEFN_DEVELOP_FLAG(VerifyAliases); +DEFN_PRODUCT_FLAG(IncrementalInline); +DEFN_DEVELOP_FLAG(AlwaysIncrementalInline); +DEFN_PRODUCT_FLAG(LiveNodeCountInliningCutoff); DEFN_PRODUCT_RANGE(LiveNodeCountInliningCutoff); +DEFN_PRODUCT_FLAG(OptimizeExpensiveOps); +DEFN_PRODUCT_FLAG(UseMathExactIntrinsics); +DEFN_PRODUCT_FLAG(UseCharacterCompareIntrinsics); +DEFN_PRODUCT_FLAG(UseMultiplyToLenIntrinsic); +DEFN_PRODUCT_FLAG(UseSquareToLenIntrinsic); +DEFN_PRODUCT_FLAG(UseMulAddIntrinsic); +DEFN_PRODUCT_FLAG(UseMontgomeryMultiplyIntrinsic); +DEFN_PRODUCT_FLAG(UseMontgomerySquareIntrinsic); +DEFN_PRODUCT_FLAG(UseTypeSpeculation); +DEFN_PRODUCT_FLAG(UseInlineDepthForSpeculativeTypes); +DEFN_PRODUCT_FLAG_PD(TrapBasedRangeChecks); +DEFN_PRODUCT_FLAG(ArrayCopyLoadStoreMaxElem); DEFN_PRODUCT_RANGE(ArrayCopyLoadStoreMaxElem); +DEFN_DEVELOP_FLAG(StressArrayCopyMacroNode); +DEFN_DEVELOP_FLAG(RenumberLiveNodes); +DEFN_PRODUCT_FLAG(LoopStripMiningIter); DEFN_PRODUCT_RANGE(LoopStripMiningIter); +DEFN_PRODUCT_FLAG(LoopStripMiningIterShortLoop); DEFN_PRODUCT_RANGE(LoopStripMiningIterShortLoop); +DEFN_PRODUCT_FLAG(UseProfiledLoopPredicate); +DEFN_PRODUCT_FLAG(ExpandSubTypeCheckAtParseTime);