4360113: Evict nmethods when code cache gets full
Summary: Speculatively unload the oldest nmethods when code cache gets full.
Reviewed-by: never, kvn
Contributed-by: eric.caspole@amd.com
//
// Copyright 1999-2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions.
//
//
// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!
allocation.hpp c1_globals.hpp
c1_CFGPrinter.cpp c1_CFGPrinter.hpp
c1_CFGPrinter.cpp c1_IR.hpp
c1_CFGPrinter.cpp c1_InstructionPrinter.hpp
c1_CFGPrinter.cpp c1_LIR.hpp
c1_CFGPrinter.cpp c1_LinearScan.hpp
c1_CFGPrinter.cpp c1_ValueStack.hpp
c1_CFGPrinter.hpp c1_Compilation.hpp
c1_CFGPrinter.hpp c1_Instruction.hpp
cardTableModRefBS.cpp c1_LIR.hpp
cardTableModRefBS.cpp c1_LIRGenerator.hpp
c1_Canonicalizer.cpp c1_Canonicalizer.hpp
c1_Canonicalizer.cpp c1_InstructionPrinter.hpp
c1_Canonicalizer.cpp ciArray.hpp
c1_Canonicalizer.cpp sharedRuntime.hpp
c1_Canonicalizer.hpp c1_Instruction.hpp
c1_CodeStubs.hpp array.hpp
c1_CodeStubs.hpp c1_FrameMap.hpp
c1_CodeStubs.hpp c1_IR.hpp
c1_CodeStubs.hpp c1_Instruction.hpp
c1_CodeStubs.hpp c1_LIR.hpp
c1_CodeStubs.hpp c1_Runtime1.hpp
c1_CodeStubs_<arch>.cpp c1_CodeStubs.hpp
c1_CodeStubs_<arch>.cpp c1_FrameMap.hpp
c1_CodeStubs_<arch>.cpp c1_LIRAssembler.hpp
c1_CodeStubs_<arch>.cpp c1_MacroAssembler.hpp
c1_CodeStubs_<arch>.cpp c1_Runtime1.hpp
c1_CodeStubs_<arch>.cpp g1SATBCardTableModRefBS.hpp
c1_CodeStubs_<arch>.cpp nativeInst_<arch>.hpp
c1_CodeStubs_<arch>.cpp sharedRuntime.hpp
c1_CodeStubs_<arch>.cpp vmreg_<arch>.inline.hpp
c1_Compilation.cpp c1_CFGPrinter.hpp
c1_Compilation.cpp c1_Compilation.hpp
c1_Compilation.cpp c1_IR.hpp
c1_Compilation.cpp c1_LIRAssembler.hpp
c1_Compilation.cpp c1_LinearScan.hpp
c1_Compilation.cpp c1_MacroAssembler.hpp
c1_Compilation.cpp c1_ValueMap.hpp
c1_Compilation.cpp c1_ValueStack.hpp
c1_Compilation.cpp ciEnv.hpp
c1_Compilation.cpp debugInfoRec.hpp
c1_Compilation.hpp exceptionHandlerTable.hpp
c1_Compilation.hpp resourceArea.hpp
c1_Compiler.cpp allocation.hpp
c1_Compiler.cpp allocation.inline.hpp
c1_Compiler.cpp arguments.hpp
c1_Compiler.cpp c1_Compilation.hpp
c1_Compiler.cpp c1_Compiler.hpp
c1_Compiler.cpp c1_FrameMap.hpp
c1_Compiler.cpp c1_MacroAssembler.hpp
c1_Compiler.cpp c1_Runtime1.hpp
c1_Compiler.cpp c1_ValueType.hpp
c1_Compiler.cpp compileBroker.hpp
c1_Compiler.cpp compilerOracle.hpp
c1_Compiler.cpp interfaceSupport.hpp
c1_Compiler.cpp linkResolver.hpp
c1_Compiler.cpp nativeLookup.hpp
c1_Compiler.cpp resourceArea.hpp
c1_Compiler.cpp sharedRuntime.hpp
c1_Compiler.hpp abstractCompiler.hpp
c1_Defs.cpp c1_Defs.hpp
c1_Defs.hpp globalDefinitions.hpp
c1_Defs.hpp register_<arch>.hpp
c1_Defs_<arch>.hpp generate_platform_dependent_include
c1_FpuStackSim.hpp allocation.hpp
c1_FpuStackSim.hpp c1_FrameMap.hpp
c1_FpuStackSim_<arch>.cpp array.hpp
c1_FpuStackSim_<arch>.cpp c1_FpuStackSim.hpp
c1_FpuStackSim_<arch>.cpp c1_FrameMap.hpp
c1_FpuStackSim_<arch>.cpp ostream.hpp
c1_FpuStackSim_<arch>.hpp generate_platform_dependent_include
c1_FrameMap.cpp c1_FrameMap.hpp
c1_FrameMap.cpp c1_LIR.hpp
c1_FrameMap.cpp sharedRuntime.hpp
c1_FrameMap.cpp vmreg_<arch>.inline.hpp
c1_FrameMap.hpp allocation.hpp
c1_FrameMap.hpp assembler.hpp
c1_FrameMap.hpp c1_Defs.hpp
c1_FrameMap.hpp c1_LIR.hpp
c1_FrameMap.hpp frame.hpp
c1_FrameMap.hpp globalDefinitions.hpp
c1_FrameMap.hpp synchronizer.hpp
c1_FrameMap.hpp vmreg.hpp
c1_FrameMap_<arch>.cpp c1_FrameMap.hpp
c1_FrameMap_<arch>.cpp c1_LIR.hpp
c1_FrameMap_<arch>.cpp sharedRuntime.hpp
c1_FrameMap_<arch>.cpp vmreg_<arch>.inline.hpp
c1_FrameMap_<arch>.hpp generate_platform_dependent_include
c1_globals.cpp c1_globals.hpp
c1_globals.hpp c1_globals_<arch>.hpp
c1_globals.hpp c1_globals_<os_family>.hpp
c1_globals.hpp globals.hpp
c1_globals_<arch>.hpp globalDefinitions.hpp
c1_globals_<arch>.hpp macros.hpp
c1_globals_<os_family>.hpp globalDefinitions.hpp
c1_globals_<os_family>.hpp macros.hpp
c1_GraphBuilder.cpp bitMap.inline.hpp
c1_GraphBuilder.cpp bytecode.hpp
c1_GraphBuilder.cpp c1_CFGPrinter.hpp
c1_GraphBuilder.cpp c1_Canonicalizer.hpp
c1_GraphBuilder.cpp c1_Compilation.hpp
c1_GraphBuilder.cpp c1_GraphBuilder.hpp
c1_GraphBuilder.cpp c1_InstructionPrinter.hpp
c1_GraphBuilder.cpp ciField.hpp
c1_GraphBuilder.cpp ciKlass.hpp
c1_GraphBuilder.cpp sharedRuntime.hpp
c1_GraphBuilder.hpp c1_IR.hpp
c1_GraphBuilder.hpp c1_Instruction.hpp
c1_GraphBuilder.hpp c1_ValueMap.hpp
c1_GraphBuilder.hpp c1_ValueStack.hpp
c1_GraphBuilder.hpp ciMethodData.hpp
c1_GraphBuilder.hpp ciStreams.hpp
c1_IR.cpp bitMap.inline.hpp
c1_IR.cpp c1_Compilation.hpp
c1_IR.cpp c1_FrameMap.hpp
c1_IR.cpp c1_GraphBuilder.hpp
c1_IR.cpp c1_IR.hpp
c1_IR.cpp c1_InstructionPrinter.hpp
c1_IR.cpp c1_Optimizer.hpp
c1_IR.hpp allocation.hpp
c1_IR.hpp c1_Instruction.hpp
c1_IR.hpp ciExceptionHandler.hpp
c1_IR.hpp ciMethod.hpp
c1_IR.hpp ciStreams.hpp
c1_Instruction.cpp c1_IR.hpp
c1_Instruction.cpp c1_Instruction.hpp
c1_Instruction.cpp c1_InstructionPrinter.hpp
c1_Instruction.cpp c1_ValueStack.hpp
c1_Instruction.cpp ciObjArrayKlass.hpp
c1_Instruction.cpp ciTypeArrayKlass.hpp
c1_Instruction.hpp c1_Compilation.hpp
c1_Instruction.hpp c1_LIR.hpp
c1_Instruction.hpp c1_ValueType.hpp
c1_Instruction.hpp ciField.hpp
c1_InstructionPrinter.cpp c1_InstructionPrinter.hpp
c1_InstructionPrinter.cpp c1_ValueStack.hpp
c1_InstructionPrinter.cpp ciArray.hpp
c1_InstructionPrinter.cpp ciInstance.hpp
c1_InstructionPrinter.cpp ciObject.hpp
c1_InstructionPrinter.hpp c1_IR.hpp
c1_InstructionPrinter.hpp c1_Instruction.hpp
c1_InstructionPrinter.hpp c1_Runtime1.hpp
c1_LIR.cpp c1_InstructionPrinter.hpp
c1_LIR.cpp c1_LIR.hpp
c1_LIR.cpp c1_LIRAssembler.hpp
c1_LIR.cpp ciInstance.hpp
c1_LIR.cpp sharedRuntime.hpp
c1_LIR.hpp c1_ValueType.hpp
c1_LIRAssembler.cpp c1_Compilation.hpp
c1_LIRAssembler.cpp c1_Instruction.hpp
c1_LIRAssembler.cpp c1_InstructionPrinter.hpp
c1_LIRAssembler.cpp c1_LIRAssembler.hpp
c1_LIRAssembler.cpp c1_MacroAssembler.hpp
c1_LIRAssembler.cpp c1_ValueStack.hpp
c1_LIRAssembler.cpp ciInstance.hpp
c1_LIRAssembler.cpp nativeInst_<arch>.hpp
c1_LIRAssembler.cpp vmreg_<arch>.inline.hpp
c1_LIRAssembler.hpp c1_CodeStubs.hpp
c1_LIRAssembler.hpp ciMethodData.hpp
c1_LIRAssembler.hpp methodDataOop.hpp
c1_LIRAssembler.hpp top.hpp
c1_LIRAssembler_<arch>.cpp barrierSet.hpp
c1_LIRAssembler_<arch>.cpp c1_Compilation.hpp
c1_LIRAssembler_<arch>.cpp c1_LIRAssembler.hpp
c1_LIRAssembler_<arch>.cpp c1_MacroAssembler.hpp
c1_LIRAssembler_<arch>.cpp c1_Runtime1.hpp
c1_LIRAssembler_<arch>.cpp c1_ValueStack.hpp
c1_LIRAssembler_<arch>.cpp cardTableModRefBS.hpp
c1_LIRAssembler_<arch>.cpp ciArrayKlass.hpp
c1_LIRAssembler_<arch>.cpp ciInstance.hpp
c1_LIRAssembler_<arch>.cpp collectedHeap.hpp
c1_LIRAssembler_<arch>.cpp nativeInst_<arch>.hpp
c1_LIRAssembler_<arch>.cpp objArrayKlass.hpp
c1_LIRAssembler_<arch>.cpp sharedRuntime.hpp
c1_LIRAssembler_<arch>.hpp generate_platform_dependent_include
c1_LIRGenerator.cpp bitMap.inline.hpp
c1_LIRGenerator.cpp c1_Compilation.hpp
c1_LIRGenerator.cpp c1_FrameMap.hpp
c1_LIRGenerator.cpp c1_Instruction.hpp
c1_LIRGenerator.cpp c1_LIRAssembler.hpp
c1_LIRGenerator.cpp c1_LIRGenerator.hpp
c1_LIRGenerator.cpp c1_ValueStack.hpp
c1_LIRGenerator.cpp ciArrayKlass.hpp
c1_LIRGenerator.cpp ciInstance.hpp
c1_LIRGenerator.cpp heapRegion.hpp
c1_LIRGenerator.cpp sharedRuntime.hpp
c1_LIRGenerator.hpp c1_Instruction.hpp
c1_LIRGenerator.hpp c1_LIR.hpp
c1_LIRGenerator.hpp ciMethodData.hpp
c1_LIRGenerator.hpp sizes.hpp
c1_LIRGenerator_<arch>.cpp c1_Compilation.hpp
c1_LIRGenerator_<arch>.cpp c1_FrameMap.hpp
c1_LIRGenerator_<arch>.cpp c1_Instruction.hpp
c1_LIRGenerator_<arch>.cpp c1_LIRAssembler.hpp
c1_LIRGenerator_<arch>.cpp c1_LIRGenerator.hpp
c1_LIRGenerator_<arch>.cpp c1_Runtime1.hpp
c1_LIRGenerator_<arch>.cpp c1_ValueStack.hpp
c1_LIRGenerator_<arch>.cpp ciArray.hpp
c1_LIRGenerator_<arch>.cpp ciObjArrayKlass.hpp
c1_LIRGenerator_<arch>.cpp ciTypeArrayKlass.hpp
c1_LIRGenerator_<arch>.cpp sharedRuntime.hpp
c1_LIRGenerator_<arch>.cpp vmreg_<arch>.inline.hpp
c1_LinearScan.cpp bitMap.inline.hpp
c1_LinearScan.cpp c1_CFGPrinter.hpp
c1_LinearScan.cpp c1_CodeStubs.hpp
c1_LinearScan.cpp c1_Compilation.hpp
c1_LinearScan.cpp c1_FrameMap.hpp
c1_LinearScan.cpp c1_IR.hpp
c1_LinearScan.cpp c1_LIRGenerator.hpp
c1_LinearScan.cpp c1_LinearScan.hpp
c1_LinearScan.cpp c1_ValueStack.hpp
c1_LinearScan.cpp vmreg_<arch>.inline.hpp
c1_LinearScan.hpp c1_FpuStackSim.hpp
c1_LinearScan.hpp c1_FrameMap.hpp
c1_LinearScan.hpp c1_IR.hpp
c1_LinearScan.hpp c1_Instruction.hpp
c1_LinearScan.hpp c1_LIR.hpp
c1_LinearScan.hpp c1_LIRGenerator.hpp
c1_LinearScan_<arch>.cpp bitMap.inline.hpp
c1_LinearScan_<arch>.cpp c1_Instruction.hpp
c1_LinearScan_<arch>.cpp c1_LinearScan.hpp
c1_LinearScan_<arch>.hpp generate_platform_dependent_include
c1_MacroAssembler.hpp assembler.hpp
c1_MacroAssembler.hpp assembler_<arch>.inline.hpp
c1_MacroAssembler_<arch>.cpp arrayOop.hpp
c1_MacroAssembler_<arch>.cpp biasedLocking.hpp
c1_MacroAssembler_<arch>.cpp c1_MacroAssembler.hpp
c1_MacroAssembler_<arch>.cpp c1_Runtime1.hpp
c1_MacroAssembler_<arch>.cpp collectedHeap.hpp
c1_MacroAssembler_<arch>.cpp interpreter.hpp
c1_MacroAssembler_<arch>.cpp markOop.hpp
c1_MacroAssembler_<arch>.cpp os.hpp
c1_MacroAssembler_<arch>.cpp stubRoutines.hpp
c1_MacroAssembler_<arch>.cpp synchronizer.hpp
c1_MacroAssembler_<arch>.cpp systemDictionary.hpp
c1_MacroAssembler_<arch>.hpp generate_platform_dependent_include
c1_Optimizer.cpp bitMap.inline.hpp
c1_Optimizer.cpp c1_Canonicalizer.hpp
c1_Optimizer.cpp c1_Optimizer.hpp
c1_Optimizer.cpp c1_ValueMap.hpp
c1_Optimizer.cpp c1_ValueSet.hpp
c1_Optimizer.cpp c1_ValueStack.hpp
c1_Optimizer.hpp allocation.hpp
c1_Optimizer.hpp c1_IR.hpp
c1_Optimizer.hpp c1_Instruction.hpp
c1_Runtime1.cpp allocation.inline.hpp
c1_Runtime1.cpp barrierSet.hpp
c1_Runtime1.cpp biasedLocking.hpp
c1_Runtime1.cpp bytecode.hpp
c1_Runtime1.cpp c1_CodeStubs.hpp
c1_Runtime1.cpp c1_Defs.hpp
c1_Runtime1.cpp c1_FrameMap.hpp
c1_Runtime1.cpp c1_LIRAssembler.hpp
c1_Runtime1.cpp c1_MacroAssembler.hpp
c1_Runtime1.cpp c1_Runtime1.hpp
c1_Runtime1.cpp codeBlob.hpp
c1_Runtime1.cpp codeBuffer.hpp
c1_Runtime1.cpp collectedHeap.hpp
c1_Runtime1.cpp compilationPolicy.hpp
c1_Runtime1.cpp compiledIC.hpp
c1_Runtime1.cpp copy.hpp
c1_Runtime1.cpp disassembler.hpp
c1_Runtime1.cpp events.hpp
c1_Runtime1.cpp interfaceSupport.hpp
c1_Runtime1.cpp interpreter.hpp
c1_Runtime1.cpp javaCalls.hpp
c1_Runtime1.cpp objArrayKlass.hpp
c1_Runtime1.cpp oop.inline.hpp
c1_Runtime1.cpp oopFactory.hpp
c1_Runtime1.cpp pcDesc.hpp
c1_Runtime1.cpp resourceArea.hpp
c1_Runtime1.cpp scopeDesc.hpp
c1_Runtime1.cpp sharedRuntime.hpp
c1_Runtime1.cpp systemDictionary.hpp
c1_Runtime1.cpp threadCritical.hpp
c1_Runtime1.cpp vframe.hpp
c1_Runtime1.cpp vframeArray.hpp
c1_Runtime1.cpp vmSymbols.hpp
c1_Runtime1.cpp vtableStubs.hpp
c1_Runtime1.hpp allocation.hpp
c1_Runtime1.hpp c1_FrameMap.hpp
c1_Runtime1.hpp deoptimization.hpp
c1_Runtime1.hpp interpreter.hpp
c1_Runtime1.hpp stubs.hpp
c1_Runtime1_<arch>.cpp c1_Defs.hpp
c1_Runtime1_<arch>.cpp c1_MacroAssembler.hpp
c1_Runtime1_<arch>.cpp c1_Runtime1.hpp
c1_Runtime1_<arch>.cpp compiledICHolderOop.hpp
c1_Runtime1_<arch>.cpp interpreter.hpp
c1_Runtime1_<arch>.cpp jvmtiExport.hpp
c1_Runtime1_<arch>.cpp nativeInst_<arch>.hpp
c1_Runtime1_<arch>.cpp oop.inline.hpp
c1_Runtime1_<arch>.cpp register_<arch>.hpp
c1_Runtime1_<arch>.cpp sharedRuntime.hpp
c1_Runtime1_<arch>.cpp signature.hpp
c1_Runtime1_<arch>.cpp vframeArray.hpp
c1_Runtime1_<arch>.cpp vmreg_<arch>.inline.hpp
c1_ValueMap.cpp bitMap.inline.hpp
c1_ValueMap.cpp c1_Canonicalizer.hpp
c1_ValueMap.cpp c1_IR.hpp
c1_ValueMap.cpp c1_ValueMap.hpp
c1_ValueMap.hpp allocation.hpp
c1_ValueMap.hpp c1_Instruction.hpp
c1_ValueMap.hpp c1_ValueSet.hpp
c1_ValueSet.cpp c1_ValueSet.hpp
c1_ValueSet.hpp allocation.hpp
c1_ValueSet.hpp bitMap.inline.hpp
c1_ValueSet.hpp c1_Instruction.hpp
c1_ValueStack.cpp c1_IR.hpp
c1_ValueStack.cpp c1_InstructionPrinter.hpp
c1_ValueStack.cpp c1_ValueStack.hpp
c1_ValueStack.hpp c1_Instruction.hpp
c1_ValueType.cpp c1_ValueType.hpp
c1_ValueType.cpp ciArray.hpp
c1_ValueType.cpp ciInstance.hpp
c1_ValueType.cpp ciNullObject.hpp
c1_ValueType.hpp c1_Compilation.hpp
c1_ValueType.hpp ciConstant.hpp
ciEnv.cpp c1_Runtime1.hpp
codeBlob.cpp c1_Runtime1.hpp
compileBroker.cpp c1_Compiler.hpp
frame_<arch>.cpp c1_Runtime1.hpp
globals.cpp c1_globals.hpp
globals.hpp c1_globals_<arch>.hpp
globals.hpp c1_globals_<os_family>.hpp
instanceKlass.cpp c1_Compiler.hpp
interpreter_<arch_model>.cpp c1_Runtime1.hpp
java.cpp c1_Compiler.hpp
java.cpp c1_Runtime1.hpp
nativeInst_<arch>.cpp c1_Runtime1.hpp
oopMap.cpp c1_Defs.hpp
os_<os_family>.cpp c1_Runtime1.hpp
os_<os_arch>.cpp c1_Runtime1.hpp
safepoint.cpp c1_globals.hpp
sharedRuntime.cpp c1_Runtime1.hpp
sharedRuntime_<arch_model>.cpp c1_Runtime1.hpp
thread.cpp c1_Compiler.hpp
top.hpp c1_globals.hpp
vmStructs.hpp c1_Runtime1.hpp