Commit Graph

474 Commits

Author SHA1 Message Date
Vladimir Kempik 015152c046 8130150: Implement BigInteger.montgomeryMultiply intrinsic
Reviewed-by: kvn, mdoerr
2016-03-04 16:15:48 +03:00
Vladimir Kempik 393d49b343 8130150: Implement BigInteger.montgomeryMultiply intrinsic
Reviewed-by: kvn, mdoerr
2016-03-04 16:15:48 +03:00
Roland Westrelin 924f49a47a 8148353: [linux-sparc] Crash in libawt.so on Linux SPARC
Gcc expects clean 32 bit int in 64 bit register on function entry

Reviewed-by: kvn, dlong
2016-02-29 16:08:11 +01:00
Ivan Gerasimov d4d9e036ab 8081778: Use Intel x64 CPU instructions for RSA acceleration
Add intrinsics for BigInteger squareToLen and mulAdd methods.

Reviewed-by: kvn, jrose
2016-02-17 13:40:12 +03:00
Abhijit Saha 7559d542b7 Merge 2016-02-08 11:54:32 -08:00
Cheleswer Sahu 8e68fb15fd 8073735: [TEST_BUG] compiler/loopopts/CountedLoopProblem.java got OOME
Ignore OOM in the test

Reviewed-by: kvn
2016-01-28 09:41:33 +00:00
Tobias Hartmann 3bfe267422 6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
Emit CastII to make narrow ConvI2L dependent on the corresponding range check.

Reviewed-by: kvn, roland
2016-01-27 09:02:51 +01:00
Roland Westrelin ba74679853 8134031: Incorrect JIT compilation of complex code with inlining and escape analysis
Bad rewiring of memory edges when we split unique types during EA

Reviewed-by: kvn
2015-08-31 17:20:08 +02:00
Vladimir Ivanov f3ae8f0385 8074551: GWT can be marked non-compilable due to deopt count pollution
Reviewed-by: kvn
2015-06-11 14:19:40 +03:00
Roland Westrelin fee0548ed9 8077504: Unsafe load can loose control dependency and cause crash
Node::depends_only_on_test() should return false for Unsafe loads

Reviewed-by: kvn, adinn
2015-06-03 14:22:57 +02:00
Andreas Eriksson a530cac62d 6869327: Add new C2 flag to keep safepoints in counted loops
Reviewed-by: kvn
2015-12-04 14:06:38 +01:00
Roland Westrelin f597b4ea0d 8148353: [linux-sparc] Crash in libawt.so on Linux SPARC
Gcc expects clean 32 bit int in 64 bit register on function entry

Reviewed-by: kvn, dlong
2016-02-29 16:08:11 +01:00
Roland Westrelin 669b6b9bc7 8147645: get_ctrl_no_update() code is wrong
Array.fill intrinsification code doesn't mark replaced control as dead

Reviewed-by: kvn
2016-02-03 10:58:50 +01:00
Ivan Gerasimov 57e9c78e57 8081778: Use Intel x64 CPU instructions for RSA acceleration
Add intrinsics for BigInteger squareToLen and mulAdd methods.

Reviewed-by: kvn, jrose
2016-02-17 13:40:12 +03:00
Tobias Hartmann d00754fa6c 8148752: Compiled StringBuilder code throws StringIndexOutOfBoundsException
Fixed handling of long/double MH arguments in GraphBuilder::try_method_handle_inline().

Reviewed-by: roland, shade, vlivanov, kvn, twisti
2016-02-16 08:11:33 +01:00
Cheleswer Sahu 1dc5cadca0 8073735: compiler/loopopts/CountedLoopProblem.java got OOME
Ignore OOM in the test

Reviewed-by: kvn
2016-01-28 09:41:33 +00:00
Tobias Hartmann f51da0f1a0 6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
Emit CastII to make narrow ConvI2L dependent on the corresponding range check.

Reviewed-by: kvn, roland
2016-01-27 09:02:51 +01:00
Cheleswer Sahu e43abe4fd2 8063086: Math.pow yields different results upon repeated calls
C2 treats x^2 as a special case and computes x * x while the interpreter and c1 don't have special case code for X^2.

