c2_globals_aarch64.hpp revision 12485:48f374853a92
119304Speter/*
219304Speter * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
319304Speter * Copyright (c) 2014, Red Hat Inc. All rights reserved.
419304Speter * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
519304Speter *
619304Speter * This code is free software; you can redistribute it and/or modify it
719304Speter * under the terms of the GNU General Public License version 2 only, as
819304Speter * published by the Free Software Foundation.
9254225Speter *
1019304Speter * This code is distributed in the hope that it will be useful, but WITHOUT
1119304Speter * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1219304Speter * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13254225Speter * version 2 for more details (a copy is included in the LICENSE file that
1419304Speter * accompanied this code).
1519304Speter *
1619304Speter * You should have received a copy of the GNU General Public License version
1719304Speter * 2 along with this work; if not, write to the Free Software Foundation,
1819304Speter * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1919304Speter *
2019304Speter * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2119304Speter * or visit www.oracle.com if you need additional information or have any
2219304Speter * questions.
2319304Speter *
2419304Speter */
2519304Speter
2619304Speter#ifndef CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
2719304Speter#define CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
2819304Speter
2919304Speter#include "utilities/globalDefinitions.hpp"
3019304Speter#include "utilities/macros.hpp"
3119304Speter
3219304Speter// Sets the default values for platform dependent flags used by the server compiler.
3319304Speter// (see c2_globals.hpp).  Alpha-sorted.
3419304Speter
3519304Speterdefine_pd_global(bool, BackgroundCompilation,        true);
3619304Speterdefine_pd_global(bool, UseTLAB,                      true);
3719304Speterdefine_pd_global(bool, ResizeTLAB,                   true);
3819304Speterdefine_pd_global(bool, CICompileOSR,                 true);
3919304Speterdefine_pd_global(bool, InlineIntrinsics,             true);
4019304Speterdefine_pd_global(bool, PreferInterpreterNativeStubs, false);
4119304Speterdefine_pd_global(bool, ProfileTraps,                 true);
4219304Speterdefine_pd_global(bool, UseOnStackReplacement,        true);
4319304Speterdefine_pd_global(bool, ProfileInterpreter,           true);
4419304Speterdefine_pd_global(bool, TieredCompilation,            trueInTiered);
4519304Speterdefine_pd_global(intx, CompileThreshold,             10000);
4619304Speter
4719304Speterdefine_pd_global(intx, OnStackReplacePercentage,     140);
4819304Speterdefine_pd_global(intx, ConditionalMoveLimit,         3);
4919304Speterdefine_pd_global(intx, FLOATPRESSURE,                64);
5019304Speterdefine_pd_global(intx, FreqInlineSize,               325);
5119304Speterdefine_pd_global(intx, MinJumpTableSize,             10);
5219304Speterdefine_pd_global(intx, INTPRESSURE,                  25);
5319304Speterdefine_pd_global(intx, InteriorEntryAlignment,       16);
5419304Speterdefine_pd_global(intx, NewSizeThreadIncrease, ScaleForWordSize(4*K));
5519304Speterdefine_pd_global(intx, LoopUnrollLimit,              60);
5619304Speterdefine_pd_global(intx, LoopPercentProfileLimit,      10);
5719304Speterdefine_pd_global(intx, PostLoopMultiversioning,      false);
5819304Speter// InitialCodeCacheSize derived from specjbb2000 run.
5919304Speterdefine_pd_global(intx, InitialCodeCacheSize,         2496*K); // Integral multiple of CodeCacheExpansionSize
6019304Speterdefine_pd_global(intx, CodeCacheExpansionSize,       64*K);
6119304Speter
6219304Speter// Ergonomics related flags
6319304Speterdefine_pd_global(uint64_t,MaxRAM,                    128ULL*G);
6419304Speterdefine_pd_global(intx, RegisterCostAreaRatio,        16000);
6519304Speter
6619304Speter// Peephole and CISC spilling both break the graph, and so makes the
6719304Speter// scheduler sick.
6819304Speterdefine_pd_global(bool, OptoPeephole,                 false);
6919304Speterdefine_pd_global(bool, UseCISCSpill,                 true);
7019304Speterdefine_pd_global(bool, OptoScheduling,               false);
7119304Speterdefine_pd_global(bool, OptoBundling,                 false);
7219304Speterdefine_pd_global(bool, OptoRegScheduling,            false);
7319304Speterdefine_pd_global(bool, SuperWordLoopUnrollAnalysis,  true);
7419304Speterdefine_pd_global(bool, IdealizeClearArrayNode,       true);
7519304Speter
7619304Speterdefine_pd_global(intx, ReservedCodeCacheSize,        48*M);
7719304Speterdefine_pd_global(intx, NonProfiledCodeHeapSize,      21*M);
7819304Speterdefine_pd_global(intx, ProfiledCodeHeapSize,         22*M);
7919304Speterdefine_pd_global(intx, NonNMethodCodeHeapSize,       5*M );
8019304Speterdefine_pd_global(uintx, CodeCacheMinBlockLength,     4);
8119304Speterdefine_pd_global(uintx, CodeCacheMinimumUseSpace,    400*K);
8219304Speter
8319304Speter// Heap related flags
8419304Speterdefine_pd_global(uintx,MetaspaceSize,    ScaleForWordSize(16*M));
8519304Speter
8619304Speter// Ergonomics related flags
8719304Speterdefine_pd_global(bool, NeverActAsServerClassMachine, false);
8819304Speter
8919304Speterdefine_pd_global(bool,  TrapBasedRangeChecks,        false); // Not needed.
9019304Speter
9119304Speter#endif // CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
9219304Speter