From bc52e8443ead19ed758a12a758673f9922a57eeb Mon Sep 17 00:00:00 2001 From: Nils Eliasson Date: Thu, 13 Nov 2014 14:42:54 +0100 Subject: [PATCH 01/12] 8061256: com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java timed out Must not be at safepoint when taking CompileQueue_lock Reviewed-by: kvn, anoll --- .../src/share/vm/compiler/compileBroker.cpp | 28 +++++++++---------- .../src/share/vm/compiler/compileBroker.hpp | 5 +--- .../src/share/vm/runtime/vm_operations.hpp | 1 + 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 0ab0dae2dd6..2fa80c675dd 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -594,7 +594,7 @@ void CompileTask::log_task_done(CompileLog* log) { * Add a CompileTask to a CompileQueue. */ void CompileQueue::add(CompileTask* task) { - assert(lock()->owned_by_self(), "must own lock"); + assert(MethodCompileQueue_lock->owned_by_self(), "must own lock"); task->set_next(NULL); task->set_prev(NULL); @@ -625,7 +625,7 @@ void CompileQueue::add(CompileTask* task) { } // Notify CompilerThreads that a task is available. - lock()->notify_all(); + MethodCompileQueue_lock->notify_all(); } /** @@ -635,7 +635,7 @@ void CompileQueue::add(CompileTask* task) { * compilation is disabled. */ void CompileQueue::free_all() { - MutexLocker mu(lock()); + MutexLocker mu(MethodCompileQueue_lock); CompileTask* next = _first; // Iterate over all tasks in the compile queue @@ -653,14 +653,14 @@ void CompileQueue::free_all() { _first = NULL; // Wake up all threads that block on the queue. - lock()->notify_all(); + MethodCompileQueue_lock->notify_all(); } /** * Get the next CompileTask from a CompileQueue */ CompileTask* CompileQueue::get() { - MutexLocker locker(lock()); + MutexLocker locker(MethodCompileQueue_lock); // If _first is NULL we have no more compile jobs. There are two reasons for // having no compile jobs: First, we compiled everything we wanted. Second, // we ran out of code cache so compilation has been disabled. In the latter @@ -681,7 +681,7 @@ CompileTask* CompileQueue::get() { // We need a timed wait here, since compiler threads can exit if compilation // is disabled forever. We use 5 seconds wait time; the exiting of compiler threads // is not critical and we do not want idle compiler threads to wake up too often. - lock()->wait(!Mutex::_no_safepoint_check_flag, 5*1000); + MethodCompileQueue_lock->wait(!Mutex::_no_safepoint_check_flag, 5*1000); } if (CompileBroker::is_compilation_disabled_forever()) { @@ -701,7 +701,7 @@ CompileTask* CompileQueue::get() { // Clean & deallocate stale compile tasks. // Temporarily releases MethodCompileQueue lock. void CompileQueue::purge_stale_tasks() { - assert(lock()->owned_by_self(), "must own lock"); + assert(MethodCompileQueue_lock->owned_by_self(), "must own lock"); if (_first_stale != NULL) { // Stale tasks are purged when MCQ lock is released, // but _first_stale updates are protected by MCQ lock. @@ -710,7 +710,7 @@ void CompileQueue::purge_stale_tasks() { CompileTask* head = _first_stale; _first_stale = NULL; { - MutexUnlocker ul(lock()); + MutexUnlocker ul(MethodCompileQueue_lock); for (CompileTask* task = head; task != NULL; ) { CompileTask* next_task = task->next(); CompileTaskWrapper ctw(task); // Frees the task @@ -722,7 +722,7 @@ void CompileQueue::purge_stale_tasks() { } void CompileQueue::remove(CompileTask* task) { - assert(lock()->owned_by_self(), "must own lock"); + assert(MethodCompileQueue_lock->owned_by_self(), "must own lock"); if (task->prev() != NULL) { task->prev()->set_next(task->next()); } else { @@ -742,7 +742,7 @@ void CompileQueue::remove(CompileTask* task) { } void CompileQueue::remove_and_mark_stale(CompileTask* task) { - assert(lock()->owned_by_self(), "must own lock"); + assert(MethodCompileQueue_lock->owned_by_self(), "must own lock"); remove(task); // Enqueue the task for reclamation (should be done outside MCQ lock) @@ -780,7 +780,7 @@ void CompileBroker::print_compile_queues(outputStream* st) { } void CompileQueue::print(outputStream* st) { - assert(lock()->owned_by_self(), "must own lock"); + assert(MethodCompileQueue_lock->owned_by_self(), "must own lock"); st->print_cr("Contents of %s", name()); st->print_cr("----------------------------"); CompileTask* task = _first; @@ -1066,11 +1066,11 @@ void CompileBroker::init_compiler_sweeper_threads(int c1_compiler_count, int c2_ #endif // !ZERO && !SHARK // Initialize the compilation queue if (c2_compiler_count > 0) { - _c2_compile_queue = new CompileQueue("C2 compile queue", MethodCompileQueue_lock); + _c2_compile_queue = new CompileQueue("C2 compile queue"); _compilers[1]->set_num_compiler_threads(c2_compiler_count); } if (c1_compiler_count > 0) { - _c1_compile_queue = new CompileQueue("C1 compile queue", MethodCompileQueue_lock); + _c1_compile_queue = new CompileQueue("C1 compile queue"); _compilers[0]->set_num_compiler_threads(c1_compiler_count); } @@ -1214,7 +1214,7 @@ void CompileBroker::compile_method_base(methodHandle method, // Acquire our lock. { - MutexLocker locker(queue->lock(), thread); + MutexLocker locker(MethodCompileQueue_lock, thread); // Make sure the method has not slipped into the queues since // last we checked; note that those checks were "fast bail-outs". diff --git a/hotspot/src/share/vm/compiler/compileBroker.hpp b/hotspot/src/share/vm/compiler/compileBroker.hpp index e5b0484fc4c..e6d8bb9bdb9 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.hpp +++ b/hotspot/src/share/vm/compiler/compileBroker.hpp @@ -195,7 +195,6 @@ class CompilerCounters : public CHeapObj { class CompileQueue : public CHeapObj { private: const char* _name; - Monitor* _lock; CompileTask* _first; CompileTask* _last; @@ -206,9 +205,8 @@ class CompileQueue : public CHeapObj { void purge_stale_tasks(); public: - CompileQueue(const char* name, Monitor* lock) { + CompileQueue(const char* name) { _name = name; - _lock = lock; _first = NULL; _last = NULL; _size = 0; @@ -216,7 +214,6 @@ class CompileQueue : public CHeapObj { } const char* name() const { return _name; } - Monitor* lock() const { return _lock; } void add(CompileTask* task); void remove(CompileTask* task); diff --git a/hotspot/src/share/vm/runtime/vm_operations.hpp b/hotspot/src/share/vm/runtime/vm_operations.hpp index c8b4a3855fc..ae710ebf782 100644 --- a/hotspot/src/share/vm/runtime/vm_operations.hpp +++ b/hotspot/src/share/vm/runtime/vm_operations.hpp @@ -432,6 +432,7 @@ class VM_PrintCompileQueue: public VM_Operation { public: VM_PrintCompileQueue(outputStream* st) : _out(st) {} VMOp_Type type() const { return VMOp_PrintCompileQueue; } + Mode evaluation_mode() const { return _no_safepoint; } void doit(); }; From f81bd8ff29e46c32439e51559916cc041eee087c Mon Sep 17 00:00:00 2001 From: Igor Ignatyev Date: Mon, 17 Nov 2014 12:57:49 +0300 Subject: [PATCH 02/12] 8059732: improve hotspot_*test targets Reviewed-by: kvn, dholmes --- hotspot/test/Makefile | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/hotspot/test/Makefile b/hotspot/test/Makefile index 479851a3e5a..e0526fcf35c 100644 --- a/hotspot/test/Makefile +++ b/hotspot/test/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1995, 2014, 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 @@ -26,6 +26,10 @@ # Makefile to run various hotspot tests # +ALT_MAKE ?= closed + +-include $(ALT_MAKE)/Makefile + GETMIXEDPATH=echo # Utilities used @@ -305,14 +309,27 @@ jtreg_tests: prep $(PRODUCT_HOME) $(JTREG) PHONY_LIST += jtreg_tests +# flags used to execute java in test targets +TEST_FLAGS += -version -Xinternalversion -X -help + +sanitytest: prep $(PRODUCT_HOME) + @for flag in $(TEST_FLAGS); \ + do \ + echo Executing java $(JAVA_OPTIONS) $$flag; \ + $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) $$flag; \ + res=$$?; \ + if [ $$res -ne 0 ]; then \ + exit $$res; \ + fi; \ + done + +PHONY_LIST += sanitytest + ################################################################ # clienttest (make sure various basic java client options work) -hotspot_clienttest clienttest: prep $(PRODUCT_HOME) - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X +hotspot_clienttest clienttest: sanitytest $(RM) $(PRODUCT_HOME)/jre/lib/*/client/classes.jsa $(RM) $(PRODUCT_HOME)/jre/bin/client/classes.jsa $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -Xshare:dump @@ -323,10 +340,7 @@ PHONY_LIST += hotspot_clienttest clienttest # minimaltest (make sure various basic java minimal options work) -hotspot_minimaltest minimaltest: prep $(PRODUCT_HOME) - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X +hotspot_minimaltest minimaltest: sanitytest PHONY_LIST += hotspot_minimaltest minimaltest @@ -334,10 +348,7 @@ PHONY_LIST += hotspot_minimaltest minimaltest # servertest (make sure various basic java server options work) -hotspot_servertest servertest: prep $(PRODUCT_HOME) - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -version - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -help - $(PRODUCT_HOME)/bin/java $(JAVA_OPTIONS) -X +hotspot_servertest servertest: sanitytest PHONY_LIST += hotspot_servertest servertest From f3d9096e4dac9a267d8e888945d13dd18732c304 Mon Sep 17 00:00:00 2001 From: Vladimir Ivanov Date: Mon, 17 Nov 2014 14:02:45 -0800 Subject: [PATCH 03/12] 8062258: compiler/debug/TraceIterativeGVN.java segfaults in trace_PhaseIterGVN Reviewed-by: kvn --- hotspot/src/share/vm/opto/machnode.cpp | 4 +++- hotspot/src/share/vm/opto/memnode.cpp | 2 ++ hotspot/src/share/vm/opto/memnode.hpp | 6 +++++- hotspot/src/share/vm/opto/multnode.cpp | 4 +++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/hotspot/src/share/vm/opto/machnode.cpp b/hotspot/src/share/vm/opto/machnode.cpp index a2112199f26..39c30782936 100644 --- a/hotspot/src/share/vm/opto/machnode.cpp +++ b/hotspot/src/share/vm/opto/machnode.cpp @@ -561,7 +561,9 @@ const Type *MachProjNode::bottom_type() const { const TypePtr *MachProjNode::adr_type() const { if (bottom_type() == Type::MEMORY) { // in(0) might be a narrow MemBar; otherwise we will report TypePtr::BOTTOM - const TypePtr* adr_type = in(0)->adr_type(); + Node* ctrl = in(0); + if (ctrl == NULL) return NULL; // node is dead + const TypePtr* adr_type = ctrl->adr_type(); #ifdef ASSERT if (!is_error_reported() && !Node::in_dump()) assert(adr_type != NULL, "source must have adr_type"); diff --git a/hotspot/src/share/vm/opto/memnode.cpp b/hotspot/src/share/vm/opto/memnode.cpp index 1be984c4e74..702cc9bbd7e 100644 --- a/hotspot/src/share/vm/opto/memnode.cpp +++ b/hotspot/src/share/vm/opto/memnode.cpp @@ -52,6 +52,7 @@ uint MemNode::size_of() const { return sizeof(*this); } const TypePtr *MemNode::adr_type() const { Node* adr = in(Address); + if (adr == NULL) return NULL; // node is dead const TypePtr* cross_check = NULL; DEBUG_ONLY(cross_check = _adr_type); return calculate_adr_type(adr->bottom_type(), cross_check); @@ -2741,6 +2742,7 @@ LoadStoreConditionalNode::LoadStoreConditionalNode( Node *c, Node *mem, Node *ad // Do we Match on this edge index or not? Do not match memory const TypePtr* ClearArrayNode::adr_type() const { Node *adr = in(3); + if (adr == NULL) return NULL; // node is dead return MemNode::calculate_adr_type(adr->bottom_type()); } diff --git a/hotspot/src/share/vm/opto/memnode.hpp b/hotspot/src/share/vm/opto/memnode.hpp index cbdd689fe8b..d32a4fa0c09 100644 --- a/hotspot/src/share/vm/opto/memnode.hpp +++ b/hotspot/src/share/vm/opto/memnode.hpp @@ -730,7 +730,11 @@ public: virtual int Opcode() const; virtual bool is_CFG() const { return false; } virtual const Type *bottom_type() const {return Type::MEMORY;} - virtual const TypePtr *adr_type() const { return in(0)->in(MemNode::Memory)->adr_type();} + virtual const TypePtr *adr_type() const { + Node* ctrl = in(0); + if (ctrl == NULL) return NULL; // node is dead + return ctrl->in(MemNode::Memory)->adr_type(); + } virtual uint ideal_reg() const { return 0;} // memory projections don't have a register virtual const Type *Value( PhaseTransform *phase ) const; #ifndef PRODUCT diff --git a/hotspot/src/share/vm/opto/multnode.cpp b/hotspot/src/share/vm/opto/multnode.cpp index 1da4b7789f4..c4d167faae9 100644 --- a/hotspot/src/share/vm/opto/multnode.cpp +++ b/hotspot/src/share/vm/opto/multnode.cpp @@ -102,7 +102,9 @@ const Type *ProjNode::bottom_type() const { const TypePtr *ProjNode::adr_type() const { if (bottom_type() == Type::MEMORY) { // in(0) might be a narrow MemBar; otherwise we will report TypePtr::BOTTOM - const TypePtr* adr_type = in(0)->adr_type(); + Node* ctrl = in(0); + if (ctrl == NULL) return NULL; // node is dead + const TypePtr* adr_type = ctrl->adr_type(); #ifdef ASSERT if (!is_error_reported() && !Node::in_dump()) assert(adr_type != NULL, "source must have adr_type"); From 68b0d32b05be03cd0851327105e08bd17717bc1c Mon Sep 17 00:00:00 2001 From: Zoltan Majo Date: Tue, 18 Nov 2014 19:44:45 +0100 Subject: [PATCH 04/12] 8062854: move compiler jtreg test to corresponding subfolders and use those in TEST.groups Move all test from directories to /; update TEST.groups to execute more tests Reviewed-by: drchase, kvn --- hotspot/test/TEST.groups | 317 +++++------------- .../{ => c1}/6478991/NullCheckTest.java | 0 .../{ => c1}/6579789/Test6579789.java | 0 .../{ => c1}/6756768/Test6756768.java | 0 .../{ => c1}/6756768/Test6756768_2.java | 0 .../{ => c1}/6757316/Test6757316.java | 0 .../{ => c1}/6758234/Test6758234.java | 0 .../6769124/TestArrayCopy6769124.java | 0 .../{ => c1}/6769124/TestDeoptInt6769124.java | 0 .../6769124/TestUnalignedLoad6769124.java | 0 .../{ => c1}/6795465/Test6795465.java | 0 .../test/compiler/{ => c1}/6849574/Test.java | 0 .../{ => c1}/6855215/Test6855215.java | 0 .../{ => c1}/6932496/Test6932496.java | 0 .../{ => c1}/7042153/Test7042153.java | 0 .../{ => c1}/7090976/Test7090976.java | 0 .../{ => c1}/7103261/Test7103261.java | 0 .../{ => c1}/7123108/Test7123108.java | 0 .../{ => c1}/8004051/Test8004051.java | 0 .../{ => c1}/8011706/Test8011706.java | 0 .../{ => c1}/8011771/Test8011771.java | 0 .../{ => c2}/5057225/Test5057225.java | 0 .../{ => c2}/5091921/Test5091921.java | 0 .../{ => c2}/5091921/Test6186134.java | 0 .../{ => c2}/5091921/Test6196102.java | 0 .../{ => c2}/5091921/Test6357214.java | 0 .../{ => c2}/5091921/Test6559156.java | 0 .../{ => c2}/5091921/Test6753639.java | 0 .../{ => c2}/5091921/Test6850611.java | 0 .../{ => c2}/5091921/Test6890943.java | 0 .../{ => c2}/5091921/Test6897150.java | 0 .../{ => c2}/5091921/Test6905845.java | 0 .../{ => c2}/5091921/Test6931567.java | 0 .../{ => c2}/5091921/Test6935022.java | 0 .../{ => c2}/5091921/Test6959129.java | 0 .../{ => c2}/5091921/Test6985295.java | 0 .../{ => c2}/5091921/Test6992759.java | 0 .../{ => c2}/5091921/Test7005594.java | 0 .../compiler/{ => c2}/5091921/Test7005594.sh | 2 +- .../{ => c2}/5091921/Test7020614.java | 0 .../{ => c2}/5091921/input6890943.txt | 0 .../{ => c2}/5091921/output6890943.txt | 0 .../{ => c2}/6340864/TestByteVect.java | 0 .../{ => c2}/6340864/TestDoubleVect.java | 0 .../{ => c2}/6340864/TestFloatVect.java | 0 .../{ => c2}/6340864/TestIntVect.java | 0 .../{ => c2}/6340864/TestLongVect.java | 0 .../{ => c2}/6340864/TestShortVect.java | 0 .../{ => c2}/6443505/Test6443505.java | 0 .../6589834/InlinedArrayCloneTestCase.java | 0 .../compiler/{ => c2}/6589834/Test_ia32.java | 0 .../test/compiler/{ => c2}/6603011/Test.java | 0 .../test/compiler/{ => c2}/6636138/Test1.java | 0 .../test/compiler/{ => c2}/6636138/Test2.java | 0 .../test/compiler/{ => c2}/6646019/Test.java | 0 .../compiler/{ => c2}/6646020/Tester.java | 0 .../test/compiler/{ => c2}/6661247/Test.java | 0 .../compiler/{ => c2}/6663621/IVTest.java | 0 .../compiler/{ => c2}/6663848/Tester.java | 0 .../{ => c2}/6663854/Test6663854.java | 0 .../test/compiler/{ => c2}/6695810/Test.java | 0 .../{ => c2}/6700047/Test6700047.java | 0 .../test/compiler/{ => c2}/6711100/Test.java | 0 .../test/compiler/{ => c2}/6711117/Test.java | 0 .../{ => c2}/6712835/Test6712835.java | 0 .../compiler/{ => c2}/6714694/Tester.java | 0 .../test/compiler/{ => c2}/6724218/Test.java | 0 .../{ => c2}/6732154/Test6732154.java | 0 .../compiler/{ => c2}/6741738/Tester.java | 0 .../{ => c2}/6772683/InterruptedTest.java | 0 .../{ => c2}/6792161/Test6792161.java | 0 .../{ => c2}/6795362/Test6795362.java | 0 .../{ => c2}/6796786/Test6796786.java | 0 .../test/compiler/{ => c2}/6799693/Test.java | 0 .../{ => c2}/6800154/Test6800154.java | 0 .../{ => c2}/6805724/Test6805724.java | 0 .../test/compiler/{ => c2}/6823453/Test.java | 0 .../test/compiler/{ => c2}/6832293/Test.java | 0 .../{ => c2}/6837011/Test6837011.java | 0 .../test/compiler/{ => c2}/6837094/Test.java | 0 .../test/compiler/{ => c2}/6843752/Test.java | 0 .../test/compiler/{ => c2}/6851282/Test.java | 0 .../{ => c2}/6852078/Test6852078.java | 0 .../{ => c2}/6857159/Test6857159.java | 0 .../compiler/{ => c2}/6857159/Test6857159.sh | 2 +- .../{ => c2}/6863155/Test6863155.java | 0 .../test/compiler/{ => c2}/6865031/Test.java | 0 .../test/compiler/{ => c2}/6866651/Test.java | 0 .../test/compiler/{ => c2}/6877254/Test.java | 0 .../{ => c2}/6880034/Test6880034.java | 0 .../{ => c2}/6885584/Test6885584.java | 0 .../{ => c2}/6894807/IsInstanceTest.java | 0 .../compiler/{ => c2}/6894807/Test6894807.sh | 2 +- .../test/compiler/{ => c2}/6901572/Test.java | 0 .../test/compiler/{ => c2}/6910484/Test.java | 0 .../test/compiler/{ => c2}/6910605/Test.java | 0 .../test/compiler/{ => c2}/6910618/Test.java | 0 .../test/compiler/{ => c2}/6912517/Test.java | 0 .../{ => c2}/6916644/Test6916644.java | 0 .../6921969/TestMultiplyLongHiZero.java | 0 .../{ => c2}/6930043/Test6930043.java | 0 .../6946040/TestCharShortByteSwap.java | 0 .../{ => c2}/6956668/Test6956668.java | 0 .../test/compiler/{ => c2}/6958485/Test.java | 0 .../{ => c2}/6968348/Test6968348.java | 0 .../test/compiler/{ => c2}/6973329/Test.java | 0 .../{ => c2}/7002666/Test7002666.java | 0 .../{ => c2}/7009359/Test7009359.java | 0 .../test/compiler/{ => c2}/7017746/Test.java | 0 .../{ => c2}/7024475/Test7024475.java | 0 .../test/compiler/{ => c2}/7029152/Test.java | 0 .../{ => c2}/7041100/Test7041100.java | 0 .../{ => c2}/7046096/Test7046096.java | 0 .../{ => c2}/7047069/Test7047069.java | 0 .../{ => c2}/7048332/Test7048332.java | 0 .../{ => c2}/7068051/Test7068051.java | 0 .../compiler/{ => c2}/7070134/Stemmer.java | 0 .../compiler/{ => c2}/7070134/Test7070134.sh | 2 +- hotspot/test/compiler/{ => c2}/7070134/words | 0 .../{ => c2}/7110586/Test7110586.java | 0 .../{ => c2}/7125879/Test7125879.java | 0 .../{ => c2}/7160610/Test7160610.java | 0 .../{ => c2}/7169782/Test7169782.java | 0 .../{ => c2}/7174363/Test7174363.java | 0 .../{ => c2}/7177917/Test7177917.java | 0 .../{ => c2}/7179138/Test7179138_1.java | 0 .../{ => c2}/7179138/Test7179138_2.java | 0 .../{ => c2}/7190310/Test7190310.java | 0 .../{ => c2}/7190310/Test7190310_unsafe.java | 0 .../{ => c2}/7192963/TestByteVect.java | 0 .../{ => c2}/7192963/TestDoubleVect.java | 0 .../{ => c2}/7192963/TestFloatVect.java | 0 .../{ => c2}/7192963/TestIntVect.java | 0 .../{ => c2}/7192963/TestLongVect.java | 0 .../{ => c2}/7192963/TestShortVect.java | 0 .../{ => c2}/7199742/Test7199742.java | 0 .../compiler/{ => c2}/7200264/Test7200264.sh | 2 +- .../{ => c2}/7200264/TestIntVect.java | 0 .../{ => c2}/8000805/Test8000805.java | 0 .../{ => c2}/8002069/Test8002069.java | 0 .../{ => c2}/8004741/Test8004741.java | 0 .../{ => c2}/8004867/TestIntAtomicCAS.java | 0 .../8004867/TestIntAtomicOrdered.java | 0 .../8004867/TestIntAtomicVolatile.java | 0 .../{ => c2}/8004867/TestIntUnsafeCAS.java | 0 .../8004867/TestIntUnsafeOrdered.java | 0 .../8004867/TestIntUnsafeVolatile.java | 0 .../{ => c2}/8005956/PolynomialRoot.java | 0 .../{ => c2}/8007294/Test8007294.java | 0 .../{ => c2}/8007722/Test8007722.java | 0 .../{ => codegen}/6378821/Test6378821.java | 0 .../compiler/{ => codegen}/6431242/Test.java | 0 .../{ => codegen}/6797305/Test6797305.java | 0 .../{ => codegen}/6814842/Test6814842.java | 0 .../{ => codegen}/6823354/Test6823354.java | 0 .../compiler/{ => codegen}/6875866/Test.java | 0 .../{ => codegen}/6879902/Test6879902.java | 0 .../{ => codegen}/6896617/Test6896617.java | 0 .../{ => codegen}/6909839/Test6909839.java | 0 .../compiler/{ => codegen}/6935535/Test.java | 0 .../compiler/{ => codegen}/6942326/Test.java | 0 .../{ => codegen}/7009231/Test7009231.java | 0 .../{ => codegen}/7088419/CRCTest.java | 0 .../{ => codegen}/7100757/Test7100757.java | 0 .../7119644/TestBooleanVect.java | 0 .../7119644/TestByteDoubleVect.java | 0 .../7119644/TestByteFloatVect.java | 0 .../7119644/TestByteIntVect.java | 0 .../7119644/TestByteLongVect.java | 0 .../7119644/TestByteShortVect.java | 0 .../{ => codegen}/7119644/TestByteVect.java | 0 .../7119644/TestCharShortVect.java | 0 .../{ => codegen}/7119644/TestCharVect.java | 0 .../{ => codegen}/7119644/TestDoubleVect.java | 0 .../7119644/TestFloatDoubleVect.java | 0 .../{ => codegen}/7119644/TestFloatVect.java | 0 .../7119644/TestIntDoubleVect.java | 0 .../7119644/TestIntFloatVect.java | 0 .../7119644/TestIntLongVect.java | 0 .../{ => codegen}/7119644/TestIntVect.java | 0 .../7119644/TestLongDoubleVect.java | 0 .../7119644/TestLongFloatVect.java | 0 .../{ => codegen}/7119644/TestLongVect.java | 0 .../7119644/TestShortDoubleVect.java | 0 .../7119644/TestShortFloatVect.java | 0 .../7119644/TestShortIntVect.java | 0 .../7119644/TestShortLongVect.java | 0 .../{ => codegen}/7119644/TestShortVect.java | 0 .../{ => codegen}/7184394/TestAESBase.java | 0 .../{ => codegen}/7184394/TestAESDecode.java | 0 .../{ => codegen}/7184394/TestAESEncode.java | 0 .../{ => codegen}/7184394/TestAESMain.java | 0 .../{ => codegen}/8001183/TestCharVect.java | 0 .../{ => codegen}/8005033/Test8005033.java | 0 .../{ => codegen}/8011901/Test8011901.java | 0 .../6934604/TestByteBoxing.java | 0 .../6934604/TestDoubleBoxing.java | 0 .../6934604/TestFloatBoxing.java | 0 .../6934604/TestIntBoxing.java | 0 .../6934604/TestLongBoxing.java | 0 .../6934604/TestShortBoxing.java | 0 .../UnsignedLoads.java | 0 .../{ => escapeAnalysis}/6689060/Test.java | 0 .../{ => escapeAnalysis}/6716441/Tester.java | 0 .../{ => escapeAnalysis}/6726999/Test.java | 0 .../{ => escapeAnalysis}/6775880/Test.java | 0 .../{ => escapeAnalysis}/6795161/Test.java | 0 .../{ => escapeAnalysis}/6895383/Test.java | 0 .../{ => escapeAnalysis}/6896727/Test.java | 0 .../Test8020215.java | 0 .../TestAllocatedEscapesPtrComparison.java | 0 ...tUnsafePutAddressNullObjMustNotEscape.java | 0 .../TestIntegerComparison.java | 0 .../{ => interpreter}/6539464/Test.java | 0 .../{ => interpreter}/6833129/Test.java | 0 .../{ => interpreter}/7116216/LargeFrame.java | 0 .../7116216/StackOverflow.java | 0 .../{ => intrinsics}/6982370/Test6982370.java | 0 .../{ => intrinsics}/8005419/Test8005419.java | 0 .../{ => jsr292}/6990212/Test6990212.java | 0 .../{ => jsr292}/7082949/Test7082949.java | 0 .../compiler/{ => loopopts}/6659207/Test.java | 0 .../compiler/{ => loopopts}/6855164/Test.java | 0 .../compiler/{ => loopopts}/6860469/Test.java | 0 .../{ => loopopts}/7044738/Test7044738.java | 0 .../{ => loopopts}/7052494/Test7052494.java | 0 .../compiler/{ => runtime}/6778657/Test.java | 0 .../compiler/{ => runtime}/6826736/Test.java | 0 .../{ => runtime}/6859338/Test6859338.java | 0 .../compiler/{ => runtime}/6863420/Test.java | 0 .../6865265/StackOverflowBug.java | 0 .../{ => runtime}/6891750/Test6891750.java | 0 .../compiler/{ => runtime}/6892265/Test.java | 0 .../{ => runtime}/7088020/Test7088020.java | 0 .../{ => runtime}/7141637/SpreadNullArg.java | 0 .../{ => runtime}/7196199/Test7196199.java | 0 .../{ => runtime}/8010927/Test8010927.java | 0 .../{ => runtime}/8015436/Test8015436.java | 0 .../8009761/Test8009761.java | 0 239 files changed, 83 insertions(+), 244 deletions(-) rename hotspot/test/compiler/{ => c1}/6478991/NullCheckTest.java (100%) rename hotspot/test/compiler/{ => c1}/6579789/Test6579789.java (100%) rename hotspot/test/compiler/{ => c1}/6756768/Test6756768.java (100%) rename hotspot/test/compiler/{ => c1}/6756768/Test6756768_2.java (100%) rename hotspot/test/compiler/{ => c1}/6757316/Test6757316.java (100%) rename hotspot/test/compiler/{ => c1}/6758234/Test6758234.java (100%) rename hotspot/test/compiler/{ => c1}/6769124/TestArrayCopy6769124.java (100%) rename hotspot/test/compiler/{ => c1}/6769124/TestDeoptInt6769124.java (100%) rename hotspot/test/compiler/{ => c1}/6769124/TestUnalignedLoad6769124.java (100%) rename hotspot/test/compiler/{ => c1}/6795465/Test6795465.java (100%) rename hotspot/test/compiler/{ => c1}/6849574/Test.java (100%) rename hotspot/test/compiler/{ => c1}/6855215/Test6855215.java (100%) rename hotspot/test/compiler/{ => c1}/6932496/Test6932496.java (100%) rename hotspot/test/compiler/{ => c1}/7042153/Test7042153.java (100%) rename hotspot/test/compiler/{ => c1}/7090976/Test7090976.java (100%) rename hotspot/test/compiler/{ => c1}/7103261/Test7103261.java (100%) rename hotspot/test/compiler/{ => c1}/7123108/Test7123108.java (100%) rename hotspot/test/compiler/{ => c1}/8004051/Test8004051.java (100%) rename hotspot/test/compiler/{ => c1}/8011706/Test8011706.java (100%) rename hotspot/test/compiler/{ => c1}/8011771/Test8011771.java (100%) rename hotspot/test/compiler/{ => c2}/5057225/Test5057225.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test5091921.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6186134.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6196102.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6357214.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6559156.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6753639.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6850611.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6890943.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6897150.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6905845.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6931567.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6935022.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6959129.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6985295.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test6992759.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test7005594.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/Test7005594.sh (98%) rename hotspot/test/compiler/{ => c2}/5091921/Test7020614.java (100%) rename hotspot/test/compiler/{ => c2}/5091921/input6890943.txt (100%) rename hotspot/test/compiler/{ => c2}/5091921/output6890943.txt (100%) rename hotspot/test/compiler/{ => c2}/6340864/TestByteVect.java (100%) rename hotspot/test/compiler/{ => c2}/6340864/TestDoubleVect.java (100%) rename hotspot/test/compiler/{ => c2}/6340864/TestFloatVect.java (100%) rename hotspot/test/compiler/{ => c2}/6340864/TestIntVect.java (100%) rename hotspot/test/compiler/{ => c2}/6340864/TestLongVect.java (100%) rename hotspot/test/compiler/{ => c2}/6340864/TestShortVect.java (100%) rename hotspot/test/compiler/{ => c2}/6443505/Test6443505.java (100%) rename hotspot/test/compiler/{ => c2}/6589834/InlinedArrayCloneTestCase.java (100%) rename hotspot/test/compiler/{ => c2}/6589834/Test_ia32.java (100%) rename hotspot/test/compiler/{ => c2}/6603011/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6636138/Test1.java (100%) rename hotspot/test/compiler/{ => c2}/6636138/Test2.java (100%) rename hotspot/test/compiler/{ => c2}/6646019/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6646020/Tester.java (100%) rename hotspot/test/compiler/{ => c2}/6661247/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6663621/IVTest.java (100%) rename hotspot/test/compiler/{ => c2}/6663848/Tester.java (100%) rename hotspot/test/compiler/{ => c2}/6663854/Test6663854.java (100%) rename hotspot/test/compiler/{ => c2}/6695810/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6700047/Test6700047.java (100%) rename hotspot/test/compiler/{ => c2}/6711100/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6711117/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6712835/Test6712835.java (100%) rename hotspot/test/compiler/{ => c2}/6714694/Tester.java (100%) rename hotspot/test/compiler/{ => c2}/6724218/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6732154/Test6732154.java (100%) rename hotspot/test/compiler/{ => c2}/6741738/Tester.java (100%) rename hotspot/test/compiler/{ => c2}/6772683/InterruptedTest.java (100%) rename hotspot/test/compiler/{ => c2}/6792161/Test6792161.java (100%) rename hotspot/test/compiler/{ => c2}/6795362/Test6795362.java (100%) rename hotspot/test/compiler/{ => c2}/6796786/Test6796786.java (100%) rename hotspot/test/compiler/{ => c2}/6799693/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6800154/Test6800154.java (100%) rename hotspot/test/compiler/{ => c2}/6805724/Test6805724.java (100%) rename hotspot/test/compiler/{ => c2}/6823453/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6832293/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6837011/Test6837011.java (100%) rename hotspot/test/compiler/{ => c2}/6837094/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6843752/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6851282/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6852078/Test6852078.java (100%) rename hotspot/test/compiler/{ => c2}/6857159/Test6857159.java (100%) rename hotspot/test/compiler/{ => c2}/6857159/Test6857159.sh (98%) rename hotspot/test/compiler/{ => c2}/6863155/Test6863155.java (100%) rename hotspot/test/compiler/{ => c2}/6865031/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6866651/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6877254/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6880034/Test6880034.java (100%) rename hotspot/test/compiler/{ => c2}/6885584/Test6885584.java (100%) rename hotspot/test/compiler/{ => c2}/6894807/IsInstanceTest.java (100%) rename hotspot/test/compiler/{ => c2}/6894807/Test6894807.sh (97%) rename hotspot/test/compiler/{ => c2}/6901572/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6910484/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6910605/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6910618/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6912517/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6916644/Test6916644.java (100%) rename hotspot/test/compiler/{ => c2}/6921969/TestMultiplyLongHiZero.java (100%) rename hotspot/test/compiler/{ => c2}/6930043/Test6930043.java (100%) rename hotspot/test/compiler/{ => c2}/6946040/TestCharShortByteSwap.java (100%) rename hotspot/test/compiler/{ => c2}/6956668/Test6956668.java (100%) rename hotspot/test/compiler/{ => c2}/6958485/Test.java (100%) rename hotspot/test/compiler/{ => c2}/6968348/Test6968348.java (100%) rename hotspot/test/compiler/{ => c2}/6973329/Test.java (100%) rename hotspot/test/compiler/{ => c2}/7002666/Test7002666.java (100%) rename hotspot/test/compiler/{ => c2}/7009359/Test7009359.java (100%) rename hotspot/test/compiler/{ => c2}/7017746/Test.java (100%) rename hotspot/test/compiler/{ => c2}/7024475/Test7024475.java (100%) rename hotspot/test/compiler/{ => c2}/7029152/Test.java (100%) rename hotspot/test/compiler/{ => c2}/7041100/Test7041100.java (100%) rename hotspot/test/compiler/{ => c2}/7046096/Test7046096.java (100%) rename hotspot/test/compiler/{ => c2}/7047069/Test7047069.java (100%) rename hotspot/test/compiler/{ => c2}/7048332/Test7048332.java (100%) rename hotspot/test/compiler/{ => c2}/7068051/Test7068051.java (100%) rename hotspot/test/compiler/{ => c2}/7070134/Stemmer.java (100%) rename hotspot/test/compiler/{ => c2}/7070134/Test7070134.sh (97%) rename hotspot/test/compiler/{ => c2}/7070134/words (100%) rename hotspot/test/compiler/{ => c2}/7110586/Test7110586.java (100%) rename hotspot/test/compiler/{ => c2}/7125879/Test7125879.java (100%) rename hotspot/test/compiler/{ => c2}/7160610/Test7160610.java (100%) rename hotspot/test/compiler/{ => c2}/7169782/Test7169782.java (100%) rename hotspot/test/compiler/{ => c2}/7174363/Test7174363.java (100%) rename hotspot/test/compiler/{ => c2}/7177917/Test7177917.java (100%) rename hotspot/test/compiler/{ => c2}/7179138/Test7179138_1.java (100%) rename hotspot/test/compiler/{ => c2}/7179138/Test7179138_2.java (100%) rename hotspot/test/compiler/{ => c2}/7190310/Test7190310.java (100%) rename hotspot/test/compiler/{ => c2}/7190310/Test7190310_unsafe.java (100%) rename hotspot/test/compiler/{ => c2}/7192963/TestByteVect.java (100%) rename hotspot/test/compiler/{ => c2}/7192963/TestDoubleVect.java (100%) rename hotspot/test/compiler/{ => c2}/7192963/TestFloatVect.java (100%) rename hotspot/test/compiler/{ => c2}/7192963/TestIntVect.java (100%) rename hotspot/test/compiler/{ => c2}/7192963/TestLongVect.java (100%) rename hotspot/test/compiler/{ => c2}/7192963/TestShortVect.java (100%) rename hotspot/test/compiler/{ => c2}/7199742/Test7199742.java (100%) rename hotspot/test/compiler/{ => c2}/7200264/Test7200264.sh (99%) rename hotspot/test/compiler/{ => c2}/7200264/TestIntVect.java (100%) rename hotspot/test/compiler/{ => c2}/8000805/Test8000805.java (100%) rename hotspot/test/compiler/{ => c2}/8002069/Test8002069.java (100%) rename hotspot/test/compiler/{ => c2}/8004741/Test8004741.java (100%) rename hotspot/test/compiler/{ => c2}/8004867/TestIntAtomicCAS.java (100%) rename hotspot/test/compiler/{ => c2}/8004867/TestIntAtomicOrdered.java (100%) rename hotspot/test/compiler/{ => c2}/8004867/TestIntAtomicVolatile.java (100%) rename hotspot/test/compiler/{ => c2}/8004867/TestIntUnsafeCAS.java (100%) rename hotspot/test/compiler/{ => c2}/8004867/TestIntUnsafeOrdered.java (100%) rename hotspot/test/compiler/{ => c2}/8004867/TestIntUnsafeVolatile.java (100%) rename hotspot/test/compiler/{ => c2}/8005956/PolynomialRoot.java (100%) rename hotspot/test/compiler/{ => c2}/8007294/Test8007294.java (100%) rename hotspot/test/compiler/{ => c2}/8007722/Test8007722.java (100%) rename hotspot/test/compiler/{ => codegen}/6378821/Test6378821.java (100%) rename hotspot/test/compiler/{ => codegen}/6431242/Test.java (100%) rename hotspot/test/compiler/{ => codegen}/6797305/Test6797305.java (100%) rename hotspot/test/compiler/{ => codegen}/6814842/Test6814842.java (100%) rename hotspot/test/compiler/{ => codegen}/6823354/Test6823354.java (100%) rename hotspot/test/compiler/{ => codegen}/6875866/Test.java (100%) rename hotspot/test/compiler/{ => codegen}/6879902/Test6879902.java (100%) rename hotspot/test/compiler/{ => codegen}/6896617/Test6896617.java (100%) rename hotspot/test/compiler/{ => codegen}/6909839/Test6909839.java (100%) rename hotspot/test/compiler/{ => codegen}/6935535/Test.java (100%) rename hotspot/test/compiler/{ => codegen}/6942326/Test.java (100%) rename hotspot/test/compiler/{ => codegen}/7009231/Test7009231.java (100%) rename hotspot/test/compiler/{ => codegen}/7088419/CRCTest.java (100%) rename hotspot/test/compiler/{ => codegen}/7100757/Test7100757.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestBooleanVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestByteDoubleVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestByteFloatVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestByteIntVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestByteLongVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestByteShortVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestByteVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestCharShortVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestCharVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestDoubleVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestFloatDoubleVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestFloatVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestIntDoubleVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestIntFloatVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestIntLongVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestIntVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestLongDoubleVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestLongFloatVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestLongVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestShortDoubleVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestShortFloatVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestShortIntVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestShortLongVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7119644/TestShortVect.java (100%) rename hotspot/test/compiler/{ => codegen}/7184394/TestAESBase.java (100%) rename hotspot/test/compiler/{ => codegen}/7184394/TestAESDecode.java (100%) rename hotspot/test/compiler/{ => codegen}/7184394/TestAESEncode.java (100%) rename hotspot/test/compiler/{ => codegen}/7184394/TestAESMain.java (100%) rename hotspot/test/compiler/{ => codegen}/8001183/TestCharVect.java (100%) rename hotspot/test/compiler/{ => codegen}/8005033/Test8005033.java (100%) rename hotspot/test/compiler/{ => codegen}/8011901/Test8011901.java (100%) rename hotspot/test/compiler/{ => eliminateAutobox}/6934604/TestByteBoxing.java (100%) rename hotspot/test/compiler/{ => eliminateAutobox}/6934604/TestDoubleBoxing.java (100%) rename hotspot/test/compiler/{ => eliminateAutobox}/6934604/TestFloatBoxing.java (100%) rename hotspot/test/compiler/{ => eliminateAutobox}/6934604/TestIntBoxing.java (100%) rename hotspot/test/compiler/{ => eliminateAutobox}/6934604/TestLongBoxing.java (100%) rename hotspot/test/compiler/{ => eliminateAutobox}/6934604/TestShortBoxing.java (100%) rename hotspot/test/compiler/{EliminateAutoBox => eliminateAutobox}/UnsignedLoads.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6689060/Test.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6716441/Tester.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6726999/Test.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6775880/Test.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6795161/Test.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6895383/Test.java (100%) rename hotspot/test/compiler/{ => escapeAnalysis}/6896727/Test.java (100%) rename hotspot/test/compiler/{EscapeAnalysis => escapeAnalysis}/Test8020215.java (100%) rename hotspot/test/compiler/{EscapeAnalysis => escapeAnalysis}/TestAllocatedEscapesPtrComparison.java (100%) rename hotspot/test/compiler/{EscapeAnalysis => escapeAnalysis}/TestUnsafePutAddressNullObjMustNotEscape.java (100%) rename hotspot/test/compiler/{IntegerArithmetic => integerArithmetic}/TestIntegerComparison.java (100%) rename hotspot/test/compiler/{ => interpreter}/6539464/Test.java (100%) rename hotspot/test/compiler/{ => interpreter}/6833129/Test.java (100%) rename hotspot/test/compiler/{ => interpreter}/7116216/LargeFrame.java (100%) rename hotspot/test/compiler/{ => interpreter}/7116216/StackOverflow.java (100%) rename hotspot/test/compiler/{ => intrinsics}/6982370/Test6982370.java (100%) rename hotspot/test/compiler/{ => intrinsics}/8005419/Test8005419.java (100%) rename hotspot/test/compiler/{ => jsr292}/6990212/Test6990212.java (100%) rename hotspot/test/compiler/{ => jsr292}/7082949/Test7082949.java (100%) rename hotspot/test/compiler/{ => loopopts}/6659207/Test.java (100%) rename hotspot/test/compiler/{ => loopopts}/6855164/Test.java (100%) rename hotspot/test/compiler/{ => loopopts}/6860469/Test.java (100%) rename hotspot/test/compiler/{ => loopopts}/7044738/Test7044738.java (100%) rename hotspot/test/compiler/{ => loopopts}/7052494/Test7052494.java (100%) rename hotspot/test/compiler/{ => runtime}/6778657/Test.java (100%) rename hotspot/test/compiler/{ => runtime}/6826736/Test.java (100%) rename hotspot/test/compiler/{ => runtime}/6859338/Test6859338.java (100%) rename hotspot/test/compiler/{ => runtime}/6863420/Test.java (100%) rename hotspot/test/compiler/{ => runtime}/6865265/StackOverflowBug.java (100%) rename hotspot/test/compiler/{ => runtime}/6891750/Test6891750.java (100%) rename hotspot/test/compiler/{ => runtime}/6892265/Test.java (100%) rename hotspot/test/compiler/{ => runtime}/7088020/Test7088020.java (100%) rename hotspot/test/compiler/{ => runtime}/7141637/SpreadNullArg.java (100%) rename hotspot/test/compiler/{ => runtime}/7196199/Test7196199.java (100%) rename hotspot/test/compiler/{ => runtime}/8010927/Test8010927.java (100%) rename hotspot/test/compiler/{ => runtime}/8015436/Test8015436.java (100%) rename hotspot/test/compiler/{ => uncommontrap}/8009761/Test8009761.java (100%) diff --git a/hotspot/test/TEST.groups b/hotspot/test/TEST.groups index 8ea66a65e68..e4dbf572f06 100644 --- a/hotspot/test/TEST.groups +++ b/hotspot/test/TEST.groups @@ -107,8 +107,8 @@ jre = \ # Tests that require the full JRE # needs_jre = \ - compiler/6852078/Test6852078.java \ - compiler/7047069/Test7047069.java \ + compiler/c2/6852078/Test6852078.java \ + compiler/c2/7047069/Test7047069.java \ runtime/6294277/SourceDebugExtension.java \ runtime/ClassFile/JsrRewriting.java \ runtime/ClassFile/OomWhileParsingRepeatedJsr.java @@ -325,245 +325,84 @@ hotspot_wbapitest = \ sanity/ hotspot_compiler_1 = \ - compiler/5057225/Test5057225.java \ - compiler/5091921/Test5091921.java \ - compiler/5091921/Test6186134.java \ - compiler/5091921/Test6196102.java \ - compiler/5091921/Test6357214.java \ - compiler/5091921/Test6559156.java \ - compiler/5091921/Test6753639.java \ - compiler/5091921/Test6935022.java \ - compiler/5091921/Test6959129.java \ - compiler/5091921/Test6985295.java \ - compiler/5091921/Test6992759.java \ - compiler/5091921/Test7005594.java \ - compiler/5091921/Test7020614.java \ - compiler/6378821/Test6378821.java \ - compiler/6431242/Test.java \ - compiler/6443505/Test6443505.java \ - compiler/6478991/NullCheckTest.java \ - compiler/6539464/Test.java \ - compiler/6579789/Test6579789.java \ - compiler/6636138/ \ - compiler/6646019/Test.java \ - compiler/6659207/Test.java \ - compiler/6661247/Test.java \ - compiler/6663621/IVTest.java \ - compiler/6689060/Test.java \ - compiler/6695810/Test.java \ - compiler/6700047/Test6700047.java \ - compiler/6711100/Test.java \ - compiler/6724218/Test.java \ - compiler/6732154/Test6732154.java \ - compiler/6758234/Test6758234.java \ - compiler/6769124/ \ - compiler/6772683/InterruptedTest.java \ - compiler/6778657/Test.java \ - compiler/6795161/Test.java \ - compiler/6795362/Test6795362.java \ - compiler/6795465/Test6795465.java \ - compiler/6796786/Test6796786.java \ - compiler/6799693/Test.java \ - compiler/6805724/Test6805724.java \ - compiler/6814842/Test6814842.java \ - compiler/6823453/Test.java \ - compiler/6833129/Test.java \ - compiler/6837011/Test6837011.java \ - compiler/6843752/Test.java \ - compiler/6849574/Test.java \ - compiler/6855164/Test.java \ - compiler/6855215/Test6855215.java \ - compiler/6857159/Test6857159.java \ - compiler/6860469/Test.java \ - compiler/6863155/Test6863155.java \ - compiler/6863420/Test.java \ - compiler/6865265/StackOverflowBug.java \ - compiler/6879902/Test6879902.java \ - compiler/6880034/Test6880034.java \ - compiler/6891750/Test6891750.java \ - compiler/6892265/Test.java \ - compiler/6894807/IsInstanceTest.java \ - compiler/6901572/Test.java \ - compiler/6909839/Test6909839.java \ - compiler/6910484/Test.java \ - compiler/6910605/Test.java \ - compiler/6910618/Test.java \ - compiler/6916644/Test6916644.java \ - compiler/6921969/TestMultiplyLongHiZero.java \ - compiler/6930043/Test6930043.java \ - compiler/6932496/Test6932496.java \ - compiler/6956668/Test6956668.java \ - compiler/6968348/Test6968348.java \ - compiler/6973329/Test.java - -hotspot_compiler_2 = \ - compiler/6982370/Test6982370.java \ - compiler/7009231/Test7009231.java \ - compiler/7009359/Test7009359.java \ - compiler/7017746/Test.java \ - compiler/7024475/Test7024475.java \ - compiler/7041100/Test7041100.java \ - compiler/7044738/Test7044738.java \ - compiler/7046096/Test7046096.java \ - compiler/7048332/Test7048332.java \ - compiler/7068051/Test7068051.java \ - compiler/7082949/Test7082949.java \ - compiler/7088020/Test7088020.java \ - compiler/7090976/Test7090976.java \ - compiler/7103261/Test7103261.java \ - compiler/7110586/Test7110586.java \ - compiler/7119644/ \ - compiler/7141637/SpreadNullArg.java \ - compiler/7169782/Test7169782.java \ - compiler/7174363/Test7174363.java \ - compiler/7179138/ \ - compiler/7190310/ \ - compiler/7192963/ \ - compiler/7200264/TestIntVect.java \ - compiler/8000805/Test8000805.java \ - compiler/8002069/Test8002069.java \ - compiler/8004741/Test8004741.java \ - compiler/8005033/Test8005033.java \ - compiler/8005419/Test8005419.java \ - compiler/8005956/PolynomialRoot.java \ - compiler/8007294/Test8007294.java \ - compiler/EliminateAutoBox/UnsignedLoads.java - -hotspot_compiler_3 = \ - compiler/8007722/Test8007722.java \ - compiler/8009761/Test8009761.java \ - compiler/8010927/Test8010927.java \ - compiler/8011706/Test8011706.java \ - compiler/8011771/Test8011771.java \ - compiler/8011901/Test8011901.java \ - compiler/arraycopy/TestMissingControl.java \ - compiler/ciReplay/TestVM_no_comp_level.sh \ - compiler/classUnloading/anonymousClass/TestAnonymousClassUnloading.java \ - compiler/codecache/CheckSegmentedCodeCache.java \ - compiler/codecache/CheckUpperLimit.java \ - compiler/codegen/ \ - compiler/cpuflags/RestoreMXCSR.java \ - compiler/EscapeAnalysis/ \ - compiler/exceptions/ \ - compiler/floatingpoint/ModNaN.java \ - compiler/gcbarriers/G1CrashTest.java \ - compiler/inlining/ \ - compiler/IntegerArithmetic/TestIntegerComparison.java \ - compiler/intrinsics/bmi/TestAndnI.java \ - compiler/intrinsics/bmi/TestAndnI.java \ - compiler/intrinsics/bmi/TestAndnL.java \ - compiler/intrinsics/bmi/TestBlsiI.java \ - compiler/intrinsics/bmi/TestBlsiL.java \ - compiler/intrinsics/bmi/TestBlsmskI.java \ - compiler/intrinsics/bmi/TestBlsmskL.java \ - compiler/intrinsics/bmi/TestBlsrI.java \ - compiler/intrinsics/bmi/TestBlsrL.java \ - compiler/intrinsics/bmi/TestLzcntI.java \ - compiler/intrinsics/bmi/TestLzcntL.java \ - compiler/intrinsics/bmi/TestTzcntI.java \ - compiler/intrinsics/bmi/TestTzcntL.java \ - compiler/intrinsics/clone/TestObjectClone.java \ - compiler/intrinsics/hashcode/TestHashCode.java \ - compiler/intrinsics/mathexact/CompareTest.java \ - compiler/intrinsics/mathexact/GVNTest.java \ - compiler/intrinsics/mathexact/NegExactILoadTest.java \ - compiler/intrinsics/mathexact/NegExactILoopDependentTest.java \ - compiler/intrinsics/mathexact/NegExactINonConstantTest.java \ - compiler/intrinsics/mathexact/SubExactICondTest.java \ - compiler/intrinsics/mathexact/SubExactILoadTest.java \ - compiler/intrinsics/mathexact/SubExactILoopDependentTest.java \ - compiler/intrinsics/stringequals/TestStringEqualsBadLength.java \ - compiler/intrinsics/unsafe/UnsafeGetAddressTest.java \ - compiler/intrinsics/classcast/NullCheckDroppingsTest.java \ - compiler/jsr292/ConcurrentClassLoadingTest.java \ - compiler/jsr292/CreatesInterfaceDotEqualsCallInfo.java \ - compiler/loopopts/TestLogSum.java \ - compiler/macronodes/TestEliminateAllocationPhi.java \ - compiler/membars/TestMemBarAcquire.java \ - compiler/osr/TestOSRWithNonEmptyStack.java \ - compiler/profiling/TestMethodHandleInvokesIntrinsic.java \ - compiler/profiling/TestSpecTrapClassUnloading.java \ - compiler/profiling/TestUnexpectedProfilingMismatch.java \ - compiler/regalloc/C1ObjectSpillInLogicOp.java \ - compiler/startup/NumCompilerThreadsCheck.java \ - compiler/startup/SmallCodeCacheStartup.java \ - compiler/types/TestSpeculationFailedHigherEqual.java \ - compiler/types/TypeSpeculation.java \ - compiler/uncommontrap/StackOverflowGuardPagesOff.java \ - compiler/uncommontrap/TestStackBangMonitorOwned.java \ - compiler/uncommontrap/TestStackBangRbp.java \ - compiler/unsafe/GetUnsafeObjectG1PreBarrier.java + compiler/arraycopy/ \ + compiler/c1/ \ + compiler/c2/ \ + -compiler/c2/5091921/Test6850611.java \ + -compiler/c2/5091921/Test6890943.java \ + -compiler/c2/5091921/Test6905845.java \ + -compiler/c2/6340864 \ + -compiler/c2/6589834 \ + -compiler/c2/6603011 \ + -compiler/c2/6912517 \ + -compiler/c2/6792161 \ + -compiler/c2/7070134 \ + -compiler/c2/8004867 +hotspot_compiler_2 = \ + compiler/classUnloading/ \ + compiler/codecache/ \ + compiler/codegen/ \ + compiler/cpuflags/ \ + compiler/eliminateAutobox/ \ + compiler/escapeAnalysis/ \ + compiler/exceptions/ \ + compiler/floatingpoint/ \ + compiler/gcbarriers/ \ + compiler/inlining/ \ + compiler/integerArithmetic/ \ + compiler/interpreter/ \ + -compiler/codegen/7184394 + +hotspot_compiler_3 = \ + compiler/intrinsics/ \ + compiler/jsr292/ \ + compiler/loopopts/ \ + compiler/macronodes/ \ + compiler/osr/ \ + compiler/regalloc/ \ + compiler/runtime/ \ + compiler/startup/ \ + compiler/types/ \ + compiler/uncommontrap/ \ + compiler/unsafe/ \ + -compiler/intrinsics/bmi/verifycode \ + -compiler/intrinsics/mathexact \ + -compiler/intrinsics/multiplytolen \ + -compiler/intrinsics/sha \ + -compiler/loopopts/7052494 \ + -compiler/runtime/6826736 hotspot_compiler_closed = \ - closed/compiler/4292742/Test.java \ - closed/compiler/4474154/Test4474154.java \ - closed/compiler/4482613/Test4482613.java \ - closed/compiler/4490177/tctest.java \ - closed/compiler/4495990/Application.java \ - closed/compiler/4522874/Test4522874.sh \ - closed/compiler/4629512/Test4629512.java \ - closed/compiler/4647299/Looper.java \ - closed/compiler/4655758/TestClass.java \ - closed/compiler/4671453/LongCompTest.java \ - closed/compiler/4671460/CharArrTest.java \ - closed/compiler/4709105/StringTest2.java \ - closed/compiler/4732721/Bug.java \ - closed/compiler/4750681/ReadTest.java \ - closed/compiler/4787943/LongCrash.java \ - closed/compiler/4819903/Base64Test.java \ - closed/compiler/4903383/Test.java \ - closed/compiler/4906393/Test.java \ - closed/compiler/4907999/Uidtest.java \ - closed/compiler/4917709/Tester.java \ - closed/compiler/4957832/Test.java \ - closed/compiler/4965430/LoopTest.java \ - closed/compiler/4979449/T4979449.java \ - closed/compiler/5031274/Test.java \ - closed/compiler/5043395/T5043395.java \ - closed/compiler/5049410/Test.java \ - closed/compiler/5098422/Test.java \ - closed/compiler/6173783/Test.java \ - closed/compiler/6272923/Test6272923.sh \ - closed/compiler/6290963/Test.java \ - closed/compiler/6305546/Test.java \ - closed/compiler/6309806/Test.java \ - closed/compiler/6311859/Test.java \ - closed/compiler/6321689/Test.java \ - closed/compiler/6326935/Test.java \ - closed/compiler/6367889/Test.java \ - closed/compiler/6371167/Test.java \ - closed/compiler/6389127/Test.java \ - closed/compiler/6397650/Test.java \ - closed/compiler/6414932/Test.java \ - closed/compiler/6421619/Test_6421619.java \ - closed/compiler/6427750/UnsafeVolatile.java \ - closed/compiler/6431243/Test.java \ - closed/compiler/6433572/TestSyncJSR.java \ - closed/compiler/6433840/clinit.java \ - closed/compiler/6457854/Test.java \ - closed/compiler/6476804/Test.java \ - closed/compiler/6512111/CorruptFinalLong.java \ - closed/compiler/6551887/Test.java \ - closed/compiler/6571539/Test.java \ - closed/compiler/6587132/Test.java \ - closed/compiler/6588045/Test.java \ - closed/compiler/6588598/etype.java \ - closed/compiler/6661918/Test6661918.java \ - closed/compiler/6707044/Test.java \ - closed/compiler/6730716/Test.java \ - closed/compiler/6772368/Test6772368.sh \ - closed/compiler/6897150/Test6897150.java \ - closed/compiler/6931567/Test6931567.java \ - closed/compiler/7196857/Test7196857.java \ - closed/compiler/8009699/Test8009699.java \ - closed/compiler/8009699/Test8009699B.java \ - closed/compiler/8014811/Test8014811.java \ - closed/compiler/8029507/InvokePrivate.java \ - closed/compiler/callingConvention/Arg9Double.java \ - closed/compiler/deoptimization/DeoptArithmetic.java \ - closed/compiler/deoptimization/TestDoubleLocals.java \ - closed/compiler/deoptimization/TestDoubleMerge.java + closed/compiler/c1/ \ + closed/compiler/c2/ \ + closed/compiler/codegen/ \ + closed/compiler/escapeAnalysis/ \ + closed/compiler/interpreter/ \ + closed/compiler/jsr292/ \ + closed/compiler/loopopts/ \ + closed/compiler/oracle/ \ + closed/compiler/runtime/ \ + closed/compiler/symantec/ \ + -closed/compiler/c1/4477197 \ + -closed/compiler/c1/5040872 \ + -closed/compiler/c1/6507107 \ + -closed/compiler/c2/4344895 \ + -closed/compiler/c2/4485006 \ + -closed/compiler/c2/4523683 \ + -closed/compiler/c2/4620290 \ + -closed/compiler/c2/4998314 \ + -closed/compiler/c2/6329104 \ + -closed/compiler/c2/6434117 \ + -closed/compiler/c2/6547163 \ + -closed/compiler/c2/6563987 \ + -closed/compiler/c2/6595044 \ + -closed/compiler/codegen/6440479 \ + -closed/compiler/codegen/6603011 \ + -closed/compiler/interpreter/5034475 \ + -closed/compiler/jsr292/LongLambdaFormDynamicStackDepth.java \ + -closed/compiler/loopopts/4463485 \ + -closed/compiler/loopopts/8021898 hotspot_gc = \ sanity/ExecuteInternalVMTests.java @@ -609,4 +448,4 @@ needs_nashorn = \ # not_needs_nashorn = \ :jdk \ - -:needs_nashorh + -:needs_nashorn diff --git a/hotspot/test/compiler/6478991/NullCheckTest.java b/hotspot/test/compiler/c1/6478991/NullCheckTest.java similarity index 100% rename from hotspot/test/compiler/6478991/NullCheckTest.java rename to hotspot/test/compiler/c1/6478991/NullCheckTest.java diff --git a/hotspot/test/compiler/6579789/Test6579789.java b/hotspot/test/compiler/c1/6579789/Test6579789.java similarity index 100% rename from hotspot/test/compiler/6579789/Test6579789.java rename to hotspot/test/compiler/c1/6579789/Test6579789.java diff --git a/hotspot/test/compiler/6756768/Test6756768.java b/hotspot/test/compiler/c1/6756768/Test6756768.java similarity index 100% rename from hotspot/test/compiler/6756768/Test6756768.java rename to hotspot/test/compiler/c1/6756768/Test6756768.java diff --git a/hotspot/test/compiler/6756768/Test6756768_2.java b/hotspot/test/compiler/c1/6756768/Test6756768_2.java similarity index 100% rename from hotspot/test/compiler/6756768/Test6756768_2.java rename to hotspot/test/compiler/c1/6756768/Test6756768_2.java diff --git a/hotspot/test/compiler/6757316/Test6757316.java b/hotspot/test/compiler/c1/6757316/Test6757316.java similarity index 100% rename from hotspot/test/compiler/6757316/Test6757316.java rename to hotspot/test/compiler/c1/6757316/Test6757316.java diff --git a/hotspot/test/compiler/6758234/Test6758234.java b/hotspot/test/compiler/c1/6758234/Test6758234.java similarity index 100% rename from hotspot/test/compiler/6758234/Test6758234.java rename to hotspot/test/compiler/c1/6758234/Test6758234.java diff --git a/hotspot/test/compiler/6769124/TestArrayCopy6769124.java b/hotspot/test/compiler/c1/6769124/TestArrayCopy6769124.java similarity index 100% rename from hotspot/test/compiler/6769124/TestArrayCopy6769124.java rename to hotspot/test/compiler/c1/6769124/TestArrayCopy6769124.java diff --git a/hotspot/test/compiler/6769124/TestDeoptInt6769124.java b/hotspot/test/compiler/c1/6769124/TestDeoptInt6769124.java similarity index 100% rename from hotspot/test/compiler/6769124/TestDeoptInt6769124.java rename to hotspot/test/compiler/c1/6769124/TestDeoptInt6769124.java diff --git a/hotspot/test/compiler/6769124/TestUnalignedLoad6769124.java b/hotspot/test/compiler/c1/6769124/TestUnalignedLoad6769124.java similarity index 100% rename from hotspot/test/compiler/6769124/TestUnalignedLoad6769124.java rename to hotspot/test/compiler/c1/6769124/TestUnalignedLoad6769124.java diff --git a/hotspot/test/compiler/6795465/Test6795465.java b/hotspot/test/compiler/c1/6795465/Test6795465.java similarity index 100% rename from hotspot/test/compiler/6795465/Test6795465.java rename to hotspot/test/compiler/c1/6795465/Test6795465.java diff --git a/hotspot/test/compiler/6849574/Test.java b/hotspot/test/compiler/c1/6849574/Test.java similarity index 100% rename from hotspot/test/compiler/6849574/Test.java rename to hotspot/test/compiler/c1/6849574/Test.java diff --git a/hotspot/test/compiler/6855215/Test6855215.java b/hotspot/test/compiler/c1/6855215/Test6855215.java similarity index 100% rename from hotspot/test/compiler/6855215/Test6855215.java rename to hotspot/test/compiler/c1/6855215/Test6855215.java diff --git a/hotspot/test/compiler/6932496/Test6932496.java b/hotspot/test/compiler/c1/6932496/Test6932496.java similarity index 100% rename from hotspot/test/compiler/6932496/Test6932496.java rename to hotspot/test/compiler/c1/6932496/Test6932496.java diff --git a/hotspot/test/compiler/7042153/Test7042153.java b/hotspot/test/compiler/c1/7042153/Test7042153.java similarity index 100% rename from hotspot/test/compiler/7042153/Test7042153.java rename to hotspot/test/compiler/c1/7042153/Test7042153.java diff --git a/hotspot/test/compiler/7090976/Test7090976.java b/hotspot/test/compiler/c1/7090976/Test7090976.java similarity index 100% rename from hotspot/test/compiler/7090976/Test7090976.java rename to hotspot/test/compiler/c1/7090976/Test7090976.java diff --git a/hotspot/test/compiler/7103261/Test7103261.java b/hotspot/test/compiler/c1/7103261/Test7103261.java similarity index 100% rename from hotspot/test/compiler/7103261/Test7103261.java rename to hotspot/test/compiler/c1/7103261/Test7103261.java diff --git a/hotspot/test/compiler/7123108/Test7123108.java b/hotspot/test/compiler/c1/7123108/Test7123108.java similarity index 100% rename from hotspot/test/compiler/7123108/Test7123108.java rename to hotspot/test/compiler/c1/7123108/Test7123108.java diff --git a/hotspot/test/compiler/8004051/Test8004051.java b/hotspot/test/compiler/c1/8004051/Test8004051.java similarity index 100% rename from hotspot/test/compiler/8004051/Test8004051.java rename to hotspot/test/compiler/c1/8004051/Test8004051.java diff --git a/hotspot/test/compiler/8011706/Test8011706.java b/hotspot/test/compiler/c1/8011706/Test8011706.java similarity index 100% rename from hotspot/test/compiler/8011706/Test8011706.java rename to hotspot/test/compiler/c1/8011706/Test8011706.java diff --git a/hotspot/test/compiler/8011771/Test8011771.java b/hotspot/test/compiler/c1/8011771/Test8011771.java similarity index 100% rename from hotspot/test/compiler/8011771/Test8011771.java rename to hotspot/test/compiler/c1/8011771/Test8011771.java diff --git a/hotspot/test/compiler/5057225/Test5057225.java b/hotspot/test/compiler/c2/5057225/Test5057225.java similarity index 100% rename from hotspot/test/compiler/5057225/Test5057225.java rename to hotspot/test/compiler/c2/5057225/Test5057225.java diff --git a/hotspot/test/compiler/5091921/Test5091921.java b/hotspot/test/compiler/c2/5091921/Test5091921.java similarity index 100% rename from hotspot/test/compiler/5091921/Test5091921.java rename to hotspot/test/compiler/c2/5091921/Test5091921.java diff --git a/hotspot/test/compiler/5091921/Test6186134.java b/hotspot/test/compiler/c2/5091921/Test6186134.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6186134.java rename to hotspot/test/compiler/c2/5091921/Test6186134.java diff --git a/hotspot/test/compiler/5091921/Test6196102.java b/hotspot/test/compiler/c2/5091921/Test6196102.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6196102.java rename to hotspot/test/compiler/c2/5091921/Test6196102.java diff --git a/hotspot/test/compiler/5091921/Test6357214.java b/hotspot/test/compiler/c2/5091921/Test6357214.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6357214.java rename to hotspot/test/compiler/c2/5091921/Test6357214.java diff --git a/hotspot/test/compiler/5091921/Test6559156.java b/hotspot/test/compiler/c2/5091921/Test6559156.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6559156.java rename to hotspot/test/compiler/c2/5091921/Test6559156.java diff --git a/hotspot/test/compiler/5091921/Test6753639.java b/hotspot/test/compiler/c2/5091921/Test6753639.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6753639.java rename to hotspot/test/compiler/c2/5091921/Test6753639.java diff --git a/hotspot/test/compiler/5091921/Test6850611.java b/hotspot/test/compiler/c2/5091921/Test6850611.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6850611.java rename to hotspot/test/compiler/c2/5091921/Test6850611.java diff --git a/hotspot/test/compiler/5091921/Test6890943.java b/hotspot/test/compiler/c2/5091921/Test6890943.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6890943.java rename to hotspot/test/compiler/c2/5091921/Test6890943.java diff --git a/hotspot/test/compiler/5091921/Test6897150.java b/hotspot/test/compiler/c2/5091921/Test6897150.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6897150.java rename to hotspot/test/compiler/c2/5091921/Test6897150.java diff --git a/hotspot/test/compiler/5091921/Test6905845.java b/hotspot/test/compiler/c2/5091921/Test6905845.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6905845.java rename to hotspot/test/compiler/c2/5091921/Test6905845.java diff --git a/hotspot/test/compiler/5091921/Test6931567.java b/hotspot/test/compiler/c2/5091921/Test6931567.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6931567.java rename to hotspot/test/compiler/c2/5091921/Test6931567.java diff --git a/hotspot/test/compiler/5091921/Test6935022.java b/hotspot/test/compiler/c2/5091921/Test6935022.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6935022.java rename to hotspot/test/compiler/c2/5091921/Test6935022.java diff --git a/hotspot/test/compiler/5091921/Test6959129.java b/hotspot/test/compiler/c2/5091921/Test6959129.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6959129.java rename to hotspot/test/compiler/c2/5091921/Test6959129.java diff --git a/hotspot/test/compiler/5091921/Test6985295.java b/hotspot/test/compiler/c2/5091921/Test6985295.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6985295.java rename to hotspot/test/compiler/c2/5091921/Test6985295.java diff --git a/hotspot/test/compiler/5091921/Test6992759.java b/hotspot/test/compiler/c2/5091921/Test6992759.java similarity index 100% rename from hotspot/test/compiler/5091921/Test6992759.java rename to hotspot/test/compiler/c2/5091921/Test6992759.java diff --git a/hotspot/test/compiler/5091921/Test7005594.java b/hotspot/test/compiler/c2/5091921/Test7005594.java similarity index 100% rename from hotspot/test/compiler/5091921/Test7005594.java rename to hotspot/test/compiler/c2/5091921/Test7005594.java diff --git a/hotspot/test/compiler/5091921/Test7005594.sh b/hotspot/test/compiler/c2/5091921/Test7005594.sh similarity index 98% rename from hotspot/test/compiler/5091921/Test7005594.sh rename to hotspot/test/compiler/c2/5091921/Test7005594.sh index 4fa458ca723..cd6fd807b9d 100644 --- a/hotspot/test/compiler/5091921/Test7005594.sh +++ b/hotspot/test/compiler/c2/5091921/Test7005594.sh @@ -30,7 +30,7 @@ then fi echo "TESTSRC=${TESTSRC}" ## Adding common setup Variables for running shell tests. -. ${TESTSRC}/../../test_env.sh +. ${TESTSRC}/../../../test_env.sh # Amount of physical memory in megabytes MEM=0 diff --git a/hotspot/test/compiler/5091921/Test7020614.java b/hotspot/test/compiler/c2/5091921/Test7020614.java similarity index 100% rename from hotspot/test/compiler/5091921/Test7020614.java rename to hotspot/test/compiler/c2/5091921/Test7020614.java diff --git a/hotspot/test/compiler/5091921/input6890943.txt b/hotspot/test/compiler/c2/5091921/input6890943.txt similarity index 100% rename from hotspot/test/compiler/5091921/input6890943.txt rename to hotspot/test/compiler/c2/5091921/input6890943.txt diff --git a/hotspot/test/compiler/5091921/output6890943.txt b/hotspot/test/compiler/c2/5091921/output6890943.txt similarity index 100% rename from hotspot/test/compiler/5091921/output6890943.txt rename to hotspot/test/compiler/c2/5091921/output6890943.txt diff --git a/hotspot/test/compiler/6340864/TestByteVect.java b/hotspot/test/compiler/c2/6340864/TestByteVect.java similarity index 100% rename from hotspot/test/compiler/6340864/TestByteVect.java rename to hotspot/test/compiler/c2/6340864/TestByteVect.java diff --git a/hotspot/test/compiler/6340864/TestDoubleVect.java b/hotspot/test/compiler/c2/6340864/TestDoubleVect.java similarity index 100% rename from hotspot/test/compiler/6340864/TestDoubleVect.java rename to hotspot/test/compiler/c2/6340864/TestDoubleVect.java diff --git a/hotspot/test/compiler/6340864/TestFloatVect.java b/hotspot/test/compiler/c2/6340864/TestFloatVect.java similarity index 100% rename from hotspot/test/compiler/6340864/TestFloatVect.java rename to hotspot/test/compiler/c2/6340864/TestFloatVect.java diff --git a/hotspot/test/compiler/6340864/TestIntVect.java b/hotspot/test/compiler/c2/6340864/TestIntVect.java similarity index 100% rename from hotspot/test/compiler/6340864/TestIntVect.java rename to hotspot/test/compiler/c2/6340864/TestIntVect.java diff --git a/hotspot/test/compiler/6340864/TestLongVect.java b/hotspot/test/compiler/c2/6340864/TestLongVect.java similarity index 100% rename from hotspot/test/compiler/6340864/TestLongVect.java rename to hotspot/test/compiler/c2/6340864/TestLongVect.java diff --git a/hotspot/test/compiler/6340864/TestShortVect.java b/hotspot/test/compiler/c2/6340864/TestShortVect.java similarity index 100% rename from hotspot/test/compiler/6340864/TestShortVect.java rename to hotspot/test/compiler/c2/6340864/TestShortVect.java diff --git a/hotspot/test/compiler/6443505/Test6443505.java b/hotspot/test/compiler/c2/6443505/Test6443505.java similarity index 100% rename from hotspot/test/compiler/6443505/Test6443505.java rename to hotspot/test/compiler/c2/6443505/Test6443505.java diff --git a/hotspot/test/compiler/6589834/InlinedArrayCloneTestCase.java b/hotspot/test/compiler/c2/6589834/InlinedArrayCloneTestCase.java similarity index 100% rename from hotspot/test/compiler/6589834/InlinedArrayCloneTestCase.java rename to hotspot/test/compiler/c2/6589834/InlinedArrayCloneTestCase.java diff --git a/hotspot/test/compiler/6589834/Test_ia32.java b/hotspot/test/compiler/c2/6589834/Test_ia32.java similarity index 100% rename from hotspot/test/compiler/6589834/Test_ia32.java rename to hotspot/test/compiler/c2/6589834/Test_ia32.java diff --git a/hotspot/test/compiler/6603011/Test.java b/hotspot/test/compiler/c2/6603011/Test.java similarity index 100% rename from hotspot/test/compiler/6603011/Test.java rename to hotspot/test/compiler/c2/6603011/Test.java diff --git a/hotspot/test/compiler/6636138/Test1.java b/hotspot/test/compiler/c2/6636138/Test1.java similarity index 100% rename from hotspot/test/compiler/6636138/Test1.java rename to hotspot/test/compiler/c2/6636138/Test1.java diff --git a/hotspot/test/compiler/6636138/Test2.java b/hotspot/test/compiler/c2/6636138/Test2.java similarity index 100% rename from hotspot/test/compiler/6636138/Test2.java rename to hotspot/test/compiler/c2/6636138/Test2.java diff --git a/hotspot/test/compiler/6646019/Test.java b/hotspot/test/compiler/c2/6646019/Test.java similarity index 100% rename from hotspot/test/compiler/6646019/Test.java rename to hotspot/test/compiler/c2/6646019/Test.java diff --git a/hotspot/test/compiler/6646020/Tester.java b/hotspot/test/compiler/c2/6646020/Tester.java similarity index 100% rename from hotspot/test/compiler/6646020/Tester.java rename to hotspot/test/compiler/c2/6646020/Tester.java diff --git a/hotspot/test/compiler/6661247/Test.java b/hotspot/test/compiler/c2/6661247/Test.java similarity index 100% rename from hotspot/test/compiler/6661247/Test.java rename to hotspot/test/compiler/c2/6661247/Test.java diff --git a/hotspot/test/compiler/6663621/IVTest.java b/hotspot/test/compiler/c2/6663621/IVTest.java similarity index 100% rename from hotspot/test/compiler/6663621/IVTest.java rename to hotspot/test/compiler/c2/6663621/IVTest.java diff --git a/hotspot/test/compiler/6663848/Tester.java b/hotspot/test/compiler/c2/6663848/Tester.java similarity index 100% rename from hotspot/test/compiler/6663848/Tester.java rename to hotspot/test/compiler/c2/6663848/Tester.java diff --git a/hotspot/test/compiler/6663854/Test6663854.java b/hotspot/test/compiler/c2/6663854/Test6663854.java similarity index 100% rename from hotspot/test/compiler/6663854/Test6663854.java rename to hotspot/test/compiler/c2/6663854/Test6663854.java diff --git a/hotspot/test/compiler/6695810/Test.java b/hotspot/test/compiler/c2/6695810/Test.java similarity index 100% rename from hotspot/test/compiler/6695810/Test.java rename to hotspot/test/compiler/c2/6695810/Test.java diff --git a/hotspot/test/compiler/6700047/Test6700047.java b/hotspot/test/compiler/c2/6700047/Test6700047.java similarity index 100% rename from hotspot/test/compiler/6700047/Test6700047.java rename to hotspot/test/compiler/c2/6700047/Test6700047.java diff --git a/hotspot/test/compiler/6711100/Test.java b/hotspot/test/compiler/c2/6711100/Test.java similarity index 100% rename from hotspot/test/compiler/6711100/Test.java rename to hotspot/test/compiler/c2/6711100/Test.java diff --git a/hotspot/test/compiler/6711117/Test.java b/hotspot/test/compiler/c2/6711117/Test.java similarity index 100% rename from hotspot/test/compiler/6711117/Test.java rename to hotspot/test/compiler/c2/6711117/Test.java diff --git a/hotspot/test/compiler/6712835/Test6712835.java b/hotspot/test/compiler/c2/6712835/Test6712835.java similarity index 100% rename from hotspot/test/compiler/6712835/Test6712835.java rename to hotspot/test/compiler/c2/6712835/Test6712835.java diff --git a/hotspot/test/compiler/6714694/Tester.java b/hotspot/test/compiler/c2/6714694/Tester.java similarity index 100% rename from hotspot/test/compiler/6714694/Tester.java rename to hotspot/test/compiler/c2/6714694/Tester.java diff --git a/hotspot/test/compiler/6724218/Test.java b/hotspot/test/compiler/c2/6724218/Test.java similarity index 100% rename from hotspot/test/compiler/6724218/Test.java rename to hotspot/test/compiler/c2/6724218/Test.java diff --git a/hotspot/test/compiler/6732154/Test6732154.java b/hotspot/test/compiler/c2/6732154/Test6732154.java similarity index 100% rename from hotspot/test/compiler/6732154/Test6732154.java rename to hotspot/test/compiler/c2/6732154/Test6732154.java diff --git a/hotspot/test/compiler/6741738/Tester.java b/hotspot/test/compiler/c2/6741738/Tester.java similarity index 100% rename from hotspot/test/compiler/6741738/Tester.java rename to hotspot/test/compiler/c2/6741738/Tester.java diff --git a/hotspot/test/compiler/6772683/InterruptedTest.java b/hotspot/test/compiler/c2/6772683/InterruptedTest.java similarity index 100% rename from hotspot/test/compiler/6772683/InterruptedTest.java rename to hotspot/test/compiler/c2/6772683/InterruptedTest.java diff --git a/hotspot/test/compiler/6792161/Test6792161.java b/hotspot/test/compiler/c2/6792161/Test6792161.java similarity index 100% rename from hotspot/test/compiler/6792161/Test6792161.java rename to hotspot/test/compiler/c2/6792161/Test6792161.java diff --git a/hotspot/test/compiler/6795362/Test6795362.java b/hotspot/test/compiler/c2/6795362/Test6795362.java similarity index 100% rename from hotspot/test/compiler/6795362/Test6795362.java rename to hotspot/test/compiler/c2/6795362/Test6795362.java diff --git a/hotspot/test/compiler/6796786/Test6796786.java b/hotspot/test/compiler/c2/6796786/Test6796786.java similarity index 100% rename from hotspot/test/compiler/6796786/Test6796786.java rename to hotspot/test/compiler/c2/6796786/Test6796786.java diff --git a/hotspot/test/compiler/6799693/Test.java b/hotspot/test/compiler/c2/6799693/Test.java similarity index 100% rename from hotspot/test/compiler/6799693/Test.java rename to hotspot/test/compiler/c2/6799693/Test.java diff --git a/hotspot/test/compiler/6800154/Test6800154.java b/hotspot/test/compiler/c2/6800154/Test6800154.java similarity index 100% rename from hotspot/test/compiler/6800154/Test6800154.java rename to hotspot/test/compiler/c2/6800154/Test6800154.java diff --git a/hotspot/test/compiler/6805724/Test6805724.java b/hotspot/test/compiler/c2/6805724/Test6805724.java similarity index 100% rename from hotspot/test/compiler/6805724/Test6805724.java rename to hotspot/test/compiler/c2/6805724/Test6805724.java diff --git a/hotspot/test/compiler/6823453/Test.java b/hotspot/test/compiler/c2/6823453/Test.java similarity index 100% rename from hotspot/test/compiler/6823453/Test.java rename to hotspot/test/compiler/c2/6823453/Test.java diff --git a/hotspot/test/compiler/6832293/Test.java b/hotspot/test/compiler/c2/6832293/Test.java similarity index 100% rename from hotspot/test/compiler/6832293/Test.java rename to hotspot/test/compiler/c2/6832293/Test.java diff --git a/hotspot/test/compiler/6837011/Test6837011.java b/hotspot/test/compiler/c2/6837011/Test6837011.java similarity index 100% rename from hotspot/test/compiler/6837011/Test6837011.java rename to hotspot/test/compiler/c2/6837011/Test6837011.java diff --git a/hotspot/test/compiler/6837094/Test.java b/hotspot/test/compiler/c2/6837094/Test.java similarity index 100% rename from hotspot/test/compiler/6837094/Test.java rename to hotspot/test/compiler/c2/6837094/Test.java diff --git a/hotspot/test/compiler/6843752/Test.java b/hotspot/test/compiler/c2/6843752/Test.java similarity index 100% rename from hotspot/test/compiler/6843752/Test.java rename to hotspot/test/compiler/c2/6843752/Test.java diff --git a/hotspot/test/compiler/6851282/Test.java b/hotspot/test/compiler/c2/6851282/Test.java similarity index 100% rename from hotspot/test/compiler/6851282/Test.java rename to hotspot/test/compiler/c2/6851282/Test.java diff --git a/hotspot/test/compiler/6852078/Test6852078.java b/hotspot/test/compiler/c2/6852078/Test6852078.java similarity index 100% rename from hotspot/test/compiler/6852078/Test6852078.java rename to hotspot/test/compiler/c2/6852078/Test6852078.java diff --git a/hotspot/test/compiler/6857159/Test6857159.java b/hotspot/test/compiler/c2/6857159/Test6857159.java similarity index 100% rename from hotspot/test/compiler/6857159/Test6857159.java rename to hotspot/test/compiler/c2/6857159/Test6857159.java diff --git a/hotspot/test/compiler/6857159/Test6857159.sh b/hotspot/test/compiler/c2/6857159/Test6857159.sh similarity index 98% rename from hotspot/test/compiler/6857159/Test6857159.sh rename to hotspot/test/compiler/c2/6857159/Test6857159.sh index cb790127c9c..0762fe17ca8 100644 --- a/hotspot/test/compiler/6857159/Test6857159.sh +++ b/hotspot/test/compiler/c2/6857159/Test6857159.sh @@ -30,7 +30,7 @@ then fi echo "TESTSRC=${TESTSRC}" ## Adding common setup Variables for running shell tests. -. ${TESTSRC}/../../test_env.sh +. ${TESTSRC}/../../../test_env.sh set -x diff --git a/hotspot/test/compiler/6863155/Test6863155.java b/hotspot/test/compiler/c2/6863155/Test6863155.java similarity index 100% rename from hotspot/test/compiler/6863155/Test6863155.java rename to hotspot/test/compiler/c2/6863155/Test6863155.java diff --git a/hotspot/test/compiler/6865031/Test.java b/hotspot/test/compiler/c2/6865031/Test.java similarity index 100% rename from hotspot/test/compiler/6865031/Test.java rename to hotspot/test/compiler/c2/6865031/Test.java diff --git a/hotspot/test/compiler/6866651/Test.java b/hotspot/test/compiler/c2/6866651/Test.java similarity index 100% rename from hotspot/test/compiler/6866651/Test.java rename to hotspot/test/compiler/c2/6866651/Test.java diff --git a/hotspot/test/compiler/6877254/Test.java b/hotspot/test/compiler/c2/6877254/Test.java similarity index 100% rename from hotspot/test/compiler/6877254/Test.java rename to hotspot/test/compiler/c2/6877254/Test.java diff --git a/hotspot/test/compiler/6880034/Test6880034.java b/hotspot/test/compiler/c2/6880034/Test6880034.java similarity index 100% rename from hotspot/test/compiler/6880034/Test6880034.java rename to hotspot/test/compiler/c2/6880034/Test6880034.java diff --git a/hotspot/test/compiler/6885584/Test6885584.java b/hotspot/test/compiler/c2/6885584/Test6885584.java similarity index 100% rename from hotspot/test/compiler/6885584/Test6885584.java rename to hotspot/test/compiler/c2/6885584/Test6885584.java diff --git a/hotspot/test/compiler/6894807/IsInstanceTest.java b/hotspot/test/compiler/c2/6894807/IsInstanceTest.java similarity index 100% rename from hotspot/test/compiler/6894807/IsInstanceTest.java rename to hotspot/test/compiler/c2/6894807/IsInstanceTest.java diff --git a/hotspot/test/compiler/6894807/Test6894807.sh b/hotspot/test/compiler/c2/6894807/Test6894807.sh similarity index 97% rename from hotspot/test/compiler/6894807/Test6894807.sh rename to hotspot/test/compiler/c2/6894807/Test6894807.sh index 609af074eda..bf10ba263bf 100644 --- a/hotspot/test/compiler/6894807/Test6894807.sh +++ b/hotspot/test/compiler/c2/6894807/Test6894807.sh @@ -30,7 +30,7 @@ fi echo "TESTSRC=${TESTSRC}" ## Adding common setup Variables for running shell tests. -. ${TESTSRC}/../../test_env.sh +. ${TESTSRC}/../../../test_env.sh ${TESTJAVA}${FS}bin${FS}java ${TESTOPTS} IsInstanceTest > test.out 2>&1 diff --git a/hotspot/test/compiler/6901572/Test.java b/hotspot/test/compiler/c2/6901572/Test.java similarity index 100% rename from hotspot/test/compiler/6901572/Test.java rename to hotspot/test/compiler/c2/6901572/Test.java diff --git a/hotspot/test/compiler/6910484/Test.java b/hotspot/test/compiler/c2/6910484/Test.java similarity index 100% rename from hotspot/test/compiler/6910484/Test.java rename to hotspot/test/compiler/c2/6910484/Test.java diff --git a/hotspot/test/compiler/6910605/Test.java b/hotspot/test/compiler/c2/6910605/Test.java similarity index 100% rename from hotspot/test/compiler/6910605/Test.java rename to hotspot/test/compiler/c2/6910605/Test.java diff --git a/hotspot/test/compiler/6910618/Test.java b/hotspot/test/compiler/c2/6910618/Test.java similarity index 100% rename from hotspot/test/compiler/6910618/Test.java rename to hotspot/test/compiler/c2/6910618/Test.java diff --git a/hotspot/test/compiler/6912517/Test.java b/hotspot/test/compiler/c2/6912517/Test.java similarity index 100% rename from hotspot/test/compiler/6912517/Test.java rename to hotspot/test/compiler/c2/6912517/Test.java diff --git a/hotspot/test/compiler/6916644/Test6916644.java b/hotspot/test/compiler/c2/6916644/Test6916644.java similarity index 100% rename from hotspot/test/compiler/6916644/Test6916644.java rename to hotspot/test/compiler/c2/6916644/Test6916644.java diff --git a/hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java b/hotspot/test/compiler/c2/6921969/TestMultiplyLongHiZero.java similarity index 100% rename from hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java rename to hotspot/test/compiler/c2/6921969/TestMultiplyLongHiZero.java diff --git a/hotspot/test/compiler/6930043/Test6930043.java b/hotspot/test/compiler/c2/6930043/Test6930043.java similarity index 100% rename from hotspot/test/compiler/6930043/Test6930043.java rename to hotspot/test/compiler/c2/6930043/Test6930043.java diff --git a/hotspot/test/compiler/6946040/TestCharShortByteSwap.java b/hotspot/test/compiler/c2/6946040/TestCharShortByteSwap.java similarity index 100% rename from hotspot/test/compiler/6946040/TestCharShortByteSwap.java rename to hotspot/test/compiler/c2/6946040/TestCharShortByteSwap.java diff --git a/hotspot/test/compiler/6956668/Test6956668.java b/hotspot/test/compiler/c2/6956668/Test6956668.java similarity index 100% rename from hotspot/test/compiler/6956668/Test6956668.java rename to hotspot/test/compiler/c2/6956668/Test6956668.java diff --git a/hotspot/test/compiler/6958485/Test.java b/hotspot/test/compiler/c2/6958485/Test.java similarity index 100% rename from hotspot/test/compiler/6958485/Test.java rename to hotspot/test/compiler/c2/6958485/Test.java diff --git a/hotspot/test/compiler/6968348/Test6968348.java b/hotspot/test/compiler/c2/6968348/Test6968348.java similarity index 100% rename from hotspot/test/compiler/6968348/Test6968348.java rename to hotspot/test/compiler/c2/6968348/Test6968348.java diff --git a/hotspot/test/compiler/6973329/Test.java b/hotspot/test/compiler/c2/6973329/Test.java similarity index 100% rename from hotspot/test/compiler/6973329/Test.java rename to hotspot/test/compiler/c2/6973329/Test.java diff --git a/hotspot/test/compiler/7002666/Test7002666.java b/hotspot/test/compiler/c2/7002666/Test7002666.java similarity index 100% rename from hotspot/test/compiler/7002666/Test7002666.java rename to hotspot/test/compiler/c2/7002666/Test7002666.java diff --git a/hotspot/test/compiler/7009359/Test7009359.java b/hotspot/test/compiler/c2/7009359/Test7009359.java similarity index 100% rename from hotspot/test/compiler/7009359/Test7009359.java rename to hotspot/test/compiler/c2/7009359/Test7009359.java diff --git a/hotspot/test/compiler/7017746/Test.java b/hotspot/test/compiler/c2/7017746/Test.java similarity index 100% rename from hotspot/test/compiler/7017746/Test.java rename to hotspot/test/compiler/c2/7017746/Test.java diff --git a/hotspot/test/compiler/7024475/Test7024475.java b/hotspot/test/compiler/c2/7024475/Test7024475.java similarity index 100% rename from hotspot/test/compiler/7024475/Test7024475.java rename to hotspot/test/compiler/c2/7024475/Test7024475.java diff --git a/hotspot/test/compiler/7029152/Test.java b/hotspot/test/compiler/c2/7029152/Test.java similarity index 100% rename from hotspot/test/compiler/7029152/Test.java rename to hotspot/test/compiler/c2/7029152/Test.java diff --git a/hotspot/test/compiler/7041100/Test7041100.java b/hotspot/test/compiler/c2/7041100/Test7041100.java similarity index 100% rename from hotspot/test/compiler/7041100/Test7041100.java rename to hotspot/test/compiler/c2/7041100/Test7041100.java diff --git a/hotspot/test/compiler/7046096/Test7046096.java b/hotspot/test/compiler/c2/7046096/Test7046096.java similarity index 100% rename from hotspot/test/compiler/7046096/Test7046096.java rename to hotspot/test/compiler/c2/7046096/Test7046096.java diff --git a/hotspot/test/compiler/7047069/Test7047069.java b/hotspot/test/compiler/c2/7047069/Test7047069.java similarity index 100% rename from hotspot/test/compiler/7047069/Test7047069.java rename to hotspot/test/compiler/c2/7047069/Test7047069.java diff --git a/hotspot/test/compiler/7048332/Test7048332.java b/hotspot/test/compiler/c2/7048332/Test7048332.java similarity index 100% rename from hotspot/test/compiler/7048332/Test7048332.java rename to hotspot/test/compiler/c2/7048332/Test7048332.java diff --git a/hotspot/test/compiler/7068051/Test7068051.java b/hotspot/test/compiler/c2/7068051/Test7068051.java similarity index 100% rename from hotspot/test/compiler/7068051/Test7068051.java rename to hotspot/test/compiler/c2/7068051/Test7068051.java diff --git a/hotspot/test/compiler/7070134/Stemmer.java b/hotspot/test/compiler/c2/7070134/Stemmer.java similarity index 100% rename from hotspot/test/compiler/7070134/Stemmer.java rename to hotspot/test/compiler/c2/7070134/Stemmer.java diff --git a/hotspot/test/compiler/7070134/Test7070134.sh b/hotspot/test/compiler/c2/7070134/Test7070134.sh similarity index 97% rename from hotspot/test/compiler/7070134/Test7070134.sh rename to hotspot/test/compiler/c2/7070134/Test7070134.sh index 87618616c97..b79b5b16e5a 100644 --- a/hotspot/test/compiler/7070134/Test7070134.sh +++ b/hotspot/test/compiler/c2/7070134/Test7070134.sh @@ -30,7 +30,7 @@ then fi echo "TESTSRC=${TESTSRC}" ## Adding common setup Variables for running shell tests. -. ${TESTSRC}/../../test_env.sh +. ${TESTSRC}/../../../test_env.sh set -x diff --git a/hotspot/test/compiler/7070134/words b/hotspot/test/compiler/c2/7070134/words similarity index 100% rename from hotspot/test/compiler/7070134/words rename to hotspot/test/compiler/c2/7070134/words diff --git a/hotspot/test/compiler/7110586/Test7110586.java b/hotspot/test/compiler/c2/7110586/Test7110586.java similarity index 100% rename from hotspot/test/compiler/7110586/Test7110586.java rename to hotspot/test/compiler/c2/7110586/Test7110586.java diff --git a/hotspot/test/compiler/7125879/Test7125879.java b/hotspot/test/compiler/c2/7125879/Test7125879.java similarity index 100% rename from hotspot/test/compiler/7125879/Test7125879.java rename to hotspot/test/compiler/c2/7125879/Test7125879.java diff --git a/hotspot/test/compiler/7160610/Test7160610.java b/hotspot/test/compiler/c2/7160610/Test7160610.java similarity index 100% rename from hotspot/test/compiler/7160610/Test7160610.java rename to hotspot/test/compiler/c2/7160610/Test7160610.java diff --git a/hotspot/test/compiler/7169782/Test7169782.java b/hotspot/test/compiler/c2/7169782/Test7169782.java similarity index 100% rename from hotspot/test/compiler/7169782/Test7169782.java rename to hotspot/test/compiler/c2/7169782/Test7169782.java diff --git a/hotspot/test/compiler/7174363/Test7174363.java b/hotspot/test/compiler/c2/7174363/Test7174363.java similarity index 100% rename from hotspot/test/compiler/7174363/Test7174363.java rename to hotspot/test/compiler/c2/7174363/Test7174363.java diff --git a/hotspot/test/compiler/7177917/Test7177917.java b/hotspot/test/compiler/c2/7177917/Test7177917.java similarity index 100% rename from hotspot/test/compiler/7177917/Test7177917.java rename to hotspot/test/compiler/c2/7177917/Test7177917.java diff --git a/hotspot/test/compiler/7179138/Test7179138_1.java b/hotspot/test/compiler/c2/7179138/Test7179138_1.java similarity index 100% rename from hotspot/test/compiler/7179138/Test7179138_1.java rename to hotspot/test/compiler/c2/7179138/Test7179138_1.java diff --git a/hotspot/test/compiler/7179138/Test7179138_2.java b/hotspot/test/compiler/c2/7179138/Test7179138_2.java similarity index 100% rename from hotspot/test/compiler/7179138/Test7179138_2.java rename to hotspot/test/compiler/c2/7179138/Test7179138_2.java diff --git a/hotspot/test/compiler/7190310/Test7190310.java b/hotspot/test/compiler/c2/7190310/Test7190310.java similarity index 100% rename from hotspot/test/compiler/7190310/Test7190310.java rename to hotspot/test/compiler/c2/7190310/Test7190310.java diff --git a/hotspot/test/compiler/7190310/Test7190310_unsafe.java b/hotspot/test/compiler/c2/7190310/Test7190310_unsafe.java similarity index 100% rename from hotspot/test/compiler/7190310/Test7190310_unsafe.java rename to hotspot/test/compiler/c2/7190310/Test7190310_unsafe.java diff --git a/hotspot/test/compiler/7192963/TestByteVect.java b/hotspot/test/compiler/c2/7192963/TestByteVect.java similarity index 100% rename from hotspot/test/compiler/7192963/TestByteVect.java rename to hotspot/test/compiler/c2/7192963/TestByteVect.java diff --git a/hotspot/test/compiler/7192963/TestDoubleVect.java b/hotspot/test/compiler/c2/7192963/TestDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7192963/TestDoubleVect.java rename to hotspot/test/compiler/c2/7192963/TestDoubleVect.java diff --git a/hotspot/test/compiler/7192963/TestFloatVect.java b/hotspot/test/compiler/c2/7192963/TestFloatVect.java similarity index 100% rename from hotspot/test/compiler/7192963/TestFloatVect.java rename to hotspot/test/compiler/c2/7192963/TestFloatVect.java diff --git a/hotspot/test/compiler/7192963/TestIntVect.java b/hotspot/test/compiler/c2/7192963/TestIntVect.java similarity index 100% rename from hotspot/test/compiler/7192963/TestIntVect.java rename to hotspot/test/compiler/c2/7192963/TestIntVect.java diff --git a/hotspot/test/compiler/7192963/TestLongVect.java b/hotspot/test/compiler/c2/7192963/TestLongVect.java similarity index 100% rename from hotspot/test/compiler/7192963/TestLongVect.java rename to hotspot/test/compiler/c2/7192963/TestLongVect.java diff --git a/hotspot/test/compiler/7192963/TestShortVect.java b/hotspot/test/compiler/c2/7192963/TestShortVect.java similarity index 100% rename from hotspot/test/compiler/7192963/TestShortVect.java rename to hotspot/test/compiler/c2/7192963/TestShortVect.java diff --git a/hotspot/test/compiler/7199742/Test7199742.java b/hotspot/test/compiler/c2/7199742/Test7199742.java similarity index 100% rename from hotspot/test/compiler/7199742/Test7199742.java rename to hotspot/test/compiler/c2/7199742/Test7199742.java diff --git a/hotspot/test/compiler/7200264/Test7200264.sh b/hotspot/test/compiler/c2/7200264/Test7200264.sh similarity index 99% rename from hotspot/test/compiler/7200264/Test7200264.sh rename to hotspot/test/compiler/c2/7200264/Test7200264.sh index 5e7e508a5f2..a8fee1b7835 100644 --- a/hotspot/test/compiler/7200264/Test7200264.sh +++ b/hotspot/test/compiler/c2/7200264/Test7200264.sh @@ -31,7 +31,7 @@ then fi echo "TESTSRC=${TESTSRC}" ## Adding common setup Variables for running shell tests. -. ${TESTSRC}/../../test_env.sh +. ${TESTSRC}/../../../test_env.sh ${TESTJAVA}${FS}bin${FS}java ${TESTOPTS} -Xinternalversion | sed 's/amd64/x86/' | grep "x86" | grep "Server VM" | grep "debug" diff --git a/hotspot/test/compiler/7200264/TestIntVect.java b/hotspot/test/compiler/c2/7200264/TestIntVect.java similarity index 100% rename from hotspot/test/compiler/7200264/TestIntVect.java rename to hotspot/test/compiler/c2/7200264/TestIntVect.java diff --git a/hotspot/test/compiler/8000805/Test8000805.java b/hotspot/test/compiler/c2/8000805/Test8000805.java similarity index 100% rename from hotspot/test/compiler/8000805/Test8000805.java rename to hotspot/test/compiler/c2/8000805/Test8000805.java diff --git a/hotspot/test/compiler/8002069/Test8002069.java b/hotspot/test/compiler/c2/8002069/Test8002069.java similarity index 100% rename from hotspot/test/compiler/8002069/Test8002069.java rename to hotspot/test/compiler/c2/8002069/Test8002069.java diff --git a/hotspot/test/compiler/8004741/Test8004741.java b/hotspot/test/compiler/c2/8004741/Test8004741.java similarity index 100% rename from hotspot/test/compiler/8004741/Test8004741.java rename to hotspot/test/compiler/c2/8004741/Test8004741.java diff --git a/hotspot/test/compiler/8004867/TestIntAtomicCAS.java b/hotspot/test/compiler/c2/8004867/TestIntAtomicCAS.java similarity index 100% rename from hotspot/test/compiler/8004867/TestIntAtomicCAS.java rename to hotspot/test/compiler/c2/8004867/TestIntAtomicCAS.java diff --git a/hotspot/test/compiler/8004867/TestIntAtomicOrdered.java b/hotspot/test/compiler/c2/8004867/TestIntAtomicOrdered.java similarity index 100% rename from hotspot/test/compiler/8004867/TestIntAtomicOrdered.java rename to hotspot/test/compiler/c2/8004867/TestIntAtomicOrdered.java diff --git a/hotspot/test/compiler/8004867/TestIntAtomicVolatile.java b/hotspot/test/compiler/c2/8004867/TestIntAtomicVolatile.java similarity index 100% rename from hotspot/test/compiler/8004867/TestIntAtomicVolatile.java rename to hotspot/test/compiler/c2/8004867/TestIntAtomicVolatile.java diff --git a/hotspot/test/compiler/8004867/TestIntUnsafeCAS.java b/hotspot/test/compiler/c2/8004867/TestIntUnsafeCAS.java similarity index 100% rename from hotspot/test/compiler/8004867/TestIntUnsafeCAS.java rename to hotspot/test/compiler/c2/8004867/TestIntUnsafeCAS.java diff --git a/hotspot/test/compiler/8004867/TestIntUnsafeOrdered.java b/hotspot/test/compiler/c2/8004867/TestIntUnsafeOrdered.java similarity index 100% rename from hotspot/test/compiler/8004867/TestIntUnsafeOrdered.java rename to hotspot/test/compiler/c2/8004867/TestIntUnsafeOrdered.java diff --git a/hotspot/test/compiler/8004867/TestIntUnsafeVolatile.java b/hotspot/test/compiler/c2/8004867/TestIntUnsafeVolatile.java similarity index 100% rename from hotspot/test/compiler/8004867/TestIntUnsafeVolatile.java rename to hotspot/test/compiler/c2/8004867/TestIntUnsafeVolatile.java diff --git a/hotspot/test/compiler/8005956/PolynomialRoot.java b/hotspot/test/compiler/c2/8005956/PolynomialRoot.java similarity index 100% rename from hotspot/test/compiler/8005956/PolynomialRoot.java rename to hotspot/test/compiler/c2/8005956/PolynomialRoot.java diff --git a/hotspot/test/compiler/8007294/Test8007294.java b/hotspot/test/compiler/c2/8007294/Test8007294.java similarity index 100% rename from hotspot/test/compiler/8007294/Test8007294.java rename to hotspot/test/compiler/c2/8007294/Test8007294.java diff --git a/hotspot/test/compiler/8007722/Test8007722.java b/hotspot/test/compiler/c2/8007722/Test8007722.java similarity index 100% rename from hotspot/test/compiler/8007722/Test8007722.java rename to hotspot/test/compiler/c2/8007722/Test8007722.java diff --git a/hotspot/test/compiler/6378821/Test6378821.java b/hotspot/test/compiler/codegen/6378821/Test6378821.java similarity index 100% rename from hotspot/test/compiler/6378821/Test6378821.java rename to hotspot/test/compiler/codegen/6378821/Test6378821.java diff --git a/hotspot/test/compiler/6431242/Test.java b/hotspot/test/compiler/codegen/6431242/Test.java similarity index 100% rename from hotspot/test/compiler/6431242/Test.java rename to hotspot/test/compiler/codegen/6431242/Test.java diff --git a/hotspot/test/compiler/6797305/Test6797305.java b/hotspot/test/compiler/codegen/6797305/Test6797305.java similarity index 100% rename from hotspot/test/compiler/6797305/Test6797305.java rename to hotspot/test/compiler/codegen/6797305/Test6797305.java diff --git a/hotspot/test/compiler/6814842/Test6814842.java b/hotspot/test/compiler/codegen/6814842/Test6814842.java similarity index 100% rename from hotspot/test/compiler/6814842/Test6814842.java rename to hotspot/test/compiler/codegen/6814842/Test6814842.java diff --git a/hotspot/test/compiler/6823354/Test6823354.java b/hotspot/test/compiler/codegen/6823354/Test6823354.java similarity index 100% rename from hotspot/test/compiler/6823354/Test6823354.java rename to hotspot/test/compiler/codegen/6823354/Test6823354.java diff --git a/hotspot/test/compiler/6875866/Test.java b/hotspot/test/compiler/codegen/6875866/Test.java similarity index 100% rename from hotspot/test/compiler/6875866/Test.java rename to hotspot/test/compiler/codegen/6875866/Test.java diff --git a/hotspot/test/compiler/6879902/Test6879902.java b/hotspot/test/compiler/codegen/6879902/Test6879902.java similarity index 100% rename from hotspot/test/compiler/6879902/Test6879902.java rename to hotspot/test/compiler/codegen/6879902/Test6879902.java diff --git a/hotspot/test/compiler/6896617/Test6896617.java b/hotspot/test/compiler/codegen/6896617/Test6896617.java similarity index 100% rename from hotspot/test/compiler/6896617/Test6896617.java rename to hotspot/test/compiler/codegen/6896617/Test6896617.java diff --git a/hotspot/test/compiler/6909839/Test6909839.java b/hotspot/test/compiler/codegen/6909839/Test6909839.java similarity index 100% rename from hotspot/test/compiler/6909839/Test6909839.java rename to hotspot/test/compiler/codegen/6909839/Test6909839.java diff --git a/hotspot/test/compiler/6935535/Test.java b/hotspot/test/compiler/codegen/6935535/Test.java similarity index 100% rename from hotspot/test/compiler/6935535/Test.java rename to hotspot/test/compiler/codegen/6935535/Test.java diff --git a/hotspot/test/compiler/6942326/Test.java b/hotspot/test/compiler/codegen/6942326/Test.java similarity index 100% rename from hotspot/test/compiler/6942326/Test.java rename to hotspot/test/compiler/codegen/6942326/Test.java diff --git a/hotspot/test/compiler/7009231/Test7009231.java b/hotspot/test/compiler/codegen/7009231/Test7009231.java similarity index 100% rename from hotspot/test/compiler/7009231/Test7009231.java rename to hotspot/test/compiler/codegen/7009231/Test7009231.java diff --git a/hotspot/test/compiler/7088419/CRCTest.java b/hotspot/test/compiler/codegen/7088419/CRCTest.java similarity index 100% rename from hotspot/test/compiler/7088419/CRCTest.java rename to hotspot/test/compiler/codegen/7088419/CRCTest.java diff --git a/hotspot/test/compiler/7100757/Test7100757.java b/hotspot/test/compiler/codegen/7100757/Test7100757.java similarity index 100% rename from hotspot/test/compiler/7100757/Test7100757.java rename to hotspot/test/compiler/codegen/7100757/Test7100757.java diff --git a/hotspot/test/compiler/7119644/TestBooleanVect.java b/hotspot/test/compiler/codegen/7119644/TestBooleanVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestBooleanVect.java rename to hotspot/test/compiler/codegen/7119644/TestBooleanVect.java diff --git a/hotspot/test/compiler/7119644/TestByteDoubleVect.java b/hotspot/test/compiler/codegen/7119644/TestByteDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestByteDoubleVect.java rename to hotspot/test/compiler/codegen/7119644/TestByteDoubleVect.java diff --git a/hotspot/test/compiler/7119644/TestByteFloatVect.java b/hotspot/test/compiler/codegen/7119644/TestByteFloatVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestByteFloatVect.java rename to hotspot/test/compiler/codegen/7119644/TestByteFloatVect.java diff --git a/hotspot/test/compiler/7119644/TestByteIntVect.java b/hotspot/test/compiler/codegen/7119644/TestByteIntVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestByteIntVect.java rename to hotspot/test/compiler/codegen/7119644/TestByteIntVect.java diff --git a/hotspot/test/compiler/7119644/TestByteLongVect.java b/hotspot/test/compiler/codegen/7119644/TestByteLongVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestByteLongVect.java rename to hotspot/test/compiler/codegen/7119644/TestByteLongVect.java diff --git a/hotspot/test/compiler/7119644/TestByteShortVect.java b/hotspot/test/compiler/codegen/7119644/TestByteShortVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestByteShortVect.java rename to hotspot/test/compiler/codegen/7119644/TestByteShortVect.java diff --git a/hotspot/test/compiler/7119644/TestByteVect.java b/hotspot/test/compiler/codegen/7119644/TestByteVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestByteVect.java rename to hotspot/test/compiler/codegen/7119644/TestByteVect.java diff --git a/hotspot/test/compiler/7119644/TestCharShortVect.java b/hotspot/test/compiler/codegen/7119644/TestCharShortVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestCharShortVect.java rename to hotspot/test/compiler/codegen/7119644/TestCharShortVect.java diff --git a/hotspot/test/compiler/7119644/TestCharVect.java b/hotspot/test/compiler/codegen/7119644/TestCharVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestCharVect.java rename to hotspot/test/compiler/codegen/7119644/TestCharVect.java diff --git a/hotspot/test/compiler/7119644/TestDoubleVect.java b/hotspot/test/compiler/codegen/7119644/TestDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestDoubleVect.java rename to hotspot/test/compiler/codegen/7119644/TestDoubleVect.java diff --git a/hotspot/test/compiler/7119644/TestFloatDoubleVect.java b/hotspot/test/compiler/codegen/7119644/TestFloatDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestFloatDoubleVect.java rename to hotspot/test/compiler/codegen/7119644/TestFloatDoubleVect.java diff --git a/hotspot/test/compiler/7119644/TestFloatVect.java b/hotspot/test/compiler/codegen/7119644/TestFloatVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestFloatVect.java rename to hotspot/test/compiler/codegen/7119644/TestFloatVect.java diff --git a/hotspot/test/compiler/7119644/TestIntDoubleVect.java b/hotspot/test/compiler/codegen/7119644/TestIntDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestIntDoubleVect.java rename to hotspot/test/compiler/codegen/7119644/TestIntDoubleVect.java diff --git a/hotspot/test/compiler/7119644/TestIntFloatVect.java b/hotspot/test/compiler/codegen/7119644/TestIntFloatVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestIntFloatVect.java rename to hotspot/test/compiler/codegen/7119644/TestIntFloatVect.java diff --git a/hotspot/test/compiler/7119644/TestIntLongVect.java b/hotspot/test/compiler/codegen/7119644/TestIntLongVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestIntLongVect.java rename to hotspot/test/compiler/codegen/7119644/TestIntLongVect.java diff --git a/hotspot/test/compiler/7119644/TestIntVect.java b/hotspot/test/compiler/codegen/7119644/TestIntVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestIntVect.java rename to hotspot/test/compiler/codegen/7119644/TestIntVect.java diff --git a/hotspot/test/compiler/7119644/TestLongDoubleVect.java b/hotspot/test/compiler/codegen/7119644/TestLongDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestLongDoubleVect.java rename to hotspot/test/compiler/codegen/7119644/TestLongDoubleVect.java diff --git a/hotspot/test/compiler/7119644/TestLongFloatVect.java b/hotspot/test/compiler/codegen/7119644/TestLongFloatVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestLongFloatVect.java rename to hotspot/test/compiler/codegen/7119644/TestLongFloatVect.java diff --git a/hotspot/test/compiler/7119644/TestLongVect.java b/hotspot/test/compiler/codegen/7119644/TestLongVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestLongVect.java rename to hotspot/test/compiler/codegen/7119644/TestLongVect.java diff --git a/hotspot/test/compiler/7119644/TestShortDoubleVect.java b/hotspot/test/compiler/codegen/7119644/TestShortDoubleVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestShortDoubleVect.java rename to hotspot/test/compiler/codegen/7119644/TestShortDoubleVect.java diff --git a/hotspot/test/compiler/7119644/TestShortFloatVect.java b/hotspot/test/compiler/codegen/7119644/TestShortFloatVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestShortFloatVect.java rename to hotspot/test/compiler/codegen/7119644/TestShortFloatVect.java diff --git a/hotspot/test/compiler/7119644/TestShortIntVect.java b/hotspot/test/compiler/codegen/7119644/TestShortIntVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestShortIntVect.java rename to hotspot/test/compiler/codegen/7119644/TestShortIntVect.java diff --git a/hotspot/test/compiler/7119644/TestShortLongVect.java b/hotspot/test/compiler/codegen/7119644/TestShortLongVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestShortLongVect.java rename to hotspot/test/compiler/codegen/7119644/TestShortLongVect.java diff --git a/hotspot/test/compiler/7119644/TestShortVect.java b/hotspot/test/compiler/codegen/7119644/TestShortVect.java similarity index 100% rename from hotspot/test/compiler/7119644/TestShortVect.java rename to hotspot/test/compiler/codegen/7119644/TestShortVect.java diff --git a/hotspot/test/compiler/7184394/TestAESBase.java b/hotspot/test/compiler/codegen/7184394/TestAESBase.java similarity index 100% rename from hotspot/test/compiler/7184394/TestAESBase.java rename to hotspot/test/compiler/codegen/7184394/TestAESBase.java diff --git a/hotspot/test/compiler/7184394/TestAESDecode.java b/hotspot/test/compiler/codegen/7184394/TestAESDecode.java similarity index 100% rename from hotspot/test/compiler/7184394/TestAESDecode.java rename to hotspot/test/compiler/codegen/7184394/TestAESDecode.java diff --git a/hotspot/test/compiler/7184394/TestAESEncode.java b/hotspot/test/compiler/codegen/7184394/TestAESEncode.java similarity index 100% rename from hotspot/test/compiler/7184394/TestAESEncode.java rename to hotspot/test/compiler/codegen/7184394/TestAESEncode.java diff --git a/hotspot/test/compiler/7184394/TestAESMain.java b/hotspot/test/compiler/codegen/7184394/TestAESMain.java similarity index 100% rename from hotspot/test/compiler/7184394/TestAESMain.java rename to hotspot/test/compiler/codegen/7184394/TestAESMain.java diff --git a/hotspot/test/compiler/8001183/TestCharVect.java b/hotspot/test/compiler/codegen/8001183/TestCharVect.java similarity index 100% rename from hotspot/test/compiler/8001183/TestCharVect.java rename to hotspot/test/compiler/codegen/8001183/TestCharVect.java diff --git a/hotspot/test/compiler/8005033/Test8005033.java b/hotspot/test/compiler/codegen/8005033/Test8005033.java similarity index 100% rename from hotspot/test/compiler/8005033/Test8005033.java rename to hotspot/test/compiler/codegen/8005033/Test8005033.java diff --git a/hotspot/test/compiler/8011901/Test8011901.java b/hotspot/test/compiler/codegen/8011901/Test8011901.java similarity index 100% rename from hotspot/test/compiler/8011901/Test8011901.java rename to hotspot/test/compiler/codegen/8011901/Test8011901.java diff --git a/hotspot/test/compiler/6934604/TestByteBoxing.java b/hotspot/test/compiler/eliminateAutobox/6934604/TestByteBoxing.java similarity index 100% rename from hotspot/test/compiler/6934604/TestByteBoxing.java rename to hotspot/test/compiler/eliminateAutobox/6934604/TestByteBoxing.java diff --git a/hotspot/test/compiler/6934604/TestDoubleBoxing.java b/hotspot/test/compiler/eliminateAutobox/6934604/TestDoubleBoxing.java similarity index 100% rename from hotspot/test/compiler/6934604/TestDoubleBoxing.java rename to hotspot/test/compiler/eliminateAutobox/6934604/TestDoubleBoxing.java diff --git a/hotspot/test/compiler/6934604/TestFloatBoxing.java b/hotspot/test/compiler/eliminateAutobox/6934604/TestFloatBoxing.java similarity index 100% rename from hotspot/test/compiler/6934604/TestFloatBoxing.java rename to hotspot/test/compiler/eliminateAutobox/6934604/TestFloatBoxing.java diff --git a/hotspot/test/compiler/6934604/TestIntBoxing.java b/hotspot/test/compiler/eliminateAutobox/6934604/TestIntBoxing.java similarity index 100% rename from hotspot/test/compiler/6934604/TestIntBoxing.java rename to hotspot/test/compiler/eliminateAutobox/6934604/TestIntBoxing.java diff --git a/hotspot/test/compiler/6934604/TestLongBoxing.java b/hotspot/test/compiler/eliminateAutobox/6934604/TestLongBoxing.java similarity index 100% rename from hotspot/test/compiler/6934604/TestLongBoxing.java rename to hotspot/test/compiler/eliminateAutobox/6934604/TestLongBoxing.java diff --git a/hotspot/test/compiler/6934604/TestShortBoxing.java b/hotspot/test/compiler/eliminateAutobox/6934604/TestShortBoxing.java similarity index 100% rename from hotspot/test/compiler/6934604/TestShortBoxing.java rename to hotspot/test/compiler/eliminateAutobox/6934604/TestShortBoxing.java diff --git a/hotspot/test/compiler/EliminateAutoBox/UnsignedLoads.java b/hotspot/test/compiler/eliminateAutobox/UnsignedLoads.java similarity index 100% rename from hotspot/test/compiler/EliminateAutoBox/UnsignedLoads.java rename to hotspot/test/compiler/eliminateAutobox/UnsignedLoads.java diff --git a/hotspot/test/compiler/6689060/Test.java b/hotspot/test/compiler/escapeAnalysis/6689060/Test.java similarity index 100% rename from hotspot/test/compiler/6689060/Test.java rename to hotspot/test/compiler/escapeAnalysis/6689060/Test.java diff --git a/hotspot/test/compiler/6716441/Tester.java b/hotspot/test/compiler/escapeAnalysis/6716441/Tester.java similarity index 100% rename from hotspot/test/compiler/6716441/Tester.java rename to hotspot/test/compiler/escapeAnalysis/6716441/Tester.java diff --git a/hotspot/test/compiler/6726999/Test.java b/hotspot/test/compiler/escapeAnalysis/6726999/Test.java similarity index 100% rename from hotspot/test/compiler/6726999/Test.java rename to hotspot/test/compiler/escapeAnalysis/6726999/Test.java diff --git a/hotspot/test/compiler/6775880/Test.java b/hotspot/test/compiler/escapeAnalysis/6775880/Test.java similarity index 100% rename from hotspot/test/compiler/6775880/Test.java rename to hotspot/test/compiler/escapeAnalysis/6775880/Test.java diff --git a/hotspot/test/compiler/6795161/Test.java b/hotspot/test/compiler/escapeAnalysis/6795161/Test.java similarity index 100% rename from hotspot/test/compiler/6795161/Test.java rename to hotspot/test/compiler/escapeAnalysis/6795161/Test.java diff --git a/hotspot/test/compiler/6895383/Test.java b/hotspot/test/compiler/escapeAnalysis/6895383/Test.java similarity index 100% rename from hotspot/test/compiler/6895383/Test.java rename to hotspot/test/compiler/escapeAnalysis/6895383/Test.java diff --git a/hotspot/test/compiler/6896727/Test.java b/hotspot/test/compiler/escapeAnalysis/6896727/Test.java similarity index 100% rename from hotspot/test/compiler/6896727/Test.java rename to hotspot/test/compiler/escapeAnalysis/6896727/Test.java diff --git a/hotspot/test/compiler/EscapeAnalysis/Test8020215.java b/hotspot/test/compiler/escapeAnalysis/Test8020215.java similarity index 100% rename from hotspot/test/compiler/EscapeAnalysis/Test8020215.java rename to hotspot/test/compiler/escapeAnalysis/Test8020215.java diff --git a/hotspot/test/compiler/EscapeAnalysis/TestAllocatedEscapesPtrComparison.java b/hotspot/test/compiler/escapeAnalysis/TestAllocatedEscapesPtrComparison.java similarity index 100% rename from hotspot/test/compiler/EscapeAnalysis/TestAllocatedEscapesPtrComparison.java rename to hotspot/test/compiler/escapeAnalysis/TestAllocatedEscapesPtrComparison.java diff --git a/hotspot/test/compiler/EscapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java b/hotspot/test/compiler/escapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java similarity index 100% rename from hotspot/test/compiler/EscapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java rename to hotspot/test/compiler/escapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java diff --git a/hotspot/test/compiler/IntegerArithmetic/TestIntegerComparison.java b/hotspot/test/compiler/integerArithmetic/TestIntegerComparison.java similarity index 100% rename from hotspot/test/compiler/IntegerArithmetic/TestIntegerComparison.java rename to hotspot/test/compiler/integerArithmetic/TestIntegerComparison.java diff --git a/hotspot/test/compiler/6539464/Test.java b/hotspot/test/compiler/interpreter/6539464/Test.java similarity index 100% rename from hotspot/test/compiler/6539464/Test.java rename to hotspot/test/compiler/interpreter/6539464/Test.java diff --git a/hotspot/test/compiler/6833129/Test.java b/hotspot/test/compiler/interpreter/6833129/Test.java similarity index 100% rename from hotspot/test/compiler/6833129/Test.java rename to hotspot/test/compiler/interpreter/6833129/Test.java diff --git a/hotspot/test/compiler/7116216/LargeFrame.java b/hotspot/test/compiler/interpreter/7116216/LargeFrame.java similarity index 100% rename from hotspot/test/compiler/7116216/LargeFrame.java rename to hotspot/test/compiler/interpreter/7116216/LargeFrame.java diff --git a/hotspot/test/compiler/7116216/StackOverflow.java b/hotspot/test/compiler/interpreter/7116216/StackOverflow.java similarity index 100% rename from hotspot/test/compiler/7116216/StackOverflow.java rename to hotspot/test/compiler/interpreter/7116216/StackOverflow.java diff --git a/hotspot/test/compiler/6982370/Test6982370.java b/hotspot/test/compiler/intrinsics/6982370/Test6982370.java similarity index 100% rename from hotspot/test/compiler/6982370/Test6982370.java rename to hotspot/test/compiler/intrinsics/6982370/Test6982370.java diff --git a/hotspot/test/compiler/8005419/Test8005419.java b/hotspot/test/compiler/intrinsics/8005419/Test8005419.java similarity index 100% rename from hotspot/test/compiler/8005419/Test8005419.java rename to hotspot/test/compiler/intrinsics/8005419/Test8005419.java diff --git a/hotspot/test/compiler/6990212/Test6990212.java b/hotspot/test/compiler/jsr292/6990212/Test6990212.java similarity index 100% rename from hotspot/test/compiler/6990212/Test6990212.java rename to hotspot/test/compiler/jsr292/6990212/Test6990212.java diff --git a/hotspot/test/compiler/7082949/Test7082949.java b/hotspot/test/compiler/jsr292/7082949/Test7082949.java similarity index 100% rename from hotspot/test/compiler/7082949/Test7082949.java rename to hotspot/test/compiler/jsr292/7082949/Test7082949.java diff --git a/hotspot/test/compiler/6659207/Test.java b/hotspot/test/compiler/loopopts/6659207/Test.java similarity index 100% rename from hotspot/test/compiler/6659207/Test.java rename to hotspot/test/compiler/loopopts/6659207/Test.java diff --git a/hotspot/test/compiler/6855164/Test.java b/hotspot/test/compiler/loopopts/6855164/Test.java similarity index 100% rename from hotspot/test/compiler/6855164/Test.java rename to hotspot/test/compiler/loopopts/6855164/Test.java diff --git a/hotspot/test/compiler/6860469/Test.java b/hotspot/test/compiler/loopopts/6860469/Test.java similarity index 100% rename from hotspot/test/compiler/6860469/Test.java rename to hotspot/test/compiler/loopopts/6860469/Test.java diff --git a/hotspot/test/compiler/7044738/Test7044738.java b/hotspot/test/compiler/loopopts/7044738/Test7044738.java similarity index 100% rename from hotspot/test/compiler/7044738/Test7044738.java rename to hotspot/test/compiler/loopopts/7044738/Test7044738.java diff --git a/hotspot/test/compiler/7052494/Test7052494.java b/hotspot/test/compiler/loopopts/7052494/Test7052494.java similarity index 100% rename from hotspot/test/compiler/7052494/Test7052494.java rename to hotspot/test/compiler/loopopts/7052494/Test7052494.java diff --git a/hotspot/test/compiler/6778657/Test.java b/hotspot/test/compiler/runtime/6778657/Test.java similarity index 100% rename from hotspot/test/compiler/6778657/Test.java rename to hotspot/test/compiler/runtime/6778657/Test.java diff --git a/hotspot/test/compiler/6826736/Test.java b/hotspot/test/compiler/runtime/6826736/Test.java similarity index 100% rename from hotspot/test/compiler/6826736/Test.java rename to hotspot/test/compiler/runtime/6826736/Test.java diff --git a/hotspot/test/compiler/6859338/Test6859338.java b/hotspot/test/compiler/runtime/6859338/Test6859338.java similarity index 100% rename from hotspot/test/compiler/6859338/Test6859338.java rename to hotspot/test/compiler/runtime/6859338/Test6859338.java diff --git a/hotspot/test/compiler/6863420/Test.java b/hotspot/test/compiler/runtime/6863420/Test.java similarity index 100% rename from hotspot/test/compiler/6863420/Test.java rename to hotspot/test/compiler/runtime/6863420/Test.java diff --git a/hotspot/test/compiler/6865265/StackOverflowBug.java b/hotspot/test/compiler/runtime/6865265/StackOverflowBug.java similarity index 100% rename from hotspot/test/compiler/6865265/StackOverflowBug.java rename to hotspot/test/compiler/runtime/6865265/StackOverflowBug.java diff --git a/hotspot/test/compiler/6891750/Test6891750.java b/hotspot/test/compiler/runtime/6891750/Test6891750.java similarity index 100% rename from hotspot/test/compiler/6891750/Test6891750.java rename to hotspot/test/compiler/runtime/6891750/Test6891750.java diff --git a/hotspot/test/compiler/6892265/Test.java b/hotspot/test/compiler/runtime/6892265/Test.java similarity index 100% rename from hotspot/test/compiler/6892265/Test.java rename to hotspot/test/compiler/runtime/6892265/Test.java diff --git a/hotspot/test/compiler/7088020/Test7088020.java b/hotspot/test/compiler/runtime/7088020/Test7088020.java similarity index 100% rename from hotspot/test/compiler/7088020/Test7088020.java rename to hotspot/test/compiler/runtime/7088020/Test7088020.java diff --git a/hotspot/test/compiler/7141637/SpreadNullArg.java b/hotspot/test/compiler/runtime/7141637/SpreadNullArg.java similarity index 100% rename from hotspot/test/compiler/7141637/SpreadNullArg.java rename to hotspot/test/compiler/runtime/7141637/SpreadNullArg.java diff --git a/hotspot/test/compiler/7196199/Test7196199.java b/hotspot/test/compiler/runtime/7196199/Test7196199.java similarity index 100% rename from hotspot/test/compiler/7196199/Test7196199.java rename to hotspot/test/compiler/runtime/7196199/Test7196199.java diff --git a/hotspot/test/compiler/8010927/Test8010927.java b/hotspot/test/compiler/runtime/8010927/Test8010927.java similarity index 100% rename from hotspot/test/compiler/8010927/Test8010927.java rename to hotspot/test/compiler/runtime/8010927/Test8010927.java diff --git a/hotspot/test/compiler/8015436/Test8015436.java b/hotspot/test/compiler/runtime/8015436/Test8015436.java similarity index 100% rename from hotspot/test/compiler/8015436/Test8015436.java rename to hotspot/test/compiler/runtime/8015436/Test8015436.java diff --git a/hotspot/test/compiler/8009761/Test8009761.java b/hotspot/test/compiler/uncommontrap/8009761/Test8009761.java similarity index 100% rename from hotspot/test/compiler/8009761/Test8009761.java rename to hotspot/test/compiler/uncommontrap/8009761/Test8009761.java From 5ef6d4e99d568bb59de16c526d039bed80807b5c Mon Sep 17 00:00:00 2001 From: Tobias Hartmann Date: Thu, 20 Nov 2014 11:06:26 +0100 Subject: [PATCH 05/12] 8050079: crash while compiling java.lang.ref.Finalizer::runFinalizer Ignore non-instance Klasses in the subclass hierarchy. Reviewed-by: kvn, iignatyev, jrose --- hotspot/src/share/vm/code/dependencies.cpp | 58 +++++++------ hotspot/test/TEST.groups | 1 + .../TestMonomorphicObjectCall.java | 73 ++++++++++++++++ .../java/lang/Object.java | 87 +++++++++++++++++++ 4 files changed, 192 insertions(+), 27 deletions(-) create mode 100644 hotspot/test/compiler/dependencies/MonomorphicObjectCall/TestMonomorphicObjectCall.java create mode 100644 hotspot/test/compiler/dependencies/MonomorphicObjectCall/java/lang/Object.java diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp index f995a2f9999..fbefd4a9b1e 100644 --- a/hotspot/src/share/vm/code/dependencies.cpp +++ b/hotspot/src/share/vm/code/dependencies.cpp @@ -912,6 +912,8 @@ class ClassHierarchyWalker { bool is_witness(Klass* k) { if (doing_subtype_search()) { return Dependencies::is_concrete_klass(k); + } else if (!k->oop_is_instance()) { + return false; // no methods to find in an array type } else { Method* m = InstanceKlass::cast(k)->find_method(_name, _signature); if (m == NULL || !Dependencies::is_concrete_method(m)) return false; @@ -1118,7 +1120,7 @@ Klass* ClassHierarchyWalker::find_witness_anywhere(Klass* context_type, Klass* chain; // scratch variable #define ADD_SUBCLASS_CHAIN(k) { \ assert(chaini < CHAINMAX, "oob"); \ - chain = InstanceKlass::cast(k)->subklass(); \ + chain = k->subklass(); \ if (chain != NULL) chains[chaini++] = chain; } // Look for non-abstract subclasses. @@ -1129,35 +1131,37 @@ Klass* ClassHierarchyWalker::find_witness_anywhere(Klass* context_type, // (Their subclasses are additional indirect implementors. // See InstanceKlass::add_implementor.) // (Note: nof_implementors is always zero for non-interfaces.) - int nof_impls = InstanceKlass::cast(context_type)->nof_implementors(); - if (nof_impls > 1) { - // Avoid this case: *I.m > { A.m, C }; B.m > C - // Here, I.m has 2 concrete implementations, but m appears unique - // as A.m, because the search misses B.m when checking C. - // The inherited method B.m was getting missed by the walker - // when interface 'I' was the starting point. - // %%% Until this is fixed more systematically, bail out. - // (Old CHA had the same limitation.) - return context_type; - } - if (nof_impls > 0) { - Klass* impl = InstanceKlass::cast(context_type)->implementor(); - assert(impl != NULL, "just checking"); - // If impl is the same as the context_type, then more than one - // implementor has seen. No exact info in this case. - if (impl == context_type) { - return context_type; // report an inexact witness to this sad affair + if (top_level_call) { + int nof_impls = InstanceKlass::cast(context_type)->nof_implementors(); + if (nof_impls > 1) { + // Avoid this case: *I.m > { A.m, C }; B.m > C + // Here, I.m has 2 concrete implementations, but m appears unique + // as A.m, because the search misses B.m when checking C. + // The inherited method B.m was getting missed by the walker + // when interface 'I' was the starting point. + // %%% Until this is fixed more systematically, bail out. + // (Old CHA had the same limitation.) + return context_type; } - if (do_counts) - { NOT_PRODUCT(deps_find_witness_steps++); } - if (is_participant(impl)) { - if (!participants_hide_witnesses) { + if (nof_impls > 0) { + Klass* impl = InstanceKlass::cast(context_type)->implementor(); + assert(impl != NULL, "just checking"); + // If impl is the same as the context_type, then more than one + // implementor has seen. No exact info in this case. + if (impl == context_type) { + return context_type; // report an inexact witness to this sad affair + } + if (do_counts) + { NOT_PRODUCT(deps_find_witness_steps++); } + if (is_participant(impl)) { + if (!participants_hide_witnesses) { + ADD_SUBCLASS_CHAIN(impl); + } + } else if (is_witness(impl) && !ignore_witness(impl)) { + return impl; + } else { ADD_SUBCLASS_CHAIN(impl); } - } else if (is_witness(impl) && !ignore_witness(impl)) { - return impl; - } else { - ADD_SUBCLASS_CHAIN(impl); } } diff --git a/hotspot/test/TEST.groups b/hotspot/test/TEST.groups index e4dbf572f06..f94cb702179 100644 --- a/hotspot/test/TEST.groups +++ b/hotspot/test/TEST.groups @@ -344,6 +344,7 @@ hotspot_compiler_2 = \ compiler/codecache/ \ compiler/codegen/ \ compiler/cpuflags/ \ + compiler/dependencies/ \ compiler/eliminateAutobox/ \ compiler/escapeAnalysis/ \ compiler/exceptions/ \ diff --git a/hotspot/test/compiler/dependencies/MonomorphicObjectCall/TestMonomorphicObjectCall.java b/hotspot/test/compiler/dependencies/MonomorphicObjectCall/TestMonomorphicObjectCall.java new file mode 100644 index 00000000000..932599013cf --- /dev/null +++ b/hotspot/test/compiler/dependencies/MonomorphicObjectCall/TestMonomorphicObjectCall.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2014, 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. + */ + +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; + +import com.oracle.java.testlibrary.*; + +/* + * @test + * @bug 8050079 + * @summary Compiles a monomorphic call to finalizeObject() on a modified java.lang.Object to test C1 CHA. + * @library /testlibrary + * @compile -XDignore.symbol.file java/lang/Object.java TestMonomorphicObjectCall.java + * @run main TestMonomorphicObjectCall + */ +public class TestMonomorphicObjectCall { + final static String testClasses = System.getProperty("test.classes") + File.separator; + + private static void callFinalize(Object object) throws Throwable { + // Call modified version of java.lang.Object::finalize() that is + // not overridden by any subclass. C1 CHA should mark the call site + // as monomorphic and inline the method. + object.finalizeObject(); + } + + public static void main(String[] args) throws Throwable { + if (args.length == 0) { + // Execute new instance with modified java.lang.Object + executeTestJvm(); + } else { + // Trigger compilation of 'callFinalize' + callFinalize(new Object()); + } + } + + public static void executeTestJvm() throws Throwable { + // Execute test with modified version of java.lang.Object + // in -Xbootclasspath. + String[] vmOpts = new String[] { + "-Xbootclasspath/p:" + testClasses, + "-Xcomp", + "-XX:-VerifyDependencies", + "-XX:CompileOnly=TestMonomorphicObjectCall::callFinalize", + "-XX:CompileOnly=Object::finalizeObject", + "-XX:TieredStopAtLevel=1", + TestMonomorphicObjectCall.class.getName(), + "true"}; + OutputAnalyzer output = ProcessTools.executeTestJvm(vmOpts); + output.shouldHaveExitValue(0); + } +} diff --git a/hotspot/test/compiler/dependencies/MonomorphicObjectCall/java/lang/Object.java b/hotspot/test/compiler/dependencies/MonomorphicObjectCall/java/lang/Object.java new file mode 100644 index 00000000000..aa983bcbd68 --- /dev/null +++ b/hotspot/test/compiler/dependencies/MonomorphicObjectCall/java/lang/Object.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1994, 2014, 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. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * 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. + */ + +package java.lang; + +/** + * Slightly modified version of java.lang.Object that replaces + * finalize() by finalizeObject() to avoid overriding in subclasses. + */ +public class Object { + + private static native void registerNatives(); + static { + registerNatives(); + } + + public final native Class getClass(); + + public native int hashCode(); + + public boolean equals(Object obj) { + return (this == obj); + } + + protected native Object clone() throws CloneNotSupportedException; + + public String toString() { + return getClass().getName() + "@" + Integer.toHexString(hashCode()); + } + + public final native void notify(); + + public final native void notifyAll(); + + public final native void wait(long timeout) throws InterruptedException; + + public final void wait(long timeout, int nanos) throws InterruptedException { + if (timeout < 0) { + throw new IllegalArgumentException("timeout value is negative"); + } + + if (nanos < 0 || nanos > 999999) { + throw new IllegalArgumentException( + "nanosecond timeout value out of range"); + } + + if (nanos >= 500000 || (nanos != 0 && timeout == 0)) { + timeout++; + } + + wait(timeout); + } + + public final void wait() throws InterruptedException { + wait(0); + } + + /** + * Replaces original finalize() method and is therefore not + * overridden by any subclasses of Object. + * @throws Throwable + */ + // protected void finalize() throws Throwable { } + public void finalizeObject() throws Throwable { } +} From bf5546e48d73a99da21a94e4dc8a542b1424235b Mon Sep 17 00:00:00 2001 From: Igor Ignatyev Date: Fri, 21 Nov 2014 17:27:11 +0300 Subject: [PATCH 06/12] 8059550: JEP-JDK-8043304: Test task: segment overflow w/ empty others Reviewed-by: kvn, thartmann, iignatyev --- .../src/share/vm/compiler/compileBroker.hpp | 1 + hotspot/src/share/vm/prims/whitebox.cpp | 13 +++ .../codecache/OverflowCodeCacheTest.java | 96 +++++++++++++++++++ .../whitebox/sun/hotspot/WhiteBox.java | 2 + .../whitebox/sun/hotspot/code/BlobType.java | 13 ++- .../whitebox/sun/hotspot/code/CodeBlob.java | 7 ++ 6 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 hotspot/test/compiler/codecache/OverflowCodeCacheTest.java diff --git a/hotspot/src/share/vm/compiler/compileBroker.hpp b/hotspot/src/share/vm/compiler/compileBroker.hpp index e6d8bb9bdb9..b35d3766d5f 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.hpp +++ b/hotspot/src/share/vm/compiler/compileBroker.hpp @@ -415,6 +415,7 @@ class CompileBroker: AllStatic { shutdown_compilaton = 2 }; + static jint get_compilation_activity_mode() { return _should_compile_new_jobs; } static bool should_compile_new_jobs() { return UseCompiler && (_should_compile_new_jobs == run_compilation); } static bool set_should_compile_new_jobs(jint new_state) { // Return success if the current caller set it diff --git a/hotspot/src/share/vm/prims/whitebox.cpp b/hotspot/src/share/vm/prims/whitebox.cpp index f412484cbe0..1f18c63c37b 100644 --- a/hotspot/src/share/vm/prims/whitebox.cpp +++ b/hotspot/src/share/vm/prims/whitebox.cpp @@ -944,6 +944,16 @@ WB_ENTRY(jobjectArray, WB_GetCodeHeapEntries(JNIEnv* env, jobject o, jint blob_t return result; WB_END +WB_ENTRY(jint, WB_GetCompilationActivityMode(JNIEnv* env, jobject o)) + return CompileBroker::get_compilation_activity_mode(); +WB_END + +WB_ENTRY(jobjectArray, WB_GetCodeBlob(JNIEnv* env, jobject o, jlong addr)) + ThreadToNativeFromVM ttn(thread); + CodeBlobStub stub((CodeBlob*) addr); + return codeBlob2objectArray(thread, env, &stub); +WB_END + WB_ENTRY(jlong, WB_GetThreadStackSize(JNIEnv* env, jobject o)) return (jlong) Thread::current()->stack_size(); WB_END @@ -1194,6 +1204,9 @@ static JNINativeMethod methods[] = { {CC"allocateCodeBlob", CC"(II)J", (void*)&WB_AllocateCodeBlob }, {CC"freeCodeBlob", CC"(J)V", (void*)&WB_FreeCodeBlob }, {CC"getCodeHeapEntries", CC"(I)[Ljava/lang/Object;",(void*)&WB_GetCodeHeapEntries }, + {CC"getCompilationActivityMode", + CC"()I", (void*)&WB_GetCompilationActivityMode}, + {CC"getCodeBlob", CC"(J)[Ljava/lang/Object;",(void*)&WB_GetCodeBlob }, {CC"getThreadStackSize", CC"()J", (void*)&WB_GetThreadStackSize }, {CC"getThreadRemainingStackSize", CC"()J", (void*)&WB_GetThreadRemainingStackSize }, }; diff --git a/hotspot/test/compiler/codecache/OverflowCodeCacheTest.java b/hotspot/test/compiler/codecache/OverflowCodeCacheTest.java new file mode 100644 index 00000000000..c772f4fbddc --- /dev/null +++ b/hotspot/test/compiler/codecache/OverflowCodeCacheTest.java @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2014, 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. + * + */ + +import java.lang.management.MemoryPoolMXBean; +import java.util.EnumSet; +import java.util.ArrayList; + +import sun.hotspot.WhiteBox; +import sun.hotspot.code.BlobType; +import sun.hotspot.code.CodeBlob; +import com.oracle.java.testlibrary.Asserts; + +/* + * @test OverflowCodeCacheTest + * @bug 8059550 + * @library /testlibrary /testlibrary/whitebox + * @build OverflowCodeCacheTest + * @run main ClassFileInstaller sun.hotspot.WhiteBox + * sun.hotspot.WhiteBox$WhiteBoxPermission + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions + * -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,null::* + * -XX:-SegmentedCodeCache OverflowCodeCacheTest + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions + * -XX:+WhiteBoxAPI -XX:CompileCommand=compileonly,null::* + * -XX:+SegmentedCodeCache OverflowCodeCacheTest + * @summary testing of code cache segments overflow + */ +public class OverflowCodeCacheTest { + private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox(); + + public static void main(String[] args) { + EnumSet blobTypes = BlobType.getAvailable(); + for (BlobType type : blobTypes) { + new OverflowCodeCacheTest(type).test(); + } + } + + private final BlobType type; + private final MemoryPoolMXBean bean; + private OverflowCodeCacheTest(BlobType type) { + this.type = type; + this.bean = type.getMemoryPool(); + } + + private void test() { + System.out.printf("type %s%n", type); + System.out.println("allocating till possible..."); + ArrayList blobs = new ArrayList<>(); + try { + long addr; + int size = (int) (getHeapSize() >> 7); + while ((addr = WHITE_BOX.allocateCodeBlob(size, type.id)) != 0) { + blobs.add(addr); + + BlobType actualType = CodeBlob.getCodeBlob(addr).code_blob_type; + if (actualType != type) { + // check we got allowed overflow handling + Asserts.assertTrue(type.allowTypeWhenOverflow(actualType), + type + " doesn't allow using " + actualType + " when overflow"); + } + } + Asserts.assertNotEquals(WHITE_BOX.getCompilationActivityMode(), 1 /* run_compilation*/, + "Compilation must be disabled when CodeCache(CodeHeap) overflows"); + } finally { + for (Long blob : blobs) { + WHITE_BOX.freeCodeBlob(blob); + } + } + } + + private long getHeapSize() { + return bean.getUsage().getMax(); + } + +} diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java index 1759d925731..f4bda72cf1d 100644 --- a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java +++ b/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java @@ -151,6 +151,8 @@ public class WhiteBox { public native void freeCodeBlob(long addr); public native void forceNMethodSweep(); public native Object[] getCodeHeapEntries(int type); + public native int getCompilationActivityMode(); + public native Object[] getCodeBlob(long addr); // Intered strings public native boolean isInStringTable(String str); diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/BlobType.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/BlobType.java index ee273bcd916..49d3a0a03d2 100644 --- a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/BlobType.java +++ b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/BlobType.java @@ -36,7 +36,13 @@ public enum BlobType { // Execution level 2 and 3 (profiled) nmethods MethodProfiled(1, "CodeHeap 'profiled nmethods'"), // Non-nmethods like Buffers, Adapters and Runtime Stubs - NonNMethod(2, "CodeHeap 'non-nmethods'"), + NonNMethod(2, "CodeHeap 'non-nmethods'") { + @Override + public boolean allowTypeWhenOverflow(BlobType type) { + return super.allowTypeWhenOverflow(type) + || type == BlobType.MethodNonProfiled; + } + }, // All types (No code cache segmentation) All(3, "CodeCache"); @@ -57,6 +63,11 @@ public enum BlobType { } return null; } + + public boolean allowTypeWhenOverflow(BlobType type) { + return type == this; + } + public static EnumSet getAvailable() { WhiteBox whiteBox = WhiteBox.getWhiteBox(); if (!whiteBox.getBooleanVMFlag("SegmentedCodeCache")) { diff --git a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/CodeBlob.java b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/CodeBlob.java index 66556ddaa7c..a5097f1c7e4 100644 --- a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/CodeBlob.java +++ b/hotspot/test/testlibrary/whitebox/sun/hotspot/code/CodeBlob.java @@ -39,6 +39,13 @@ public class CodeBlob { } return result; } + public static CodeBlob getCodeBlob(long addr) { + Object[] obj = WB.getCodeBlob(addr); + if (obj == null) { + return null; + } + return new CodeBlob(obj); + } protected CodeBlob(Object[] obj) { assert obj.length == 3; name = (String) obj[0]; From 585ca822b81d8d5660b0e8aa41fd5b2b6ab500d0 Mon Sep 17 00:00:00 2001 From: Tatiana Pivovarova Date: Fri, 21 Nov 2014 17:28:29 +0300 Subject: [PATCH 07/12] 8064696: compiler/startup/SmallCodeCacheStartup.java doesn't check exit code Reviewed-by: kvn, anoll, iignatyev --- .../test/compiler/startup/SmallCodeCacheStartup.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/hotspot/test/compiler/startup/SmallCodeCacheStartup.java b/hotspot/test/compiler/startup/SmallCodeCacheStartup.java index 72583df8502..55eb7b2b27d 100644 --- a/hotspot/test/compiler/startup/SmallCodeCacheStartup.java +++ b/hotspot/test/compiler/startup/SmallCodeCacheStartup.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2014 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 @@ -33,14 +33,13 @@ import com.oracle.java.testlibrary.*; public class SmallCodeCacheStartup { public static void main(String[] args) throws Exception { - try { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=3m", "-XX:CICompilerCount=64", "-Xcomp", - "SmallCodeCacheStartup"); - pb.start(); - } catch (VirtualMachineError e) {} + "-version"); + OutputAnalyzer analyzer = new OutputAnalyzer(pb.start()); + analyzer.shouldHaveExitValue(0); - System.out.println("TEST PASSED"); + System.out.println("TEST PASSED"); } } From f36e847523819ea488b6fcf4a3c76382d62ec49e Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Fri, 21 Nov 2014 17:17:41 -0800 Subject: [PATCH 08/12] 8065618: C2 RA incorrectly removes kill projections Don't remove KILL projections if their "defining" nodes have SCMemProj projection (memory side effects). Reviewed-by: iveresov --- hotspot/src/share/vm/opto/ifg.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hotspot/src/share/vm/opto/ifg.cpp b/hotspot/src/share/vm/opto/ifg.cpp index 91b97f46777..61e13439637 100644 --- a/hotspot/src/share/vm/opto/ifg.cpp +++ b/hotspot/src/share/vm/opto/ifg.cpp @@ -527,6 +527,22 @@ bool PhaseChaitin::remove_node_if_not_used(Block* b, uint location, Node* n, uin Node* def = n->in(0); if (!n->is_Proj() || (_lrg_map.live_range_id(def) && !liveout->member(_lrg_map.live_range_id(def)))) { + if (n->is_MachProj()) { + // Don't remove KILL projections if their "defining" nodes have + // memory effects (have SCMemProj projection node) - + // they are not dead even when their result is not used. + // For example, compareAndSwapL (and other CAS) and EncodeISOArray nodes. + // The method add_input_to_liveout() keeps such nodes alive (put them on liveout list) + // when it sees SCMemProj node in a block. Unfortunately SCMemProj node could be placed + // in block in such order that KILL MachProj nodes are processed first. + uint cnt = def->outcnt(); + for (uint i = 0; i < cnt; i++) { + Node* proj = def->raw_out(i); + if (proj->Opcode() == Op_SCMemProj) { + return false; + } + } + } b->remove_node(location); LRG& lrg = lrgs(lid); if (lrg._def == n) { From 9adb455ba855e519714654272017d406aa71d2f9 Mon Sep 17 00:00:00 2001 From: Tobias Hartmann Date: Mon, 24 Nov 2014 08:48:15 +0100 Subject: [PATCH 09/12] 8065339: Failed compilation does not always trigger a JFR event 'CompilerFailure' CompilerFailure JFR event should be triggered in ciEnv. Reviewed-by: kvn --- hotspot/src/share/vm/ci/ciEnv.cpp | 11 +++++++++++ hotspot/src/share/vm/ci/ciEnv.hpp | 3 ++- hotspot/src/share/vm/compiler/compileBroker.cpp | 1 + hotspot/src/share/vm/opto/c2compiler.cpp | 4 +++- hotspot/src/share/vm/opto/compile.cpp | 8 -------- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp index ec16b8da1ee..5c6e12e5e75 100644 --- a/hotspot/src/share/vm/ci/ciEnv.cpp +++ b/hotspot/src/share/vm/ci/ciEnv.cpp @@ -53,6 +53,7 @@ #include "runtime/reflection.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/thread.inline.hpp" +#include "trace/tracing.hpp" #include "utilities/dtrace.hpp" #include "utilities/macros.hpp" #ifdef COMPILER1 @@ -1141,6 +1142,16 @@ void ciEnv::record_failure(const char* reason) { } } +void ciEnv::report_failure(const char* reason) { + // Create and fire JFR event + EventCompilerFailure event; + if (event.should_commit()) { + event.set_compileID(compile_id()); + event.set_failure(reason); + event.commit(); + } +} + // ------------------------------------------------------------------ // ciEnv::record_method_not_compilable() void ciEnv::record_method_not_compilable(const char* reason, bool all_tiers) { diff --git a/hotspot/src/share/vm/ci/ciEnv.hpp b/hotspot/src/share/vm/ci/ciEnv.hpp index ced8d895207..29e52c352af 100644 --- a/hotspot/src/share/vm/ci/ciEnv.hpp +++ b/hotspot/src/share/vm/ci/ciEnv.hpp @@ -450,7 +450,8 @@ public: // Check for changes to the system dictionary during compilation bool system_dictionary_modification_counter_changed(); - void record_failure(const char* reason); + void record_failure(const char* reason); // Record failure and report later + void report_failure(const char* reason); // Report failure immediately void record_method_not_compilable(const char* reason, bool all_tiers = true); void record_out_of_memory_failure(); diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 2fa80c675dd..079d0835883 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -1985,6 +1985,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { if (ci_env.failing()) { task->set_failure_reason(ci_env.failure_reason()); + ci_env.report_failure(ci_env.failure_reason()); const char* retry_message = ci_env.retry_message(); if (_compilation_log != NULL) { _compilation_log->log_failure(thread, task, ci_env.failure_reason(), retry_message); diff --git a/hotspot/src/share/vm/opto/c2compiler.cpp b/hotspot/src/share/vm/opto/c2compiler.cpp index 472ab4a8c22..71e2a0bbbab 100644 --- a/hotspot/src/share/vm/opto/c2compiler.cpp +++ b/hotspot/src/share/vm/opto/c2compiler.cpp @@ -102,23 +102,25 @@ void C2Compiler::compile_method(ciEnv* env, ciMethod* target, int entry_bci) { // Attempt to compile while subsuming loads into machine instructions. Compile C(env, this, target, entry_bci, subsume_loads, do_escape_analysis, eliminate_boxing); - // Check result and retry if appropriate. if (C.failure_reason() != NULL) { if (C.failure_reason_is(retry_no_subsuming_loads())) { assert(subsume_loads, "must make progress"); subsume_loads = false; + env->report_failure(C.failure_reason()); continue; // retry } if (C.failure_reason_is(retry_no_escape_analysis())) { assert(do_escape_analysis, "must make progress"); do_escape_analysis = false; + env->report_failure(C.failure_reason()); continue; // retry } if (C.has_boxed_value()) { // Recompile without boxing elimination regardless failure reason. assert(eliminate_boxing, "must make progress"); eliminate_boxing = false; + env->report_failure(C.failure_reason()); continue; // retry } // Pass any other failure reason up to the ciEnv. diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index ec74d5ef4a1..c2943720c60 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -67,7 +67,6 @@ #include "runtime/signature.hpp" #include "runtime/stubRoutines.hpp" #include "runtime/timer.hpp" -#include "trace/tracing.hpp" #include "utilities/copy.hpp" @@ -3542,13 +3541,6 @@ void Compile::record_failure(const char* reason) { _failure_reason = reason; } - EventCompilerFailure event; - if (event.should_commit()) { - event.set_compileID(Compile::compile_id()); - event.set_failure(reason); - event.commit(); - } - if (!C->failure_reason_is(C2Compiler::retry_no_subsuming_loads())) { C->print_method(PHASE_FAILURE); } From 5a00d5f6b559850dfd65488e56202586854b65cd Mon Sep 17 00:00:00 2001 From: Vladimir Ivanov Date: Mon, 24 Nov 2014 07:29:03 -0800 Subject: [PATCH 10/12] 8058148: MaxNodeLimit and LiveNodeCountInliningCutoff Reviewed-by: kvn, roland --- hotspot/src/share/vm/ci/ciTypeFlow.cpp | 3 ++- hotspot/src/share/vm/opto/c2_globals.hpp | 2 +- hotspot/src/share/vm/opto/compile.cpp | 7 +++++-- hotspot/src/share/vm/opto/compile.hpp | 6 +++++- hotspot/src/share/vm/opto/doCall.cpp | 5 +++++ hotspot/src/share/vm/opto/escape.cpp | 2 +- hotspot/src/share/vm/opto/loopTransform.cpp | 9 ++++----- hotspot/src/share/vm/opto/loopUnswitch.cpp | 4 ++-- hotspot/src/share/vm/opto/loopopts.cpp | 2 +- hotspot/src/share/vm/opto/node.cpp | 4 ++-- 10 files changed, 28 insertions(+), 16 deletions(-) diff --git a/hotspot/src/share/vm/ci/ciTypeFlow.cpp b/hotspot/src/share/vm/ci/ciTypeFlow.cpp index 834f71be5e7..d78eb145624 100644 --- a/hotspot/src/share/vm/ci/ciTypeFlow.cpp +++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp @@ -35,6 +35,7 @@ #include "interpreter/bytecode.hpp" #include "interpreter/bytecodes.hpp" #include "memory/allocation.inline.hpp" +#include "opto/compile.hpp" #include "runtime/deoptimization.hpp" #include "utilities/growableArray.hpp" @@ -2646,7 +2647,7 @@ void ciTypeFlow::df_flow_types(Block* start, assert (!blk->has_pre_order(), ""); blk->set_next_pre_order(); - if (_next_pre_order >= MaxNodeLimit / 2) { + if (_next_pre_order >= (int)Compile::current()->max_node_limit() / 2) { // Too many basic blocks. Bail out. // This can happen when try/finally constructs are nested to depth N, // and there is O(2**N) cloning of jsr bodies. See bug 4697245! diff --git a/hotspot/src/share/vm/opto/c2_globals.hpp b/hotspot/src/share/vm/opto/c2_globals.hpp index a49f31641dc..b74dbe40bea 100644 --- a/hotspot/src/share/vm/opto/c2_globals.hpp +++ b/hotspot/src/share/vm/opto/c2_globals.hpp @@ -647,7 +647,7 @@ develop(bool, AlwaysIncrementalInline, false, \ "do all inlining incrementally") \ \ - product(intx, LiveNodeCountInliningCutoff, 20000, \ + product(intx, LiveNodeCountInliningCutoff, 40000, \ "max number of live nodes in a method") \ \ diagnostic(bool, OptimizeExpensiveOps, true, \ diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index c2943720c60..17ffca9e6ff 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -661,7 +661,8 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr _print_inlining_stream(NULL), _print_inlining_idx(0), _print_inlining_output(NULL), - _interpreter_frame_size(0) { + _interpreter_frame_size(0), + _max_node_limit(MaxNodeLimit) { C = this; CompileWrapper cw(this); @@ -974,7 +975,8 @@ Compile::Compile( ciEnv* ci_env, _print_inlining_idx(0), _print_inlining_output(NULL), _allowed_reasons(0), - _interpreter_frame_size(0) { + _interpreter_frame_size(0), + _max_node_limit(MaxNodeLimit) { C = this; TraceTime t1(NULL, &_t_totalCompilation, CITime, false); @@ -1087,6 +1089,7 @@ void Compile::Init(int aliaslevel) { set_do_method_data_update(false); set_age_code(has_method() && method()->profile_aging()); set_rtm_state(NoRTM); // No RTM lock eliding by default + method_has_option_value("MaxNodeLimit", _max_node_limit); #if INCLUDE_RTM_OPT if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) { int rtm_state = method()->method_data()->rtm_state(); diff --git a/hotspot/src/share/vm/opto/compile.hpp b/hotspot/src/share/vm/opto/compile.hpp index 137ba6b2b9d..c901da09405 100644 --- a/hotspot/src/share/vm/opto/compile.hpp +++ b/hotspot/src/share/vm/opto/compile.hpp @@ -289,6 +289,7 @@ class Compile : public Phase { int _freq_inline_size; // Max hot method inline size for this compilation int _fixed_slots; // count of frame slots not allocated by the register // allocator i.e. locks, original deopt pc, etc. + uintx _max_node_limit; // Max unique node count during a single compilation. // For deopt int _orig_pc_slot; int _orig_pc_slot_offset_in_bytes; @@ -597,6 +598,9 @@ class Compile : public Phase { void set_rtm_state(RTMState s) { _rtm_state = s; } bool use_rtm() const { return (_rtm_state & NoRTM) == 0; } bool profile_rtm() const { return _rtm_state == ProfileRTM; } + uint max_node_limit() const { return (uint)_max_node_limit; } + void set_max_node_limit(uint n) { _max_node_limit = n; } + // check the CompilerOracle for special behaviours for this compile bool method_has_option(const char * option) { return method() != NULL && method()->has_option(option); @@ -735,7 +739,7 @@ class Compile : public Phase { record_method_not_compilable(reason, true); } bool check_node_count(uint margin, const char* reason) { - if (live_nodes() + margin > (uint)MaxNodeLimit) { + if (live_nodes() + margin > max_node_limit()) { record_method_not_compilable(reason); return true; } else { diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp index 9cf6bc4dfe8..7397f9e27cb 100644 --- a/hotspot/src/share/vm/opto/doCall.cpp +++ b/hotspot/src/share/vm/opto/doCall.cpp @@ -418,6 +418,11 @@ void Parse::do_call() { ciInstanceKlass* klass = ciEnv::get_instance_klass_for_declared_method_holder(holder); assert(declared_signature != NULL, "cannot be null"); + // Bump max node limit for JSR292 users + if (bc() == Bytecodes::_invokedynamic || orig_callee->is_method_handle_intrinsic()) { + C->set_max_node_limit(3*MaxNodeLimit); + } + // uncommon-trap when callee is unloaded, uninitialized or will not link // bailout when too many arguments for register representation if (!will_link || can_not_compile_call_site(orig_callee, klass)) { diff --git a/hotspot/src/share/vm/opto/escape.cpp b/hotspot/src/share/vm/opto/escape.cpp index 9f09b62d761..355e02cc896 100644 --- a/hotspot/src/share/vm/opto/escape.cpp +++ b/hotspot/src/share/vm/opto/escape.cpp @@ -2417,7 +2417,7 @@ PhiNode *ConnectionGraph::create_split_phi(PhiNode *orig_phi, int alias_idx, Gro } } } - if ((int) (C->live_nodes() + 2*NodeLimitFudgeFactor) > MaxNodeLimit) { + if (C->live_nodes() + 2*NodeLimitFudgeFactor > C->max_node_limit()) { if (C->do_escape_analysis() == true && !C->failing()) { // Retry compilation without escape analysis. // If this is the first failure, the sentinel string will "stick" diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index 9701cfd2cf2..ad60d2d9ff9 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -272,10 +272,9 @@ void IdealLoopTree::reassociate_invariants(PhaseIdealLoop *phase) { bool IdealLoopTree::policy_peeling( PhaseIdealLoop *phase ) const { Node *test = ((IdealLoopTree*)this)->tail(); int body_size = ((IdealLoopTree*)this)->_body.size(); - int live_node_count = phase->C->live_nodes(); // Peeling does loop cloning which can result in O(N^2) node construction if( body_size > 255 /* Prevent overflow for large body_size */ - || (body_size * body_size + live_node_count > MaxNodeLimit) ) { + || (body_size * body_size + phase->C->live_nodes()) > phase->C->max_node_limit() ) { return false; // too large to safely clone } while( test != _head ) { // Scan till run off top of loop @@ -604,7 +603,7 @@ bool IdealLoopTree::policy_maximally_unroll( PhaseIdealLoop *phase ) const { return false; if (new_body_size > unroll_limit || // Unrolling can result in a large amount of node construction - new_body_size >= MaxNodeLimit - (uint) phase->C->live_nodes()) { + new_body_size >= phase->C->max_node_limit() - phase->C->live_nodes()) { return false; } @@ -2281,8 +2280,8 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_ // Skip next optimizations if running low on nodes. Note that // policy_unswitching and policy_maximally_unroll have this check. - uint nodes_left = MaxNodeLimit - (uint) phase->C->live_nodes(); - if ((2 * _body.size()) > nodes_left) { + int nodes_left = phase->C->max_node_limit() - phase->C->live_nodes(); + if ((int)(2 * _body.size()) > nodes_left) { return true; } diff --git a/hotspot/src/share/vm/opto/loopUnswitch.cpp b/hotspot/src/share/vm/opto/loopUnswitch.cpp index 43f2008f2aa..dab8fd387a8 100644 --- a/hotspot/src/share/vm/opto/loopUnswitch.cpp +++ b/hotspot/src/share/vm/opto/loopUnswitch.cpp @@ -61,8 +61,8 @@ bool IdealLoopTree::policy_unswitching( PhaseIdealLoop *phase ) const { if (!_head->is_Loop()) { return false; } - uint nodes_left = MaxNodeLimit - phase->C->live_nodes(); - if (2 * _body.size() > nodes_left) { + int nodes_left = phase->C->max_node_limit() - phase->C->live_nodes(); + if ((int)(2 * _body.size()) > nodes_left) { return false; // Too speculative if running low on nodes. } LoopNode* head = _head->as_Loop(); diff --git a/hotspot/src/share/vm/opto/loopopts.cpp b/hotspot/src/share/vm/opto/loopopts.cpp index 20ad4ff1f6d..bfa483c0181 100644 --- a/hotspot/src/share/vm/opto/loopopts.cpp +++ b/hotspot/src/share/vm/opto/loopopts.cpp @@ -736,7 +736,7 @@ static bool merge_point_too_heavy(Compile* C, Node* region) { for (DUIterator_Fast imax, i = region->fast_outs(imax); i < imax; i++) { weight += region->fast_out(i)->outcnt(); } - int nodes_left = MaxNodeLimit - C->live_nodes(); + int nodes_left = C->max_node_limit() - C->live_nodes(); if (weight * 8 > nodes_left) { #ifndef PRODUCT if (PrintOpto) diff --git a/hotspot/src/share/vm/opto/node.cpp b/hotspot/src/share/vm/opto/node.cpp index c7cd9cd5c37..29cd82e4acc 100644 --- a/hotspot/src/share/vm/opto/node.cpp +++ b/hotspot/src/share/vm/opto/node.cpp @@ -69,7 +69,7 @@ void Node::verify_construction() { Compile::set_debug_idx(new_debug_idx); set_debug_idx( new_debug_idx ); assert(Compile::current()->unique() < (INT_MAX - 1), "Node limit exceeded INT_MAX"); - assert(Compile::current()->live_nodes() < (uint)MaxNodeLimit, "Live Node limit exceeded limit"); + assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit(), "Live Node limit exceeded limit"); if (BreakAtNode != 0 && (_debug_idx == BreakAtNode || (int)_idx == BreakAtNode)) { tty->print_cr("BreakAtNode: _idx=%d _debug_idx=%d", _idx, _debug_idx); BREAKPOINT; @@ -313,7 +313,7 @@ inline int Node::Init(int req) { Node::Node(uint req) : _idx(Init(req)) { - assert( req < (uint)(MaxNodeLimit - NodeLimitFudgeFactor), "Input limit exceeded" ); + assert( req < Compile::current()->max_node_limit() - NodeLimitFudgeFactor, "Input limit exceeded" ); debug_only( verify_construction() ); NOT_PRODUCT(nodes_created++); if (req == 0) { From 4bc2edad15cfc23acba8cffe0601e7c3915c6b31 Mon Sep 17 00:00:00 2001 From: Roland Westrelin Date: Thu, 13 Nov 2014 09:19:46 +0100 Subject: [PATCH 11/12] 8054478: C2: Incorrectly compiled char[] array access crashes JVM Dead backbranch in main loop results in erroneous array access Reviewed-by: kvn, iveresov --- hotspot/src/share/vm/opto/castnode.cpp | 95 +++++++++++++++++++ hotspot/src/share/vm/opto/castnode.hpp | 17 +++- hotspot/src/share/vm/opto/loopTransform.cpp | 33 +++++++ hotspot/src/share/vm/opto/loopnode.hpp | 2 + hotspot/src/share/vm/opto/phaseX.cpp | 39 +++++++- hotspot/src/share/vm/opto/subnode.cpp | 2 - hotspot/src/share/vm/opto/subnode.hpp | 2 - .../TestDeadBackbranchArrayAccess.java | 58 +++++++++++ 8 files changed, 238 insertions(+), 10 deletions(-) create mode 100644 hotspot/test/compiler/loopopts/TestDeadBackbranchArrayAccess.java diff --git a/hotspot/src/share/vm/opto/castnode.cpp b/hotspot/src/share/vm/opto/castnode.cpp index afaddaf72fb..3f3c5cab2ed 100644 --- a/hotspot/src/share/vm/opto/castnode.cpp +++ b/hotspot/src/share/vm/opto/castnode.cpp @@ -83,6 +83,101 @@ Node *ConstraintCastNode::Ideal_DU_postCCP( PhaseCCP *ccp ) { return this; } +uint CastIINode::size_of() const { + return sizeof(*this); +} + +uint CastIINode::cmp(const Node &n) const { + return TypeNode::cmp(n) && ((CastIINode&)n)._carry_dependency == _carry_dependency; +} + +Node *CastIINode::Identity(PhaseTransform *phase) { + if (_carry_dependency) { + return this; + } + return ConstraintCastNode::Identity(phase); +} + +const Type *CastIINode::Value(PhaseTransform *phase) const { + const Type *res = ConstraintCastNode::Value(phase); + + // Try to improve the type of the CastII if we recognize a CmpI/If + // pattern. + if (_carry_dependency) { + if (in(0) != NULL && (in(0)->is_IfFalse() || in(0)->is_IfTrue())) { + Node* proj = in(0); + if (proj->in(0)->in(1)->is_Bool()) { + Node* b = proj->in(0)->in(1); + if (b->in(1)->Opcode() == Op_CmpI) { + Node* cmp = b->in(1); + if (cmp->in(1) == in(1) && phase->type(cmp->in(2))->isa_int()) { + const TypeInt* in2_t = phase->type(cmp->in(2))->is_int(); + const Type* t = TypeInt::INT; + BoolTest test = b->as_Bool()->_test; + if (proj->is_IfFalse()) { + test = test.negate(); + } + BoolTest::mask m = test._test; + jlong lo_long = min_jint; + jlong hi_long = max_jint; + if (m == BoolTest::le || m == BoolTest::lt) { + hi_long = in2_t->_hi; + if (m == BoolTest::lt) { + hi_long -= 1; + } + } else if (m == BoolTest::ge || m == BoolTest::gt) { + lo_long = in2_t->_lo; + if (m == BoolTest::gt) { + lo_long += 1; + } + } else if (m == BoolTest::eq) { + lo_long = in2_t->_lo; + hi_long = in2_t->_hi; + } else if (m == BoolTest::ne) { + // can't do any better + } else { + stringStream ss; + test.dump_on(&ss); + fatal(err_msg_res("unexpected comparison %s", ss.as_string())); + } + int lo_int = (int)lo_long; + int hi_int = (int)hi_long; + + if (lo_long != (jlong)lo_int) { + lo_int = min_jint; + } + if (hi_long != (jlong)hi_int) { + hi_int = max_jint; + } + + t = TypeInt::make(lo_int, hi_int, Type::WidenMax); + + res = res->filter_speculative(t); + + return res; + } + } + } + } + } + return res; +} + +Node *CastIINode::Ideal_DU_postCCP(PhaseCCP *ccp) { + if (_carry_dependency) { + return NULL; + } + return ConstraintCastNode::Ideal_DU_postCCP(ccp); +} + +#ifndef PRODUCT +void CastIINode::dump_spec(outputStream *st) const { + TypeNode::dump_spec(st); + if (_carry_dependency) { + st->print(" carry dependency"); + } +} +#endif //============================================================================= diff --git a/hotspot/src/share/vm/opto/castnode.hpp b/hotspot/src/share/vm/opto/castnode.hpp index d0f97c9b249..8b79562b045 100644 --- a/hotspot/src/share/vm/opto/castnode.hpp +++ b/hotspot/src/share/vm/opto/castnode.hpp @@ -48,10 +48,25 @@ class ConstraintCastNode: public TypeNode { //------------------------------CastIINode------------------------------------- // cast integer to integer (different range) class CastIINode: public ConstraintCastNode { + private: + // Can this node be removed post CCP or does it carry a required dependency? + const bool _carry_dependency; + + protected: + virtual uint cmp( const Node &n ) const; + virtual uint size_of() const; + public: - CastIINode (Node *n, const Type *t ): ConstraintCastNode(n,t) {} + CastIINode(Node *n, const Type *t, bool carry_dependency = false) + : ConstraintCastNode(n,t), _carry_dependency(carry_dependency) {} virtual int Opcode() const; virtual uint ideal_reg() const { return Op_RegI; } + virtual Node *Identity( PhaseTransform *phase ); + virtual const Type *Value( PhaseTransform *phase ) const; + virtual Node *Ideal_DU_postCCP( PhaseCCP * ); +#ifndef PRODUCT + virtual void dump_spec(outputStream *st) const; +#endif }; //------------------------------CastPPNode------------------------------------- diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index ad60d2d9ff9..b917ee113c0 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -27,6 +27,7 @@ #include "memory/allocation.inline.hpp" #include "opto/addnode.hpp" #include "opto/callnode.hpp" +#include "opto/castnode.hpp" #include "opto/connode.hpp" #include "opto/convertnode.hpp" #include "opto/divnode.hpp" @@ -884,6 +885,20 @@ Node *PhaseIdealLoop::clone_up_backedge_goo( Node *back_ctrl, Node *preheader_ct return n; } +bool PhaseIdealLoop::cast_incr_before_loop(Node* incr, Node* ctrl, Node* loop) { + Node* castii = new CastIINode(incr, TypeInt::INT, true); + castii->set_req(0, ctrl); + register_new_node(castii, ctrl); + for (DUIterator_Fast imax, i = incr->fast_outs(imax); i < imax; i++) { + Node* n = incr->fast_out(i); + if (n->is_Phi() && n->in(0) == loop) { + int nrep = n->replace_edge(incr, castii); + return true; + } + } + return false; +} + //------------------------------insert_pre_post_loops-------------------------- // Insert pre and post loops. If peel_only is set, the pre-loop can not have // more iterations added. It acts as a 'peel' only, no lower-bound RCE, no @@ -1080,6 +1095,24 @@ void PhaseIdealLoop::insert_pre_post_loops( IdealLoopTree *loop, Node_List &old_ } } + // Nodes inside the loop may be control dependent on a predicate + // that was moved before the preloop. If the back branch of the main + // or post loops becomes dead, those nodes won't be dependent on the + // test that guards that loop nest anymore which could lead to an + // incorrect array access because it executes independently of the + // test that was guarding the loop nest. We add a special CastII on + // the if branch that enters the loop, between the input induction + // variable value and the induction variable Phi to preserve correct + // dependencies. + + // CastII for the post loop: + bool inserted = cast_incr_before_loop(zer_opaq->in(1), zer_taken, post_head); + assert(inserted, "no castII inserted"); + + // CastII for the main loop: + inserted = cast_incr_before_loop(pre_incr, min_taken, main_head); + assert(inserted, "no castII inserted"); + // Step B4: Shorten the pre-loop to run only 1 iteration (for now). // RCE and alignment may change this later. Node *cmp_end = pre_end->cmp_node(); diff --git a/hotspot/src/share/vm/opto/loopnode.hpp b/hotspot/src/share/vm/opto/loopnode.hpp index 5c962ae9981..c884dd38b96 100644 --- a/hotspot/src/share/vm/opto/loopnode.hpp +++ b/hotspot/src/share/vm/opto/loopnode.hpp @@ -602,6 +602,8 @@ class PhaseIdealLoop : public PhaseTransform { return ctrl; } + bool cast_incr_before_loop(Node* incr, Node* ctrl, Node* loop); + public: bool has_node( Node* n ) const { guarantee(n != NULL, "No Node."); diff --git a/hotspot/src/share/vm/opto/phaseX.cpp b/hotspot/src/share/vm/opto/phaseX.cpp index 2b0688a90b8..3f5373b7a89 100644 --- a/hotspot/src/share/vm/opto/phaseX.cpp +++ b/hotspot/src/share/vm/opto/phaseX.cpp @@ -1392,15 +1392,27 @@ void PhaseIterGVN::add_users_to_worklist( Node *n ) { } } - if( use->is_Cmp() ) { // Enable CMP/BOOL optimization + uint use_op = use->Opcode(); + if(use->is_Cmp()) { // Enable CMP/BOOL optimization add_users_to_worklist(use); // Put Bool on worklist - // Look for the 'is_x2logic' pattern: "x ? : 0 : 1" and put the - // phi merging either 0 or 1 onto the worklist if (use->outcnt() > 0) { Node* bol = use->raw_out(0); if (bol->outcnt() > 0) { Node* iff = bol->raw_out(0); - if (iff->outcnt() == 2) { + if (use_op == Op_CmpI && + iff->is_CountedLoopEnd()) { + CountedLoopEndNode* cle = iff->as_CountedLoopEnd(); + if (cle->limit() == n && cle->phi() != NULL) { + // If an opaque node feeds into the limit condition of a + // CountedLoop, we need to process the Phi node for the + // induction variable when the opaque node is removed: + // the range of values taken by the Phi is now known and + // so its type is also known. + _worklist.push(cle->phi()); + } + } else if (iff->outcnt() == 2) { + // Look for the 'is_x2logic' pattern: "x ? : 0 : 1" and put the + // phi merging either 0 or 1 onto the worklist Node* ifproj0 = iff->raw_out(0); Node* ifproj1 = iff->raw_out(1); if (ifproj0->outcnt() > 0 && ifproj1->outcnt() > 0) { @@ -1412,9 +1424,26 @@ void PhaseIterGVN::add_users_to_worklist( Node *n ) { } } } + if (use_op == Op_CmpI) { + Node* in1 = use->in(1); + for (uint i = 0; i < in1->outcnt(); i++) { + if (in1->raw_out(i)->Opcode() == Op_CastII) { + Node* castii = in1->raw_out(i); + if (castii->in(0) != NULL && castii->in(0)->in(0) != NULL && castii->in(0)->in(0)->is_If()) { + Node* ifnode = castii->in(0)->in(0); + if (ifnode->in(1) != NULL && ifnode->in(1)->in(1) == use) { + // Reprocess a CastII node that may depend on an + // opaque node value when the opaque node is + // removed. In case it carries a dependency we can do + // a better job of computing its type. + _worklist.push(castii); + } + } + } + } + } } - uint use_op = use->Opcode(); // If changed Cast input, check Phi users for simple cycles if( use->is_ConstraintCast() || use->is_CheckCastPP() ) { for (DUIterator_Fast i2max, i2 = use->fast_outs(i2max); i2 < i2max; i2++) { diff --git a/hotspot/src/share/vm/opto/subnode.cpp b/hotspot/src/share/vm/opto/subnode.cpp index 1fe558c18d3..27cf544da11 100644 --- a/hotspot/src/share/vm/opto/subnode.cpp +++ b/hotspot/src/share/vm/opto/subnode.cpp @@ -1147,12 +1147,10 @@ const Type *BoolTest::cc2logical( const Type *CC ) const { //------------------------------dump_spec------------------------------------- // Print special per-node info -#ifndef PRODUCT void BoolTest::dump_on(outputStream *st) const { const char *msg[] = {"eq","gt","of","lt","ne","le","nof","ge"}; st->print("%s", msg[_test]); } -#endif //============================================================================= uint BoolNode::hash() const { return (Node::hash() << 3)|(_test._test+1); } diff --git a/hotspot/src/share/vm/opto/subnode.hpp b/hotspot/src/share/vm/opto/subnode.hpp index f809a3b90c7..4cc3dd700b5 100644 --- a/hotspot/src/share/vm/opto/subnode.hpp +++ b/hotspot/src/share/vm/opto/subnode.hpp @@ -275,9 +275,7 @@ struct BoolTest VALUE_OBJ_CLASS_SPEC { mask commute( ) const { return mask("032147658"[_test]-'0'); } mask negate( ) const { return mask(_test^4); } bool is_canonical( ) const { return (_test == BoolTest::ne || _test == BoolTest::lt || _test == BoolTest::le || _test == BoolTest::overflow); } -#ifndef PRODUCT void dump_on(outputStream *st) const; -#endif }; //------------------------------BoolNode--------------------------------------- diff --git a/hotspot/test/compiler/loopopts/TestDeadBackbranchArrayAccess.java b/hotspot/test/compiler/loopopts/TestDeadBackbranchArrayAccess.java new file mode 100644 index 00000000000..f2782383f71 --- /dev/null +++ b/hotspot/test/compiler/loopopts/TestDeadBackbranchArrayAccess.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2014, 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. + * + */ + +/** + * @test + * @bug 8054478 + * @summary dead backbranch in main loop results in erroneous array access + * @run main/othervm -XX:CompileOnly=TestDeadBackbranchArrayAccess -Xcomp TestDeadBackbranchArrayAccess + * + */ + +public class TestDeadBackbranchArrayAccess { + static char[] pattern0 = {0}; + static char[] pattern1 = {1}; + + static void test(char[] array) { + if (pattern1 == null) return; + + int i = 0; + int pos = 0; + char c = array[pos]; + + while (i >= 0 && (c == pattern0[i] || c == pattern1[i])) { + i--; + pos--; + if (pos != -1) { + c = array[pos]; + } + } + } + + public static void main(String[] args) { + for (int i = 0; i < 1000000; i++) { + test(new char[1]); + } + } +} From 137d39454df62bf1b4a3dd7cbd4b21fa1fa7c5e1 Mon Sep 17 00:00:00 2001 From: Tobias Hartmann Date: Wed, 26 Nov 2014 08:06:58 +0100 Subject: [PATCH 12/12] 8007993: hotspot.log w/ enabled LogCompilation can be an invalid XML Open compilation log files in write-mode and close before deletion attempt. Reviewed-by: vlivanov --- hotspot/src/share/vm/compiler/compileBroker.cpp | 2 +- hotspot/src/share/vm/compiler/compileLog.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 079d0835883..2b22da1f705 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -1807,7 +1807,7 @@ void CompileBroker::init_compiler_thread_log() { os::file_separator(), thread_id, os::current_process_id()); } - fp = fopen(file_name, "at"); + fp = fopen(file_name, "wt"); if (fp != NULL) { if (LogCompilation && Verbose) { tty->print_cr("Opening compilation log %s", file_name); diff --git a/hotspot/src/share/vm/compiler/compileLog.cpp b/hotspot/src/share/vm/compiler/compileLog.cpp index 340251f3265..88cfb1bbfb6 100644 --- a/hotspot/src/share/vm/compiler/compileLog.cpp +++ b/hotspot/src/share/vm/compiler/compileLog.cpp @@ -56,8 +56,10 @@ CompileLog::CompileLog(const char* file_name, FILE* fp, intx thread_id) } CompileLog::~CompileLog() { - delete _out; + delete _out; // Close fd in fileStream::~fileStream() _out = NULL; + // Remove partial file after merging in CompileLog::finish_log_on_error + unlink(_file); FREE_C_HEAP_ARRAY(char, _identities, mtCompiler); FREE_C_HEAP_ARRAY(char, _file, mtCompiler); } @@ -278,10 +280,9 @@ void CompileLog::finish_log_on_error(outputStream* file, char* buf, int buflen) } file->print_raw_cr(""); close(partial_fd); - unlink(partial_file); } CompileLog* next_log = log->_next; - delete log; + delete log; // Removes partial file log = next_log; } _first = NULL;