Reviewed-by: kvn
2016-05-24 17:49:06 +05:30
Tobias Hartmann aedf674676 8080156: Integer.toString(int value) sometimes throws NPE
Added test to check correctness of type propagation to CmpUNodes.

Reviewed-by: kvn
2015-05-22 13:02:47 +02:00
Volker Simonis 89885de1e8 8080190: PPC64: Fix wrong rotate instructions in the .ad file
Reviewed-by: kvn
2015-05-19 11:06:34 +02:00
Tobias Hartmann fae0f563be 8078497: C2's superword optimization causes unaligned memory accesses
Prevent vectorization of memory operations with different invariant offsets if unaligned memory accesses are not allowed.

Reviewed-by: kvn
2015-05-08 12:19:17 +02:00
Boris Molodenkov beabc0d8b4 8050486: compiler/rtm/ tests fail due to monitor deflation at safepoint synchronization
Reviewed-by: kvn, iignatyev
2015-04-30 12:06:39 -07:00
Vladimir Ivanov 9441584df6 8062280: C2: inlining failure due to access checks being too strict
Reviewed-by: kvn
2015-04-14 18:11:06 +03:00
Evgeniya Stepanova 6ebeeca113 8038098: [TESTBUG] remove explicit set build flavor from hotspot/test/compiler/* tests
Reviewed-by: kvn, iignatyev
2015-04-23 13:02:32 +03:00
Jesper Wilhelmsson af34e1df69 8062537: [TESTBUG] Conflicting GC combinations in hotspot tests
Reviewed-by: tschatzl, jwilhelm
2015-04-23 15:59:48 +02:00
Roland Westrelin a005f1cf0b 8075587: Compilation of constant array containing different sub classes crashes the JVM
Meet of 2 constant arrays result in bottom

Reviewed-by: kvn
2015-03-27 13:47:33 +01:00
Roland Westrelin 468ba82cae 8069263: assert(fm == NULL || fm->method_holder() == _participants[n]) failed: sanity
Default methods added to classes confuse dependency processing

Reviewed-by: kvn
2015-03-12 14:15:09 +01:00
Zoltan Majo c0443563e8 8074869: C2 code generator can replace -0.0f with +0.0f on Linux
Instead of 'fpclass', use cast float->int and double->long to check if value is +0.0f and +0.0d, respectively.

Reviewed-by: kvn, simonis, dlong
2015-03-19 19:53:34 +01:00
Tobias Hartmann c4abf66a30 8006960: hotspot, "impossible" assertion failure
Escape state of allocated object should be always adjusted after it was passed to a method.

Reviewed-by: kvn
2015-03-02 13:40:40 +01:00
Igor Veresov f4ad3e3de7 8072753: Nondeterministic wrong answer on arithmetic
Check for overflow when inverting the loop during the counted loop conversion

Reviewed-by: kvn
2015-02-17 11:00:18 -08:00
Axel Siebenborn 134dfd32a7 8068909: SIGSEGV in c2 compiled code with OptimizeStringConcat
Reviewed-by: kvn
2015-01-16 13:58:22 +01:00
Roland Westrelin 5b5bf9b9e9 8066103: C2's range check smearing allows out of bound array accesses
Range check smearing uncorrectly adjust first range check in a list of range checks to cover all of them

Reviewed-by: jrose, kvn, iveresov
2014-12-09 18:49:13 +01:00
Roland Westrelin 1b551d2c28 8067144: SIGSEGV with +TraceDeoptimization in Deoptimization::print_objects
-XX:+TraceDeoptimization tries to print realloc'ed objects even when there are none

Reviewed-by: kvn
2014-12-10 16:45:55 +01:00
Roland Westrelin 91dc7b5d8f 6898462: The escape analysis with G1 cause crash assertion src/share/vm/runtime/vframeArray.cpp:94
OOM during reallocation of scalar replaced objects in deoptimization causes crashes

Reviewed-by: kvn, jrose
2014-11-25 17:33:59 +01:00
Igor Veresov cfac046837 8066900: Array Out Of Bounds Exception causes variable corruption
Fix FP registers save/restore during exception handling

Reviewed-by: kvn, vlivanov
2014-12-09 12:25:38 -08:00
Roland Westrelin af8bf63801 8048170: Test closed/java/text/Normalizer/ConformanceTest.java failed
PhaseIdealLoop::split_if_with_blocks_post() shoulnd't reorder range checks adjusted by range check smearing

Reviewed-by: kvn, jrose
2014-12-04 14:34:11 +01:00
Tatiana Pivovarova 17ee5da3ff 8062742: compiler/EliminateAutoBox/UnsignedLoads.java fails with client vm
Reviewed-by: kvn, rbackman, anoll, vlivanov, iignatyev
2014-12-02 20:13:17 +03:00
Roland Westrelin c59945db1a 8054478: C2: Incorrectly compiled char[] array access crashes JVM
Dead backbranch in main loop results in erroneous array access

Reviewed-by: kvn, iveresov
2014-12-01 22:27:00 +01:00
Coleen Phillimore 202af89dbc Merge 2014-12-01 09:38:52 -05:00
Coleen Phillimore 1509139a8b 8042235: redefining method used by multiple MethodHandles crashes VM
Note all MemberNames created on internal list for adjusting method entries.

Reviewed-by: sspitsyn, dcubed, lfoltan
2014-11-19 13:02:11 -05:00
Tobias Hartmann ac1fdde978 8050079: crash while compiling java.lang.ref.Finalizer::runFinalizer
Ignore non-instance Klasses in the subclass hierarchy.

Reviewed-by: kvn, iignatyev, jrose
2014-11-20 11:06:26 +01:00
Tobias Hartmann ce96617997 8056071: compiler/whitebox/IsMethodCompilableTest.java fails with 'method() is not compilable after 3 iterations'
Always use MDO if valid and always compile trivial methods with C1 if available.

Reviewed-by: kvn, iveresov
2014-11-11 11:05:41 +01:00
Vladimir Ivanov 122dd592db 8058847: C2: EliminateAutoBox regression after 8042786
Reviewed-by: kvn, roland
2014-10-24 09:13:12 -07:00
Tobias Hartmann 6f4f7d7366 8061817: Whitebox.deoptimizeMethod() does not deoptimize all OSR versions of method
Fixed Whitebox.deoptimizeMethod() to deoptimize all OSR versions of the method.

Reviewed-by: kvn, iignatyev
2014-10-30 13:03:30 +01:00
Tobias Hartmann 97e056b22e 8061983: [TESTBUG] compiler/whitebox/MakeMethodNotCompilableTest.java fails with "must not be in queue"
Added a method checkNotCompiled(boolean isOsr) to either check if the method is OSR compiled or to check if it is non-OSR compiled.

Reviewed-by: kvn
2014-10-28 09:17:36 +01:00
Tobias Hartmann 1ba0a20fbb 8061486: [TESTBUG] compiler/whitebox/ tests fail : must be osr_compiled (reappeared in nightlies)
Call warmup code from OSR triggering method to make sure no non-OSR compilation is triggered in the loop.

Reviewed-by: kvn
2014-10-24 08:35:29 +02:00
Tobias Hartmann c3e3929605 8060454: [TESTBUG] Whitebox tests fail with -XX:CompileThreshold=100
Move the call to 'waitAndDeoptimize' from the warmup methods to the osr triggering methods to make sure that no non-osr compilation is in the queue after warmup.

Reviewed-by: kvn
2014-10-17 10:04:45 +02:00
Tobias Hartmann 510f3f06f6 8046268: compiler/whitebox/ tests fail : must be osr_compiled
Added code to 'warm up' the methods before triggering OSR compilation by executing them a limited number of times. Like this, the profile information marks the loop exit as taken and we don't add an uncommon trap.

Reviewed-by: kvn, dlong, iignatyev
2014-10-13 12:30:37 +02:00
Severin Gehwolf 04fc12e21a 8041992: Fix of JDK-8034775 neglects to account for non-JIT VMs
Allow 0 compiler threads if no JIT is used.

Reviewed-by: kvn, dholmes
2014-05-02 06:24:39 +02:00
Igor Ignatyev eb8eddf653 8038393: [TESTBUG] ciReplay/* tests fail after 8034775
Reviewed-by: kvn
2014-03-29 14:54:48 +04:00
Albert Noll ca4b586383 8036091: compiler/membars/DekkerTest.java fails with -XX:CICompilerCount=1
Start test with -XX:-TieredCompilation so that one compiler thread works

Reviewed-by: kvn, twisti
2014-03-05 10:20:30 +01:00
Albert Noll 0392a7cf60 8034775: Failing to initialize VM when running with negative value for -XX:CICompilerCount
Ensure appropriate min. number of compiler threads (1 for non-tiered, and 2 for tiered)

Reviewed-by: kvn
2014-02-25 13:52:37 +01:00
Vladimir Ivanov 02e1a44714 8058828: Wrong ciConstant type for arrays from ConstantPool::_resolved_reference
Reviewed-by: kvn, jrose
2014-10-01 12:34:38 -07:00
Vladimir Ivanov ba706b412a 8059556: C2: crash while inlining MethodHandle invocation w/ null receiver
Reviewed-by: kvn, jrose
2014-10-01 12:34:45 -07:00
Vladimir Kozlov 28855bc112 8059299: assert(adr_type != NULL) failed: expecting TypeKlassPtr
Use top() for dead paths when initializing Phi node of exceptions klasses in Parse::catch_inline_exceptions().

Reviewed-by: jrose, vlivanov
2014-10-02 11:36:44 -07:00
Boris Molodenkov 097295bb38 8057165: [TESTBUG] Need a test to cover JDK-8054883
Reviewed-by: kvn, iveresov, iignatyev
2014-09-16 21:29:30 +04:00
Vaibhav Choudhary 46c45a78f4 8153194: PreserveFPRegistersTest.java runs out of memory in the nightlies
Reviewed-by: kvn
2018-02-21 11:11:07 +05:30
Muthusamy Chinnathambi 64dc87d8d0 8148175: C1: G1 barriers don't preserve FP registers
Reviewed-by: vlivanov, kvn
2018-02-07 07:01:44 -05:00
Roland Westrelin 79112a42c6 8038636: speculative traps break when classes are redefined
Remove speculative traps that point to methods that are redefined

Reviewed-by: kvn, twisti
2014-04-08 09:51:25 +02:00
Igor Veresov ca008cc21b 8059002: 8058744 needs a test case
Added a test case the UnsafeRawOp intrinsics

Reviewed-by: kvn
2014-09-23 17:24:34 -07:00
Tobias Hartmann 133e2f694e 8044538: assert(which != imm_operand) failed: instruction is not a movq reg, imm64
Fixed internal_word_Relocation::target() to not retrieve target address from code if relocation points into the constant section. Added test.

Reviewed-by: kvn
2014-06-11 09:16:19 +02:00
Roland Westrelin 122a4dbe61 8054224: Recursive method that was compiled by C1 is unable to catch StackOverflowError
Do not update exception cache if exception is replaced when thrown

Reviewed-by: kvn, iveresov
2014-08-11 15:09:04 +02:00
Roland Westrelin b07c9ddde2 8046698: assert(false) failed: only Initialize or AddP expected macro.cpp:943
PhiNode inserted between AllocateNode and Initialization node confuses allocation elimination

Reviewed-by: kvn
2014-08-02 07:06:08 +02:00
Vladimir Kozlov b939952248 8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method
Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM.

Reviewed-by: roland
2014-09-02 12:48:45 -07:00
Filipp Zhinkin 4149c9cbac 8055903: Develop sanity tests on SPARC's SHA instructions support
Reviewed-by: kvn, iignatyev
2014-09-03 15:26:06 +04:00
Filipp Zhinkin 476cf87251 8055904: Develop tests for new command-line options related to SHA intrinsics
Reviewed-by: kvn, iignatyev
2014-09-03 15:29:57 +04:00
Filipp Zhinkin e8ed819ee6 8056091: Move compiler/intrinsics/mathexact/sanity/Verifier to compiler/testlibrary and extend its functionality
Reviewed-by: kvn, iignatyev
2014-09-08 20:32:10 +04:00
Tobias Hartmann 2579dcc5ab 8048879: "unexpected yanked node" opto/postaloc.cpp:139
MemBarAcquireNode prevents deletion of dead LoadNNode. Added condition to 'has_special_unique_user' to trigger deletion.

Reviewed-by: kvn, iveresov
2014-08-19 07:36:11 +02:00
Tobias Hartmann 50a76f34d7 8055657: Test compiler/classUnloading/methodUnloading/TestMethodUnloading.java does not work with non-default GC
Remove the '-XX:+UseParallelGC' parameter from the test because it is conflicting with other GC settings.

Reviewed-by: kvn
2014-08-29 10:47:50 +02:00
Vladimir Kozlov 32a6b7ecf2 8055069: TSX and RTM should be deprecated more strongly until hardware is corrected
Require to specify UnlockExperimentalVMOptions flag together with UseRTMLocking flag on un-patched systems where CPUID allows it but is unsupported otherwise.

Reviewed-by: iveresov, fzhinkin
2014-08-22 12:03:49 -07:00
Tobias Hartmann 5c9a3619a8 8054402: "klass->is_loader_alive(_is_alive)) failed: must be alive" for anonymous classes
Because anonymous classes are not in the system dictionary, we have to set 'unloading_occurred' based on 'CLDG::do_unloading()'. Added jtreg test.

Reviewed-by: kvn, coleenp
2014-08-25 08:20:17 +02:00
James Cheng f312e11bf8 8035968: Leverage CPU Instructions to Improve SHA Performance on SPARC
Add C2 SHA intrinsics on SPARC

Reviewed-by: kvn, roland
2014-06-11 11:05:10 -07:00
Tobias Hartmann 58f8c2e723 8029443: 'assert(klass->is_loader_alive(_is_alive)) failed: must be alive' during VM_CollectForMetadataAllocation
Added missing metadata relocation to 'loadConP_no_oop_cheap' on Sparc if the pointer is referring to a Klass. Added jtreg test.

Reviewed-by: kvn
2014-08-06 08:47:40 +02:00
Filipp Zhinkin c093c7cfd4 8054805: Update CLI tests on RTM options to reflect changes in JDK-8054376
Reviewed-by: kvn
2014-08-11 19:19:47 +04:00
Filipp Zhinkin 6f3d9d3295 8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Call rtm_deopt() only if there were no compilation bailouts before.

Reviewed-by: kvn
2014-07-28 15:06:38 -07:00
Vladimir Ivanov fbe17a54fc 8043546: C1 optimizes @Stable instance fields with default values
Reviewed-by: kvn, jrose
2014-07-10 12:04:43 -07:00
Vladimir Ivanov dbaa3adcd2 8033626: assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place
Reviewed-by: kvn, roland
2014-06-17 09:02:30 +00:00
Vladimir Kozlov 86eb6091d2 8046516: Segmentation fault in JVM (easily reproducible)
Place new nodes on the previous loop exit in reorg_offsets().

Reviewed-by: roland
2014-06-12 10:15:43 -07:00
Nils Eliasson 5dfa5f915f Merge 2014-06-13 08:40:35 +00:00
Nils Eliasson feac871af5 8040244: compiler/whitebox/IsMethodCompilableTest.java fails
Prevent from running with Xcomp

Reviewed-by: kvn, twisti
2014-06-09 10:32:49 +02:00
Roland Westrelin 4162f57cd5 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.

Reviewed-by: twisti, kvn
2014-04-01 09:36:49 +02:00
Albert Noll 2be197e2b8 8011646: SEGV in compiled code with loop predication
Remove control edge of load node to ensure that castPP removal sets the control edge correctly

Reviewed-by: kvn, roland
2014-05-30 06:50:38 +02:00
Chuck Rasbold 0a7a48beeb 8043354: OptimizePtrCompare too aggressive when allocations are present
In bcEscapeAnalyzer update the _allocated_escapes flag if a var escapes the method.

Reviewed-by: kvn
2014-05-21 10:54:59 -07:00
Filipp Zhinkin 09a316f776 8042949: +UnlockExperimentalVMOptions missed from TestUseRTMLockingOptionOnUnsupportedVM.java test
Reviewed-by: kvn, iignatyev
2014-05-18 00:25:06 +04:00
Roland Westrelin a01a78d818 8041481: JVM crashes with collect_args_for_profiling
Method handle call to c1 intrinsic tries to profile popped argument

Reviewed-by: kvn, twisti
2014-04-25 09:22:16 +02:00
Shrinivas Joshi 2f9a892302 8042281: compiler/7184394/TestAESMain.java fails with: javax.crypto.IllegalBlockSizeException: Input length not multiple of 16 bytes
Added missing -DmsgSize=640 to test's run commands.

Reviewed-by: kvn
2014-05-01 17:57:29 -07:00
Shrinivas Joshi 7eacd2a774 8035936: SIGBUS in StubRoutines::aesencryptBlock, solaris-sparc
Fix the arbitrary alignment issue in SPARC AES crypto stub routines.

Reviewed-by: kvn, iveresov
2014-04-30 14:14:01 -07:00
Igor Ignatyev fd08a86187 8041497: Compilation of compiler/rtm/cli/TestUseRTMDeoptOption* tests failed
Reviewed-by: kvn, roland
2014-04-24 14:02:48 +04:00
Richard Reingruber 89391621d3 8038048: assert(null_obj->escape_state() == PointsToNode::NoEscape,etc) runThese -full
Use correct set_escape_state() method.

Reviewed-by: kvn, iignatyev
2014-04-16 14:49:03 -07:00
Filipp Zhinkin 4dddf42a7f 8040001: CLI test on RTMRetryCount option was missed from fix for 8039496
Reviewed-by: kvn, iignatyev
2014-04-16 08:28:19 +04:00
Pavel Punegov e74b34711c 8038418: New tests development for type profiling and speculation
Reviewed-by: roland, iignatyev
2014-04-11 18:46:35 +04:00
Igor Ignatyev 88208f0aa1 Merge 2014-04-14 22:53:29 +04:00
Filipp Zhinkin c74d0db846 8037860: Add tests to cover Intel RTM instructions support
Reviewed-by: kvn, iignatyev
2014-04-11 00:35:23 +04:00
Filipp Zhinkin 71f09932eb 8039496: Add sanity tests on RTM-related command line options
Reviewed-by: kvn, iignatyev
2014-04-14 19:29:34 +04:00
Filipp Zhinkin 597eb43478 8039499: Add all common classes used by tests on RTM support to testlibrary
Reviewed-by: kvn, iignatyev
2014-04-14 19:29:34 +04:00
Roland Westrelin 95339828fb 8032011: nsk/stress/jck60/jck60022 crashes in src\share\vm\runtime\synchronizer.cpp:239
Biased locking's revoke_bias locks monitor in compiled frame with eliminated lock

Reviewed-by: kvn, iveresov
2014-02-27 09:37:16 +01:00
Nils Eliasson 711d611b02 8007270: Make IsMethodCompilable test work with tiered
Only c2 compiles counts toward cutoff

Reviewed-by: kvn, roland
2014-01-28 15:05:46 +01:00
Anton Ivanov b7aff66e43 8038953: Add sanity tests for BMI1 and LZCNT instructions
Reviewed-by: kvn, iignatyev
2014-04-11 00:34:51 +04:00
Igor Veresov a27cfca507 8039043: Implicit null check is in the wrong place in C1 -UseCompressedOops
Null check is placed in a wrong place when storing a null to an object field on x64 with compressed oops off

Reviewed-by: roland, vlivanov, kvn
2014-04-02 11:24:51 -07:00
Vladimir Ivanov 12fea4c7ba Merge 2014-03-28 12:22:04 -07:00